Descripción general: API de reproducción

La API de reproducción se utiliza para obtener datos de listas de reproducción y vídeos de Video Cloud. Por lo general, se usa para enviar datos de video a un reproductor en una página web o en una aplicación móvil.

Introducción

La API de reproducción es una API de baja latencia destinada al uso del lado del cliente para obtener datos de listas de reproducción o videos de páginas web o aplicaciones móviles. Es no una API de administración de medios general para usar en la integración de Video Cloud con su CMS u otros sistemas; para eso, debe usar la API de CMS.

Los resultados de la API de reproducción se filtran para que solo muestren videos reproducibles (estado = ACTIVO, marca de ingestión completa = verdadero y con los datos / hora correctos si está programado). Esto significa que el reproductor podrá reproducir el video tan pronto como exista una interpretación, incluso si otras aún se están procesando. Si necesita buscar videos que no se pueden reproducir actualmente, debe usar nuevamente el API de CMS en lugar de.

Tenga en cuenta también que para maximizar el rendimiento, los datos de video a los que accede la API de reproducción se almacenan en caché durante un breve período de tiempo. El tiempo de almacenamiento en caché de un ID de conjunto de datos en particular variará, pero puede tardar hasta 20 minutos.

También vea el Referencia de API.

Casos de uso

La Jugador de Brightcove y el Reproductores SDK de Brightcove Incluya métodos de catálogo idénticos a los métodos de la API de reproducción, y en su mayor parte, simplemente puede 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 videos o listas de reproducción en una pantalla de aplicación móvil donde no haya ningún reproductor presente.

Además, puede haber ocasiones en las que desee recuperar videos o listas de reproducción para mostrar información sobre ellos, sin tener un reproductor en la pantalla, como la página de destino de un portal de videos, por ejemplo.

La API de reproducción es útil en estos casos.

Información general

URL base

La URL base de la API de reproducción es:

https://edge.api.brightcove.com/playback/v1

Ruta de la cuenta

En todos los casos, las solicitudes se realizarán para un Video Cloud Cuenta. Por lo tanto, siempre agregarás el término accounts seguido del ID de tu cuenta a la URL base:

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 estas tres formas:

  1. En un argumento a un Accept encabezamiento:
    Accept: application/json;pk={policy_key}

    Este es el método recomendado para un cliente basado en navegador, ya que permite que la solicitud continúe sin una solicitud adicional primero como parte de la verificación "previa al vuelo" de CORS del navegador. Esto ahorra latencia la primera vez que se realiza una solicitud del navegador.

  2. En un Authorization encabezado usando la palabra clave realm BCOV-Policy:
    Authorization: BCOV-Policy {policy_key}
  3. en un BCOV-Policy encabezamiento:
    BCOV-Policy: {policy_key}

Obtener una clave de política

Hay tres formas de obtener una clave de política:

  1. A cada jugador de Brightcove se le asigna uno automáticamente. Puedes 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 usarlas independientemente de si ese reproductor está incrustado en la página.
  2. Puede generar una clave de política básica utilizando el Inicio rápido de claves de políticas
  3. Puede realizar una solicitud al API de política

Autenticación de token

Se admite la autenticación de token para contenido HLS y DASH. Si necesita autenticación de token, comuníquese con su Gerente de éxito del cliente para habilitarlo para su cuenta.

Evite las URL codificadas de forma rígida

Las URL de miniaturas, carteles, archivos de video y otros medios nunca deben codificarse en sus páginas o aplicaciones. La Playback API devolverá la última versión almacenada en caché de las URL para los archivos multimedia, pero las URL en sí están sujetas a cambios. Deberías usar el CMS API ( o Playback API ) solicita recuperar estas URL cada vez que se carga la página, o almacenarlas en caché durante no más de seis horas.

Almacenamiento en caché de URL de imágenes y videos

Puede almacenar en caché las URL de videos e imágenes para mejorar el rendimiento de la página, pero la caché debe actualizarse con regularidad. Si almacena en caché las URL que recupera para mejorar el rendimiento de sus páginas, asegúrese de actualizar la caché repitiendo las llamadas a la API al menos una vez cada seis horas.

Métodos

La API solo admite las siguientes solicitudes GET, de los siguientes tipos:

Solicitudes de video

Se puede recuperar un solo objeto de video utilizando la identificación de video o la identificación de referencia.

Obtener video por id

Punto final

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": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
  },
  "tags": [
    "copied"
  ],
  "poster_sources": [
    {
      "src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
    }
  ],
  "thumbnail_sources": [
    {
      "src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
    }
  ],
  "poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
  "thumbnail": "https://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": "https://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 video por ID de referencia

