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.

Operations 12

POST /jobs Create a Live Job #
GET /jobs List Live Jobs #
GET /jobs/{job_id} Get Live Job Details #
POST /jobs/{job_id}/playback-token Create Playback Token #
PUT /jobs/{job_id}/activate Activate SEP Stream #
PUT /jobs/{job_id}/deactivate Deactivate SEP Stream #
POST /jobs/{job_id}/cuepoint Manual Cue Point Insertion #
POST /jobs/{job_id}/cuepointdata Add or update Ad Metadata #
DELETE /jobs/{job_id}/cuepointdata Delete Ad Metadata #
POST /jobs/{job_id}/id3tag Insert ID3 Timed Metadata #
PUT /jobs/{job_id}/cancel Cancel Live Job #
PUT /jobs/{job_id}/stop Stop Live Job #

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-live-jobs-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-live-jobs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Live API Reference Live Jobs API
  description: 'Reference for the Brightcove Live API, used to create and manage live streaming events.


    For additional in-depth guides to features of the API, see the **[Support Site](/live-api/index.html)**.


    **Base URL**: https://api.bcovlive.io/v1'
  version: 1.0.0
servers:
- url: https://api.bcovlive.io/v1
  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:
  schemas:
    Job.outputMediaFiles:
      properties:
        audio_bitrate_in_kbps:
          description: Audio bitrate of the output media file
          type: number
        audio_codec:
          description: Audio codec of the output media file
          type: string
        audio_sample_rate:
          description: Audio sample rate of the output media file
          type: number
        audio_tracks:
          description: The number of audio tracks
          type: number
        channels:
          description: The number of audio channels
          type: number
        created_at:
          description: ISO 8601 date-time string representing when the output file was created
          type: string
        duration_in_ms:
          description: ISO 8601 date-time string representing when the output file was created
          type: number
        dvr_filename:
          description: File name for the DVR playlist manifest
          type: string
        error_class:
          description: Type of error thrown
          type: string
        error_message:
          description: Error message thrown
          type: string
        file_size_bytes:
          description: File size
          type: number
        filename:
          description: File name for the playlist manifest
          type: string
        finished_at:
          description: ISO 8601 date-time string representing when the output file was finished
          type: string
        format:
          description: Format of the output file
          type: string
        frame_rate:
          description: Frame rate of the output file
          type: number
        height:
          description: Frame height of the output file
          type: number
        id:
          description: System id of the output file
          type: string
        keyframe_interval:
          description: Keyframe interval for the output media file
          format: int32
          type: integer
        keyframe_interval_follow_source:
          description: Whether keyframe rate for the output matches the source
          type: boolean
        live_stream:
          description: Whether the output is a live stream
          type: boolean
        md5_checksum:
          description: Checksum for the output file
          type: string
        playback_url:
          description: URL for the output file
          type: string
        playback_url_dvr:
          description: Live DVR url for live stream output
          type: string
        playback_url_vod:
          description: URL for VOD output
          type: string
        playlist_type:
          description: Playlist type for playlist output
          type: string
        state:
          description: Current state of output file processing
          type: string
        total_bitrate_in_kbps:
          description: Total bitrate of the output media file
          type: number
        type:
          description: Will be playlist for playlist output
          type: string
        updated_at:
          description: ISO 8601 date-time string representing when the output file was last modified
          type: string
        video_bitrate_in_kbps:
          description: Video bitrate of the output media file
          type: number
        video_codec:
          description: Video codec of the output media file
          type: string
        width:
          description: Frame width of the output media file
          type: number
      required:
      - audio_bitrate_in_kbps
      - audio_codec
      - audio_sample_rate
      - audio_tracks
      - channels
      - duration_in_ms
      - file_size_bytes
      - format
      - frame_rate
      - height
      - video_bitrate_in_kbps
      - video_codec
      - width
      - total_bitrate_in_kbps
      - keyframe_interval_follow_source
      - live_stream
      - type
      - filename
      - dvr_filename
      title: job.output_media_files
      type: object
    CreateVodClipbody.outputs.videocloud.video.schedule:
      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
          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'''
          type: string
      required:
      - ends_at
      - starts_at
      title: Create_VOD_ClipBody.outputs.videocloud.video.schedule
      type: object
      description: map of scheduling properties
    CreateLiveJobRequestBody.addCdns:
      properties:
        label:
          description: A label to identify the CDN.
          type: string
        prepend:
          description: CDN hostname to be prepended to addresses
          type: string
        protocol:
          description: Protocol to use for the stream delivery
          enum:
          - http
          - https
          type: string
        token_auth:
          $ref: '#/components/schemas/CreateLiveJobRequestBody.addCdns.tokenAuth'
        vendor:
          description: CDN vendor such as akamai
          type: string
      required:
      - label
      - prepend
      - protocol
      title: Create_Live_Job_Request_Body.add_cdns
      type: object
    CreateLiveJobRequestBody.addCdns.tokenAuth.media:
      description: Object containing tokenization properties
      properties:
        end_time:
          description: The time to end token auth, epoch time in seconds
          format: int32
          type: integer
        start_time:
          default: now
          description: The time to apply token auth - &quot;now&quot; or epoch time in seconds
          format: int32
          oneOf:
          - type: integer
          - enum:
            - now
            type: string
        ttl:
          description: The time to live in seconds - either `end_time` or `ttl` is required
          format: int32
          type: integer
      title: Create_Live_Job_Request_Body.add_cdns.token_auth.media
      type: object
    CancelLiveJob:
      properties:
        id:
          description: The job id for the stream that was cancelled. No unprocessed VOD jobs associated with the live job will be processed.
          type: string
          readOnly: true
      title: Cancel_Live_Job_Response
      type: object
    Id3Tag:
      properties:
        tag_name:
          description: The ID3 tag name
          type: string
        tag_value:
          description: The ID3 tag value
          type: string
      required:
      - tag_name
      - tag_value
      title: id3_tag
      type: object
    ManualAdCuePointInsertionbody:
      properties:
        ad_server_data:
          description: a set of any variables (key/value pairs) that should be passed to the adServer
          type: object
        cancel:
          description: When `true`, cuepoint specified by `cuepoint_id` will be canceled. If an ad break is already in progress, a crash-out will occur, returning to the main content.
          type: boolean
          default: false
        cuepoint_id:
          description: ID to use when creating cuepoint. If `cancel` is `true`, then this field is required and is the ID of cuepoint to cancel.
          type: string
        duration:
          description: An integer value to indicate the length of the ad break in seconds
          type: number
        timecode:
          description: "'When to insert the cuepoint in SMPTE HH:MM:SS:FF format from the stream start (FF = frames); if omitted, the cuepoint will be inserted immediately. Note:\n  1. If you use the timecode property, the job only only stores the most recent request for insertion\n  2. If you use the timecode property, the encoder must be sending SMPTE-formatted (HH:MM:SS:FF) timecode stored in the `tc` property via `OnFI`\n  3. Software encoders such as Wirecast and OBS do not support the sending timecode via `OnFI` packets in the RTMP stream\n  4. Elemental hardware encoders do support the sending timecode via `OnFI` packets in the RTMP stream'"
          type: string
          example:
            ad_server_data:
              subject: wildlife
            duration: 30
            timecode: 09:23:18:05
      required:
      - duration
      title: Manual_Ad_Cue_Point_InsertionBody
      type: object
    CreateLiveJobRequestBody.videocloud:
      properties:
        account_id:
          description: The Video Cloud Account ID the video for the remote asset live stream should be created in. Only required if the account ID is not the default configured in your Live account. If set, you must also set the `videocloud.credentials` property.
          type: number
        credentials:
          description: Credentials to use for Video Cloud authentication. Only required if you set `videocloud.account_id`.
          type: string
        live_to_vod:
          type: boolean
          default: false
          description: If set to `true`, a full VOD version of the live event will be created after the event is complete. Requires that there is a Video Cloud account associated with the Live account, *and* the `videocloud.video` property is set.
        mode:
          type: string
          description: Expedite clip publishing by leveraging existing live renditions and segment boundaries
          enum:
          - instant
        video:
          $ref: '#/components/schemas/CreateLiveJobRequestBody.videocloud.video'
      required:
      - video
      title: Create_Live_Job_Request_Body.videocloud
      type: object
      description: Video Cloud customers have the option to create a video to use for the live stream. The `videocloud` object in the `job` settings is used for this purpose. If you want to define VOD clips to send to Video Cloud, use the `videocloud` object in `outputs`.
    CreateLiveJobRequestBody.addCdns.tokenAuth:
      description: 'Token authentication details


        **Note: If you don''t have your secret key for Akamai, or need to have a new one, contact your Customer Success Manager or Brightcove Support.**'
      properties:
        auth_type:
          description: Token authentication type - currently, the only supported value is `Akamai2.0`
          type: string
        key:
          description: Your Akamai token auth password
          type: string
        media:
          $ref: '#/components/schemas/CreateLiveJobRequestBody.addCdns.tokenAuth.media'
        token_name:
      

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