openapi: 3.0.3 info: title: Brightcove Analytics API Reference Access Tokens Playlists 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: Playlists description: Operations for managing video playlists. paths: /v1/accounts/{{account_id}}/playlists: get: tags: - Playlists summary: Get Playlists description: 'Gets a page of playlist objects for the account ' operationId: GetPlaylists parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Offset' - $ref: '#/components/parameters/SearchPlaylists' - $ref: '#/components/parameters/PlaylistSort' responses: '200': description: '200' content: application/json: schema: type: array items: $ref: '#/components/schemas/Playlist' '400': description: '''INVALID_SORT: sort parameter specified and invalid field INVALID_SEARCH: search string invalid (may not have been URI-encoded)''' '401': description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/read x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false post: tags: - Playlists summary: Create Playlist description: 'Creates a new playlist. **A maximum of 1000 videos can be added to a playlist** (both Manual and Smart). There is no limit to the number of playlists that can be created. The videos that are initially loaded into a playlist in the player is determined by the type of playlist.' operationId: CreatePlaylist parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' requestBody: description: Creates a new playlist content: application/json: schema: $ref: '#/components/schemas/PlaylistInputFields' required: true responses: '201': description: Playlist created content: application/json: schema: $ref: '#/components/schemas/Playlist' '400': description: 'BAD_VALUE: The JSON could not be parsed ' '401': description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '409': description: 'REFERENCE_ID_IN_USE: The specified reference id is already in use ' '422': description: 'ILLEGAL_FIELD: Spelling error or use of non-existent field ' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/create x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false /v1/accounts/{{account_id}}/counts/playlists: get: tags: - Playlists summary: Get Playlist Count description: 'Gets a count of playlists in the account for the account ' operationId: GetPlaylistCount parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/Search' responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/PlaylistCount' '400': description: '''INVALID_SORT: sort parameter specified and invalid field INVALID_SEARCH: search string invalid (may not have been URI-encoded)''' '401': description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/read x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false /v1/accounts/{{account_id}}/playlists/{{playlist_id}}: get: tags: - Playlists summary: Get Playlists by ID description: 'Gets one or more playlist objects for the account ' operationId: GetPlaylistById parameters: - $ref: '#/components/parameters/AccountId' - name: playlist_id in: path description: Video Cloud playlist ID, or multiple playlist ids separated by commas. required: true style: simple explode: false schema: type: string - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/Playlist' '400': description: '''INVALID_SORT: sort parameter specified and invalid field INVALID_SEARCH: search string invalid (may not have been URI-encoded)''' '401': description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/read x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false patch: tags: - Playlists summary: Update Playlist description: 'Updates a playlist for the account ' operationId: UpdatePlaylist parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/PlaylistId' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' requestBody: description: Updates a playlist for the account content: application/json: schema: $ref: '#/components/schemas/PlaylistInputFields' required: true responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/Playlist' '400': description: 'BAD_VALUE: The JSON could not be parsed ' '401': description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '409': description: 'REFERENCE_ID_IN_USE: The specified reference id is already in use ' '422': description: 'ILLEGAL_FIELD: Spelling error or use of non-existent field ' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/update x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false delete: tags: - Playlists summary: Delete Playlist description: 'Deletes a playlist ' operationId: DeletePlaylists parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/PlaylistId' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' responses: '204': description: NO_CONTENT '400': description: '''INVALID_SORT: sort parameter specified and invalid field INVALID_SEARCH: search string invalid (may not have been URI-encoded)''' '401': description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/delete x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false /v1/accounts/{{account_id}}/playlists/{{playlist_id}}/videos: get: tags: - Playlists summary: Get Videos in Playlist description: 'Gets the video objects for videos in a playlist for the account. Note: To receive the `video_preview.sources`, include `include_video_preview=true` in the request query.' operationId: GetVideosInPlaylist parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/PlaylistId' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' - $ref: '#/components/parameters/include_details' - $ref: '#/components/parameters/include_video_preview' - $ref: '#/components/parameters/Limit_Playlist_Videos' - $ref: '#/components/parameters/Offset' responses: '200': description: '200' content: application/json: schema: type: array items: $ref: '#/components/schemas/Video' '400': description: '''INVALID_SORT: sort parameter specified and invalid field INVALID_SEARCH: search string invalid (may not have been URI-encoded)''' '401': description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/read x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false /v1/accounts/{{account_id}}/counts/playlists/{{playlist_id}}/videos: get: tags: - Playlists summary: Get Video Count in Playlist description: 'Gets a count of the videos in a playlist for the account ' operationId: GetVideoCountInPlaylist parameters: - $ref: '#/components/parameters/AccountId' - $ref: '#/components/parameters/PlaylistId' - $ref: '#/components/parameters/ContentType' - $ref: '#/components/parameters/Authorization' responses: '200': description: '200' content: application/json: schema: $ref: '#/components/schemas/VideoCountInPlaylist' '400': description: '''INVALID_SORT: sort parameter specified and invalid field INVALID_SEARCH: search string invalid (may not have been URI-encoded)''' '401': description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token' '404': description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested' '405': description: 'METHOD_NOT_ALLOWED: The HTTP method specified is not allowed for this endpoint' '429': description: 'TOO_MANY_REQUESTS: You are submitting too many simultaneous requests or too many requests per second' deprecated: false security: - BC_OAuth2: - video-cloud/playlist/read x-operation-settings: CollectParameters: false AllowDynamicQueryParameters: false AllowDynamicFormParameters: false IsMultiContentStreaming: false components: schemas: VideoImages: description: map of image maps - the map name is in the form `label.language` where the label is one of `poster`, `thumbnail`, `portrait`, `square`, `wide` or `ultra-wide`, and the `language` is a language identifier such as 'en', 'de', or `ko` example: thumbnail: src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/160x90/20s629ms/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/160x90/20s629ms/match/image.jpg height: 90 width: 160 poster: src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/1280x720/20s629ms/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/jit/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/main/1280x720/20s629ms/match/image.jpg height: 720 width: 1280 portrait.es: src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/bac8717a-43db-4fa8-a6f0-189c80ee4c4e/800x1200/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/bac8717a-43db-4fa8-a6f0-189c80ee4c4e/800x1200/match/image.jpg height: 1200 width: 800 thumbnail.en: src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/0ce2da4d-ca36-469b-9024-0273d79feeeb/292x108/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/0ce2da4d-ca36-469b-9024-0273d79feeeb/292x108/match/image.jpg height: 108 width: 292 poster.en: src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/a7cb150d-c84a-48e0-9469-5b4ce80fba53/1920x1080/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/a7cb150d-c84a-48e0-9469-5b4ce80fba53/1920x1080/match/image.jpg height: 1080 width: 1920 square.de: src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/22209955-e136-4f17-914c-e19ec4c58886/570x570/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/22209955-e136-4f17-914c-e19ec4c58886/570x570/match/image.jpg height: 570 width: 570 ultra-wide.hi: src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/72fd489f-d978-44ba-8d04-1e33c7c36cef/3840x1646/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/72fd489f-d978-44ba-8d04-1e33c7c36cef/3840x1646/match/image.jpg height: 1646 width: 3840 wide.fr: src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/4405a5d5-8b9e-4c2b-be71-cf4e2c153e87/2560x1440/match/image.jpg sources: - src: https://cf-images.us-east-1.prod.boltdns.net/v1/static/57838016001/ee705e97-3fb5-409c-99d8-703e9f57bd0a/4405a5d5-8b9e-4c2b-be71-cf4e2c153e87/2560x1440/match/image.jpg height: 1440 width: 2560 readOnly: true title: VideoImages type: object VideoVariants: description: Array of video variants type: array items: - $ref: '#/components/schemas/VideoVariant' - $ref: '#/components/schemas/VideoVariant2' - $ref: '#/components/schemas/VideoVariant3' CuePoint: properties: force_stop: description: Whether playback should be stopped when the cuepoint is reached type: boolean metadata: description: optional metadata string (512 single-byte characters maximum) maxLength: 512 type: string name: description: cue point name type: string time: description: time of the cue point in seconds example: 10.527 type: number type: description: cue point type enum: - AD - DATA type: string required: - time - type title: cue_point type: object Link: description: map of related link properties - can only be added on update, not creation properties: text: description: text for the link maxLength: 255 type: string url: description: URL for the link maxLength: 255 type: string title: link type: object Geo: description: map of geo-filtering properties properties: countries: description: array of ISO 3166 list of 2-letter codes(https://www.iso.org/obp/ui/#home) (search for "country codes") example: - us - ca - fr items: type: string type: array exclude_countries: description: if true, country array is treated as a list of countries excluded from viewing type: boolean restricted: description: whether geo-restriction is enabled for this video type: boolean required: - countries - exclude_countries - restricted title: geo type: object VideoVariant3: description: Object containing language-specific metadata for a video properties: language: type: string description: 'The language for this variant in the language-country code format (examples: en-US, es-ES) **Note that `language` is only included when you create a variant - you must NOT include it when updating the variant**' example: ja-JA name: type: string description: The title of the video in this language description: type: string description: The video short description in this language long_description: type: string description: The video long description in this language custom_fields: type: object description: 'map of `fieldname: value` pairs, where values are for this language; values have a maximum length of 1024 single-byte characters. Note: be sure to use the **internal** name for the field, not the display name' VideoVariant: description: Object containing language-specific metadata for a video properties: language: type: string description: 'The language for this variant in the language-country code format (examples: en-US, es-ES) **Note that `language` is only included when you create a variant - you must NOT include it when updating the variant**' example: es-ES name: type: string description: The title of the video in this language description: type: string description: The video short description in this language long_description: type: string description: The video long description in this language custom_fields: type: object description: 'map of `fieldname: value` pairs, where values are for this language; values have a maximum length of 1024 single-byte characters. Note: be sure to use the **internal** name for the field, not the display name' VideoCountInPlaylist: example: count: 5 properties: count: description: count of videos type: integer title: Get_Video_Count_in_PlaylistResponse type: object User: description: information about who created or modified a video, if available properties: email: description: the user's email address in Video Cloud type: string id: description: Video Cloud system id of the user type: string type: description: "The type of the updater, either:\n - `user` a user in Studio\n - `api-key` a user via the APIs\n - `internal` a Brightcove system or user" enum: - user - api_key - internal type: string readOnly: true title: User type: object Schedule: description: map of scheduling properties properties: ends_at: description: '''End date-time of availability in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format. Note that you can input a date-time stamp with a time zone, such as `2021-05-01T18:00:00.000+08`, but it will be converted to and stored as a UTC data-time stamp: `2021-05-01T10:00:00.000Z`''' example: 2020-05-20 20:41:07.689000+00:00 nullable: true type: string starts_at: description: '''Start date-time of availability in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format. Note that you can input a date-time stamp with a time zone, such as `2021-05-01T18:00:00.000+08`, but it will be converted to and stored as a UTC data-time stamp: `2021-05-01T10:00:00.000Z`''' example: 2019-05-20 20:41:07.689000+00:00 nullable: true type: string title: schedule type: object VideoVariant2: description: Object containing language-specific metadata for a video properties: language: type: string description: 'The language for this variant in the language-country code format (examples: en-US, es-ES) **Note that `language` is only included when you create a variant - you must NOT include it when updating the variant**' example: de-DE name: type: string description: The title of the video in this language description: type: string description: The video short description in this language long_description: type: string description: The video long description in this language custom_fields: type: object description: 'map of `fieldname: value` pairs, where values are for this language; values have a maximum length of 1024 single-byte characters. Note: be sure to use the **internal** name for the field, not the display name' PlaylistCount: example: count: 84 properties: count: description: count of videos type: integer title: Get_Playlist_CountResponse type: object Sharing: description: map of the sharing properties for the video properties: by_external_acct: description: whether the video was shared from another account example: true readOnly: true type: boolean by_id: description: id of the account that shared the video; note that this field is populated only for the shared copy, not for the original video example: 57838016001 readOnly: true type: string by_reference: description: whether the video is shared by reference example: true readOnly: true type: boolean source_id: description: id of the video in its original account; note that this field is populated only for the shared copy, not for the original video example: 239487239487 readOnly: true type: string to_external_acct: description: whether the video is shared to another account example: true readOnly: true type: boolean readOnly: true title: sharing type: object Transcript: properties: id: description: System id for the text track readOnly: true type: string account_id: description: The account id readOnly: true type: string default: description: Whether the transcript is the default - note that if there are multi-language transcripts, there can be a default per language readOnly: true type: boolean label: description: label for the track type: string sources: description: sources for a client to retrieve the transcription type: array items: type: string description: URLs where the transcript can be retrieved - there will an http and https URL for each transcript src: description: URL for the transcription file type: string srclang: description: 2-letter or 4-letter language code, such as `es` or `es-MX` type: string status: description: Either `draft` (unavailable to viewers) or `published` type: string enum: - draft - published required: - src - srclang title: transcription type: object Video: description: Object containing metadata for a video properties: video_preview: $ref: '#/components/schemas/VideoPreview' ad_keys: description: string representing the ad key/value pairs assigned to the video. Key/value pairs are formatted as key=value and are separated by ampersands - can only be added on update, not creation example: ' "adKeys": "category=sports&live=true"' nullable: true type: string clip_source_video_id: description: The ID of the source video that was clipped to produce this video or null if this video is not a clip of another video example: 4723947979 readOnly: true type: string complete: description: 'whether the video has at least one rendition -Note: when you create a new video, the complete property is automatically set to false. As soon as one rendition exists for the video, the complete property will be automatically set to true. This does **not mean that all renditions are created and images and captions processed**. For the full status of ingestion, see [Dynamic Ingest API Notifications](/dynamic-ingest/general/notifications-dynamic-delivery-video-cloud.html)' example: true readOnly: true type: boolean created_at: description: when the video was created example: '2015-09-17T16:08:37.108Z' readOnly: true type: string created_by: $ref: '#/components/schemas/User' cue_points: description: array of cue points - can be added on creation or update items: $ref: '#/components/schemas/CuePoint' type: array custom_fields: additionalProperties: description: 'map of fieldname-value pairs; values have a maximum length of 1024 single-byte characters Note: be sure to use the internal name for the field, not the display name' type: string type: object delivery_type: description: "video delivery type:\n - `remote`: a remote asset\n - `dynamic_origin`: processed using the Dynamic Delivery ingest system\n - `live_origin`: a live stream from Brightcove Live\n - `unknown`: the delivery type could not be determined (may mean there are no playable renditions)" enum: - remote - dynamic_origin - live_origin - unknown example: dynamic_origin readOnly: true type: string description: description: video short description example: Herring gull on a wharf in Boston maxLength: 248 type: string digital_master_id: description: asset id of the digital master example: 734462494001 readOnly: true type: string drm_disabled: description: if true, the video is not DRM-packaged - applies to accounts that are enabled for DRM only example: true type: boolean duration: description: video duration in milliseconds example: 18160 readOnly: true type: integer economics: default: AD_SUPPORTED description: whether video is `AD_SUPPORTED` enum: - AD_SUPPORTED - FREE example: AD_SUPPORTED type: string folder_id: description: id of the folder that contains the video example: 560039e5e4b0e69e4b01cacd readOnly: true type: string forensic_watermarking: description: 'Indicates whether the video has forensic watermarking possible values: - `ACTIVE` - the video was transcoded with forensic watermarking and should be used during delivery - `UNAVAILABLE` - the video was not transcoded with forensic watermarking support and can’t be delivered using it - `null` - the value is for forensic watermarking is not available for the account; in this case the field is not returned in API responses if the video was not ingested with forensic watermarking, this field will be set to `UNAVAILABLE` automatically; if the video was ingested or retranscoded with forensic watermarking, this field will be set to `ACTIVE` automatically' example: ACTIVE readOnly: true type: string enum: - ACTIVE - UNAVAILABLE geo: $ref: '#/components/schemas/Geo' has_digital_master: description: whether video has an archived master than can be used for retranscoding example: true readOnly: true type: boolean id: description: video id example: 734462567001 readOnly: true type: string images: $ref: '#/components/schemas/VideoImages' labels: type: array description: Array of labels assigned to the video. See [Working with Labels](/cms/managing-videos/working-with-labels.html) for more information. items: type: string description: full hierarchical path for a label. link: $ref: '#/components/schemas/Link' long_description: description: video long description - can only be added on update, not creation example: Herring Gull near Fort Point Channel in Boston, MA, USA. 2019-04-25. maxLength: 5000 type: string name: description: video title example: Laughing Gull maxLength: 255 minLength: 1 type: string offline_enabled: default: false description: whether video is enabled for offline viewing example: true type: boolean original_filename: description: the original file name for the uploaded video example: gull-boston.mov readOnly: true type: string playback_rights_id: type: string description: Associates specified EPA playback rights with video. projection: description: used for 360 videos enum: - equirectangular example: equirectangular nullable: true type: string published_at: description: start date-time of first activation in ISO-8601(https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15) format example: 2019-04-30 23:27:22.507000+00:00 type: string reference_id: description: video reference-id (must be unique within the account) example: laughing_gull_2019_04_25 maxLength: 150 nullable: true type: string schedule: $ref: '#/components/schemas/Schedule' sharing: $ref: '#/components/schemas/Sharing' state: description: "The state of the video:\n - ACTIVE: the video is playable\n - INACTIVE: the video is not playable\n - PENDING: \n - DELETED: the video has been deleted (within the past 10 days; after that, the API won't return the video)" enum: - ACTIVE - INACTIVE - PENDING - DELETED example: ACTIVE type: string tags: description: array of tags - maximum characters per tag is 1000 example: - birds - sea items: type: string maxLength: 128 type: array text_tracks: description: array of text tracks - can only be added on update, not creation items: $ref: '#/components/schemas/TextTrack' type: array transcripts: description: array of transcription objects - can only be added on update, not creation items: $ref: '#/components/schemas/Transcript' type: array updated_at: description: when the video was last modified example: 2018-02-27 19:09:20.401000+00:00 readOnly: true type: string updated_by: $ref: '#/components/schemas/User' variants: $ref: '#/components/schemas/VideoVariants' title: Video type: object VideoPreview: description: Animated thumbnail preview metadata for the video properties: start: description: Start time in milliseconds for the preview segment example: 10000 type: integer sources: description: Array of HLS manifests for the animated preview items: $ref: '#/components/schemas/VideoPreviewSource' type: array title: VideoPreview type: object VideoPreviewSource: description: HLS manifest entry for animated preview properties: ext_x_version: description: HLS EXT-X-VERSION value example: '7' type: string src: description: URL to the preview HLS manifest example: https://manifest.prod.boltdns.net/.../preview.m3u8?... type: string type: description: MIME type example: application/x-mpegURL type: string title: VideoPreviewSource type: object Playlist: properties: account_id: description: Video Cloud account id example: 57838016001 readOnly: true type: string created_at: description: date/time created example: 2018-11-14 19:30:36.196000+00:00 format: date-time readOnly: true type: string description: description: playlist description example: Sea bird playlist maxLength: 255 type: string favorite: default: false description: whether playlist is in favorites list example: false type: boolean id: description: the playlist id example: 1403635561001 readOnly: true type: string name: description: the playlist name example: Sea Birds maxLength: 255 type: string reference_id: description: the playlist reference id (must be unique within the account) example: sea_birds_playlist type: string search: description: search string to retrieve the videos (smart playlists only) example: +tags:captions,training type: string state: description: Applies to EXPLICIT (manual) playlists only; `UPDATING` means the list is updating its video members and `READY` means that all videos have been added type: string enum: - READY - UPDATING readOnly: true type: description: 'the playlist type: EXPLICIT or smart playlist type' enum: - EXPLICIT - ACTIVATED_OLDEST_TO_NEWEST - ACTIVATED_NEWEST_TO_OLDEST - ALPHABETICAL - PLAYS_TOTAL - PLAYS_TRAILING_WEEK - START_DATE_OLDEST_TO_NEWEST - START_DATE_NEWEST_TO_OLDEST example: ACTIVATED_NEWEST_TO_OLDEST type: string updated_at: description: date/time last modified example: 2018-11-14 19:30:36.196000+00:00 format: date-time readOnly: true type: string video_ids: description: array of video ids (EXPLICIT playlists only) example: - '4084164751001' - '1532562858001' - '734484322001' - '1532530235001' - '734462570001' - '734462569001' - '734451481001' - '734445537001' items: type: string type: array title: Playlist type: object example: id: '5716873476001' account_id: '57838016001' created_at: '2018-01-23T12:55:29.674Z' description: My new sea playlist favorite: false name: Sea Videos reference_id: null type: ACTIVATED_NEWEST_TO_OLDEST updated_at: '2018-01-23T12:55:29.677Z' limit: 20 search: +tags:"birds" PlaylistInputFields: properties: description: description: playlist description example: Playlist of Birds that Live by the Sea maxLength: 255 type: string favorite: default: false description: whether playlist is in favorites list example: true type: boolean name: description: the playlist name example: Sea Bird Playlist maxLength: 255 type: string reference_id: description: the playlist reference id (must be unique within the account) example: sea_bird_playlist type: string search: description: search string to retrieve the videos (smart playlists only) example: +tags:birds,sea type: string search_syntax: description: the search syntax used for the search string; see [Managing Playlists](/cms/managing-videos/managing-playlists-using-cms-api.html) type: string default: v1 enum: - v1 - v2 type: description: 'the playlist type: EXPLICIT or smart playlist type' enum: - EXPLICIT - ACTIVATED_OLDEST_TO_NEWEST - ACTIVATED_NEWEST_TO_OLDEST - ALPHABETICAL - PLAYS_TOTAL - PLAYS_TRAILING_WEEK - START_DATE_OLDEST_TO_NEWEST - START_DATE_NEWEST_TO_OLDEST example: START_DATE_NEWEST_TO_OLDEST type: string video_ids: description: 'array of video ids (EXPLICIT playlists only) - maximum length: 1000' example: - '4084164751001' - '1532562858001' - '734484322001' - '1532530235001' - '734462570001' - '734462569001' - '734451481001' - '734445537001' items: type: string type: array title: Create/Update Playlist Fields type: object example: description: My new sea playlist name: Sea Videos type: ACTIVATED_NEWEST_TO_OLDEST limit: 20 search: tags:birds TextTrack: properties: default: default: false description: whether this is the default track - should only be true for one text track type: boolean id: description: System id for the text track readOnly: true type: string kind: default: captions description: 'How the track is meant to be used: `subtitles`, `captions`, `descriptions`, `chapters`, `metadata`.' enum: - subtitles - captions - descriptions - chapters - metadata - transcripts type: string label: description: label for the track type: string mime_type: description: mime-type for the track type: string src: description: URL for the .vtt file type: string srclang: description: 2-letter language code, such as "en" or "ko" type: string status: description: Indicates the actual situation of the track, if it is `published`, `draft`, or `null` for pre-existing text tracks. Draft tracks will not be displayed in the player. parameters: SearchPlaylists: description: Search string - see [playlist search guide](/cms/searching/cms-api-playlists-search.html) for details explode: true in: query name: q schema: example: name:%28Really%20Short%20Videos%29%20type:EXPLICIT type: string style: form AccountId: description: Video Cloud account ID. explode: false in: path name: account_id required: true schema: type: string style: simple PlaylistId: description: Playlist ID. explode: false in: path name: playlist_id required: true schema: type: string style: simple Offset: description: Number of items to skip - see [Paging Search Results](/cms/searching/using-cms-api-page-search-results.html) for more information explode: true in: query name: offset schema: default: 0 example: 20 format: int32 type: integer style: form include_video_preview: description: Whether to include the `video_preview` object (animated thumbnail preview metadata) in the response explode: true in: query name: include_video_preview schema: default: false type: boolean style: form Search: description: Search string - see [search guide](/cms/searching/cmsplayback-api-videos-search.html) for details explode: true in: query name: q schema: example: +name:Birds type: string style: form Limit_Playlist_Videos: description: Number of items to return - see [Get videos in a playlist](/cms/managing-videos/managing-playlists-using-cms-api.html#get_count_of_videos) for more information explode: true in: query name: limit schema: default: 100 example: 20 format: int32 maximum: 100 minimum: 1 type: integer style: form Limit: description: Number of items to return - see [Paging Search Results](/cms/searching/using-cms-api-page-search-results.html) for more information explode: true in: query name: limit schema: default: 20 example: 20 format: int32 maximum: 100 minimum: 1 type: integer style: form ContentType: description: 'Content-Type: application/json' example: application/json explode: false in: header name: Content-Type required: true schema: default: application/json type: string style: simple include_details: description: When it's false, api call response won't include caption info in [text_tracks] at all and it makes the response returns quicker. explode: true in: query name: include_details schema: default: true type: boolean style: form Authorization: description: 'Authorization: Bearer {access_token} - see [Getting Access Tokens](/oauth/code-samples/oauth-api-sample-get-access-token.html)' explode: false in: header name: Authorization required: true schema: type: string style: simple PlaylistSort: description: 'Field to sort results by - if absent and there is a search string, results are sorted by relevance or if there is no search string, results are sorted by `-updated_at` - note: to sort in descending order, preface the field name with a minus(`-`) sign. If the `q=` param is missing, the sort param will be ignored. Also if sort is set to an unsupported field, the quest will fail with an error' explode: true in: query name: sort schema: default: -updated_at enum: - name - -name - updated_at - -updated_at example: name type: string x-enum-elements: - description: The playlist name name: name - description: Date playlist was last updated (by a user or the system) name: updated_at style: form 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