Punto final

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": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
  },
  "tags": [
    "copied"
  ],
  "poster_sources": [
    {
      "src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999"
    }
  ],
  "thumbnail_sources": [
    {
      "src": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999"
    }
  ],
  "poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
  "thumbnail": "https://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": "https://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 videos

Debes usar un Clave de política habilitada para búsqueda , al buscar videos usando la API de reproducción. Para obtener más detalles, consulte la Referencia de la API de reproducción documento.

Parámetros

Tenga en cuenta que todos los parámetros son Opcional. Se aplican a GET Videos solo solicitudes.

GET parámetros de solicitud de videos
Parámetro 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 videos para devolver: debe ser un número entero entre 1 y 1000. Predeterminado: 20
offset Número de videos para omitir (para resultados de paginación). Debe ser un número entero positivo. Predeterminado: 0
sort Una cadena que especifica el campo por el que ordenar.
Empezar con - ordenar descendente.
Si un valor para q se proporciona, entonces el orden predeterminado es por "puntuación" (relevancia de los resultados de la búsqueda para la consulta original).
Si no hay valor para q se proporciona, entonces el orden predeterminado es por 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 más detalles, consulte el Obtener vídeos sección de referencia de la API de reproducción
config_id Ver reglas de entrega
ad_config_id Ver solicitudes de video con SSAI

Brightcove's Playback API proporciona una forma programática de buscar videos en su Video Cloud Biblioteca.

Para realizar búsquedas básicas y complejas en sus datos de video, utilizará el q parámetro:

https://edge.api.brightcove.com/playback/v1/accounts/1752604051111/videos?q={search terms}

Para obtener detalles sobre cómo buscar videos, consulte la Buscar videos documento.

Resultados de paginación

Utilizar el limit parámetro para especificar cuántos artículos desea devolver en una solicitud, hasta 1000. A continuación, puede utilizar el offset parámetro para paginar conjuntos de resultados que son más grandes que el limit. La offset es el número de elementos que se deben omitir.

Por ejemplo, la siguiente búsqueda devuelve videos del 51 al 75 del conjunto de resultados total, asumiendo que el conjunto de resultados total tiene al menos 75 videos:

/videos?q=updated_at:2014-01-01..2014-06-30&limit=25&offset=50

La limit y offset Los parámetros solo se pueden usar para videos.

Mejores prácticas de paginación

Al hojear su conjunto de resultados desde la API de reproducción, se recomienda seguir estos pasos:

  1. Utilizar el limit y offset parámetros para devolver grupos de datos de su conjunto de resultados.
    /accounts/578380111111/videos?q=tags:nature&limit=20&offset=50
  2. Con cada respuesta, verá que el count El campo siempre muestra la cantidad máxima de videos en su conjunto de resultados.
    {"count": 171,
      "videos": [ ... ]
    }
  3. El total count de los videos de su primera solicitud se puede utilizar para determinar cuántas páginas más necesitará solicitar.

    Alternativamente, puede interrogar al count valor con cada respuesta y continúe hasta que el count es menor o igual que el tamaño de la página multiplicado por el limit.
    count <= page-number * limit

Ordenar los resultados de los videos

Usa el parámetro sort=field_name para especificar cómo se deben ordenar los resultados. Puede ordenar los siguientes campos de video:[1-1]

  • nombre
  • reference_id
  • created_at
  • publicado_en
  • updated_at
  • schedule_starts_at (nota: esta es la clasificar campo - el el campo de búsqueda es schedule.starts_at)
  • schedule_ends_at (nota: esta es la clasificar campo - el el campo de búsqueda es schedule.ends_at)
  • estado
  • 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 de video, los resultados se ordenarán por relevancia. Si no proporciona un valor de clasificación para un GET llamada de videos, los resultados se ordenarán por updated_at descendente.
  • [1-2] Puedes ordenar en plays_total o plays_trailing_week , pero estos campos no se incluyen en los resultados

Todos los videos y grandes conjuntos de datos

