Brightcove Folders API

Operations for managing folders to organize your videos.

OpenAPI Specification

brightcove-folders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Brightcove Analytics API Reference Access Tokens Folders 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: Folders
  description: Operations for managing folders to organize your videos.
paths:
  /v1/accounts/{{account_id}}/folders:
    get:
      tags:
      - Folders
      summary: Get Folders
      description: 'Gets list of folders for the account '
      operationId: GetFolders
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    post:
      tags:
      - Folders
      summary: Create Folder
      description: Create a new folder for the account - **note** that there is a limit of 1000 folders per account
      operationId: CreateFolder
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        description: Create a new folder for the account
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Folder'
        required: true
      responses:
        '201':
          description: Folder created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
        '409':
          description: 'MAXIMUM_FOLDER_COUNT_REACHED: You have exceeded the maximum number of folders'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/create
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/accounts/{{account_id}}/folders/{{folder_id}}:
    get:
      tags:
      - Folders
      summary: Get Folder Information
      description: 'Gets information about a folder '
      operationId: GetFolderInformation
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/FolderId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    patch:
      tags:
      - Folders
      summary: Update Folder Name
      description: 'Update the folder name '
      operationId: UpdateFolderName
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: folder_id
        in: path
        description: the folder ID
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        description: Update the folder name
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Folder'
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/update
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    delete:
      tags:
      - Folders
      summary: Delete Folder
      description: 'Delete a folder '
      operationId: DeleteFolder
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: folder_id
        in: path
        description: the folder ID
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: name
        in: query
        description: name of the folder (must be unique in the account)
        required: true
        style: form
        explode: true
        schema:
          type: string
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '201':
          description: '201'
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/delete
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/accounts/{{account_id}}/folders/{{folder_id}}/videos:
    get:
      tags:
      - Folders
      summary: Get Videos in Folder
      description: 'Gets list of video objects in a folder '
      operationId: GetVideosInFolder
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: folder_id
        in: path
        description: the folder ID.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      - $ref: '#/components/parameters/VideoSort'
      responses:
        '200':
          description: Videos in the folder
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Video'
                description: Videos in the folder
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/read
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/accounts/{{account_id}}/folders/{{folder_id}}/videos/{{video_id}}:
    put:
      tags:
      - Folders
      summary: Add Video to Folder
      description: 'Add a video to a folder '
      operationId: AddVideoToFolder
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - $ref: '#/components/parameters/FolderId'
      - $ref: '#/components/parameters/VideoId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '204':
          description: NO_CONTENT
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/update
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    delete:
      tags:
      - Folders
      summary: Remove Video from Folder
      description: 'Remove a video from a folder '
      operationId: RemoveVideoFromFolder
      parameters:
      - $ref: '#/components/parameters/AccountId'
      - name: folder_id
        in: path
        description: the folder ID
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: video_id
        in: path
        description: the video ID
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '201':
          description: Video successfully removed from the folder
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
        '403':
          description: 'NOT_AVAILABLE: The resource you are requesting is temporarily unavailable'
        '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'
        '500':
          description: 'UNKNOWN: Issue in Brightcove system; try again later.

            TIMEOUT: Server likely too busy; try again later.'
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/video/update
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
components:
  schemas:
    Folder:
      properties:
        account_id:
          description: Video Cloud account id
          example: 57838016001
          readOnly: true
          type: string
        created_at:
          description: date/time folder created
          example: 2017-11-23 19:53:59.687000+00:00
          readOnly: true
          type: string
        id:
          description: system id for the folder
          example: 5a17275782aca45b631295f9
          readOnly: true
          type: string
        name:
          description: folder name
          example: birds
          type: string
        updated_at:
          description: date/time folder last modified
          example: 2017-11-23 20:06:24.537000+00:00
          readOnly: true
          type: string
        video_count:
          description: number of videos in the folder
          example: 5
          readOnly: true
          type: string
      title: Folder
      type: object
    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
    VideoVariants:
      description: Array of video variants
      type: array
      items:
      - $ref: '#/components/schemas/VideoVariant'
      - $ref: '#/components/schemas/VideoVariant2'
      - $ref: '#/components/schemas/VideoVariant3'
    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
    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
    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
    VideoVariant3:
      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: ja-JA
        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'
    VideoVariant:
      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: es-ES
        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'
    User:
      description: information about who created or modified a video, if available
      properties:
        email:
          description: the user's email address in Video Cloud
          type: string
        id:
          description: Video Cloud system id of the user
          type: string
        type:
          description: "The type of the updater, either:\n  - `user` a user in Studio\n  - `api-key` a user via the APIs\n  - `internal` a Brightcove system or user"
          enum:
          - user
          - api_key
          - internal
          type: string
      readOnly: true
      title: User
      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
          nullable: true
          type: string
        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
          nullable: true
          type: string
      title: schedule
      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'
    Sharing:
      description: map of the sharing properties for the video
      properties:
        by_external_acct:
          description: whether the video was shared from another account
          example: true
          readOnly: true
          type: boolean
        by_id:
          description: id of the account that shared the video; note that this field is populated only for the shared copy, not for the original video
          example: 57838016001
          readOnly: true
          type: string
        by_reference:
          description: whether the video is shared by reference
          example: true
          readOnly: true
          type: boolean
        source_id:
          description: id of the video in its original account; note that this field is populated only for the shared copy, not for the original video
          example: 239487239487
          readOnly: true
          type: string
        to_external_acct:
          description: whether the video is shared to another account
          example: true
          readOnly: true
          type: boolean
      readOnly: true
      title: sharing
      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"'
          nullable: true
          type: string
        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
          examp

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