Brightcove Playlists API

Operations for managing video playlists.

Operations 8

GET /v1/accounts/{{account_id}}/playlists Get Playlists #
POST /v1/accounts/{{account_id}}/playlists Create Playlist #
GET /v1/accounts/{{account_id}}/counts/playlists Get Playlist Count #
GET /v1/accounts/{{account_id}}/playlists/{{playlist_id}} Get Playlists by ID #
PATCH /v1/accounts/{{account_id}}/playlists/{{playlist_id}} Update Playlist #
DELETE /v1/accounts/{{account_id}}/playlists/{{playlist_id}} Delete Playlist #
GET /v1/accounts/{{account_id}}/playlists/{{playlist_id}}/videos Get Videos in Playlist #
GET /v1/accounts/{{account_id}}/counts/playlists/{{playlist_id}}/videos Get Video Count in Playlist #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brightcove-playlists-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

brightcove-playlists-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Brightcove CMS API Reference Playlists API
  description: 'Reference for the Brightcove CMS API, used to access and manage your media library. To test API requests, you can use our [API Testing Tools](/getting-started/concepts-testing-tools-brightcove-apis.html). For permissions needed for OAuth credentials, see [API Operations](/oauth/guides/api-operations-client-credentials-requests.html). For information on authenticating API requests, see the [OAuth Overview](/oauth/getting-started/overview-oauth-api-v4.html).


    For additional in-depth guides to features of the API, see the **[general documentation](/cms/index.html)**.


    **Base URL**: https://cms.api.brightcove.com'
  version: 1.0.0
  x-bc-access: public
servers:
- url: https://cms.api.brightcove.com
  variables: {}
tags:
- name: Playlists
  description: Operations for managing video playlists.
paths:
  /v1/accounts/{{account_id}}/playlists:
    get:
      tags:
      - Playlists
      summary: Get Playlists
      description: 'Gets a page of playlist objects for the account '
      operationId: GetPlaylists
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/SearchPlaylists'
      - $ref: '#/components/parameters/PlaylistSort'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Playlist'
        '400':
          description: '''INVALID_SORT: sort parameter specified and invalid field

            INVALID_SEARCH: search string invalid (may not have been URI-encoded)'''
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    post:
      tags:
      - Playlists
      summary: Create Playlist
      description: 'Creates a new playlist.


        **A maximum of 1000 videos can be added to a playlist** (both Manual and Smart). There is no limit to the number of playlists that can be created. The videos that are initially loaded into a playlist in the player is determined by the type of playlist.'
      operationId: CreatePlaylist
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        description: Creates a new playlist
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistInputFields'
        required: true
      responses:
        '201':
          description: Playlist created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
        '400':
          description: 'BAD_VALUE: The JSON could not be parsed '
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '409':
          description: 'REFERENCE_ID_IN_USE: The specified reference id is already in use '
        '422':
          description: 'ILLEGAL_FIELD: Spelling error or use of non-existent field '
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/create
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/accounts/{{account_id}}/counts/playlists:
    get:
      tags:
      - Playlists
      summary: Get Playlist Count
      description: 'Gets a count of playlists in the account for the account '
      operationId: GetPlaylistCount
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Search'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaylistCount'
        '400':
          description: '''INVALID_SORT: sort parameter specified and invalid field

            INVALID_SEARCH: search string invalid (may not have been URI-encoded)'''
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/accounts/{{account_id}}/playlists/{{playlist_id}}:
    get:
      tags:
      - Playlists
      summary: Get Playlists by ID
      description: 'Gets one or more playlist objects for the account '
      operationId: GetPlaylistById
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: playlist_id
        in: path
        description: Video Cloud playlist ID, or multiple playlist ids separated by commas.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
        '400':
          description: '''INVALID_SORT: sort parameter specified and invalid field

            INVALID_SEARCH: search string invalid (may not have been URI-encoded)'''
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    patch:
      tags:
      - Playlists
      summary: Update Playlist
      description: 'Updates a playlist for the account '
      operationId: UpdatePlaylist
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/PlaylistId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        description: Updates a playlist for the account
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaylistInputFields'
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Playlist'
        '400':
          description: 'BAD_VALUE: The JSON could not be parsed '
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '409':
          description: 'REFERENCE_ID_IN_USE: The specified reference id is already in use '
        '422':
          description: 'ILLEGAL_FIELD: Spelling error or use of non-existent field '
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/update
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    delete:
      tags:
      - Playlists
      summary: Delete Playlist
      description: 'Deletes a playlist '
      operationId: DeletePlaylists
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/PlaylistId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '204':
          description: NO_CONTENT
        '400':
          description: '''INVALID_SORT: sort parameter specified and invalid field

            INVALID_SEARCH: search string invalid (may not have been URI-encoded)'''
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/delete
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/accounts/{{account_id}}/playlists/{{playlist_id}}/videos:
    get:
      tags:
      - Playlists
      summary: Get Videos in Playlist
      description: 'Gets the video objects for videos in a playlist for the account.


        Note: To receive the `video_preview.sources`, include `include_video_preview=true` in the request query.'
      operationId: GetVideosInPlaylist
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/PlaylistId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/include_details'
      - $ref: '#/components/parameters/include_video_preview'
      - $ref: '#/components/parameters/Limit_Playlist_Videos'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Video'
        '400':
          description: '''INVALID_SORT: sort parameter specified and invalid field

            INVALID_SEARCH: search string invalid (may not have been URI-encoded)'''
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/accounts/{{account_id}}/counts/playlists/{{playlist_id}}/videos:
    get:
      tags:
      - Playlists
      summary: Get Video Count in Playlist
      description: 'Gets a count of the videos in a playlist for the account '
      operationId: GetVideoCountInPlaylist
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/PlaylistId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoCountInPlaylist'
        '400':
          description: '''INVALID_SORT: sort parameter specified and invalid field

            INVALID_SEARCH: search string invalid (may not have been URI-encoded)'''
        '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'
        '405':
          description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint'
        '429':
          description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/playlist/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
