Brightcove Live Jobs API

Operations for creating live jobs, listing live jobs, getting job details, and canceling live jobs. There are also operations for activating and deactivating SEP jobs, scheduling activation and deactivation of SEP jobs, and for inserting cuepoints or ID3 timed metadata. Notes: -Live outputs are VBR. -The average video bitrate should be around the target value, but there can be brief periods when the measured video bitrate exceeds that target.

OpenAPI Specification

brightcove-live-jobs-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Brightcove Analytics API Reference Access Tokens Live Jobs 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: Live Jobs
  description: 'Operations for creating live jobs, listing live jobs, getting job details, and canceling live jobs. There are also operations for activating and deactivating SEP jobs, scheduling activation and deactivation of SEP jobs, and for inserting cuepoints or ID3 timed metadata.


    Notes:


    -Live outputs are VBR.


    -The average video bitrate should be around the target value, but there can be brief periods when the measured video bitrate exceeds that target.'
paths:
  /jobs:
    post:
      tags:
      - Live Jobs
      summary: Create a Live Job
      description: Create a live streaming job
      operationId: CreateALiveJob
      parameters:
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      requestBody:
        description: Create a live stream
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLiveJobRequestBody'
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiveJob'
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    get:
      tags:
      - Live Jobs
      summary: List Live Jobs
      description: '''List live jobs - for additional useful information on the search filters, see [Getting a List of Live or VOD

        Jobs](/live-api/guides/getting-list-live-or-vod-jobs.html).''


        **Note: The Live API does not return the updated CMS information, even if the video object is updated. For example, if you update the Live Event title, the change will not be reflected in the <code translate="no">videocloud</code> section in the API response, and the Live API will return the original Live Event title.**

        **Note: The <code translate="no">_worker_bytes_rate</code> fields provide an instantaneous measurement of input/output bytes sampled over 1s, and the <code translate="no">_worker_bytes</code> fields provide a cumulative sum.**'
      operationId: ListLiveJobs
      parameters:
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      - $ref: '#/components/parameters/start_token'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/sort'
      - $ref: '#/components/parameters/sort_dir'
      - $ref: '#/components/parameters/user_id'
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/created_at'
      - $ref: '#/components/parameters/modified_at'
      - $ref: '#/components/parameters/ad_insertion'
      - $ref: '#/components/parameters/static'
      - $ref: '#/components/parameters/state'
      - $ref: '#/components/parameters/ssai_state'
      - $ref: '#/components/parameters/region'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListLiveJobsResponse'
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}:
    get:
      tags:
      - Live Jobs
      summary: Get Live Job Details
      description: 'Get Live Job Details.



        **Note: The Live API does not return the updated CMS information, even if the video object is updated. For example, if you update the Live Event title, the change will not be reflected in the <code translate="no">videocloud</code> section in the API response, and the Live API will return the original Live Event title.**'
      operationId: GetLiveJobDetails
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/playback-token:
    post:
      tags:
      - Live Jobs
      summary: Create Playback Token
      description: 'Live jobs created via the Live module in Studio (or by specifying `videocloud.video` when creating a job directly through the API) automatically create a special Video Cloud video that, when used in a Brightcove player, makes use of the `ad_config_id` property to select the specific source desired (i.e. SSAI source, DVR/no DVR, BYOCDN). Jobs which have SSAI enabled must always provide an `ad_config_id` in the player, even if the source desired is non-SSAI (this prevents an end user from omitting the `ad_config_id` and receiving a clear stream). **This applies only to live Video Cloud videos created via the Live module or Live API - manually created Video Cloud remote assets have no such restriction.**


        The request returns a generated `ad_config_id`.


        This behavior is handled automatically when you publish a live video from the Live module publishing screen, but may be useful if you have a custom workflow.'
      operationId: CreatePlaybackToken
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      requestBody:
        description: Create a Playback Token
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePlaybackTokenRequestBody'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlaybackToken'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/activate:
    put:
      tags:
      - Live Jobs
      summary: Activate SEP Stream
      description: Activate SEP (static entry point) Stream
      operationId: ActivateSepStream
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivateSepStreamResponse'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/deactivate:
    put:
      tags:
      - Live Jobs
      summary: Deactivate SEP Stream
      description: 'Deactivate SEP (static entry point) Stream '
      operationId: DeactivateSepStream
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeactivateSepStreamResponse'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/cuepoint:
    post:
      tags:
      - Live Jobs
      summary: Manual Cue Point Insertion
      description: Inserts a manual Cue-Out with a duration to the Live ingest point.
      operationId: ManualAdCuePointInsertion
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      requestBody:
        description: Inserts a manual Cue-Out with a duration to the Live ingest point.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualAdCuePointInsertionbody'
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualAdCuePointInsertionResponse'
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: DB getItem, no results found - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/cuepointdata:
    post:
      tags:
      - Live Jobs
      summary: Add or update Ad Metadata
      description: Allows  content metadata to be pushed and constantly updated out-of-band from a customer live stream..
      operationId: AddAdMetadata
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      requestBody:
        description: Contains a set of key/value pairs for ad requests.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAdMetadatabody'
        required: true
      responses:
        '200':
          description: '200'
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: DB getItem, no results found - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    delete:
      tags:
      - Live Jobs
      summary: Delete Ad Metadata
      description: Deletes ad metadata from a customer live stream..
      operationId: DeleteAdMetadata
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '204':
          description: 204 NO CONTENT
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: DB getItem, no results found - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/id3tag:
    post:
      tags:
      - Live Jobs
      summary: Insert ID3 Timed Metadata
      description: 'Inserts an ID3 timed metadata tag for an ongoing job. Note that: 1) If using timecode property, the job only stores the most recent request for insertion; 2) If using timecode property, the encoder must be sending SMPTE-formatted (HH:MM:SS:FF) timecode stored in the tc property via OnFI'
      operationId: InsertId3TimedMetadata
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      requestBody:
        description: "'Inserts an ID3 timed metadata tag for an ongoing job. Note that:\n  1. If using timecode property, the job only stores the most recent request for insertion\n  2. If using timecode property, the encoder must be sending SMPTE-formatted (HH:MM:SS:FF) timecode stored in the tc property via OnFI'"
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InsertId3TimedMetadatabody'
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsertId3TimedMetadataResponse'
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/cancel:
    put:
      tags:
      - Live Jobs
      summary: Cancel Live Job
      description: Cancel a live stream. When a live job is cancelled, it is ended, and any unprocessed VOD jobs associated with the live job will **not** be processed.
      operationId: CancelLiveJob
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelLiveJob'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /jobs/{job_id}/stop:
    put:
      tags:
      - Live Jobs
      summary: Stop Live Job
      description: 'Stop a live job. When a live job is stopped (as opposed to cancelled), the live stream will stop, but any VOD jobs associated with the live job **will** continue to process. **Warning: do *NOT* use this request to stop an SEP job - that is not supported and will put the SEP job into a state where it cannot be deactivated and must be cancelled. Use [Deactivate SEP Job](##operation/DeactivateSepStream) instead.**'
      operationId: StopLiveJob
      parameters:
      - $ref: '#/components/parameters/JobId'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StopLiveJob'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
components:
  parameters:
    created_at:
      name: created_at
      in: query
      description: Filter results by Unix time of job creation (in milliseconds)
      style: form
      explode: true
      schema:
        type: integer
    modified_at:
      name: modified_at
      in: query
      description: Filter results by Unix time of job last modified (in milliseconds)
      style: form
      explode: true
      schema:
        type: integer
    sort:
      name: sort
      in: query
      description: Attribute to sort jobs by (`created_at` | `modified_at`, default is `created_at`)
      style: form
      explode: true
      schema:
        type: string
        enum:
        - created_at
        - modified_at
        default: created_at
    JobId:
      name: job_id
      in: path
      description: Live job ID
      required: true
      style: simple
      explode: false
      schema:
        type: string
    ssai_state:
      name: ssai_state
      in: query
      description: Filter results by one or more SSAI states
      style: form
      explode: true
      schema:
        oneOf:
        - type: string
          description: SSAI job state
          enum:
          - none
          - ready
          - waiting_input
          - start_transcoding
          - transcoding
          - error
        - type: array
          items:
            type: string
            description: SSAI job state
            enum:
            - none
            - ready
            - waiting_input
            - start_transcoding
            - transcoding
            - error
    start_token:
      name: start_token
      in: query
      description: Next token from previous page; do not specify when fetching first page
      style: form
      explode: true
      schema:
        type: string
    region:
      name: region
      in: query
      description: Filter results by one or more regions
      style: form
      explode: true
      schema:
        oneOf:
        - type: string
          description: region
          enum:
          - us-west-2
          - us-east-1
          - ap-southeast-2
          - ap-northeast-1
          - ap-southeast-1
          - eu-central-1
          - eu-west-1
          - sa-east-1
        - type: array
          items:
            type: string
            description: region
            enum:
            - us-west-2
            - us-east-1
            - ap-southeast-2
            - ap-northeast-1
            - ap-southeast-1
            - eu-central-1
            - eu-west-1
            - sa-east-1
    page_size:
      name: page_size
      in: query
      description: Max number of items to return in one request (1-1000, default is 10)
      style: form
      explode: true
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 10
    account_id:
      name: account_id
      in: query
      description: Filter results by particular account, or specify ‘*’ to search all accounts.  Default value is account API key belongs to
      style: form
      explode: true
      schema:
        type: string
    XAPIKEY:
      name: X-API-KEY
      in: header
      description: 'X-API-KEY: {Your_Live_API_Key}'
      required: true
      style: simple
      explode: false
      schema:
        type: string
    ad_insertion:
      name: ad_insertion
      in: query
      description: Filter results by is SSAI enabled
      style: form
      explode: true
      schema:
        type: boolean
    sort_dir:
      name: sort_dir
      in: query
      description: Sort direction (default is asc):`asc` - ascending; `desc` - descending
      style: form
      explode: true
      schema:
        type: string
        enum:
        - asc
        - desc
        default: asc
    ContentType:
      name: Content-Type
      in: header
      description: 'Content-Type: application/json'
      required: true
      style: simple
      explode: false
      schema:
        type: string
        default: application/json
      example: application/json
    user_id:
      name: user_id
      in: query
      description: Filter results by one or more user IDs
      style: form
      explode: true
      schema:
        oneOf:
        - type: string
          description: User id
        - type: array
          items:
            type: string
            description: User id
    state:
      name: state
      in: query
      description: Filter results by one or more job states
      style: form
      explode: true
      schema:
        oneOf:
        - type: string
          description: Job state
          enum:
          - error
          - standby
          - waiting
          - processing
          - disconnected
          - cancelling
          - finishing
          - cancelled
          - finished
          - failed
        - type: array
          items:
            type: string
            description: Job state
            enum:
            - error
            - standby
            - waiting
            - processing
            - disconnected
            - cancelling
            - finishing
            - cancelled
            - finished
            - failed
    static:
      name: static
      in: query
      description: Filter results by has static endpoint
      style: form
      explode: true
      schema:
        type: boolean
  schemas:
    CreateLiveJobRequestBody.outputs:
      properties:
        ad_audio_loudness_level:
          description: Adjust the loudness level of the audio. This is measured in LUFS and specified in dB. This is useful to set the output loudness level to conform to a standard (-23dB for EBU R.128) The recommended setting is -23.
          maximum: 60
          minimum: -60
          type: number
        audio_bitrate:
          default: 192
          description: An output bitrate setting for the audio track, in Kbps
          maximum: 1024
          minimum: 16
          type: number
        audio_codec:
          default: aac
          description: 'The output audio codec to use. Note: Only `aac` is supported.'
          enum:
          - aac
          type: string
        color_full_width:
          description: "Specifying `color_full_width`as `true` will force a color range conversion of input video file to \"full\", if it is \"limited\". By default, the encoder will not try to change the range.\n\nNote:\n  - `color_full_width` cannot be used with \"copy_video\": true\n  - This option conflicts with video transmuxing"
          type: boolean
        copy_audio:
          description: Specifying copy_audio will take the audio track from the input video file and transmux it into the resulting output file.
          type: boolean
        copy_video:
          description: Specifying copy_video will take the video track from the input video file and transmux it into the resulting output file.
          type: boolean
        credentials:
          description: The name for credentials with private and public keys can be stored with Brightcove to avoid passing plain text on API requests. This is required if the S3 or FTP origins are restricted. If credentials are not provided, it will be assumed that the origin restrictions are set to public or credentials are passed along with the URL.
          type: string
        drm:
          type: object
          description: DRM settings to be applied to the output. **Note that you can also apply DRM at the job level to apply to all outputs.** Also note that if you need something other than the default DRM configuration, contact Support for assistance.
          properties:
            modes:
              type: array
              description: The kinds of DRM to apply - currently Widevine and FairPlay with HLS are supported. Using `all` will apply all types available
              items:
                type: string
                enum:
                - all
                - fairplay
                - widevine
            token_expires_in:
              type: integer
              description: Amount of time in seconds before the token expires
              default: 43200
              maximum: 31622400
        h264_profile:
          description: 'H.264 has three commonly-used profiles: Baseline (lowest), Main, and High. Lower levels are easier to decode, but higher levels offer better compression. For the best compression quality, choose High. For playback on low-CPU machines or many mobile devices, choose `baseline`.'
          enum:
          - baseline
          - main
          - high
          type: string
        height:
          default: 480
          description: Video frame height. If no `width` or `height` is supplied, the source dimensions are used. If either `width` or `height` is supplied, the other dimension will be calculated to maintain the aspect ratio of the source.
          type: integer
        width:
          default: 640
          description: Video frame width. If no `width` or `height` is supplied, the source dimensions are used. If either `width` or `height` is supplied, the other dimension will be calculated to maintain the aspect ratio of the source.
          type: integer
        keyframe_interval:
          description: The maximum number of frames between each keyframe. If you set a low keyframe_interval it will increase the size / decrease the quality of your output file, but it will allow more precise scrubbing in most players. It’s recommended to have at least one keyframe per segment. If keyframe_interval is not provided, keyframes will follow the input GOP structure.
          maximum: 600
          minimum: 1
          type: integer
        label:
          description: Label for the live or VOD asset. Each label **must be unique** for the job.
          type: string
        low_latency:
          description: 'If true, enables low latency for this output. **Note: low latency must be enabled for the account by support.**'
          type: boolean
        playlist_label:
          type: string
          description: Only applicable for instant mode VODs. Indicates which playlist to use to create a VOD output (from the live job). Only necessary if custom playlists were defined at live job creation.
        mode:
          type: string
          description: Exped

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