Si está recuperando todos los videos de su cuenta, o una gran cantidad de videos, hay algunas cosas que debe tener en cuenta:

  1. Es posible que tenga la tentación de utilizar el mayor permitido limit (1000), pero es mejor recuperar videos en lotes de 25 o menos para minimizar la posibilidad de que se agote el tiempo de espera de las solicitudes de API.
  2. A medida que navega a través de grandes conjuntos de datos, es posible que los datos de video se actualicen durante la operación, lo que podría hacer que los elementos cambien en las respuestas:
    • Es posible que vea un elemento repetido en páginas sucesivas.
    • Es posible que se pierda un elemento, ya que se ha cambiado a un conjunto de respuestas anterior

    Para tener en cuenta la primera posibilidad, su aplicación debe eliminar la lista completa de elementos una vez que haya terminado de recuperar los videos. Para manejar la segunda posibilidad, debe comparar el número total de elementos recuperados (después de la eliminación de duplicados) con el número que esperaba, y luego volver a ejecutar las solicitudes, clasificando los resultados por last_modified_date (descendente); no debería ser necesario recuperar más de un lote para recoger los artículos perdidos.

  3. Puede disminuir la probabilidad de los escenarios en el elemento anterior ordenando los resultados devueltos de manera adecuada. La clasificación predeterminada por Relevancia para búsquedas se basa en un algoritmo complejo que busca combinaciones de palabras clave, etiquetas y valores de campos personalizados. Si está buscando videos basados en múltiples palabras clave, etiquetas y / o campos personalizados, ordenar por relevancia es exactamente lo que desea. Sin embargo, si solo está intentando recuperar todos o una gran parte de sus videos, sort El parámetro explícitamente le dará más control sobre el orden de los elementos devueltos.

Obtener videos

Punto final

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 videos con una clave de política 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."
  }
]

La API de reproducción le permite buscar en su cuenta videos relacionados con el video especificado. Basado en el name y short description del video especificado, la API buscará coincidencias parciales 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 usar para solicitudes de videos relacionados con GET:

OBTENER Videos relacionados Solicitar parámetros
Parámetro Descripción
limit El número de videos a devolver (predeterminado=20; máximo=1000)
ad_config_id Agregue su ad_config_id para regresar videos con SSAI

De forma predeterminada, la respuesta contendrá hasta 20 videos. Puedes usar el limit parámetro para devolver hasta un máximo de 1000 vídeos, con un coste de latencia incrementada.

Note que no hay offset cuando encuentre videos relacionados, por lo que no podrá desplazarse por los resultados de su video.

Obtener videos relacionados usando la identificación de video

Punto final

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 videos relacionados usando la identificación de referencia

Punto final

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 count campo, a diferencia del buscar videos respuesta.

{
  "videos":
    [
      {<video1 fields>},
      {<video2 fields>},
      ...
    ]
}

Respuesta de error

Si intenta utilizar el punto final relacionado con la búsqueda con una clave de política 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."
  }
]

Reglas de entrega

Para aplicar reglas de entrega a las respuestas a las solicitudes de la API de reproducción, agregue el config_id={DELIVERY_RULES_ID} a la solicitud

Ejemplo

https://edge.api.brightcove.com/playback/v1/accounts/1752604059001/videos/6026822730001?config_id=9869b9f8-59a1-4490-a092-c28b6cf79764

Solicitud de video con SSAI

Incluso si NO está usando un reproductor web de Brightcove o los SDK nativos de Brightcove en su aplicación, aún puede usar la inserción de anuncios del lado del servidor (SSAI) con su propio reproductor.

Obtener video con SSAI