components:
  schemas:
    VideoVariants:
      description: Array of video variants
      type: array
      items:
      - $ref: '#/components/schemas/VideoVariant'
      - $ref: '#/components/schemas/VideoVariant2'
      - $ref: '#/components/schemas/VideoVariant3'
    VideoImages:
      description: map of image maps - the map name is in the form `label.language` where the label is one of `poster`, `thumbnail`, `portrait`, `square`, `wide` or `ultra-wide`, and the `language` is a language identifier such as 'en', 'de', or `ko`
      example:
        thumbnail:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/160x90/20s629ms/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/160x90/20s629ms/match/image.jpg
            height: 90
            width: 160
        poster:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/1280x720/20s629ms/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/1280x720/20s629ms/match/image.jpg
            height: 720
            width: 1280
        portrait.es:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/bac8717a-43db-4fa8-a6f0-189c80ee4c4e/800x1200/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/bac8717a-43db-4fa8-a6f0-189c80ee4c4e/800x1200/match/image.jpg
            height: 1200
            width: 800
        thumbnail.en:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/0ce2da4d-ca36-469b-9024-0273d79feeeb/292x108/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/0ce2da4d-ca36-469b-9024-0273d79feeeb/292x108/match/image.jpg
            height: 108
            width: 292
        poster.en:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/a7cb150d-c84a-48e0-9469-5b4ce80fba53/1920x1080/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/a7cb150d-c84a-48e0-9469-5b4ce80fba53/1920x1080/match/image.jpg
            height: 1080
            width: 1920
        square.de:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/22209955-e136-4f17-914c-e19ec4c58886/570x570/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/22209955-e136-4f17-914c-e19ec4c58886/570x570/match/image.jpg
            height: 570
            width: 570
        ultra-wide.hi:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/72fd489f-d978-44ba-8d04-1e33c7c36cef/3840x1646/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/72fd489f-d978-44ba-8d04-1e33c7c36cef/3840x1646/match/image.jpg
            height: 1646
            width: 3840
        wide.fr:
          src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/4405a5d5-8b9e-4c2b-be71-cf4e2c153e87/2560x1440/match/image.jpg
          sources:
          - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/4405a5d5-8b9e-4c2b-be71-cf4e2c153e87/2560x1440/match/image.jpg
            height: 1440
            width: 2560
      readOnly: true
      title: VideoImages
      type: object
    VideoVariant2:
      description: Object containing language-specific metadata for a video
      properties:
        language:
          type: string
          description: 'The language for this variant in the language-country code format (examples: en-US, es-ES) **Note that `language` is only included when you create a variant - you must NOT include it when updating the variant**'
          example: de-DE
        name:
          type: string
          description: The title of the video in this language
        description:
          type: string
          description: The video short description in this language
        long_description:
          type: string
          description: The video long description in this language
        custom_fields:
          type: object
          description: 'map of `fieldname: value` pairs, where values are for this language; values have a maximum length of 1024 single-byte characters. Note: be sure to use the **internal** name for the field, not the display name'
    Link:
      description: map of related link properties - can only be added on update, not creation
      properties:
        text:
          description: text for the link
          maxLength: 255
          type: string
        url:
          description: URL for the link
          maxLength: 255
          type: string
      title: link
      type: object
    PlaylistCount:
      example:
        count: 84
      properties:
        count:
          description: count of videos
          type: integer
      title: Get_Playlist_CountResponse
      type: object
    CuePoint:
      properties:
        force_stop:
          description: Whether playback should be stopped when the cuepoint is reached
          type: boolean
        metadata:
          description: optional metadata string (512 single-byte characters maximum)
          maxLength: 512
          type: string
        name:
          description: cue point name
          type: string
        time:
          description: time of the cue point in seconds
          example: 10.527
          type: number
        type:
          description: cue point type
          enum:
          - AD
          - DATA
          type: string
      required:
      - time
      - type
      title: cue_point
      type: object
    Playlist:
      properties:
        account_id:
          description: Video Cloud account id
          example: 57838016001
          readOnly: true
          type: string
        created_at:
          description: date/time created
          example: 2018-11-14 19:30:36.196000+00:00
          format: date-time
          readOnly: true
          type: string
        description:
          description: playlist description
          example: Sea bird playlist
          maxLength: 255
          type: string
        favorite:
          default: false
          description: whether playlist is in favorites list
          example: false
          type: boolean
        id:
          description: the playlist id
          example: 1403635561001
          readOnly: true
          type: string
        name:
          description: the playlist name
          example: Sea Birds
          maxLength: 255
          type: string
        reference_id:
          description: the playlist reference id (must be unique within the account)
          example: sea_birds_playlist
          type: string
        search:
          description: search string to retrieve the videos (smart playlists only)
          example: +tags:captions,training
          type: string
        state:
          description: Applies to EXPLICIT (manual) playlists only; `UPDATING` means the list is updating its video members and `READY` means that all videos have been added
          type: string
          enum:
          - READY
          - UPDATING
          readOnly: true
        type:
          description: 'the playlist type: EXPLICIT or smart playlist type'
          enum:
          - EXPLICIT
          - ACTIVATED_OLDEST_TO_NEWEST
          - ACTIVATED_NEWEST_TO_OLDEST
          - ALPHABETICAL
          - PLAYS_TOTAL
          - PLAYS_TRAILING_WEEK
          - START_DATE_OLDEST_TO_NEWEST
          - START_DATE_NEWEST_TO_OLDEST
          example: ACTIVATED_NEWEST_TO_OLDEST
          type: string
        updated_at:
          description: date/time last modified
          example: 2018-11-14 19:30:36.196000+00:00
          format: date-time
          readOnly: true
          type: string
        video_ids:
          description: array of video ids (EXPLICIT playlists only)
          example:
          - '4084164751001'
          - '1532562858001'
          - '734484322001'
          - '1532530235001'
          - '734462570001'
          - '734462569001'
          - '734451481001'
          - '734445537001'
          items:
            type: string
          type: array
      title: Playlist
      type: object
      example:
        id: '5716873476001'
        account_id: '57838016001'
        created_at: '2018-01-23T12:55:29.674Z'
        description: My new sea playlist
        favorite: false
        name: Sea Videos
        reference_id: null
        type: ACTIVATED_NEWEST_TO_OLDEST
        updated_at: '2018-01-23T12:55:29.677Z'
        limit: 20
        search: +tags:"birds"
    Geo:
      description: map of geo-filtering properties
      properties:
        countries:
          description: array of ISO 3166 list of 2-letter codes(https://www.iso.org/obp/ui/#home) (search for "country codes")
          example:
          - us
          - ca
          - fr
          items:
            type: string
          type: array
        exclude_countries:
          description: if true, country array is treated as a list of countries excluded from viewing
          type: boolean
        restricted:
          description: whether geo-restriction is enabled for this video
          type: boolean
      required:
      - countries
      - exclude_countries
      - restricted
      title: geo
      type: object
    Schedule:
      description: map of scheduling properties
      properties:
        ends_at:
          description: '''End date-time of availability in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format. Note that you can input a date-time stamp with a time zone, such as `2021-05-01T18:00:00.000+08`, but it will be converted to and stored as a UTC data-time stamp: `2021-05-01T10:00:00.000Z`'''
          example: 2020-05-20 20:41:07.689000+00:00
          type:
          - string
          - 'null'
        starts_at:
          description: '''Start date-time of availability in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format. Note that you can input a date-time stamp with a time zone, such as `2021-05-01T18:00:00.000+08`, but it will be converted to and stored as a UTC data-time stamp: `2021-05-01T10:00:00.000Z`'''
          example: 2019-05-20 20:41:07.689000+00:00
          type:
          - string
          - 'null'
      title: schedule
      type: object
    VideoPreviewSource:
      description: HLS manifest entry for animated preview
      properties:
        ext_x_version:
          description: HLS EXT-X-VERSION value
          example: '7'
          type: string
        src:
          description: URL to the preview HLS manifest
          example: https://manifest.prod.boltdns.net/.../preview.m3u8?...
          type: string
        type:
          description: MIME type
          example: application/x-mpegURL
          type: string
      title: VideoPreviewSource
      type: object
    Transcript:
      properties:
        id:
          description: System id for the text track
          readOnly: true
          type: string
        account_id:
          description: The account id
          readOnly: true
          type: string
        default:
          description: Whether the transcript is the default - note that if there are multi-language transcripts, there can be a default per language
          readOnly: true
          type: boolean
        label:
          description: label for the track
          type: string
        sources:
          description: sources for a client to retrieve the transcription
          type: array
          items:
            type: string
            description: URLs where the transcript can be retrieved - there will an http and https URL for each transcript
        src:
          description: URL for the transcription file
          type: string
        srclang:
          description: 2-letter or 4-letter language code, such as `es` or `es-MX`
          type: string
        status:
          description: Either `draft` (unavailable to viewers) or `published`
          type: string
          enum:
          - draft
          - published
      required:
      - src
      - srclang
      title: transcription
      type: object
    Video:
      description: Object containing metadata for a video
      properties:
        video_preview:
          $ref: '#/components/schemas/VideoPreview'
        ad_keys:
          description: string representing the ad key/value pairs assigned to the video. Key/value pairs are formatted as key=value and are separated by ampersands - can only be added on update, not creation
          example: ' "adKeys": "category=sports&live=true"'
          type:
          - string
          - 'null'
        clip_source_video_id:
          description: The ID of the source video that was clipped to produce this video or null if this video is not a clip of another video
          example: 4723947979
          readOnly: true
          type: string
        complete:
          description: 'whether the video has at least one rendition -Note: when you create a new video, the complete property is automatically set to false. As soon as one rendition exists for the video, the complete property will be automatically set to true. This does **not mean that all renditions are created and images and captions processed**. For the full status of ingestion, see [Dynamic Ingest API Notifications](/dynamic-ingest/general/notifications-dynamic-delivery-video-cloud.html)'
          example: true
          readOnly: true
          type: boolean
        created_at:
          description: when the video was created
          example: '2015-09-17T16:08:37.108Z'
          readOnly: true
          type: string
        created_by:
          $ref: '#/components/schemas/User'
        cue_points:
          description: array of cue points - can be added on creation or update
          items:
            $ref: '#/components/schemas/CuePoint'
          type: array
        custom_fields:
          additionalProperties:
            description: 'map of fieldname-value pairs; values have a maximum length of 1024 single-byte characters Note: be sure to use the internal name for the field, not the display name'
            type: string
          type: object
        delivery_type:
          description: "video delivery type:\n  - `remote`: a remote asset\n  - `dynamic_origin`: processed using the Dynamic Delivery ingest system\n  - `live_origin`: a live stream from Brightcove Live\n  - `unknown`: the delivery type could not be determined (may mean there are no playable renditions)"
          enum:
          - remote
          - dynamic_origin
          - live_origin
          - unknown
          example: dynamic_origin
          readOnly: true
          type: string
        description:
          description: video short description
          example: Herring gull on a wharf in Boston
          maxLength: 248
          type: string
        digital_master_id:
          description: asset id of the digital master
          example: 734462494001
          readOnly: true
          type: string
        drm_disabled:
          description: if true, the video is not DRM-packaged - applies to accounts that are enabled for DRM only
          example: true
          type: boolean
        duration:
          description: video duration in milliseconds
          example: 18160
          readOnly: true
          type: integer
        economics:
          default: AD_SUPPORTED
          description: whether video is `AD_SUPPORTED`
          enum:
          - AD_SUPPORTED
          - FREE
          example: AD_SUPPORTED
          type: string
        folder_id:
          description: id of the folder that contains the video
          example: 560039e5e4b0e69e4b01cacd
          readOnly: true
          type: string
        forensic_watermarking:
          description: 'Indicates whether the video has forensic watermarking


            possible values:


            - `ACTIVE` - the video was transcoded with forensic watermarking and should be used during delivery

            - `UNAVAILABLE` - the video was not transcoded with forensic watermarking support and can’t be delivered using it

            - `null` - the value is for forensic watermarking is not available for the account; in this case the field is not returned in API responses


            if the video was not ingested with forensic watermarking, this field will be set to `UNAVAILABLE` automatically; if the video was ingested or retranscoded with forensic watermarking, this field will be set t

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