openapi: 3.0.0 info: version: "1.0" x-release: 1.0.0-844 title: BBC iPlayer Business Layer description: The definitive iPlayer API. x-logo: url: https://avatars0.githubusercontent.com/u/828722?s=200&v=4 backgroundColor: "#FFFFFF" license: name: MIT url: https://opensource.org/licenses/MIT contact: name: Open iBL Project email: ibl-team@lists.forge.bbc.co.uk url: http://developer.bbc.co.uk/ x-schema-id: https://ibl.api.bbci.co.uk/ibl/v1/schema/ibl.json externalDocs: description: BBC iPlayer documentation url: http://smethur.st/posts/176135860 security: - api_key: [] paths: "/programmes/{pid}": get: summary: Programme for a given pid. description: Get the programme for a given programme identifier. tags: - Programmes (TLEOs) operationId: Get_Programmes by parent PID_ parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/initial_child_count" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/programmes/{pid}/episodes": get: summary: Child episodes for a given programme pid. description: Get the child episodes belonging to a given programme identifier. tags: - Episodes operationId: Get_Episodes by parent PID_ parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/initial_child_count" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/episodes/{pid}": get: summary: Episode for a given pid. description: Get the episode for a given episode identifier. tags: - Episodes operationId: Get_Programme by PID_ parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/mixin" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/atoz/{letter}/programmes": get: summary: Programmes by initial title character description: Get the Programmes whose title begins with the given initial character. tags: - A to Z operationId: Get_Programmes AtoZ search_ parameters: - name: letter in: path required: true description: Letter to search by, a to z or the string '0-9' schema: type: string pattern: "[a-z](0-9)" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" - $ref: "#/components/parameters/initial_child_count" - name: sort in: query required: true description: The sort order of the results. schema: type: string enum: - title - $ref: "#/components/parameters/sort_direction" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/episodes/{pid}/prerolls": get: summary: Get Trailers (pre-rolls) description: Get Trailers (pre-rolls) tags: - Episodes operationId: Get_Trailers (pre-rolls)_ parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/episodes/{pid}/postrolls": get: summary: Get Follow-ups (post-rolls) description: Get Follow-ups (post-rolls) tags: - Episodes operationId: getPostRolls parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/episodes/{pid}/next": get: summary: Get Onward Journey description: Get Onward Journey (next programme) tags: - Episodes operationId: Get_Onward_Journey parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/clips/{pid}": get: summary: Get Clips description: Get Clips tags: - Episodes operationId: Get_Clips_ parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /search-suggest: get: summary: Search-suggest description: Search-suggest tags: - Search operationId: Search-suggest_ parameters: - $ref: "#/components/parameters/q" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/channels/{channel}/schedule/{date}": get: summary: Get schedule by channel description: Get schedule by channel tags: - Channels operationId: Get_Schedule by channel_ parameters: - $ref: "#/components/parameters/channel" - name: date in: path required: true description: The date to return the schedule for, yyyy-mm-dd format schema: type: string - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/channels/{channel}/highlights": get: summary: List the highlights for a channel. description: Get the editorial highlights of a given channel in TV & iPlayer. tags: - Channels operationId: Get_Highlights by channel_ parameters: - $ref: "#/components/parameters/channel" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - name: live in: query required: false description: Whether to include live programmes schema: type: boolean - $ref: "#/components/parameters/mixin" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /search: get: summary: Search description: Search tags: - Search operationId: Search_ parameters: - $ref: "#/components/parameters/q" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /categories: get: summary: Get categories description: Get the list of all the categories in TV & iPlayer. tags: - Categories operationId: Get_Categories_ parameters: - $ref: "#/components/parameters/lang" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/categories/{category}": get: summary: Get sub-categories description: Get sub-categories tags: - Categories operationId: Get_Sub-categories_ parameters: - $ref: "#/components/parameters/category" - $ref: "#/components/parameters/lang" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/categories/{category}/programmes": get: summary: List all the programmes for a category. description: Get the list of all the Programmes (TLEOs) for a given category in TV & iPlayer. tags: - Programmes (TLEOs) operationId: Get_Programmes by category_ parameters: - $ref: "#/components/parameters/category" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/categories/{category}/episodes": get: summary: List all the episodes for a category. description: Get the list of all the episodes for a given category in TV & iPlayer. tags: - Episodes operationId: Get_Episodes by category_ parameters: - $ref: "#/components/parameters/category" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" - name: sort in: query required: false description: The sort order of the results. schema: type: string enum: - recent - popular responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/episodes/{pid}/recommendations": get: summary: Get programme recommendations description: Get programme recommendations tags: - Episodes operationId: Get_Programme recommendations_ parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /status: get: summary: Get status description: Get the current iPlayer business layer status. This tells the caller the status of the iPlayer data, but not necessarily the overall status of the website. In the future it might include the status of the dependent data services within the BBC. tags: - Metadata operationId: Get_Status_ responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /channels: get: summary: List all the channels. description: Get the list of all the channels TV & iPlayer. tags: - Channels operationId: Get_Channels_ parameters: - name: region in: query required: false description: The region to get the channels for. schema: type: string - $ref: "#/components/parameters/lang" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /groups/popular/episodes: get: summary: Get programmes popular description: Get programmes popular tags: - Episodes operationId: Get_Programmes popular_ parameters: - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" - $ref: "#/components/parameters/initial_child_count" - $ref: "#/components/parameters/sort" - $ref: "#/components/parameters/sort_direction" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/mixin" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/groups/{pid}/episodes": get: summary: Get episodes by group, brand or series description: Get episodes by group, brand or series tags: - Episodes operationId: Get_Episodes by group_ parameters: - $ref: "#/components/parameters/pid" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" - $ref: "#/components/parameters/initial_child_count" - $ref: "#/components/parameters/sort" - $ref: "#/components/parameters/sort_direction" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/mixin" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/categories/{category}/highlights": get: summary: List the highlights for a category. description: Get the editorial highlights of a given category in TV & iPlayer. tags: - Programmes (TLEOs) operationId: Get_Highlights by category_ parameters: - $ref: "#/components/parameters/category" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/mixin" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/channels/{channel}/programmes": get: summary: Get programmes by channel description: Get programmes by channel tags: - Programmes (TLEOs) operationId: Get_Programmes by channel_ parameters: - $ref: "#/components/parameters/channel" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /regions: get: summary: List all regions description: Get the list of all the regions TV & iPlayer. tags: - Regions operationId: Get_Regions_ parameters: - $ref: "#/components/parameters/lang" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /user/watching: get: summary: Get user watching description: Get user watching tags: - User operationId: Get_User watching_ parameters: - $ref: "#/components/parameters/identity_cookie" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /schema/ibl.json: get: summary: Get schema description: Get schema tags: - Metadata operationId: Get_Schema_ responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] "/channels/{channel}/broadcasts": get: summary: Get broadcasts by channel description: Get broadcasts by channel tags: - Programmes (TLEOs) operationId: Get_Broadcasts by channel_ parameters: - $ref: "#/components/parameters/channel" - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/mixin" - $ref: "#/components/parameters/per_page" - name: from in: query required: false description: Time to return results from, e.g. -3h schema: type: string responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /user/purchases: get: summary: Get user store purchases description: Get user store purchases tags: - User operationId: Get_User store purchases_ parameters: - $ref: "#/components/parameters/identity_cookie" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: - basic: [] /user/recommendations: get: summary: Get user store recommendations description: Get user store recommendations tags: - User operationId: Get_User store recommendations_ parameters: - $ref: "#/components/parameters/identity_cookie" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] /home/highlights: get: summary: Get programme highlights description: Get programme highlights tags: - Programmes (TLEOs) operationId: Get_Programme highlights_ parameters: - $ref: "#/components/parameters/lang" - $ref: "#/components/parameters/rights" - $ref: "#/components/parameters/availability" - $ref: "#/components/parameters/mixin" responses: "200": description: Default response content: application/json: schema: $ref: "#/components/schemas/ibl" security: [] servers: - url: https://ibl.api.bbci.co.uk/ibl/v1 - url: http://ibl.api.bbci.co.uk/ibl/v1 components: parameters: pid: name: pid in: path required: true description: The programme identifier. schema: type: string minLength: 8 pattern: ^([0-9,a-d,f-h,j-n,p-t,v-z]){8,}$ rights: name: rights in: query required: true description: The rights group to limit results to. schema: type: string enum: - mobile - tv - web default: web availability: name: availability in: query required: true description: Whether to return all, or available programmes schema: type: string enum: - all - available default: available initial_child_count: name: initial_child_count in: query required: true description: The depth to return child entities. schema: type: integer minimum: 1 maximum: 4 default: 4 mixin: name: mixin in: query required: false description: Request additional data in the output explode: true schema: type: array items: type: string enum: - live - promotions page: name: page in: query required: true description: The page index. schema: type: integer format: int64 per_page: name: per_page in: query required: true description: The number of results to return. schema: type: integer format: int64 sort_direction: name: sort_direction in: query required: true description: Whether to sort ascending or descending schema: type: string enum: - asc - desc q: name: q in: query required: true description: The term to search for. schema: type: string lang: name: lang in: query required: true description: The language for any applicable localised strings. schema: type: string enum: - en - cy - ga - gd - pi channel: name: channel in: path required: true description: The channel identifier to limit results to. schema: type: string category: name: category in: path required: true description: The category identifier to return results from. schema: type: string sort: name: sort in: query required: true description: The sort order of the results. schema: type: string identity_cookie: name: identity_cookie in: query required: true description: The BBC-id cookie value schema: type: number format: double securitySchemes: api_key: type: apiKey name: api_key in: query basic: type: http description: Used only by store purchases. scheme: basic schemas: ibl: {} category: type: object properties: id: type: string type: enum: - category title: type: string kind: enum: - genre - accessibility - national - childrens child_episode_count: type: number child_programme_count: type: number parent_category: type: string contextual_title: type: string sub_categories: type: array items: $ref: "#/components/schemas/category" required: - id - title - type - kind additionalProperties: false channel: type: object properties: id: type: string type: enum: - channel title: type: string has_schedule: type: boolean master_brand_id: type: string master_brand_title: type: string on_air: type: boolean required: - id - title - type - has_schedule - master_brand_id - master_brand_title additionalProperties: false region: type: object properties: id: type: string short_id: type: string type: enum: - region title: type: string kind: enum: - regional - national required: - id - short_id - type - title - kind additionalProperties: false episode: type: object properties: id: type: string type: enum: - episode - episode_large title: type: string tests: type: array items: type: object required: - id - variants - status properties: id: type: string variants: type: array items: type: object required: - id - data properties: id: type: string data: type: object required: - images properties: images: type: object required: - type - standard properties: type: enum: - episode - episode_large standard: type: string status: type: 'string' enum: - active original_title: type: string live: type: boolean images: type: object properties: type: enum: - image standard: type: string live: type: string character_image: type: string inherited_from: type: string promotional: type: string promotional_with_logo: type: string portrait: type: string required: - type - standard additionalProperties: false has_credits: type: boolean signed: type: boolean childrens: type: boolean audio_described: type: boolean status: enum: - available - unavailable requires_tv_licence: type: boolean requires_sign_in: type: boolean tleo_id: type: string guidance: type: boolean subtitle: type: string editorial_subtitle: type: string editorial_title: type: string live_title: type: string live_subtitle: type: string slice_subtitle: type: string event_group_id: type: string preview_id: type: string slice_id: type: string synopses: type: object properties: small: type: string medium: type: string large: type: string editorial: type: string preview: type: string programme_small: type: string live: type: string additionalProperties: false versions: type: array items: anyOf: - type: object properties: id: type: string type: enum: - version - version_large hd: type: boolean uhd: type: boolean download: type: boolean kind: enum: - legal - editorial - technical-replacement - original - iplayer-version - lengthened - shortened - pre-watershed - post-watershed - warnings-higher - warnings-lower - warnings-none - duplication - open-subtitled - other - audio-described - signed - webcast - simulcast duration: type: object properties: text: type: string value: type: string required: - text - value additionalProperties: false rrc: type: object properties: url: type: string description: type: object properties: small: type: string large: type: string required: - small - large additionalProperties: false required: - description additionalProperties: false guidance: type: object properties: id: type: string text: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false required: - id additionalProperties: false first_broadcast: type: string first_broadcast_date_time: type: string credits_start: type: number service_id: type: string availability: type: object properties: start: type: string accurate_start: type: string end: type: string remaining: type: object properties: text: type: string required: - text additionalProperties: false required: - start additionalProperties: false events: type: array items: oneOf: - type: object properties: name: type: string system: type: string offset: type: integer required: - name - system - offset additionalProperties: false - type: object properties: name: type: string system: type: string time: type: string required: - name - system - time additionalProperties: false interactions: type: array items: $ref: "#/components/schemas/interaction" required: - id - type - hd - uhd - download - duration - kind - availability additionalProperties: false - type: object properties: id: type: string type: enum: - store_version store_id: type: string store_profile: type: string hd: type: boolean kind: type: string download: type: boolean duration: type: object properties: text: type: string value: type: string required: - text - value additionalProperties: false guidance: type: object properties: id: type: string text: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false required: - id additionalProperties: false store_session: type: object properties: token: type: string stats: type: object properties: parentPID: type: string parentPIDType: type: string viewerId: type: string contentType: type: string contentVariant: type: string episodeName: type: string assetName: type: string productVariant: type: string ceiling: type: number required: - token - stats additionalProperties: false required: - id - type - store_id - store_profile - hd - download - duration - kind additionalProperties: false parent_id: type: string tleo_type: enum: - episode - brand - series programme_type: enum: - narrative - sequential - self-contained - strand - unclassified - one-off categories: type: array items: type: string next_broadcast: type: object properties: channel_title: type: string scheduled_start: type: string required: - channel_title - scheduled_start additionalProperties: false labels: type: object properties: editorial: type: string time: type: string category: type: string editorial_category: type: string additionalProperties: false master_brand: $ref: "#/components/schemas/master_brand" parent_position: type: number release_date_time: type: string lexical_sort_letter: type: string numeric_tleo_position: type: number release_date: type: string related_links: type: array items: type: object properties: id: type: string url: type: string kind: type: string title: type: string type: enum: - link required: - id - url - type - kind - title additionalProperties: false promoted: type: boolean requires_ab: type: array items: type: string enum: - u13 - u16 - u18 - o18 minItems: 1 uniqueItems: true required: - id - type - title - images - signed - audio_described - status - tleo_id - guidance - synopses - versions - tleo_type - categories - master_brand - lexical_sort_letter - requires_sign_in additionalProperties: false programme: type: object properties: id: type: string type: enum: - programme - programme_large title: type: string labels: type: object properties: category: type: string additionalProperties: false tleo_type: enum: - brand - series - episode synopses: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false lexical_sort_letter: type: string images: type: object properties: type: enum: - image standard: type: string inherited_from: type: string required: - type - standard additionalProperties: false master_brand: $ref: "#/components/schemas/master_brand" categories: type: array items: type: string status: enum: - available - unavailable count: type: number programme_type: enum: - narrative - sequential - self-contained - strand - unclassified - one-off initial_children: type: array items: $ref: "#/components/schemas/episode" required: - id - type - title - synopses - lexical_sort_letter - images - master_brand - categories - status - count - initial_children additionalProperties: false master_brand: type: object properties: id: type: string titles: type: object properties: small: type: string medium: type: string large: type: string required: - small - medium - large additionalProperties: false ident_id: type: string attribution: type: string required: - id - titles - attribution additionalProperties: false group: type: object properties: id: type: string type: enum: - group - group_large title: type: string short_title: type: string group_type: enum: - tleo - curated - automated - event stacked: type: boolean images: type: object properties: type: enum: - image standard: type: string vertical: type: string required: - type - standard - vertical additionalProperties: false episode_sort_direction: type: string synopses: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false master_brand: $ref: "#/components/schemas/master_brand" related_links: type: array items: type: object properties: kind: type: string url: type: string title: type: string required: - kind - url - title additionalProperties: false initial_children: type: array items: anyOf: - $ref: "#/components/schemas/episode" - $ref: "#/components/schemas/broadcast" count: type: number required: - id - type additionalProperties: false broadcast: type: object properties: id: type: string episode_id: type: string version_id: type: string service_id: type: string type: enum: - broadcast scheduled_start: type: string scheduled_end: type: string transmission_start: type: string transmission_end: type: string duration: type: object properties: text: type: string value: type: string required: - value - text additionalProperties: false blanked: type: boolean repeat: type: boolean episode: $ref: "#/components/schemas/episode" channel_title: type: string available_on_hd_service: type: string nullable: true events: type: array items: type: object properties: name: type: string system: type: string time: type: string required: - name - system - time additionalProperties: false required: - id - type - scheduled_start - scheduled_end - repeat - blanked - episode - episode_id - version_id - service_id additionalProperties: false promotion: type: object properties: id: type: string type: enum: - promotion title: type: string subtitle: type: string url: type: string synopses: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false images: type: object properties: type: enum: - image standard: type: string inherited_from: type: string required: - type - standard additionalProperties: false labels: type: object properties: promotion: type: string required: - promotion additionalProperties: false required: - id - type additionalProperties: false trailer: type: object properties: id: type: string type: enum: - trailer title: type: string kind: enum: - available_now - watch_now - coming_soon - streaming_now_sounds - other version_id: type: string message: type: string required: - id - type - title - kind - version_id - message additionalProperties: false search_group: type: object properties: id: type: string type: enum: - search_group episode: $ref: "#/components/schemas/episode" required: - id - type - episode additionalProperties: false watching: type: object properties: urn: type: string type: enum: - watching episode: $ref: "#/components/schemas/episode" programme: $ref: "#/components/schemas/programme" version: $ref: "#/components/schemas/version" status: enum: - current - next - ended offset: type: number progress: type: number remaining: type: number has_next: type: boolean required: - type - urn - episode - programme - version - has_next additionalProperties: false user_recommendation: type: object properties: algorithm: type: string type: enum: - user_recommendation episode: $ref: "#/components/schemas/episode" required: - algorithm - type - episode additionalProperties: false added: type: object properties: urn: type: string type: enum: - added programme: $ref: "#/components/schemas/programme" required: - urn - type - programme additionalProperties: false store_version: type: object properties: id: type: string type: enum: - store_version store_id: type: string store_profile: type: string hd: type: boolean kind: type: string download: type: boolean duration: type: object properties: text: type: string value: type: string required: - text - value additionalProperties: false guidance: type: object properties: id: type: string text: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false required: - id additionalProperties: false store_session: type: object properties: token: type: string stats: type: object properties: parentPID: type: string parentPIDType: type: string viewerId: type: string contentType: type: string contentVariant: type: string episodeName: type: string assetName: type: string productVariant: type: string ceiling: type: number required: - token - stats additionalProperties: false required: - id - type - store_id - store_profile - hd - download - duration - kind additionalProperties: false interaction: type: object properties: title: type: object properties: short: anyOf: - type: string - enum: - Skip long: anyOf: - type: string - enum: - Skip intro - Skip recap - Skip preview required: - short - long additionalProperties: false type: anyOf: - type: string - enum: - skip subtype: anyOf: - type: string - enum: - intro - recap - this-episode-preview - next-episode-teaser interaction_points: type: object properties: show_from: type: number skip_to: type: number required: - show_from - skip_to additionalProperties: false required: - title - type - subtype - interaction_points additionalProperties: false version: type: object properties: id: type: string type: enum: - version - version_large hd: type: boolean uhd: type: boolean download: type: boolean kind: enum: - legal - editorial - technical-replacement - original - iplayer-version - lengthened - shortened - pre-watershed - post-watershed - warnings-higher - warnings-lower - warnings-none - duplication - open-subtitled - other - audio-described - signed - webcast - simulcast duration: type: object properties: text: type: string value: type: string required: - text - value additionalProperties: false rrc: type: object properties: url: type: string description: type: object properties: small: type: string large: type: string required: - small - large additionalProperties: false required: - description additionalProperties: false guidance: type: object properties: id: type: string text: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false required: - id additionalProperties: false first_broadcast: type: string first_broadcast_date_time: type: string credits_start: type: number service_id: type: string availability: type: object properties: start: type: string accurate_start: type: string end: type: string remaining: type: object properties: text: type: string required: - text additionalProperties: false required: - start additionalProperties: false events: type: array items: oneOf: - type: object properties: name: type: string system: type: string offset: type: integer required: - name - system - offset additionalProperties: false - type: object properties: name: type: string system: type: string time: type: string required: - name - system - time additionalProperties: false interactions: type: array items: $ref: "#/components/schemas/interaction" required: - id - type - hd - uhd - download - duration - kind - availability additionalProperties: false clip: type: object properties: id: type: string type: enum: - clip title: type: string images: type: object properties: type: enum: - image standard: type: string inherited_from: type: string required: - type - standard additionalProperties: false tleo_id: type: string synopses: type: object properties: small: type: string medium: type: string large: type: string editorial: type: string additionalProperties: false versions: type: array items: type: object properties: id: type: string type: enum: - version - version_large hd: type: boolean uhd: type: boolean download: type: boolean kind: enum: - legal - editorial - technical-replacement - original - iplayer-version - lengthened - shortened - pre-watershed - post-watershed - warnings-higher - warnings-lower - warnings-none - duplication - open-subtitled - other - audio-described - signed - webcast - simulcast duration: type: object properties: text: type: string value: type: string required: - text - value additionalProperties: false rrc: type: object properties: url: type: string description: type: object properties: small: type: string large: type: string required: - small - large additionalProperties: false required: - description additionalProperties: false guidance: type: object properties: id: type: string text: type: object properties: small: type: string medium: type: string large: type: string additionalProperties: false required: - id additionalProperties: false first_broadcast: type: string first_broadcast_date_time: type: string credits_start: type: number service_id: type: string availability: type: object properties: start: type: string accurate_start: type: string end: type: string remaining: type: object properties: text: type: string required: - text additionalProperties: false required: - start additionalProperties: false events: type: array items: oneOf: - type: object properties: name: type: string system: type: string offset: type: integer required: - name - system - offset additionalProperties: false - type: object properties: name: type: string system: type: string time: type: string required: - name - system - time additionalProperties: false interactions: type: array items: $ref: "#/components/schemas/interaction" required: - id - type - hd - uhd - download - duration - kind - availability additionalProperties: false tleo_type: enum: - episode - brand - series labels: type: object properties: editorial: type: string category: type: string additionalProperties: false master_brand: $ref: "#/components/schemas/master_brand" promotion_type: enum: - available_now - coming_soon onward_journey: type: object properties: type: enum: - episode id: type: string additionalProperties: false required: - id - type - title - images - tleo_id - synopses - versions - master_brand additionalProperties: false