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 API Testing Tools.\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 videocloud section in the API response, and the Live API will return the original Live Event title.** **Note: The _worker_bytes_rate fields provide an instantaneous measurement of input/output bytes sampled over 1s, and the _worker_bytes 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 videocloud 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: Expedite VOD publishing by leveraging existing live renditions and segment boundaries enum: - instant live_stream: description: For jobs, setting live_stream to true indicates the output is a live rendition. If live_stream is false, or is not set, the output will be treated as a VOD output. type: boolean notifications: description: 'Array of notification destination objects or strings - notifications defined here are for job-level events. A notification will be sent to the destination when selected event occurs. You can use a simple string with a url: "https://log:pass@httpbin.org/post", or you can use an object. See [Events](/live-api/guides/live-api-notifications.html#Events) for an explanation of the events reported in `state_changed` notifications.
Retry strategy: In the event of a failed request to send a notification, the default retry strategy is to retry 50 times with an exponential delay between attempts:
`max_retry_times = 50`
`delay_delta_s = 5`
`next_retry = now_s + retry_count * delay_delta_s`' items: oneOf: - type: string - properties: event: description: The type of event to send notifications for enum: - state_changed - first_segment_uploaded - output_finished type: string type: object type: array remove_ads: description: For VOD, remove content processed during the duration of cue points received while streaming. type: boolean default: false rendition_label: description: Indicates what rendition to use to create a VOD output (from the live job) or which renditions to use. By default, the system uses any transmuxed rendition or the highest resolution output if there is no transmuxed output. type: string segment_seconds: description: Sets the maximum duration of each segment in a segmented output. maximum: 20 minimum: 4 type: number skip_audio: description: Specifying skip_audio removes the audio track. type: boolean skip_video: description: Specifying skip_video removes the video track. type: boolean streams: description: '''When creating a playlist, the streams field is used to define which output renditions (by label) should be included in the manifest. Example format [{"source": "1080p"}, {"source": "720p"}].''' type: object type: description: The only type supported is a playlist. This is used for generating multiple master playlists with different renditions in the HLS manifest with the defined stream labels. enum: - playlist type: string url: description: For VOD, `url` is mandatory (**unless** the destination is `videocloud`, in which case you dod **not** include the `url`) and sets the destination of the final asset destination. For access restricted origins, the credentials a can be passed along with the URL or stored within the Brightcove system. For Live, this is reserved for future use. type: string video_bitrate: description: target video bitrate in kbps maximum: 20000 minimum: 64 type: integer video_codec: description: 'The output video codec. Note: Only `h264` is supported.' enum: - h264 type: string videocloud: $ref: '#/components/schemas/CreateLiveJob.outputs.videocloud' required: - label - live_stream - video_bitrate - segment_seconds title: Create_Live_Job_Request_Body.outputs type: object CuePoint: properties: accuracy: description: The cuepoint insertion accuracy - may be segment or frame type: string duration: description: The cuepoint duration in seconds type: number id: description: The cuepoint id type: string inserted_at: description: Time when the cue point was inserted in the stream type: string required: - id - duration - accuracy - inserted_at title: cue_point type: object CreatePlaybackTokenRequestBody: title: Create Playback Token Request Body description: Create Playback Token Request Body type: object properties: dvr: type: boolean description: whether DVR playback is required default: false application_id: type: string description: The application id for an SSAI job playback_added_cdn: type: string description: The label for the BYOCDN if you are using one playlist: type: string description: The label given to an output of "type" "playlist" 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`. CreateLiveJob.outputs.videocloud: properties: account_id: description: The Video Cloud Account ID the clip should be ingested to. Only required if using Video Cloud Account ID other than the default configured in your Live account. If set, you must also set the `credentials` property on the output. type: string ingest: $ref: '#/components/schemas/CreateVodClipbody.outputs.videocloud.ingest' video: $ref: '#/components/schemas/CreateVodClipbody.outputs.videocloud.video' required: - video - ingest title: Create_VOD_ClipBody.outputs.videocloud description: An object containing inputs for Video Cloud ingestion type: object Job.inputMediaFile: properties: audio_bitrate_in_kbps: description: Audio bitrate of the input media file type: number audio_codec: description: Audio codec of the input media file type: string audio_sample_rate: description: Audio sample rate of the input 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 input file was created type: string duration_in_ms: description: 'duration_in_ms. **Note:** Please note the value of this parameter represents the duration of the Live FEED. Still, when the live job finishes without processing, it means there''s no Live FEED delivered or processed, and then the value for this parameter gets to be EPOC time when the live job was finished.' type: number 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 finished_at: description: ISO 8601 date-time string representing when the input file was finished type: string format: description: Format of the input file type: string frame_rate: description: Frame rate of the input file type: number height: description: Frame height of the input file type: number id: description: System id of the input file type: string md5_checksum: description: Checksum for the input file type: string state: description: Current state of input file processing type: string total_bitrate_in_kbps: description: Total bitrate of the input media file type: number updated_at: description: ISO 8601 date-time string representing when the input file was last modified type: string url: description: URL for the input media file type: string video_bitrate_in_kbps: description: Video bitrate of the input media file type: number video_codec: description: Video codec of the input media file type: string width: description: Frame width of the input media file type: number title: job.input_media_file type: object description: Object containing properties for the input media file. *Note that some fields under the media file object are null. These fields were ported from the old Zencoder and are not relevant. CreateVodClipbody.outputs.videocloud.ingest: properties: callbacks: description: An array of URLs that notifications for the ingest job should be sent to items: type: string type: array capture-images: description: '''Whether poster and thumbnail should be captured during transcoding; defaults to `true` if the the profile has image renditions, `false` if it does not - see [Images and the Dynamic Ingest API](https://apis.support.brightcove.com/dynamic-ingest/ingest-guides/images-and-dynamic-ingest-api.html) for more information''' example: true type: boolean profile: description: The ingest profile to use - we recommend that you do **not** include this field and use the account default profile instead type: string title: Create_VOD_ClipBody.outputs.videocloud.ingest description: An object containing inputs for Video Cloud video ingestion - see the [Dynamic Ingest Reference](https://apis.support.brightcove.com/dynamic-ingest/references/reference.html#operation/AccountsVideosIngestRequestsByAccountIdAndVideoIdPost) - do not include the master field, as that information will be provided by the Live API. If no ingest profile is specified, the account default profile will be used. type: object CreateVodClipbody.outputs.videocloud.video: properties: cue_points: description: Array of cuepoint objects items: $ref: '#/components/schemas/CreateVodClipbody.outputs.videocloud.video.cuePoint' type: array custom_fields: description: An object whose properties are `field_name`:`value` pairs - be sure to the *internal* name of the field type: object description: description: Video short description type: string drm_disabled: description: Use to disable DRM packaging for this video - applies only to DRM-enabled accounts type: boolean economics: type: string description: whether the video supports ads enum: - AD_SUPPORTED - FREE geo: $ref: '#/components/schemas/CreateVodClipbody.outputs.videocloud.video.geo' long_description: description: A longer description of the video type: string name: description: Title of the video clip type: string reference_id: description: Reference id for the clip - must be unique within the account type: string schedule: $ref: '#/components/schemas/CreateVodClipbody.outputs.videocloud.video.schedule' state: type: string description: Whether the video should be active or inactive example: ACTIVE enum: - ACTIVE - INACTIVE tags: description: Array of tags for the video - note that tags are string that may not contain a comma type: object required: - name title: Create_VOD_ClipBody.outputs.videocloud.video description: '''An object containing inputs for Video Cloud video object creation - see the [CMS API Reference](https://apis.support.brightcove.com/cms/references/reference.html#operation/CreateVideo)''' type: object Notification: properties: credentials: description: Credentials for the destination, if required. type: string event: description: Event type to send notifications for. It’s recommended to set events on the job and not individual rendition outputs since renditions will finish simultaneously. type: string enum: - state_changed - first_segment_uploaded - output_finished - rtmp_output_state_changed url: description: Destination for the notification. type: string required: - url - event title: notification type: object CreateVodClipbody.outputs.videocloud.video.geo: properties: countries: description: array of ISO 3166 list of [2-letter codes](https://www.iso.org/obp/ui/#home) (search for "country codes") type: string 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: Create_VOD_ClipBody.outputs.videocloud.video.geo type: object description: map of geo-filtering properties 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 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.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_Live_Job_Request_Body.videocloud.video.schedule type: object description: map of scheduling properties CreateLiveJobRequestBody.encryption: properties: check_playback_rights: description: Playback auth JWT will be required when requesting license. Uses playback rights id associated with video or JWT to enforce restrictions. If false playback restrictions will be bypassed and the encrypted stream will play back as usual. type: boolean default: false external_url: description: The URL for the external encryption key - this field is required if you specify type as external, and the external key must match the `key` value type: string key: description: 'The encryption key - either a `key`, `passphrase`, or `key_rotation` is required; if the type is `external`, `key` is required. The key must be 32 hexadecimal characters. For best results, generate a key by going to [a key generator](https://www.allkeysgenerator.com/Random/Security-Encryption-Key-Generator.aspx) and selecting the `128-bit` and `Hex` options.' type: string maxLength: 32 minLength: 32 key_rotation: default: false description: Whether to use key rotation - either a `key`, `passphrase`, or `key_rotation` is required type: boolean method: description: The encryption method to use. enum: - aes-128 type: string passphrase: description: The encryption key - either a `key`, `passphrase`, or `key_rotation` is required type: string rotate_every: default: 10 description: Interval for key rotation in video segments type: integer type: description: The encryption type, depending on whether an internal or external key server will be used. enum: - internal - external type: string required: - method - type title: Create_Live_Job_Request_Body.encryption description: Encryption to apply to the stream. type: object Job.stream: properties: created_at: description: ISO 8601 date-time string representing when the stream was created type: string destination: $ref: '#/components/schemas/Job.stream.destination' duration: description: ISO Duration of the stream in seconds type: number finished_at: description: ISO 8601 date-time string representing when the stream was finished type: string height: description: Frame height of the stream type: number id: description: System id of the stream type: string location: $ref: '#/components/schemas/Job.stream.location' name: description: Name of the stream type: string protocol: description: Protocol of the stream type: string region: description: AWS region list specified for the account type: string total_bitrate_in_kbps: description: Total bitrate of the stream type: number updated_at: description: ISO 8601 date-time string representing when the stream was last modified type: string url: description: URL for the stream type: string video_bitrate_in_kbps: description: Video bitrate of the input media file type: number video_codec: description: Video codec of the input media file type: string width: description: Frame width of the stream type: number title: job.stream type: object description: Object containing properties for the live stream playback_added_cdns: properties: label: description: A label to identify the CDN. type: string prepend: description: Typically, a domain or path to prepend to addresses type: string protocol: description: Protocol to use in sending the stream to the CDN. type: string required: - label - prepend - protocol title: add_cdns type: object RTMPout: title: RTMP Output type: object description: RTMP output object properties: rtmp_out_id: type: string description: system id for the RTMP output stream_start: type: integer description: Start time of the output in Epoch time (milliseconds) state: type: string description: Current state of the RTMP output stream enum: - connected - disconnected - error - starting duration_history: type: array description: Array of durations for connections items: type: object description: A connection start and stop properties: stream_start: type: integer description: The epoch time (in milliseconds) that a stream connected stream_end: type: integer description: The epoch time (in milliseconds) that a stream disconnected connection_info: type: object description: Details of the connection information properties: host: type: string description: Host URL port: type: integer description: The port number application: type: string description: The application name in the path streamName: type: string description: The stream name in the path sessionStatus: type: string description: The current session status enum: - Active - Inactive waiting_for_start: type: boolean description: 'For SEP jobs. If `true`, the SEP job was deactivated but the RTMP output was not stopped and the next time you activate the stream on the SEP job there will be an attempt to reconnect the RTMP output. If `waiting_for_start` is `false`, it means the RTMP output was stopped.' CreateLiveJobRequestBody.alternate_tracks: type: object description: Object containing audio track properties properties: language: description: The code for the language to be used. At present this is flexible and could be in any of the various language formats required/supported by the specs, specifically RFC5456/BCP47 which also covers ISO-639 as per the requirements. type: string video_pid: description: The Packet Identifier (PID) from the MPEG-TS input stream for the video track type: integer pid: description: The Packet Identifier (PID) from the MPEG-TS input stream for a specific audio track type: integer default: description: The audio track marked as DEFAULT in the EXT-X-MEDIA as well as the track to be muxed into video stream. If not present, the first track is the default. If multiple playlists are defined with different defaults, the top level default track is the muxed one. type: boolean default: false label: description: '''A text description to be used for the track, preferred to be used by the player where possible. Defaults to the language with an ID for each track e.g. en-0 if not specified.''' type: string variant: description: 'Maps to the DASH Role Schema values: (Used in DASH Role urn:mpeg:dash:role:2011)' enum: - main - alternate - commentary - supplementary - dub default: main streams: description: 'This mimics the streams field of the playlist output type; example: { “source”: “720p” } - matches the label of the output source. If not present, uses the default audio settings.' type: array required: - language - video_pid - pid - default 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 AddAdMetadatabody: title: Add Ad Metadata Request body description: -> A set of key/value pairs for ad requests. type: object properties: ad_server_data: type: object description: Object containing a collection of keys and values. Values may be strings, numbers, or boolean. example: ad_server_data: one: won two: 2 three: false StopLiveJob: properties: id: description: The job id for the stream that was stopped. Any unprocessed VOD jobs associated with the live job will continue to be processed. type: string readOnly: true title: Cancel_Live_Job_Response type: object 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: description: Your Akamai token token name type: string required: - auth_type - key - token_name title: Create_Live_Job_Request_Body.add_cdns.token_auth type: object InsertId3TimedMetadatabody.id3Tag: description: An object containing variables for the ID3 timed metadata properties: name: description: A name for the tag type: string timecode: description: 'Time to insert - by default, insertion is immediate. Note: 1. If you use the timecode property, the job only only stores the most recent request for insertion; 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`; 3. Software encoders such as Wirecast and OBS do not support the sending timecode via `OnFI` packets in the RTMP stream; 4. Elemental hardware encoders do support the sending timecode via `OnFI` packets in the RTMP stream' type: string value: description: A value for the tag (maximum string data size 256KB) type: string required: - name - value title: Insert_ID3_timed_metadataBody.id3_tag 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 Job.stream.location: properties: latitude: description: Latitude of the location source type: string location: description: Longitude of the location source type: string longitude: description: Longitude of the location source type: string title: job.stream.location type: object description: Object representing the location of the stream 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 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 Outputs: properties: id: description: The unique id for the rendition. type: string playback_url: description: Media HLS manifest for the specified rendition (non-SSAI). type: string playback_url_dvr: description: Media HLS manifest for the specified rendition (with DVR capability). type: string playback_url_vod: description: Media HLS manifest for the VOD version of the stream if one was specified in the job settings - note that the VOD will not be available until the live event has finished and the creation of the VOD is complete. type: string required: - id - playback_url - playback_url_dvr - playback_url_vod title: outputs type: object CreateLiveJobRequestBody: 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. **Note that this setting only applies to the audio for SSAI ads - it does *not* affect the general audio level for live streams.** maximum: 60 minimum: -60 type: number ad_insertion: default: false description: Setting this parameter to true will enable server side ad insertion (SSAI) on the job. Current support includes, DFP, Freewheel, or any VAST 2.0/3.0 ad tags. type: boolean add_cdns: description: Array of additional CDN providers to be used for manifest generation. For each CDN provided, the manifest will be prepended accordingly items: $ref: '#/components/schemas/CreateLiveJobRequestBody.addCdns' type: array alternate_audio: description: An object of multiple language audio tracks. Multi-language audio support is limited to rtp or srt protocol. type: object properties: tracks: description: An array for multiple language audio tracks type: array items: $ref: '#/components/schemas/CreateLiveJobRequestBody.alternate_tracks' audio_only: default: false description: Set this parameter to true for audio-only live events. This provides video-free live streaming when you have audio-only content. **Can only be set on job creation, and not changed afterward.** type: boolean audio_only_storage_format: default: mpeg-ts description: For audio-only jobs, by default the media files will be stored in MPEG transport stream (.ts) format. You can also use Advanced Audio Coding (.aac) format. **Can only be set on job creation, and not changed afterward.** enum: - mpeg-ts - aac type: string beacon_set: description: ID for a beacon set (for SSAI only). type: string channel_type: default: event description: '''Indicates whether the job should be billed as `event` hours or a channel (`24x7`) - see [Channels and Event Hours](/live-api/getting-started/overview-brightcove-live-api.html#Channels_and_hours).''' enum: - 24x7 - event type: string cidr_whitelist: description: 'An array of [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) blocks. **Required for ALL jobs where `protocol` = `rtp`, `rtp-fec`, or `srt`.** This property is **not** allowed for RTMP jobs (API will return an error).' type: array items: type: string description: Allowed IP address for input stream example: - 192.168.0.1/32 ip_whitelist: description: 'An array of IP addresses. This property is **not** allowed for jobs where `protocol` = `rtp`, `rtp-fec`, or `srt`. (API will return an error).' type: array items: type: string description: Allowed IP address for input stream example: - 192.168.0.1/32 copy_outputs_from_job: type: string description: The value is the `id` of an existing job that you want to copy the output settings for to this new job example: 481ff4cf0bf74956bc2ec6e126588080 drm: type: object description: DRM settings to be applied to all outputs for the job. **Note that you can also apply DRM only to specific outputs if you prefer.** properties: modes: type: array description: The kinds of DRM to apply - currently Widevine and Playready with DASH and FairPlay with HLS are supported. If you prefer to make Widevine with DASH your default instead of Widevine with HLS, an account-level configuration is required and you must submit a Support request for that. Using `all` will apply all types available. See [Live DRM via the Live API](/general/live-drm.html) for more information. items: type: string enum: - all - fairplay - playready - widevine - widevine:dash - widevine:hls example: all token_expires_in: type: integer description: Amount of time in seconds before the token expires default: 43200 maximum: 31622400 require_playback_token: type: boolean description: Enables EPA. Playback auth JWT will be required when requesting license. Uses playback rights id associated with video or JWT to enforce restrictions. **Note that EPA is in Limited Availability release. Contact your Customer Success Manager for more information.** See [Using PAS/EPA with Live](/live-api/guides/live-pas-epa.html) for more information. default: false check_playback_rights: type: boolean description: Enables PAS. Playback auth JWT will be required when requesting license. **Note that PAS is in Limited Availability release. Contact your Customer Success Manager for more information.** See [Using PAS/EPA with Live](/live-api/guides/live-pas-epa.html) for more information. default: false encryption: $ref: '#/components/schemas/CreateLiveJobRequestBody.encryption' event_length: default: 0 description: Used to preset and define an end time for the live event. At any point within the specified `event_length` you may reconnect to your stream. The `event_length` setting goes into effect as soon as streaming begins. In case the encoder stops, the live stream will be kept available for the duration of the `reconnect_time maximum: 93600 minimum: 0 type: integer hls_endlist: default: true description: Whether an `EXT-X-ENDLIST` tag should be added to the stream playlist when you stop the stream or the `reconnect_time` window has been reached. The `EXT-X-ENDLIST` tag indicates that no more Media Segments will be added to the Media Playlist file and helps prevent the player from displaying error messages when the stream stops. type: boolean live_dvr_ads_window_duration: default: 100 description: Indicates the window from the live edge on DVR session start, in seconds, for which ad breaks will have ads inserted, before which slate will be inserted. All ad breaks inserted after session start will have ads inserted.
maximum: 600 minimum: 0 type: integer live_dvr_sliding_window_duration: default: 0 description: 'The time, in seconds, to keep in the live DVR manifest. If the stream duration is longer than the window duration, segment references will be removed first in first out. **Note: for SSAI jobs, the limit is `7200`. If you do not want to be charged for DVR usage, set this to 0 in the request body.**' maximum: 86400 minimum: 0 type: integer number_of_segments_in_live_chunklist: description: Number of media segments in live playlist/manifest. default: 3 maximum: 12 minimum: 3 type: integer pass_through: description: Allows metadata for the Live Module in Studio to be passed through with the job data - this metadata is not processed by the API in any way type: boolean transcribe_state: description: 'Allows you to turn on automated captions for a live stream. Values:
"ON" - Enable automated captions
"OFF" - Disable automated captions' type: string default: 'OFF' transcribe_options: type: object description: Options associated with automated captions properties: language_code: type: string default: en-US description: The language used for automated captions. Currently, only English (en-US) is supported for automated captions. live_stream: description: Indicates that the job is a live streaming job. type: boolean low_latency: description: 'If `true` enables the job to use low latency. **Note: low latency must be enabled for the account by support.**' default: false type: boolean max_hls_protocol_version: default: 3 description: Sets the maximum HLS protocol version to use. Special features will be used as available. Default is `3`. maximum: 5 minimum: 1 type: integer notifications: description: '''Array of notification destination objects or strings - notifications defined here are for job-level events. A notification will be sent to the destination when selected event occurs. You can use a simple string with a url: "https://log:pass@httpbin.org/post", or you can use an object. See [Events](/live-api/guides/live-api-notifications.html#Events) for an explanation of the events reported in `state_changed` notifications.
Retry strategy: In the event of a failed request to send a notification, the default retry strategy is to retry 50 times with an exponential delay between attempts:
`max_retry_times = 50`
`delay_delta_s = 5`
`next_retry = now_s + retry_count * delay_delta_s`''' items: oneOf: - $ref: '#/components/schemas/Notification' - type: string description: A URL to send notifications to type: array outputs: description: Array of output specifications for live and VOD assets to be created from the live stream. items: $ref: '#/components/schemas/CreateLiveJobRequestBody.outputs' type: array protocol: description: Specifies the input protocol that will be used - note that `rtmp` is for FLV input; the other protocols are for MPEG2-TS type: string enum: - rtmp - rtp - rtp-fec - srt default: rtmp reconnect_time: default: 1800 description: The time, in seconds, to wait for a stream to reconnect to the encoder. If the encoder is disconnected, the live stream will be kept available for the full `reconnect_time` or for the **remainder** of the event length, whichever is greater. maximum: 7200 minimum: 1 type: integer region: description: AWS region - you can also specify region as the alias for a list set up for the account by Brightcove Support. See [Supported AWS Regions](/live-api/getting-started/overview-brightcove-live-api.html#Support_aws_regions) for more details on the support in each region. enum: - us-west-2 - us-east-1 - ap-southeast-2 - ap-northeast-1 - ap-southeast-1 - ap-south-1 - eu-central-1 - eu-west-1 type: string credentials: description: The label for a named credential. When specified, the customer must include the user name and password defined by the named credential when connecting their encoder. type: string rtmp_ip_whitelist: description: Array of IP addresses white-listed for RTMP delivery items: type: string type: array slate: description: Id for a set of slate assets type: string srt_config: type: object description: Settings for latency properties: latency: type: number default: 500 description: 'Time in milliseconds for which the SRT receiver shall be buffering the input data to overcome packet loss by retransmission. It is recommended to be greater than four times the RTT(round trip time). To get the RTT, you can do a counted ping on the Streaming endpoint domain. For example `ping -c 10 1a244fa8f08a464e869695dd01c890d6.sep.bcovlive.io`' passphrase: type: string description: Adding a passphrase allows for encrypted ingest via SRT into Brightcove Live. minLength: 10 maxLength: 79 static: default: false description: Whether this is a static entry point (SEP) job type: boolean videocloud: $ref: '#/components/schemas/CreateLiveJobRequestBody.videocloud' required: - live_stream - region - outputs title: Create_Live_JobBody type: object example: add_cdns: [] live_stream: true pass_through: dvr: false stream_to_social_media: false audio_only: false low_latency: false protocol: rtmp region: eu-west-1 reconnect_time: 600 ad_insertion: false outputs: - media_type: video format: ts segment_seconds: 6 label: hls540p live_stream: true video_codec: h264 video_bitrate: 1700 keyframe_interval: 60 width: 960 height: 540 h264_profile: main low_latency: false - media_type: video format: ts segment_seconds: 6 label: hls360p live_stream: true video_codec: h264 video_bitrate: 900 keyframe_interval: 60 width: 640 height: 360 h264_profile: main low_latency: false - media_type: video format: ts segment_seconds: 6 label: hls270p live_stream: true video_codec: h264 video_bitrate: 450 keyframe_interval: 60 width: 480 height: 270 h264_profile: baseline low_latency: false videocloud: video: name: Example description: '' long_description: '' tags: - tag_1 - tag_2 reference_id: '' link: url: '' text: '' schedule: starts_at: null ends_at: null custom_fields: custom_field_1: Entry 1 custom_field_2: Entry 2 state: ACTIVE live_to_vod: true notifications: [] static: false credentials: null Job: properties: ad_insertion: description: Indicates whether SSAI is enabled type: boolean created_at: description: ISO 8601 date-time string representing when the job was created type: string event_length: description: Used to preset and define an end time for the live event. At any point within the specified event_length you may reconnect to your stream. The event_length setting goes into effect as soon as streaming begins. type: number finished_at: description: ISO 8601 date-time string representing when the live stream was stopped type: string id: description: The live job id type: string input_media_file: $ref: '#/components/schemas/Job.inputMediaFile' live_stream: description: Indicates whether this is a live stream or VOD type: boolean output_media_files: description: Array of objects containing properties for the output media files items: $ref: '#/components/schemas/Job.outputMediaFiles' type: array playback_url: description: Playback URL for the live stream type: string playback_url_dvr: description: Playback URL for the live DVR type: string reconnect_time: description: The time, in seconds, that the system will wait for a stream to reconnect to the encoder example: 1800 type: number region: description: The Amazon AWS region to use for encoding the job 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 example: us-west-2 type: string randomize_chunk_url: type: boolean description: If true, HLS segments will be scrambled to prevent your stream from being stolen and reused default: true rtmp_outputs: type: array description: '''[RTMP outputs](/live-api/guides/live-api-rtmp-outputs.html) for the job''' items: $ref: '#/components/schemas/RTMPout' example: - rtmp_out_id: asdfg-lkjh stream_start: 1538746255247 connection_info: host: a.rtmp.youtube.com port: 1935 application: live2 streamName: myStream sessionStatus: Active slate: description: id for a slate of assets included type: string state: description: "The current state of the job.\nPossible values for **Live jobs** are:\n - `error` (An error has occurred; the job will not be processed.)\n - `standby` ([Only applicable to Static Entry Point jobs.; The job is allocated and ready for activation.)\n - `waiting` (The job has been assigned to a streaming worker and ready for the encoder to connect.)\n - `processing` (The encoder is connected and the job is available for playback.)\n - `disconnected` (The encoder has disconnected and the streaming worker is waiting for a reconnection.)\n - `finishing` (The encoder has been disconnected for more than `reconnect_time`, and streaming worker is stopping the jobs and creating any associated VOD outputs.)\n - `finished` (The job has finished successfully.)\n - `cancelling` (The job has been cancelled and the worker is stopping the job and will NOT process any pending VOD outputs.)\n - `cancelled` (The job has been cancelled successfully.)\n - `failed` (The job has stopped as a result of a system error.)" type: string enum: - standby - waiting - processing - disconnected - finishing - finished - cancelling - cancelled - failed - waiting_finish_live - creating_asset sep_state: type: string description: "Current state of an SEP job.\n\nPossible states:\n * `none` (not an SEP job)\n * `ready` (The entry point has been activated and ready for the encoder to connect)\n * `waiting` (The job is currently deactivated)\n * `pending_activation` (The entry point has been queued for streaming worker assignment.)\n * `activation_in_progress` (The entry point is updating to route connections to the streaming worker.)\n * `pending_deactivation` (The entry point has been queued for cleanup from the streaming worker.)\n * `deactivation_in_progress` (The entry point is disconnecting from the streaming worker.)\n * `cancelled` (The entry point has been cancelled.)\n * `finished` (The entry point has completed successfully.)" enum: - none - ready - waiting - pending_activation - activation_in_progress - pending_deactivation - deactivation_in_progress - cancelled - finished ssai_state: type: string description: "Current state of an SSAI job.\n\nPossible states:\n * `none` (not an SSAI job)\n * `waiting_input` (The streaming worker is waiting for the encoder to connect and provide the stream input information.)\n * `start_transcoding` (The encoder has connected and the SSAI slate has been queued for transcoding based on the stream input data and outputs data.)\n * `transcoding` (The slate is being transcoded.)\n * `error` (The slate could not be downloaded or transcoded.)\n * `ready` (The slate has been generated and the job is ready for SSAI playback.)\nenum:\n - none\n - waiting_input\n - start_transcoding\n - transcoding\n - error\n - ready" state_history: description: A history of state changes for a job type: array items: type: object properties: state: description: "The current state of the job.\nPossible values for **Live jobs** are:\n - `error` (An error has occurred; the job will not be processed.)\n - `standby` ([Only applicable to Static Entry Point jobs.; The job is allocated and ready for activation.)\n - `waiting` (The job has been assigned to a streaming worker and ready for the encoder to connect.)\n - `processing` (The encoder is connected and the job is available for playback.)\n - `disconnected` (The encoder has disconnected and the streaming worker is waiting for a reconnection.)\n - `finished` (The job has finished successfully.)\n - `cancelling` (The job has been cancelled and the worker is stopping the job and will NOT process any pending VOD outputs.)\n - `cancelled` (The job has been cancelled successfully.)\n - `failed` (The job has stopped as a result of a system error.)" type: string enum: - error - standby - waiting - processing - disconnected - finishing - finished - cancelling - cancelled - failed - waiting_finish_live - creating_asset transition_timestamp: description: Time when the transition to that state occurred in Epoch (UNIX) time type: integer stream: $ref: '#/components/schemas/Job.stream' submitted_at: description: ISO 8601 date-time string representing when the job was submitted type: string updated_at: description: ISO 8601 date-time string representing when the job was last modified type: string required: - region - reconnect_time - event_length - live_stream - ad_insertion - input_media_file - slate - stream - output_media_files title: job type: object example: job: created_at: '2018-09-05T12:19:29.826Z' finished_at: null id: 3ae7fa89943f4a96aa273fbbf175d527 privacy: false state: disconnected ssai_state: none sep_state: none submitted_at: '2018-09-05T12:19:29.826Z' test: false updated_at: '2018-09-05T12:35:26.757Z' region: us-west-2 reconnect_time: 7200 live_stream: true static: false ad_insertion: false metadata_passthrough: false out_worker_bytes: 423753 out_worker_bytes_rate: 318 channel_type: event state_history: - state: disconnected transition_timestamp: 1536150926757 - state: processing transition_timestamp: 1536150914004 state_history_is_truncated: false job_videocloud_asset_id: '5831009084001' live_dvr_sliding_window_duration_ms: 86400000 notifications: - https://solutions.brightcove.com/bcls/live/live-callbacks.php outputs: - video_codec: h264 keyframe_interval: 60 live_stream: true segment_seconds: 6 width: 1920 h264_profile: main rtmp_credentials: rtmp-1 label: hls1080p video_bitrate: 2400 notifications: - https://solutions.brightcove.com/bcls/live/live-callbacks.php height: 1080 - video_codec: h264 keyframe_interval: 60 live_stream: true segment_seconds: 6 width: 1280 h264_profile: main label: hls720p video_bitrate: 1843 notifications: - https://solutions.brightcove.com/bcls/live/live-callbacks.php height: 720 videocloud: video: name: test_live_3 randomize_chunk_url: true playback_url: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/playlist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/playlist_dvr.m3u8 encryption: {} input_media_file: audio_bitrate_in_kbps: null audio_codec: null audio_sample_rate: null channels: null created_at: '2018-09-05T12:19:29.826Z' duration_in_ms: 1242901 error_class: null error_message: null file_size_bytes: null finished_at: null format: null frame_rate: null height: null id: input-3ae7fa89943f4a96aa273fbbf175d527 md5_checksum: null privacy: false state: disconnected test: false updated_at: '2018-09-05T12:35:26.757Z' video_bitrate_in_kbps: null video_codec: null width: null total_bitrate_in_kbps: null url: null stream: created_at: '2018-09-05T12:22:53.630Z' finished_at: null height: null id: stream-3ae7fa89943f4a96aa273fbbf175d527 name: alive protocol: null state: null test: false updated_at: '2018-09-05T12:35:26.757Z' width: null total_bitrate_in_kbps: null duration: 1242.901 region: us-west-2 url: rtmp://ec2-18-237-16-155.us-west-2.compute.amazonaws.com:1935/3ae7fa89943f4a96aa273fbbf175d527 location: source: latitude: null longitude: null location: null destination: latitude: null longitude: null location: null distance: null in_worker_bytes: 457665 in_worker_bytes_rate: 325 output_media_files: - audio_bitrate_in_kbps: 196.608 audio_codec: AAC audio_sample_rate: null channels: null created_at: '2018-09-05T12:19:29.826Z' duration_in_ms: 1242901 error_class: null error_message: null file_size_bytes: null finished_at: null format: null fragment_duration_in_ms: null frame_rate: null height: 1080 id: 0-3ae7fa89943f4a96aa273fbbf175d527 md5_checksum: null privacy: false rfc_6381_audio_codec: null rfc_6381_video_codec: null state: disconnected test: false updated_at: '2018-09-05T12:35:26.757Z' video_bitrate_in_kbps: 2457.6 video_codec: H.264 video_codec_profile: main width: 1920 label: hls1080p total_bitrate_in_kbps: 2654.208 keyframe_interval: 60 keyframe_interval_follow_source: false segment_seconds: 6 live_stream: true playback_url: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/profile_0/chunklist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/profile_0/chunklist_dvr.m3u8 playback_url_vod: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/profile_0/chunklist_vod.m3u8 playback_added_cdns: [] - audio_bitrate_in_kbps: 196.608 audio_codec: AAC audio_sample_rate: null channels: null created_at: '2018-09-05T12:19:29.826Z' duration_in_ms: 1242901 error_class: null error_message: null file_size_bytes: null finished_at: null format: null fragment_duration_in_ms: null frame_rate: null height: 720 id: 1-3ae7fa89943f4a96aa273fbbf175d527 md5_checksum: null privacy: false rfc_6381_audio_codec: null rfc_6381_video_codec: null state: disconnected test: false updated_at: '2018-09-05T12:35:26.757Z' video_bitrate_in_kbps: 1887.232 video_codec: H.264 video_codec_profile: main width: 1280 label: hls720p total_bitrate_in_kbps: 2083.84 keyframe_interval: 60 keyframe_interval_follow_source: false segment_seconds: 6 live_stream: true playback_url: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/profile_1/chunklist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/profile_1/chunklist_dvr.m3u8 playback_url_vod: https://bcovlive-a.akamaihd.net/3ae7fa89943f4a96aa273fbbf175d527/us-west-2/NA/profile_1/chunklist_vod.m3u8 playback_added_cdns: [] Job.stream.destination: properties: latitude: description: Latitude of the location source type: string location: description: Longitude of the location source type: string longitude: description: Longitude of the location source type: string title: job.stream.destination type: object description: Object representing the destination of the stream CreateLiveJobRequestBody.videocloud.video.geo: properties: countries: description: array of ISO 3166 list of [2-letter codes](https://www.iso.org/obp/ui/#home) (search for "country codes") type: string 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: Create_Live_Job_Request_Body.videocloud.video.geo type: object description: map of geo-filtering properties CreateVodClipbody.outputs.videocloud.video.cuePoint: properties: force-stop: description: whether video is force-stopped at the cue point type: boolean metadata: description: optional metadata string (512 single-byte characters maximum) 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 - CODE example: AD type: string required: - time - type title: Create_VOD_ClipBody.outputs.videocloud.video.cue_point type: object ListLiveJobsResponse: properties: jobs: description: The filtered list of jobs. List may be empty if no matching jobs or for last page. items: $ref: '#/components/schemas/Job' type: array next_token: description: Use as start_token to fetch next page. Not include if no more matching jobs. type: string start_token: description: Returns start_token from current request (not included on first page). type: string required: - start_token - jobs title: List_Live_Jobs200 type: object example: next_token: eyJhY2NvdW50X2lkIjoiYTk1YWM1ODE1NTFiNDQ3OGIyNzkxMGU1Njc1ZGIxZjgiLCJqb2JfaWQiOiI5NTA2NGI0Mjc0ZTI0M2Y0ODE0ZGQ2OTcxYTNjMmRkNyIsImpvYl9jcmVhdGVkX2F0IjoxNTI2MjQzNDgyNzEzfQ== jobs: - created_at: '2018-04-03T12:28:09.579Z' finished_at: '2018-04-03T12:59:16.871Z' id: c1d242de729d4a76a605e018cc101601 privacy: false state: finished ssai_state: none sep_state: finished submitted_at: '2018-04-03T12:28:09.579Z' test: false updated_at: '2018-04-03T12:59:16.871Z' region: eu-west-1 reconnect_time: 20 live_stream: true static: false ad_insertion: false metadata_passthrough: false out_worker_bytes: 0 out_worker_bytes_rate: 0 channel_type: event live_dvr_sliding_window_duration_ms: 30000 outputs: - video_codec: h264 keyframe_interval: 60 live_stream: true segment_seconds: 6 width: 1920 h264_profile: main label: hls1080p video_bitrate: 2400 height: 1080 randomize_chunk_url: true playback_url: https://bcovlive-a.akamaihd.net/c1d242de729d4a76a605e018cc101601/eu-west-1/NA/playlist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/c1d242de729d4a76a605e018cc101601/eu-west-1/NA/playlist_dvr.m3u8 encryption: {} input_media_file: audio_bitrate_in_kbps: null audio_codec: null audio_sample_rate: null audio_tracks: null channels: null created_at: '2018-04-03T12:28:09.579Z' duration_in_ms: 1522760356871 error_class: null error_message: null file_size_bytes: null finished_at: '2018-04-03T12:59:16.871Z' format: null frame_rate: null height: null id: input-c1d242de729d4a76a605e018cc101601 md5_checksum: null privacy: false state: finished test: false updated_at: '2018-04-03T12:59:16.871Z' video_bitrate_in_kbps: null video_codec: null width: null total_bitrate_in_kbps: null url: null stream: created_at: null finished_at: '2018-04-03T12:59:16.871Z' height: null id: stream-c1d242de729d4a76a605e018cc101601 name: alive protocol: null state: null test: false updated_at: null width: null total_bitrate_in_kbps: null duration: 1522760356.871 region: eu-west-1 url: rtmp://ep3-euw1.bcovlive.io:1935/c1d242de729d4a76a605e018cc101601 location: source: latitude: null longitude: null location: null destination: latitude: null longitude: null location: null distance: null in_worker_bytes: 0 in_worker_bytes_rate: 0 output_media_files: - audio_bitrate_in_kbps: 196.608 audio_codec: AAC audio_sample_rate: null channels: null created_at: '2018-04-03T12:28:09.579Z' duration_in_ms: 1522760356871 error_class: null error_message: null file_size_bytes: null finished_at: '2018-04-03T12:59:16.871Z' format: null fragment_duration_in_ms: null frame_rate: null height: 1080 id: 0-c1d242de729d4a76a605e018cc101601 md5_checksum: null privacy: false rfc_6381_audio_codec: null rfc_6381_video_codec: null state: finished test: false updated_at: '2018-04-03T12:59:16.871Z' video_bitrate_in_kbps: 2457.6 video_codec: H.264 video_codec_profile: main width: 1920 label: hls1080p total_bitrate_in_kbps: 2654.208 keyframe_interval: 60 keyframe_interval_follow_source: false segment_seconds: 6 live_stream: true playback_url: https://bcovlive-a.akamaihd.net/c1d242de729d4a76a605e018cc101601/eu-west-1/NA/profile_0/chunklist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/c1d242de729d4a76a605e018cc101601/eu-west-1/NA/profile_0/chunklist_dvr.m3u8 playback_url_vod: https://bcovlive-a.akamaihd.net/c1d242de729d4a76a605e018cc101601/eu-west-1/NA/profile_0/chunklist_vod.m3u8 playback_added_cdns: [] DeactivateSepStreamResponse: properties: id: description: The job id for the stream that was Deactivated type: string required: - id title: Deactivate_SEP_Stream_Response type: object ActivateSepStreamResponse: properties: id: description: The job id for the stream that was activated type: string readOnly: true required: - id title: Activate_SEP_Stream_Response type: object ManualAdCuePointInsertionResponse: properties: cue_point: $ref: '#/components/schemas/CuePoint' id: description: The id of the live stream job type: string required: - id - cue_point title: Manual_Ad_Cue_Point_Insertion_Response type: object example: cue_point: accuracy: segment duration: 30 id: c1d242de729d4a76a605e018cc101601 id: 3ae7fa89943f4a96aa273fbbf175d527 InsertId3TimedMetadataResponse: properties: id: description: The job id type: string id3_tag: $ref: '#/components/schemas/Id3Tag' required: - id - id3_tag title: Insert_ID3_timed_metadata_Response type: object CreateLiveJobRequestBody.videocloud.video: properties: cue_points: description: Array of cuepoint objects items: $ref: '#/components/schemas/CreateLiveJobRequestBody.videocloud.video.cuePoint' type: array custom_fields: description: An object whose properties are `field_name`:`value` pairs - be sure to the *internal* name of the field type: object example: custom_field_1: Entry 1 custom_field_2: Entry 2 description: description: Video short description type: string maxLength: 248 drm_disabled: description: Use to disable DRM packaging for this video - applies only to DRM-enabled accounts type: boolean economics: type: string description: whether the video supports ads enum: - AD_SUPPORTED - FREE geo: $ref: '#/components/schemas/CreateLiveJobRequestBody.videocloud.video.geo' long_description: description: A longer description of the video type: string name: description: Title of the video clip type: string maxLength: 255 minLength: 1 reference_id: description: Reference id for the clip - must be unique within the account type: string schedule: $ref: '#/components/schemas/CreateLiveJobRequestBody.videocloud.video.schedule' state: type: string description: Whether the video should be active or inactive example: ACTIVE enum: - ACTIVE - INACTIVE tags: description: Array of tags for the video - note that tags are string that may not contain a comma type: object required: - name title: Create_Live_Job_Request_Body.videocloud.video description: '''An object containing inputs for Video Cloud video object creation - see the [CMS API Reference](https://apis.support.brightcove.com/cms/references/reference.html#operation/CreateVideo)''' type: object PlaybackToken: title: Create Playback Token Response description: An `ad_config_id` to use for playback type: object properties: playback_token: type: string example: live.TCaG-5GnlxmTFA8twsstmHqgET9npvC3nVtokT5nte... LiveJob: properties: ad_insertion: description: Setting this parameter to true will enable server side ad insertion (SSAI) on the job. Current support includes, DFP, Freewheel, or any VAST 2.0/3.0 ad tags. type: boolean default: false example: false playback_added_cdns: description: Array of additional CDN providers to be used for manifest generation. For each CDN provided, the manifest will be prepended accordingly items: $ref: '#/components/schemas/playback_added_cdns' type: array drm: description: Information on DRM packaging of outputs type: object properties: token: type: string description: The DRM token example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50IjoiYnJpZ2h0Y292ZV9hbGl2ZS1xYS1uYS01ZmZlYWRlYjhlNWQ0ODM4OTEwOTEzMTQyOWRiMDM1NCIsInBsYXlsaXN0IjoiZGVmYXVsdCIsIm9wdGlvbnMiOltdLCJjcnQiOm51bGwsImFjY2lkIjoiMzAzMTI2NDE1NjQyMDIiLCJpYXQiOjE1ODA3ODg3MjQsImV4cCI6MTU4MDgzMTkyNCwiaXNzIjoiYWxpdmUiLCJzdWIiOiIxMjNlODgzZGVlNzg0MjgyYjlkMWU4OTk0ZTZmMWUxZCIsImp0aSI6IjFmYmM2ZGMxZjZjNzJlOGVmZGIzMzU1N2I4MjBjMmJlIn0.IpH2AQglCZAU8ECYZ3Uq_p-0QXNx7-cbmFFI7tsQfik mode: type: array description: Array of DRM packages applied items: type: object description: Details of the DRM packaging properties: type: type: string description: The DRM type enum: - fairplay - playready - widevine key_system: type: string description: The key system used example: com.widevine.alpha license_url: type: string description: URL to acquire the license example: https://license-proxy-qa.alive.us-west-2.qa.deploys.brightcove.com/lic/wv?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50IjoiYnJpZ2h0Y292ZV9hbGl2ZS1xYS1uYS01ZmZlYWRlYjhlNWQ0ODM4OTEwOTEzMTQyOWRiMDM1NCIsInBsYXlsaXN0IjoiZGVmYXVsdCIsIm9wdGlvbnMiOltdLCJjcnQiOm51bGwsImFjY2lkIjoiMzAzMTI2NDE1NjQyMDIiLCJpYXQiOjE1ODA3ODg3MjQsImV4cCI6MTU4MDgzMTkyNCwiaXNzIjoiYWxpdmUiLCJzdWIiOiIxMjNlODgzZGVlNzg0MjgyYjlkMWU4OTk0ZTZmMWUxZCIsImp0aSI6IjFmYmM2ZGMxZjZjNzJlOGVmZGIzMzU1N2I4MjBjMmJlIn0.IpH2AQglCZAU8ECYZ3Uq_p-0QXNx7-cbmFFI7tsQfik filename: type: string description: File name for the DRM packaged output example: playlist.mpd dvr_filename: type: string description: File name for the DRM packaged, DVR enabled stream example: dvr_filename playback_url: type: string description: URL for DRM packaged stream example: https://playback-qa.a-live.io/123e883dee784282b9d1e8994e6f1e1d/us-west-2/NA/playlist.mpd playback_url_dvr: type: string description: URL for DRM packaged, DVR-enabled stream example: https://playback-qa.a-live.io/123e883dee784282b9d1e8994e6f1e1d/us-west-2/NA/playlist_dvr.mpd event_length: description: Used to preset and define an end time for the live event. At any point within the specified `event_length` you may reconnect to your stream. The `event_length` setting goes into effect as soon as streaming begins. type: integer id: description: Id for the stream. readOnly: true type: string live_stream: description: Indicates that the job is a live streaming job. type: boolean max_hls_protocol_version: default: 3 description: Sets the maximum HLS protocol version to use. Special features will be used as available. type: integer notifications: description: 'Array of notification destination objects or strings. A notification will be sent to the destination when selected event occurs. You can use a simple string with a url: "https://log:pass@httpbin.org/post", or you can use an object.
Retry strategy: In the event of a failed request to send a notification, the default retry strategy is to retry 50 times with an exponential delay between attempts:
`max_retry_times = 50`
`delay_delta_s = 5`
`next_retry = now_s + retry_count * delay_delta_s`' items: oneOf: - description: URL that notifications should be sent to type: string - $ref: '#/components/schemas/Notification' type: array outputs: description: Details on each output rendition of the Live job. items: $ref: '#/components/schemas/Outputs' type: array reconnect_time: description: The time, in seconds, to wait for a stream to reconnect to the encoder. Default is set to 30 minutes. type: integer region: description: You can specify an Amazon AWS region to use for encoding a job and we will process the job on servers in the region specified. It’s recommended to use the region closest to your encoder. type: string sep_state: description: 'The current state of the job's SEP (static entry point) - possible values: 'waiting' 'pending_activation', 'activation_in_progress', 'ready', 'pending_deactivation', 'deactivation_in_progress', 'cancelled', 'finished'' type: string slate: description: id for slate of assets to be included type: string stream_name: description: The stream name to add to your encoder configuration. readOnly: true type: string stream_url: description: The stream URL to add to your encoder configuration. readOnly: true type: string required: - id - stream_url - stream_name - outputs - live_stream - ad_insertion - region - reconnect_time - event_length - max_hls_protocol_version - slate - sep_state - notifications - add_cdns title: Create_a_Live_Job type: object example: id: 493885dfd7c64e23ad253fcc42c120d8 outputs: - id: 0-493885dfd7c64e23ad253fcc42c120d8 playback_url: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_0/chunklist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_0/chunklist_dvr.m3u8 playback_url_vod: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_0/chunklist_vod.m3u8 playback_added_cdns: [] label: hls720p - id: 1-493885dfd7c64e23ad253fcc42c120d8 playback_url: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_1/chunklist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_1/chunklist_dvr.m3u8 playback_url_vod: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_1/chunklist_vod.m3u8 playback_added_cdns: [] label: hls540p - id: 2-493885dfd7c64e23ad253fcc42c120d8 playback_url: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_2/chunklist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_2/chunklist_dvr.m3u8 playback_url_vod: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/profile_2/chunklist_vod.m3u8 playback_added_cdns: [] label: hls360p - id: 3-493885dfd7c64e23ad253fcc42c120d8 playlist_type: defaultS3 type: playlist filename: playlist.m3u8 dvr_filename: playlist_dvr.m3u8 playback_url: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/playlist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/playlist_dvr.m3u8 stream_url: rtmp://ep9-usw2.bcovlive.io:1935/493885dfd7c64e23ad253fcc42c120d8 stream_name: alive static: false encryption: {} playback_url: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/playlist.m3u8 playback_url_dvr: https://bcovlive-a.akamaihd.net/493885dfd7c64e23ad253fcc42c120d8/us-west-2/NA/playlist_dvr.m3u8 InsertId3TimedMetadatabody: properties: id3_tag: $ref: '#/components/schemas/InsertId3TimedMetadatabody.id3Tag' required: - id3_tag title: Insert_ID3_timed_metadataBody type: object example: id3_tag: name: BCOV value: my value timecode: '15:50:49:16' CreateLiveJobRequestBody.videocloud.video.cuePoint: properties: force-stop: description: whether video is force-stopped at the cue point type: boolean metadata: description: optional metadata string (512 single-byte characters maximum) 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 - CODE example: AD type: string required: - time - type title: Create_Live_Job_Request_Body.videocloud.video.cue_point 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 - "now" 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 securitySchemes: BC_OAuth2: type: oauth2 description: Brightcove OAuth API. See the [support documentation](/oauth/index.html) or [Getting Access Tokens](/oauth/code-samples/oauth-api-sample-get-access-token.html) to learn more flows: clientCredentials: tokenUrl: https://oauth.brightcove.com/v4/access_token scopes: video-cloud/analytics/read: Read analytics data video-cloud/video/read: Read video data x-bc-implicit-head: true x-bc-implicit-options: true x-bc-upstream: https://backend_server