Para devolver un video con SSAI, agregue su ID de configuración de anuncios como parámetro de URL a su solicitud de Playback API. Con esta solicitud, puede usar una identificación de video o una identificación de referencia de video.

  1. Añade tu ad_config_id hasta el final de la solicitud de la API de reproducción:

    Punto final con parámetro de URL

    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
  2. En la respuesta de muestra a continuación, notará lo siguiente:

    • La respuesta es similar a eso si no incluyó un ID de configuración de anuncios.
    • Los elementos del sources matriz contendrá una nueva propiedad llamada vmap.
    • Si desea saber dónde se encuentran los anuncios en el contenido, puede leer el archivo VMAP vinculado en el vmap propiedad.

    Respuesta de la API de reproducción 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": "https://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": "https://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"
        }
  3. Copia uno de los vmap URL y péguelo en la barra de búsqueda del navegador para ver la respuesta de VMAP.
  4. La respuesta de VMAP contiene un <bc:Brightcove etiqueta con un contenturi atributo. Esta es la URL que debe usar para cargar su reproductor.

    Ejemplo de respuesta VMAP

    A continuación, se muestra un ejemplo de una respuesta de vmap:

    <vmap:VMAP xmlns:bc="bc" xmlns:vmap="https://www.iab.net/vmap-1.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" version="1.0">
            <vmap:Extensions>
              <bc:Brightcove ttl="3600" contenturi="https://ssaimanifest.prod.boltdns.net/us-east-1/playback/once/v1/hls/v4/clear/1752604059001/d6190656-2095-4ff3-8afe-1a0b60d67ed2/dca41ae8-d8f5-48a6-9853-564764d60b84/6830b2e4-3298-439d-beef-e04abef9f23c/content.m3u8?bc_token=NWZkMTE5NTlfZWQxNDAzNDRkNTAxNDRlMWEwODU3MTI1MzY2YjAyZWQ5YzlmZTkzY2UwMjM5NTM1MmI2NGRjZDNhNjE2ZDhlOA%3D%3D"
              contentlength="24.0574" payloadlength="50.1835" contenttype="application/x-mpegURL" />
              <bc:thumbnailURL type="thumbnail" width="480" height="270" bandwidth="0">https://ssai.playback.us-east-1.prod.deploys.brightcove.com/v1/thumbnail/1752604059001/dca41ae8-d8f5-48a6-9853-564764d60b84/low-res/6830b2e4-3298-439d-beef-e04abef9f23c/thumbnail.vtt?bc_token=NWZkMTE5NTlfMmVmODIzZDJjMGZkMDBjZjY1YWIxNDQ4Y2YyZmUxYTExNzg5YmIxZDI5ZTdkMjgyODBmMDBmYTViMTE2Yzc0MQ%3D%3D</bc:thumbnailURL>
            </vmap:Extensions>
            <vmap:AdBreak breakType="linear" breakId="PreRoll_0_0" timeOffset="start">
              <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="0">
                <vmap:VASTData>
                  <VAST xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
                    <Ad id="1">
                      <InLine>
                        <AdSystem>Test Ad Server</AdSystem>
                        <AdTitle>Portals</AdTitle>
                        <Description>Demo ad number 6</Description>
                        <Error></Error>
                        <Creatives>
                          <Creative>
                            <Linear>
                              <CreativeExtensions>
                                <CreativeExtension>
                                  <BrightcoveForeignKey>1</BrightcoveForeignKey>
                                </CreativeExtension>
                              </CreativeExtensions>
                              <Duration>00:00:05.9392</Duration>
                              <AdParameters>
                                <xml></xml>
                              </AdParameters>
                              <VideoClicks/>
                            </Linear>
                          </Creative>
                        </Creatives>
                        <Extensions>
                          <Extension>
                            <xml>data</xml>
                          </Extension>
                        </Extensions>
                      </InLine>
                    </Ad>
                  </VAST>
                </vmap:VASTData>
              </vmap:AdSource>
            </vmap:AdBreak>
            <vmap:AdBreak breakType="linear" breakId="MidRoll_5_0" timeOffset="00:00:04.8381">
              <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">
                <vmap:VASTData>
                  <VAST xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
                    <Ad id="2">
                      <InLine>
                        <AdSystem>Test Ad Server</AdSystem>
                        <AdTitle>Marketing</AdTitle>
                        <Description>Demo ad number 4</Description>
                        <Error></Error>
                        <Creatives>
                          <Creative>
                            <Linear skipoffset="00:00:05">
                              <CreativeExtensions>
                                <CreativeExtension>
                                  <BrightcoveForeignKey>2</BrightcoveForeignKey>
                                </CreativeExtension>
                              </CreativeExtensions>
                              <Duration>00:00:12.1788</Duration>
                              <AdParameters>
                                <xml></xml>
                              </AdParameters>
                              <VideoClicks/>
                            </Linear>
                          </Creative>
                        </Creatives>
                        <Extensions>
                          <Extension>
                            <xml>data</xml>
                          </Extension>
                        </Extensions>
                      </InLine>
                    </Ad>
                  </VAST>
                </vmap:VASTData>
              </vmap:AdSource>
            </vmap:AdBreak>
            <vmap:AdBreak breakType="linear" breakId="PostRoll_24_0" timeOffset="end">
              <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="2">
                <vmap:VASTData>
                  <VAST xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
                    <Ad id="3">
                      <InLine>
                        <AdSystem>Test Ad Server</AdSystem>
                        <AdTitle>Brand</AdTitle>
                        <Description>Demo ad number 1</Description>
                        <Error></Error>
                        <Creatives>
                          <Creative>
                            <Linear>
                              <CreativeExtensions>
                                <CreativeExtension>
                                  <BrightcoveForeignKey>3</BrightcoveForeignKey>
                                </CreativeExtension>
                              </CreativeExtensions>
                              <Duration>00:00:08.0080</Duration>
                              <AdParameters>
                                <xml></xml>
                              </AdParameters>
                              <VideoClicks/>
                            </Linear>
                          </Creative>
                        </Creatives>
                        <Extensions>
                          <Extension>
                            <xml>data</xml>
                          </Extension>
                        </Extensions>
                      </InLine>
                    </Ad>
                  </VAST>
                </vmap:VASTData>
              </vmap:AdSource>
            </vmap:AdBreak>
          </vmap:VMAP>

    Para más detalles, consulte el Implementación de SSAI con SDK y reproductores que no son de Brightcove documento.

