Introducción
La API de reproducción es una API de baja latencia diseñada para su uso en el lado del cliente para obtener datos de vídeo o listas de reproducción de páginas web o aplicaciones móviles. No es una API de administración de medios general para integrar Video Cloud con su CMS u otros sistemas; para ello, debe utilizar la API de CMS.
Los resultados de la API de reproducción se filtran para devolver sólo vídeos reproducibles (State=Activo, indicador de ingestión completa = true, y en los datos/hora correctos si está programado). Esto significa que el reproductor podrá reproducir el vídeo tan pronto como exista una copia, incluso si otros siguen procesándose. Si necesita buscar vídeos que no se pueden reproducir actualmente, debe volver a utilizar la API de CMS en su lugar.
Tenga en cuenta también que para maximizar el rendimiento, los datos de vídeo a los que accede la API de reproducción se almacenan en caché durante un corto período de tiempo. El tiempo que un ID de conjunto de datos concreto almacenado en caché variará, pero puede durar hasta 20 minutos.
Consulte también la Referencia de API.
Casos de uso
los Jugador de Brightcove y el Reproductores Brightcove SDK Incluya métodos de catálogo idénticos a los métodos de la API de reproducción y, en su mayor parte, puede simplemente usarlos si solo está recuperando videos o listas de reproducción en tiempo de ejecución para reproducir.
Sin embargo, es posible que desee proporcionar una vista de vídeo o listas de reproducción en una pantalla de aplicaciones móviles donde no haya ningún reproductor presente.
Además, puede haber ocasiones en las que desee recuperar vídeos o listas de reproducción para mostrar información sobre ellos, sin tener un reproductor en la pantalla, como página de destino de un portal de vídeo, por ejemplo.
La API de reproducción es útil en estos casos.
Información general
URL base
La URL base para la API de reproducción es:
https://edge.api.brightcove.com/playback/v1
Ruta de la cuenta
En todos los casos, se solicitarán una cuenta de Video Cloud específica. Por lo tanto, siempre agregará el término seguido de su ID de cuenta a la URL base:accounts
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}
Autenticación
Las solicitudes se autentican mediante una clave de política, que se puede pasar de una de las tres maneras siguientes:
- En un argumento a un
Accept
encabezado:Accept: application/json;pk={policy_key}
Este es el método recomendado para un cliente basado en navegador, ya que permite que la solicitud siga adelante sin una solicitud adicional primero como parte de la comprobación de «pre-vuelo» del navegador CORS. Esto ahorra latencia la primera vez que se realiza una solicitud del navegador.
- En un
Authorization
encabezado usando la palabra clave realmBCOV-Policy
:Authorization: BCOV-Policy {policy_key}
- En un
BCOV-Policy
encabezado:BCOV-Policy: {policy_key}
Obtención de una clave de política
Hay tres formas de obtener una clave de política:
- A cada jugador de Brightcove se le asigna uno automáticamente. Puede encontrar instrucciones para obtener la clave de política de un jugador en este documento. Dado que las claves de política son buenas para toda la cuenta, puede utilizarlas independientemente de si ese reproductor está incrustado en la página.
- Puede generar una clave de política básica mediante el inicio rápido de claves de directiva
- Puede realizar una solicitud a la API de políticas
autenticación de tokens
Se admite la autenticación de tokens para contenido HLS y DASH. Si necesita autenticación de token, póngase en contacto con su administrador de cuentas para que lo active para su cuenta.
Evite las URL codificadas
Las URL de miniaturas, carteles, archivos de vídeo y otros medios nunca deben codificarse en las páginas o aplicaciones. El Playback API devolverá la última versión almacenada en caché de las URL para archivos multimedia, pero las direcciones URL están sujetas a cambios. Debe utilizar las (o) solicitudes para recuperar estas URL cada vez que se cargue la página, o almacenarlas en caché durante no más de seis horas.CMS APIPlayback API
Almacenamiento en caché de direcciones URL de vídeos e imágenes
Puede almacenar en caché las direcciones URL de vídeos e imágenes para mejorar el rendimiento de la página, pero la caché debe actualizarse regularmente. Si usted almacena en memoria caché las direcciones URL recuperadas para mejorar el rendimiento de sus páginas, asegúrese de actualizar la memoria caché repitiendo las llamadas a la API al menos una vez cada seis horas.
Métodos
La API sólo admite las siguientes solicitudes GET, de los siguientes tipos:
Solicitudes de vídeo
Se puede recuperar un único objeto de vídeo utilizando el id de vídeo o el identificador de referencia.
Obtener vídeo por id
Endpoint
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{video_id}
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/videos/38467382999
Respuesta de muestra
{
"account_id": "107767373999",
"ad_keys": null,
"created_at": "2010-07-12T22:37:34.760Z",
"description": "Avatar_MakingAScene_Featurette",
"duration": 595560,
"id": "38467382999",
"long_description": null,
"name": "Avatar_MakingAScene_Featurette",
"published_at": "2010-07-12T22:37:34.760Z",
"reference_id": "AvatarMakingShort",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"link": {
"text": "Full Dvd at Amazon",
"url": "http://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"tags": [
"copied"
],
"poster_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"thumbnail_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"poster": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"thumbnail": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
}, ... 6 more sources ...
]
}
Obtener vídeo por ID de referencia
Endpoint
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/ref:{reference_id}
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/videos/ref:nature_2010-07-12
Respuesta de muestra
{
"account_id": "107767373999",
"ad_keys": null,
"created_at": "2010-07-12T22:37:34.760Z",
"description": "Avatar_MakingAScene_Featurette",
"duration": 595560,
"id": "38467382999",
"long_description": null,
"name": "Avatar_MakingAScene_Featurette",
"published_at": "2010-07-12T22:37:34.760Z",
"reference_id": "nature_2010-07-12",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"link": {
"text": "Full Dvd at Amazon",
"url": "http://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"tags": [
"copied"
],
"poster_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"thumbnail_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"poster": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"thumbnail": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
}, ... 6 more sources ...
]
}
Buscar vídeos
Debe utilizar una clave de directiva habilitada para búsquedas cuando busque vídeos mediante la API de reproducción. Para obtener más información, consulte el documento Referencia de la API de reproducción .
Parámetros
Tenga en cuenta que todos los parámetros son opcionales. Sólo se aplican a GET Videos
solicitudes.
Parámetros | Descripción |
---|---|
q |
Cadena de consulta para búsquedas: para obtener más detalles, consulte la guía de búsqueda |
limit |
Número de vídeos a devolver - debe ser un número entero entre 1 y 100. Predeterminado: 20 |
offset |
Número de vídeos que se deben omitir (para resultados de paginación). Debe ser un entero positivo. Predeterminado: 0 |
sort |
Cadena que especifica el campo por el que se va a ordenar. Comience con - ordenar descendente.Si q se proporciona un valor para, entonces la ordenación predeterminada es por «score» (relevancia de los resultados de búsqueda para la consulta original).Si no q se proporciona ningún valor para, entonces la ordenación predeterminada es updated_at descendente.Los siguientes campos son válidos para ordenar: name , reference_id , created_at , published_at , updated_at , schedule_starts_at , schedule_ends_at , state , plays_total y plays_trailing_week Para obtener más detalles, consulte la Obtener videos sección de la referencia de la API de reproducción |
Uso de parámetros de búsqueda
Brightcove Playback API ofrece una forma programática de buscar vídeos en su Video Cloud biblioteca.
Para realizar búsquedas básicas y complejas en sus datos de vídeo, utilizará el parámetro:q
https://edge.api.brightcove.com/playback/v1/accounts/1752604051111/videos?q={search terms}
Para obtener más información sobre cómo buscar vídeos, consulte el documento Buscar vídeos .
Resultados de paginación
Utilice el limit
parámetro para especificar cuántos elementos desea devolver en una solicitud, hasta 100. A continuación, puede utilizar el offset
parámetro para realizar una página a través de conjuntos de resultados más grandes que el limit
. El es el número de elementos que se deben omitir.offset
Por ejemplo, la siguiente búsqueda devuelve vídeos 51-75 del conjunto total de resultados, suponiendo que el conjunto de resultados total tenga al menos 75 vídeos:
/videos?q=updated_at:2014-01-01..2014-06-30&limit=25&offset=50
los limit
y offset
Los parámetros solo se pueden usar para videos.
Práctica recomendada de paginación
Al realizar búsquedas a través del conjunto de resultados desde la API de reproducción, se recomienda seguir estos pasos:
- Utilizar el
limit
yoffset
parámetros para devolver grupos de datos de su conjunto de resultados./accounts/578380111111/videos?q=tags:nature&limit=20&offset=50
- Con cada respuesta, verá que el
count
campo siempre muestra el número máximo de vídeos en su conjunto de resultados.{"count": 171, "videos": [ ... ] }
- El total
count
de vídeos de tu primera solicitud se puede utilizar para determinar cuántas páginas más necesitarás solicitar.
Alternativamente, puede interrogar elcount
valor con cada respuesta y continuar hasta que el tamaño de páginacount
sea menor o igual que el tamaño de página veces ellimit
.count <= page-number * limit
Clasificación de los resultados de vídeo
Utilice el parámetro sort=field_name
para especificar cómo deben ordenarse los resultados. Puede ordenar en los siguientes campos de vídeo:[1-1]
- Nombre
- reference_id
- created_at
- published_at
- updated_at
- schedule_starts_at (nota: este es el campo de ordenación - el campo de búsqueda es
schedule.starts_at
) - schedule_ends_at (nota: este es el campo de ordenación - el campo de búsqueda es
schedule.ends_at
) - state
- plays_total[1-2]
- plays_trailing_week[1-2]
Notas
- [ 1-1] Si no proporciona un valor de clasificación para una llamada de búsqueda por vídeo, los resultados se ordenarán por relevancia. Si no proporciona un valor de ordenación para una llamada de vídeo, los resultados se ordenarán de forma descendente.
GET
updated_at
- [ 1-2] Puede ordenar por
plays_total
oplays_trailing_week
, pero estos campos no están incluidos en los resultados
Todos los vídeos y conjuntos de datos de gran tamaño
Si estás recuperando todos los vídeos de tu cuenta, o un gran número de vídeos, hay algunas cosas que debes tener en cuenta:
- Puede que tenga la tentación de usar el más grande permitido (100), pero es mejor recuperar videos en lotes de 25 o menos para minimizar la posibilidad de que las solicitudes API agoten el tiempo de espera
limit
- A medida que está paginando a través de conjuntos de datos grandes, es posible que los datos de vídeo se actualicen durante la operación, lo que podría hacer que los elementos cambien en las respuestas:
- Es posible que veas un elemento repetido en páginas sucesivas.
- Es posible que se pierda un elemento, ya que se ha desplazado a un conjunto de respuestas anterior
Para tener en cuenta la primera posibilidad, su aplicación debe desduplicar la lista completa de elementos después de que haya terminado de recuperar vídeos. Para manejar la segunda posibilidad, debe comparar el número total de elementos recuperados (después de desduplicar) con el número que estaba esperando, y luego volver a ejecutar las solicitudes, ordenando los resultados por last_modified_date (descendente); no debería necesitar recuperar más de un lote para recoger los artículos perdidos.
- Puede disminuir la probabilidad de que se produzcan escenarios en el elemento anterior ordenando los resultados devueltos correctamente. La clasificación predeterminada por relevancia para las búsquedas se basa en un algoritmo complejo que busca combinaciones de palabras clave, etiquetas y valores de campo personalizados. Si está buscando vídeos basados en varias palabras clave, etiquetas o campos personalizados, ordenar por relevancia es exactamente lo que desea. Sin embargo, si solo está tratando de recuperar todos o un conjunto grande de sus vídeos, establecer el
sort
parámetro explícitamente le dará más control sobre el orden de los elementos devueltos.
Obtener vídeos
Endpoint
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/videos?q=tags:nature,name:nature
Respuesta de muestra
{
"count": 123,
"videos":
[
{<video1 fields>},
{<video2 fields>},
...
]
}
Respuesta de error
si intenta utilizar el extremo Obtener vídeos con una clave de directiva que NO está habilitada para la búsqueda, recibirá el siguiente mensaje de error de la API de reproducción:
[
{
"api_call": "search",
"error_subcode": "API",
"error_code": "ACCESS_DENIED",
"message": "Access to this resource is forbidden by access policy."
}
]
Encontrar vídeos relacionados
La API de reproducción le permite buscar en su cuenta vídeos relacionados con el vídeo especificado. Basándose en el name
y short description
del vídeo especificado, la API buscará cualquier coincidencia parcial en los siguientes campos:
name
short description
long description
tags
Si la restricción geográfica está en vigor, es posible que no reciba una página completa de resultados.
Parámetros
Los siguientes parámetros de URL se pueden utilizar para solicitudes de vídeos relacionados con GET:
Parámetros | Descripción |
---|---|
limit |
El número de vídeos que se van a devolver (predeterminado=20; máximo=100) |
ad_config_id |
Añada su ad_config_id para devolver vídeos con SSAI |
De forma predeterminada, la respuesta contendrá hasta 20 vídeos. Puede utilizar el limit
parámetro para devolver hasta un máximo de 100 vídeos, con un coste de latencia mayor.
Tenga en cuenta que no hay ningún offset
parámetro al buscar vídeos relacionados, por lo que no podrá visualizar los resultados de sus vídeos.
Obtener vídeos relacionados con el id de video
Endpoint
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{video_id}/related
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/5565662146001/related
Obtener vídeos relacionados usando el ID de referencia
Endpoint
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/ref:{reference_id}/related
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/ref:nature/related
Respuesta de muestra
En la respuesta a continuación, observe que no hay ningún count
campo, a diferencia de la respuesta de los vídeos de búsqueda .
{
"videos":
[
{<video1 fields>},
{<video2 fields>},
...
]
}
Respuesta de error
Si intenta utilizar el extremo de búsqueda relacionado con una clave de directiva que NO está habilitada para la búsqueda, recibirá el siguiente mensaje de error de la API de reproducción:
[
{
"api_call": "search",
"error_subcode": "API",
"error_code": "ACCESS_DENIED",
"message": "Access to this resource is forbidden by access policy."
}
]
Solicitud de vídeo con SSAI
Incluso si NO está utilizando un reproductor web de Brightcove o los SDK nativos de Brightcove en su aplicación, puede utilizar la inserción de anuncios del lado del servidor (SSAI) con su propio reproductor.
Obtener vídeo con SSAI
Para devolver un vídeo con SSAI, añada el ID de configuración del anuncio como parámetro URL a la solicitud de la API de reproducción. Con esta solicitud, puede usar un ID de vídeo o un ID de referencia de vídeo.
Endpoint con parámetro URL
Añada su ad_config_id
al final de la solicitud de la API de reproducción:
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/videos/{video_id}?ad_config_id={ad_config_id}
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/5565662146001?ad_config_id=1234abcd
En la respuesta de ejemplo a continuación, notará lo siguiente:
- La respuesta es similar a la que si no incluyó un ID de configuración de anuncio.
- Los elementos de la
sources
matriz contendrán una nueva propiedad llamadavmap
. - Si desea saber dónde se encuentran los anuncios en el contenido, puede leer el archivo VMAP vinculado en la
vmap
propiedad. - La
src
propiedad dentro de lasources
matriz contendrá la URL del origen HLS o DASH. Esto es lo mismo que la respuesta cuando no se utiliza ningún ID de configuración de anuncio, pero sesrc
incluirán anuncios con el contenido principal.
Respuesta de muestra
{
"description": "The story of a giant rabbit with a heart bigger than himself. ",
"poster_sources": [
{
"src": "https://cf-images.us-east-1.prod.boltdns.net/v1/jit/3723496277001/dd5bd69c-e962-4a43-9dbd-94faaaba1785/main/1280x720/5m17s130ms/match/image.jpg"
}
],
"tags": [],
"cue_points": [],
"custom_fields": {},
"account_id": "3723496277001",
"sources": [
{
"ext_x_version": "4",
"vmap": "http://ssaiplayback.prod.boltdns.net/playback/once/v1/vmap/hls/v4/clear/3723496277001/7a3316d9-1b06-4d62-bec8-3919b43fffbb/dd5bd69c-e962-4a43-9dbd-94faaaba1785/content.vmap?bc_token=NTllMTMxYjNfMTdkOTY2YThhNjU5MDk5ZTQ3NDBkNmUxOTYyOGRkNzM0ZjBiM2RjMGEwOThjOGFkYjk1MWQxMzFmNGYzMjA5YQ%3D%3D",
"type": "application/x-mpegURL",
"src": "http://ssaiplayback.prod.boltdns.net/playback/once/v1/hls/v4/clear/3723496277001/7a3316d9-1b06-4d62-bec8-3919b43fffbb/dd5bd69c-e962-4a43-9dbd-94faaaba1785/master.m3u8?bc_token=NTllMTMxYjNfZGM5ZDg0NGM2ZGJjZDcxZTFjOGYyODBlMzM2NmNmMmJkMWNhZDczNWViNzRiMjIwNjg5MjkzZGM0ZmJlMTc1Yw%3D%3D"
},
...
],
"created_at": "2017-05-15T17:09:11.171Z"
}
Requerir ad_config_id
Mediante la API de directivas, puede crear una clave de directiva que requiera incluir el parámetro ad_config_id
URL al realizar solicitudes a la API de reproducción. Para obtener más información sobre la configuración de esta característica, consulte el documento Referencia de API de directivas .
Cuando la clave de directiva está configurada para requerir un ad_config_id
, y no la agrega a una solicitud de API de reproducción, obtendrá el siguiente error:
[
{
"error_subcode": "AD_CONFIG",
"error_code": "ACCESS_DENIED",
"message": "Missing required ad_config_id parameter"
}
]
Solicitudes de lista de reproducción
Un objeto de vídeo de lista de reproducción se puede recuperar usando el id de la lista de reproducción o su id de referencia.
Parámetros
Los siguientes parámetros de URL se pueden utilizar para solicitudes de lista de reproducción
Parámetros | Descripción |
---|---|
límite | El número de vídeos que se van a devolver (predeterminado=20; máximo=100) |
compensar | número de vídeos para omitir (desde el inicio de la lista de reproducción; default=0) |
Por ejemplo, estos parámetros anexados a su solicitud -?limit=40&offset=20 - devolvería videos 21-60 en la lista de reproducción (suponiendo que haya tantos).
Obtener lista de reproducción por id
Endpoint
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/playlists/{playlist_id}
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/playlists/38467382999
Respuesta de muestra
{
"account_id": "107767373999",
"created_at": "2010-07-12T22:43:30.290Z",
"description": null,
"id": "111592530001",
"name": "Play One",
"reference_id": null,
"type": "EXPLICIT",
"updated_at": "2010-07-12T22:51:25.055Z",
"videos": [
{
"description": "Avatar_MakingAScene_Featurette",
"poster_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"tags": [
"copied"
],
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"account_id": "107767373999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
},
{
"avg_bitrate": 267000,
"width": 320,
"duration": 595560,
"size": 19894997,
"stream_name": "mp4:107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728852001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 267000,
"width": 320,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 19894997,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728852001"
},
{
"avg_bitrate": 549000,
"width": 480,
"duration": 595567,
"size": 40889436,
"stream_name": "mp4:107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728860001",
"container": "MP4",
"height": 268,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 549000,
"width": 480,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 40889436,
"height": 268,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728860001"
},
{
"avg_bitrate": 835000,
"width": 640,
"duration": 595567,
"size": 62142992,
"stream_name": "mp4:107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728865001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 835000,
"width": 640,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 62142992,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728865001"
},
{
"avg_bitrate": 1744000,
"width": 640,
"duration": 595567,
"size": 129836869,
"stream_name": "mp4:107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735357001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1744000,
"width": 640,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 129836869,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735357001"
},
{
"avg_bitrate": 1249000,
"width": 640,
"duration": 595567,
"size": 92994065,
"stream_name": "mp4:107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735369001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1249000,
"width": 640,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 92994065,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735369001"
}
],
"name": "Avatar_MakingAScene_Featurette",
"reference_id": "AvatarMakingShort",
"long_description": null,
"duration": 595560,
"published_at": "2010-07-12T22:37:34.760Z",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"thumbnail": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"poster": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"link": {
"text": "Full Dvd at Amazon",
"url": "http://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"id": "38467382999",
"ad_keys": null,
"thumbnail_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"created_at": "2010-07-12T22:37:34.760Z"
}
],
}
Obtener lista de reproducción por ID de referencia
Endpoint
https://edge.api.brightcove.com/playback/v1/accounts/{account_id}/playlists/ref:{reference_id}
Ejemplo
https://edge.api.brightcove.com/playback/v1/accounts/57838016001/playlists/ref:nature_2010-07-12
Respuesta de muestra
{
"account_id": "107767373999",
"created_at": "2010-07-12T22:43:30.290Z",
"description": null,
"id": "111592530001",
"name": "Play One",
"reference_id": nature_2010-07-12,
"type": "EXPLICIT",
"updated_at": "2010-07-12T22:51:25.055Z",
"videos": [
{
"description": "Avatar_MakingAScene_Featurette",
"poster_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"tags": [
"copied"
],
"cue_points": [
{
"id": "111637107001",
"name": "Pre-roll",
"type": "AD",
"time": 0,
"metadata": null,
"force_stop": false
}
],
"custom_fields": {
"moretext": "this is the first video uploaded",
"mylist": "abc"
},
"account_id": "107767373999",
"sources": [
{
"avg_bitrate": 379000,
"width": 320,
"duration": 595560,
"size": 28196307,
"stream_name": "mp4:107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728840001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 379000,
"width": 320,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728840001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 28196307,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728840001"
},
{
"avg_bitrate": 267000,
"width": 320,
"duration": 595560,
"size": 19894997,
"stream_name": "mp4:107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728852001",
"container": "MP4",
"height": 180,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 267000,
"width": 320,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728852001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 19894997,
"height": 180,
"duration": 595560,
"container": "MP4",
"codec": "H264",
"asset_id": "111728852001"
},
{
"avg_bitrate": 549000,
"width": 480,
"duration": 595567,
"size": 40889436,
"stream_name": "mp4:107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728860001",
"container": "MP4",
"height": 268,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 549000,
"width": 480,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728860001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 40889436,
"height": 268,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728860001"
},
{
"avg_bitrate": 835000,
"width": 640,
"duration": 595567,
"size": 62142992,
"stream_name": "mp4:107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111728865001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 835000,
"width": 640,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111728865001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 62142992,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111728865001"
},
{
"avg_bitrate": 1744000,
"width": 640,
"duration": 595567,
"size": 129836869,
"stream_name": "mp4:107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735357001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1744000,
"width": 640,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111735357001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 129836869,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735357001"
},
{
"avg_bitrate": 1249000,
"width": 640,
"duration": 595567,
"size": 92994065,
"stream_name": "mp4:107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?__nn__=1497926354001&slist=107767373999/&auth=daEciavcicRbhbtdSaBdBdVbXd0aUdTcMaX-bvRrSa-hca-slyCzrux_zJAq_HFCB_EvE&aifp=bcosuds",
"codec": "H264",
"asset_id": "111735369001",
"container": "MP4",
"height": 360,
"app_name": "rtmp://cp150446.edgefcs.net/ondemand"
},
{
"avg_bitrate": 1249000,
"width": 640,
"src": "http://uds.ak.o.brightcove.com/107767373999/107767373999_111735369001_Avatar-MakingAScene-Featurette.mp4?pubId=107767373999&videoId=38467382999",
"size": 92994065,
"height": 360,
"duration": 595567,
"container": "MP4",
"codec": "H264",
"asset_id": "111735369001"
}
],
"name": "Avatar_MakingAScene_Featurette",
"reference_id": "AvatarMakingShort",
"long_description": null,
"duration": 595560,
"published_at": "2010-07-12T22:37:34.760Z",
"text_tracks": [],
"updated_at": "2010-07-12T22:54:29.666Z",
"thumbnail": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"poster": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
"link": {
"text": "Full Dvd at Amazon",
"url": "http://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
},
"id": "38467382999",
"ad_keys": null,
"thumbnail_sources": [
{
"src": "http://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
}
],
"created_at": "2010-07-12T22:37:34.760Z"
}
],
}
Subtítulos
Los subtítulos opcionales proporcionan información adicional sobre su vídeo para las personas que deseen acceder a él. Los subtítulos son necesarios para que los sordos y con dificultades auditivas accedan a la parte de audio de sus vídeos. Si es nuevo en los subtítulos, consulte la descripción general: Adición de subtítulos a un documento de vídeo .
WebVTT externo
Los subtítulos externos de WebVTT son archivos de texto separados del vídeo. Puede asociar archivos de subtítulos a un vídeo de la siguiente manera:
Respuesta de muestra
A continuación se muestra una respuesta de ejemplo de la API de reproducción en la que se ha agregado un archivo de subtítulos WebVTT a un vídeo mediante el módulo Media. Observe que las src
propiedades de la pista de texto apuntan a un archivo de subtítulos externo.
{
"text_tracks": [
{
"mime_type": null,
"account_id": "20318290001",
"default": true,
"sources": [
{
"src": "https://static.3playmedia.com/p/files/2240988/threeplay_transcripts/6418302.vtt?project_id=10127&format_id=51&refresh=1515241856"
}
],
"src": "https://static.3playmedia.com/p/files/2240988/threeplay_transcripts/6418302.vtt?project_id=10127&format_id=51&refresh=1515241856",
"asset_id": null,
"label": "English",
"id": "13d66def-d004-4e75-b160-4ac693eff7d7",
"kind": "captions",
"srclang": "en"
}
],
}
WebVTT en manifiesto
Los subtítulos de WebVTT en el manifiesto se ingeren con sus vídeos. Esto se puede hacer cuando ingeres el vídeo por primera vez o después de que se haya ingerido el vídeo. Puede crear subtítulos dentro del manifiesto de la siguiente manera:
Respuesta de muestra
A continuación se muestra una respuesta de ejemplo de la API de reproducción en la que se ha agregado un archivo de subtítulos WebVTT a un vídeo mediante la API de ingesta dinámica. Observe que las src
propiedades de la pista de texto apuntan a archivos internos de Brightcove.
{
"text_tracks": [
{
"mime_type": "text/webvtt",
"account_id": "1752604059001",
"default": false,
"sources": [
{
"src": "http://bcboltbde696aa-a.akamaihd.net/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt?akamai_token=exp=1518032480~acl=/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt*~hmac=5aa9f206a8e970efb4cab95278e2e9b16a29b3ccf82951a91245352d9149b173"
},
{
"src": "https://bcboltbde696aa-a.akamaihd.net/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt?akamai_token=exp=1518032480~acl=/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt*~hmac=5aa9f206a8e970efb4cab95278e2e9b16a29b3ccf82951a91245352d9149b173"
}
],
"src": "http://bcboltbde696aa-a.akamaihd.net/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt?akamai_token=exp=1518032480~acl=/media/v1/text/vtt/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/text.vtt*~hmac=5aa9f206a8e970efb4cab95278e2e9b16a29b3ccf82951a91245352d9149b173",
"asset_id": null,
"label": "EN",
"id": "92cb36a7-c836-4506-a87f-f649316c0cdf",
"kind": "captions",
"in_band_metadata_track_dispatch_type": "",
"srclang": "en"
}
],
}
Manifiesto
El manifiesto de los archivos de vídeo HLS o DASH también contiene la información necesaria para incluir los subtítulos de WebVTT.
HLS
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio-0",NAME="en (Main)",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/8b12c808-c5ea-47f3-abfa-c23b023db297/10s/rendition.m3u8?fastly_token=NWE3YjU3ZThfNzAwNTczOWM4MWQ4Mzk2NjFkYjVjYmFhYjQwNzY2MWUzM2MyNDM5ZDA5ZGExYTFkMzRmYzA0MDdhOTlmZWJhMw%3D%3D"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles-0",NAME="EN",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="en",URI="https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf/rendition.m3u8?fastly_token=NWE3YjU3ZThfNDYzOThkZGJiZTU1NTlhOTdkYzA5OTA3M2UzZGRlYTgzMmRkZmUxMGIxYTJkY2Y5ZDQ1ODFiNTEyMmNiZDVhMw%3D%3D"
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=519200,CODECS="mp4a.40.2,avc1.420015",RESOLUTION=480x270,AUDIO="audio-0",CLOSED-CAPTIONS=NONE,SUBTITLES="subtitles-0"
https://manifest.prod.boltdns.net/manifest/v1/hls/v4/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/5f7850d9-9a65-4eee-8810-86a1e18e05fb/10s/rendition.m3u8?fastly_token=NWE3YjU3ZThfY2Q5YmE2ODc2OWFiNTgyZjUxMjc1MzRhNmQxMzA0ZmJmY2RlMGU4ZjBiNDExZGRmNjc3YjQ0OGQ5N2RiOTVmMA%3D%3D
PIZCA
<AdaptationSet mimeType="text/vtt" lang="en">
<Representation bandwidth="256" id="92cb36a7-c836-4506-a87f-f649316c0cdf">
<BaseURL>http://bcboltbde696aa-a.akamaihd.net/media/v1/dash/live/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a/92cb36a7-c836-4506-a87f-f649316c0cdf.vtt?akamai_token=exp=1518032494~acl=/media/v1/dash/live/clear/1752604059001/3585c49a-5a95-4783-8625-e3af727d094a*~hmac=3e2edc412c273f1255f2c18bbbcee7afc6a2edb74573f9295b0f05feda69f0e2</BaseURL>
</Representation>
</AdaptationSet>