Brightcove Player Embeds API

Operations for managing player embeds (child players).

OpenAPI Specification

brightcove-player-embeds-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Brightcove Analytics API Reference Access Tokens Player Embeds API
  description: "Reference for the Brightcove Analytics API, used to retrieve analytics data for your accounts. To test API requests, you can use our <a href=\"/getting-started/concepts-testing-tools-brightcove-apis.html\" target=\"_blank\">API Testing Tools</a>.\n\nFor additional in-depth guides to features of the API, see the **[general documentation](/analytics/index.html)**.\n\n **Base URL**: https://analytics.api.brightcove.com"
  x-bc-access: public
  version: 1.0.0
servers:
- url: https://analytics.api.brightcove.com
  variables: {}
tags:
- name: Player Embeds
  description: Operations for managing player embeds (child players).
paths:
  /accounts/{{account_id}}/players/{{player_id}}/embeds:
    get:
      tags:
      - Player Embeds
      summary: Get all the embeds for a player.
      description: Get all the embeds (child players) for a player.
      operationId: GetEmbeds
      security:
      - BC_OAuth2:
        - video-cloud/player/read
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/player_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                description: '200'
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        account_id:
                          type: string
                          description: The account id
                        created_at:
                          type: string
                          description: The player creation date-time
                        embeds_count:
                          type: integer
                          description: The number of embeds (instances of this player), will always be at least 1
                        id:
                          type: string
                          description: The player id
                        name:
                          type: string
                          description: The player name
                        description:
                          type: string
                          description: The player description
                        url:
                          type: string
                          description: URL to player
                        branches:
                          type: object
                          description: The branches of the player - contains objects for the preview and master (published) player
                          properties:
                            preview:
                              type: object
                              description: The preview player branch
                              properties:
                                configuration:
                                  $ref: '#/components/schemas/configuration'
                                updated_at:
                                  type: string
                                  description: date-time of last update to preview player
                                template_updated_at:
                                  type: string
                                  description: date-time of last update to preview player template
                                preview_url:
                                  type: string
                                  description: URL for the player
                            master:
                              type: object
                              description: The master (published) player branch
                              properties:
                                configuration:
                                  $ref: '#/components/schemas/configuration'
                                updated_at:
                                  type: string
                                  description: date-time of last update to preview player
                                template_updated_at:
                                  type: string
                                  description: date-time of last update to preview player template
                                preview_url:
                                  type: string
                                  description: URL for the player
        '400':
          description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
        '401':
          description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
        '429':
          description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
        '500':
          description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    post:
      tags:
      - Player Embeds
      description: 'Create an embed (child player) for a player. Note that the initial creation of the embed is automatically published. Any changes to the embed thereafter will need to be published. When creating the embed, the body must be an object representing configuration settings for the new embed. By default when you create an embed, data in the embed overrides like data that would otherwise be inherited from the common player. This situation is different for fields that contain arrays. When the data type of the field is an array, you can choose the inheritance behavior to be overwrite, prepend or append. The fields whose data type is an array, and for which you can control inheritance behavior are: scripts, stylesheets, plugins, sources. You can add special field names to the configuration object to control array inheritance, and change the default behavior of embeds overriding common player data. If a array field in an embed''s configuration has a child item called array_prepend or array_append the data will be correspondingly prepended or appended to the common player''s data for the like field. See the Array fields section of the Embeds Guide for a complete discussion.'
      summary: Create an embed
      operationId: CreateEmbed
      security:
      - BC_OAuth2:
        - video-cloud/player/all
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/player_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        description: Create a player
        content:
          application/json:
            schema:
              type: object
              description: A child player object
              properties:
                description:
                  type: string
                  description: A description of the player
                name:
                  type: string
                  description: The name of the player
                configuration:
                  $ref: '#/components/schemas/configuration'
        required: true
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                description: '200'
                type: object
                properties:
                  id:
                    type: string
                    description: The player id
                    readOnly: true
                  url:
                    type: string
                    description: The player URL
                    readOnly: true
                  embed_code:
                    type: string
                    description: The published player iframe tag
                    readOnly: true
                  embed_in_page:
                    type: string
                    description: URL to browse to retrieve the in-page embed code for published player
                    readOnly: true
                  preview_url:
                    type: string
                    description: URL to preview player
                    readOnly: true
                  preview_embed_in_page:
                    type: string
                    description: URL to browse to retrieve the in-page embed code for preview player
                    readOnly: true
                  preview_embed_code:
                    type: string
                    description: Preview player iframe tag
                    readOnly: true
        '400':
          description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
        '401':
          description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
        '429':
          description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
        '500':
          description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /accounts/{{account_id}}/players/{{player_id}}/embeds/{embed_id}:
    get:
      tags:
      - Player Embeds
      summary: Get a specific embed for a player.
      description: Get a specific embed (child player) for a player.
      operationId: GetSingleEmbeds
      security:
      - BC_OAuth2:
        - video-cloud/player/read
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/player_id'
      - $ref: '#/components/parameters/embed_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                description: '200'
                type: object
                properties:
                  account_id:
                    type: string
                    description: The account id
                  created_at:
                    type: string
                    description: The player creation date-time
                  embeds_count:
                    type: integer
                    description: The number of embeds (instances of this player), will always be at least 1
                  id:
                    type: string
                    description: The player id
                  name:
                    type: string
                    description: The player name
                  description:
                    type: string
                    description: The player description
                  url:
                    type: string
                    description: URL to player
                  branches:
                    type: object
                    description: The branches of the player - contains objects for the preview and master (published) player
                    properties:
                      preview:
                        type: object
                        description: The preview player branch
                        properties:
                          configuration:
                            $ref: '#/components/schemas/configuration'
                          updated_at:
                            type: string
                            description: date-time of last update to preview player
                          template_updated_at:
                            type: string
                            description: date-time of last update to preview player template
                          preview_url:
                            type: string
                            description: URL for the player
                      master:
                        type: object
                        description: The master (published) player branch
                        properties:
                          configuration:
                            $ref: '#/components/schemas/configuration'
                          updated_at:
                            type: string
                            description: date-time of last update to preview player
                          template_updated_at:
                            type: string
                            description: date-time of last update to preview player template
                          preview_url:
                            type: string
                            description: URL for the player
        '400':
          description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
        '401':
          description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
        '429':
          description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
        '500':
          description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    delete:
      tags:
      - Player Embeds
      description: Delete a particular embed (child player) for a player.
      summary: Delete an embed
      operationId: DeleteEmbed
      security:
      - BC_OAuth2:
        - video-cloud/player/all
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/player_id'
      - $ref: '#/components/parameters/embed_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                description: '200'
                type: object
                properties:
                  message:
                    type: string
                    description: Message indicating player was deleted
                    readOnly: true
        '400':
          description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
        '401':
          description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
        '429':
          description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
        '500':
          description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