Configura tu reproductor

Requerir ad_config_id

Con la API de políticas, puede crear una clave de política que requiera que incluya la ad_config_id Parámetro de URL al realizar solicitudes a la API de reproducción. Para obtener detalles sobre cómo configurar esta función, consulte la Referencia de la API de políticas documento.

Cuando la clave de política está configurada para requerir un ad_config_id y no lo agrega a una solicitud de API de reproducción, recibirá el siguiente error:

[
  {
    "error_subcode": "AD_CONFIG",
    "error_code": "ACCESS_DENIED",
    "message": "Missing required ad_config_id parameter"
  }
]

Solicitudes de listas de reproducción

Un objeto de video de la lista de reproducción se puede recuperar utilizando la identificación de la lista de reproducción o su identificación de referencia.

Las listas de reproducción pueden contener hasta 1000 videos, pero de manera predeterminada, solo se devuelven los primeros 20. Usando los parámetros que se describen a continuación, puede devolver hasta 1000 videos a la vez, o usar una cantidad más pequeña limit y usa el offset parámetro para recuperar el grupo de videos que desea, o envíe varias solicitudes para devolverlos todos.

Parámetros

Los siguientes parámetros de URL se pueden utilizar para solicitudes de listas de reproducción

Parámetros de solicitud de lista de reproducción
Parámetro Descripción
límite El número de videos a devolver (predeterminado=20; máximo=1000)
compensar número de videos para omitir (desde el inicio de la lista de reproducción; predeterminado = 0)

Por ejemplo, estos parámetros agregados a su solicitud (?limit=100&offset=200) devolverían los videos 201-300 en la lista de reproducción (suponiendo que haya tantos).

Obtener lista de reproducción por id

Punto final

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": "https://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": "https://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": "https://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": "https://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": "https://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": "https://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": "https://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": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
      "poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
      "link": {
        "text": "Full Dvd at Amazon",
        "url": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
      },
      "id": "38467382999",
      "ad_keys": null,
      "thumbnail_sources": [
        {
          "src": "https://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

Punto final

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": "https://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": "https://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": "https://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": "https://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": "https://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": "https://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": "https://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": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728862001_th-111727994001.jpg?pubId=107767373999&videoId=38467382999",
      "poster": "https://brightcove04.o.brightcove.com/107767373999/107767373999_111728861001_vs-111727994001.jpg?pubId=107767373999&videoId=38467382999",
      "link": {
        "text": "Full Dvd at Amazon",
        "url": "https://www.amazon.com/Avatar-Sam-Worthington/dp/B002VPE1AW"
      },
      "id": "38467382999",
      "ad_keys": null,
      "thumbnail_sources": [
        {
          "src": "https://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 ocultos brindan información adicional sobre su video para las personas que desean acceder a él. Los subtítulos son necesarios para que las personas sordas y con problemas de audición accedan a la parte de audio de sus videos. Si es nuevo en los subtítulos, consulte la Descripción general: Agregar subtítulos a un video documento.

WebVTT externo

Los subtítulos externos de WebVTT son archivos de texto separados del video. Puede asociar archivos de subtítulos con un video de la siguiente manera:

Respuesta de muestra

A continuación se muestra una respuesta de muestra de la API de reproducción donde se ha agregado un archivo de subtítulos WebVTT a un video usando el módulo de Medios. Observe que la pista de texto src Las propiedades 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 manifiesto se ingieren con sus videos. Esto se puede hacer la primera vez que ingiere su video o después de que se haya ingerido. Puede crear subtítulos en el manifiesto de la siguiente manera:

Respuesta de muestra

A continuación se muestra una respuesta de muestra de la API de reproducción donde se ha agregado un archivo de subtítulos WebVTT a un video usando el Dynamic API de ingesta. Observe que la pista de texto src Las propiedades apuntan a archivos internos de Brightcove.

{
"text_tracks": [
{
  "mime_type": "text/webvtt",
  "account_id": "1752604059001",
  "default": false,
  "sources": [
    {
      "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": "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": "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",
  "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 video 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>https://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>