components:
  schemas:
    configuration:
      title: Player Configuration
      type: object
      description: Configuration for a player
      properties:
        ad_config_id:
          type: string
          description: A Dynamic Delivery SSAI ad configuration ID. In addition to being set on the player configuration, it can be set at runtime via the adConfigId query string parameter for iframe players or the data-ad-config-id attribute for in-page players. Either of these will override any value in the player configuration.
          default: undefined
        ad_failover:
          type: boolean
          description: 'Set to true to enable ad failover behavior. This is a multi-part configuration that depends on: <br> - Both IMA3 and SSAI plugins must be configured on the player. <br> - An ad_config_id should be available, otherwise SSAI ads are not available.'
          default: undefined
        application_id:
          type: string
          description: The application ID is used to differentiate multiple uses of a single player in metrics. It is invisible to the user.
          default: undefined
        autoadvance:
          type: integer
          description: 'Autoadvance setting if using playlists: 0 for no wait; a number for seconds between advance; null to cancel autoadvance'
          default: not enabled
        autoplay:
          oneOf:
          - type: boolean
            description: If `autoplay` is set to a Boolean value the browser's native autoplay behavior is used.
          - type: string
            description: 'If `autoplay` is set to one of the following three valid string values, the following occurs:<br> - `play`: The player will manually try to call play.<br> - `muted`: The player will manually mute the player and call play.<br> - `any`: The player will first try to call play. If that fails, mute the player and call play.<br> If any of the above fail, the player will display the "Big Play Button" as if autoplay was set to false.'
            enum:
            - play
            - auto
            - any
          description: Indicates player should play video immediately, on platforms that allow this
          default: false
        compatibility:
          type: boolean
          description: Provides compatibility with the Player 1.x.x API
          readOnly: true
        crossorigin:
          type: boolean
          description: 'If true, the underlying &lt;video&gt; element will have

            crossorigin="anonymous". This means that any videos or text tracks pulled into the player must have CORS headers.

            *This feature should only be used if you know that all your content (video and text tracks) have CORS headers applied to them.*'
          readOnly: true
        css:
          type: object
          description: Object containing CSS color overrides
          properties:
            controlBarColor:
              type: string
              description: Background color of control bar
              default: '{set by player template}'
            controlColor:
              type: string
              description: Color of buttons and text in control bar
              default: '{set by player template}'
            progressColor:
              type: string
              description: Color of progress bar
              default: '{set by player template}'
        debugger:
          type: boolean
          description: If true, debugger shows player information in a modal window. See the [Player Information Modal document](https://player.support.brightcove.com/troubleshooting/brightcove-player-information-modal.html) for full information.
        errors:
          type: boolean
          description: Indicates if the error messages plugin should be excluded
        flash:
          type: object
          description: Can be used to provide custom Flash options to **Video.js**.
        fullscreenControl:
          type: boolean
          description: Indicates whether the fullscreen control should be shown in the control bar
        hls:
          oneOf:
          - type: boolean
            description: If `false`, the player will not include **videojs-contrib-hls**
          - type: object
            description: If an object is passed, it will be used as options for **videojs-contrib-hls**
            properties:
              captionServices:
                type: object
                description: Used to rename 608 captions
                properties:
                  CC1:
                    type: object
                    description: Properties of the captions to use for CC1
                    properties:
                      language:
                        type: string
                        description: The language of the captions
                        example: en
                      label:
                        type: string
                        description: Label to used for these captions in the player controls
                        example: English
                  CC2:
                    type: object
                    description: Properties of the captions to use for CC2
                    properties:
                      language:
                        type: string
                        description: The language of the captions
                        example: en
                      label:
                        type: string
                        description: Label to used for these captions in the player controls
                        example: English
              parse708captions:
                type: boolean
                default: true
                description: Set to false to hide 708 captions if the encoder is sending both 608 and 708
          description: Handling of **videojs-contrib-hls** and renaming of 608 captions
          default: {}
        language:
          type: string
          description: Can be provided to set the lang attribute of the <code translate="No">&lt;html&gt;</code> element.
          default: undefined
        languages:
          type: array
          description: Languages (2 letter abbreviations) you wish your player to support, from the video.js supported list
          items:
            type: string
            enum:
            - ar
            - ba
            - bg
            - ca
            - cs
            - da
            - de
            - el
            - en
            - es
            - fa
            - fi
            - fr
            - gl
            - he
            - hr
            - hu
            - it
            - ja
            - ko
            - nb
            - nl
            - nn
            - pl
            - pt-BR
            - pt-PT
            - ru
            - sk
            - sr
            - sv
            - tr
            - uk
            - vi
            - zh-CN
            - zh-TW
        loop:
          type: boolean
          description: Indicates if the video should play over as soon as it ends
          default: false
        media:
          type: object
          description: Media information for non-Video Cloud media
          properties:
            sources:
              type: array
              description: Array of non-Video Cloud media sources
              items:
                type: object
                properties:
                  height:
                    type: integer
                    description: Video frame height in pixels
                  width:
                    type: integer
                    description: Video frame width in pixels
                  poster:
                    type: object
                    description: Information for the poster image
                    properties:
                      highres:
                        type: string
                        description: The file path to the poster image, relative to the root directory of the skin
                  src:
                    type: string
                    description: The URL of the video file to load into the player
                  title:
                    type: string
                    description: Content of the `&lt;title&gt;` element of the page
                  type:
                    type: string
                    description: MIME type of the video, as specified in the HTML5 standard, for instance `video/mp4` form MP4 or `application/x-mpegURL` for HLS
                    enum:
                    - video/mp4
                    - application/x-mpegURL
            src:
              type: string
              description: The URL of the video file to load into the player
            tracks:
              type: array
              description: Array of text track objects for non-Video Cloud media
              items:
                type: object
                properties:
                  label:
                    type: string
                    description: Text label for the track, for instance `English` for an English language text track
                  src:
                    type: string
                    description: URL to source of track, required in a track object
                  srclang:
                    type: string
                    description: 2 letter code (valid BCP 47 language tag) for the language of the text track
        muted:
          type: boolean
          description: If `true`, the player will be muted when it loads
          default: false
        play_button:
          type: object
          description: Properties are available for modification of the play button via player configuration
          properties:
            hover:
              type: string
              description: '`glow` or `darken`; default is pink / progress color'
              enum:
              - glow
              - darken
            shape:
              type: string
              description: '`square` or `rectangle`; default is a circle'
              enum:
              - square
              - rectangle
            position:
              type: string
              description: '`topLeft` or `topRight`; default is center'
              enum:
              - topLeft
              - topRight
        player:
          type: object
          description: General settings for the player
          properties:
            inactive:
              type: boolean
              description: Whether the player is active (usable) or not
              default: true
            template:
              type: object
              description: Object containing details of the template the player is based on
              properties:
                name:
                  type: string
                  description: The template name
                  readOnly: true
                version:
                  type: string
                  description: The player template version - note that you only need to be concerned about this if you have opted out of auto-updates for players. See [Opting Out of Automatic Player Updates](/player-management/guides/opting-out-automatic-player-updates.html) for more information.
                  example: 6.22.7
                locked:
                  type: boolean
                  description: Whether the player is locked to prevent auto-updates to new template versions
                  default: false
        player_id:
          type: string
          description: Same as the `id` - the <code translate="No">id</code> for the player is returned as <code translate="No">player_id</code> when you get the configuration by putting <code translate="No">config.json</code> on the end of the player preview URL (it is not returned at all when you get the configuration via the Player Management API, but it returned as `id` in some responses, such as the response to updating or publishing a player)..
          readOnly: true
        player_name:
          type: string
          description: Same as the `name` - the <code translate="No">name</code> you enter for the player is returned as <code translate="No">player_name</code> when you get the configuration by putting <code translate="No">config.json</code> on the end of the player preview URL (it is returned as <code translate="No">name</code> when you get the configuration via the Player Management API. But you must use <code translate="No">name</code> when you create or update the player.
          readOnly: true
        playsinline:
          type: boolean
          description: Allows inline playback (necessary for playback on some devices)
          default: false
        plugins:
          type: array
          description: 'The `plugins` property specifies the order to initialize video.js plugins and any customized settings to apply to them. <br> **For plugins in the [plugin registry](https://player.support.brightcove.com/plugins/plugin-registry.html)**: include the `registry_id`and a `version` (and `options`, if any) <br> **For plugins not in the plugin registry**: include the `name` (and `options`, if any). The plugin must be supported by a corresponding `scripts` property URL entry, and if needed a supporting `stylesheets` URL.'
          items:
            type: object
            properties:
              name:
                type: string
                description: The name of the plugin (for plugins not in the plugin registry
              options:
                type: object
                description: An optional object containing the options for the plugin
              registry_id:
                type: string
                description: The registry id for the plugin
                example: '@brightcove/videojs-custom-endscreen'
              version:
                type: string
                description: The version of the plugin. You can specify a major version in the form `2.x` and the plugin will automatically update when a new version is released. If you specify a minor version in the form `2.7.1`, the plugin will **not** be automatically updated.
                example: '@brightcove/videojs-custom-endscreen'
        preload:
          type: string
          description: What data should be preloaded immediately - note that `preload` is just a suggestion in the HTML5 spec, so **there may be different behavior across browsers**. <br> `auto` indicates that the whole video may be downloaded if possible (which improves performance for viewers, but also consumes unnecessary bandwidth if the user does not watch the video). <br> `metadata` indicates that video metadata should be preloaded; at least a few seconds of the video itself will also be preloaded. <br> `none` tells the player not to load any video data or metadata until the user clicks play.
          enum:
          - auto
          - metadata
          - none
          default: none
        query_string_to_window:
          type: object
          description: Used to control the population of the global namespace (window) from query string parameters. This is useful particularly in cases of embedded players, such as Google's AMP components or Facebook Instant Articles. The parsing of query strings is done using the Node.js querystring module. Use of this configuration object requires at least one of the following sub-properties. Both can be used simultaneously. **Supported for Standard (iframe) player implementations only.**
          properties:
            target:
              type: string
              description: 'A destination object to create on the window, which will be populated with the entire parsed query string. For example, a use of <code translate="No">query_string_to_window.target</code> given the following in a player configuration: <br> { <br> <code translate="No">"query_string_to_window": {"target": "queryStringParams"}</code> <br> } <br>  and given the following query string: <br>  <code translate="No">?foo=bar&nums=1&nums=2</code> <br> would yield the following <code translate="No">window.queryStringParams</code> global object would be available to the player and plugins: <br> foo: ''bar'', <br> nums: [''1'', ''2''] <br> }'
            globals:
              type: array
              description: 'Description: An array of property names of the window object, which will be populated from values found in the query string. Any matching properties that already exist on the window object or its prototype chain will not be set. For example, a use of <code translate="No">query_string_to_window.globals</code> given the following in a player configuration: <br> <code translate="No">{ <br> "query_string_to_window": { <br> "globals": [ <br> "foo", <br> "nums", <br> "self" <br> ]}}</code> <br> and give the following query string: <br> <code translate="No">?foo=bar&nums=1&nums=2&self=not-allowed</code> <br> would yield the following window global object with the following properties added: <br> <code translate="No">window.foo; // ''bar'' <br> window.nums; // [''1'', ''2''] <br> // Because `self` already exists on the `window` object, it will not be set <br> // and a warning will be logged to the browser console. <br> window.self

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/brightcove/refs/heads/main/openapi/brightcove-player-embeds-api-openapi.yml