Integración de su CMS con Video Cloud

En este tema, aprenderá las operaciones básicas involucradas en la integración de Brightcove Video Cloud con un CMS. Enumera las funciones típicas que los usuarios realizan dentro del CMS y las operaciones de la API de Brightcove que se pueden utilizar para proporcionar esa funcionalidad.

Funciones de usuario

A continuación se muestran las funciones relacionadas con Video Cloud que quizás desee proporcionar a los usuarios de su CMS:

  • Agregar nuevos videos a Video Cloud
  • Reemplazar un Video Cloud video con una nueva versión
  • Actualizar los metadatos de los videos, como el título, la descripción y las etiquetas
  • Eliminar videos
  • Crea listas de reproducción
  • Cambiar los videos en una lista de reproducción
  • Eliminar listas de reproducción
  • Crea reproductores de video
  • Modificar las propiedades del reproductor de video, como las dimensiones o el estilo.
  • Agregue una funcionalidad especial a los reproductores de video a través de complementos
  • Publica videos únicos o listas de reproducción
  • Proporcione datos analíticos sobre cargas de video, vistas, tasas de reproducción, participación, etc.

Es posible que no desee exponer toda esta funcionalidad a sus usuarios finales; es posible que no desee permitirles eliminar videos, por ejemplo. Una de las ventajas de integrar Video Cloud con su CMS en lugar de permitir que los usuarios vayan directamente a Video Cloud Studio es que puede elegir exactamente qué funcionalidad exponer a los usuarios a través de las API de Brightcove.

Autenticación

Para todas las solicitudes API de Brightcove, la autenticación se basa en tokens de acceso OAuth2. Hay un proceso de dos pasos para obtener tokens de acceso:

  1. Cree credenciales de cliente con permisos para las operaciones de API que necesita
  2. Utilice las credenciales del cliente para crear un token de acceso temporal para autenticar una solicitud de API

Creando credenciales de cliente

La creación de credenciales de cliente es una operación única que se puede realizar a través de Video Cloud Estudio o el OAuth API . Como sea que lo hagas, un client_id y client_secret se devuelven, que debe guardar para solicitar tokens de acceso.

Creando un token de acceso

Los tokens de acceso temporal se crean utilizando el OAuth API . La client_id y client_secret debe estar codificado en BASE64 y pasar como Basic Cadena de autorización.

La access_token devuelto se pasa a su vez en un encabezado de autorización con la llamada a la API:

    Authorization: Bearer your_access_token
    
    

Los tokens de acceso son válidos durante 5 minutos. A menos que esté realizando algún tipo de operación por lotes que hará cientos de llamadas API sucesivas, tiene sentido solicitar una nueva para cada llamada API en lugar de intentar realizar un seguimiento del tiempo de espera.

Añadiendo Videos

Si desea permitir que los usuarios agreguen videos a Video Cloud desde su CMS, puede hacerlo usando el Dynamic Ingest API . Recomendamos que los usuarios carguen videos en su repositorio, que podría ser un bucket de S3 o simplemente un servidor público. El sistema Dynamic Ingest puede extraer los videos y agregarlos al Video Cloud sistema a través de un proceso de dos pasos que se describe a continuación.

Agregar un objeto de video a Video Cloud

El primer paso es crear un objeto de video en el Video Cloud sistema haciendo un POST solicitud a la CMS API:

    https://cms.api.brightcove.com/v1/accounts/:account_id/videos
    
    

El cuerpo de la solicitud incluirá propiedades de video básicas en un JSON objeto: como mínimo, el vídeo name , pero también puede incluir metadatos adicionales como un description y tags:

    {
    "name": "Woodpecker",
    "description": "A bird that hunts insects inside wood",
    "reference_id": "Bird_Woodpecker.mp4",
    "tags": ["bird", "air", "nature"]
    }
    
    

Ingestión del video

Cuando crea el objeto de video, el CMS API devolverá un JSON objeto que contiene las propiedades del video. Extraerás el video id desde el JSON y utilícelo para realizar una llamada al Dynamic Ingest API para solicitar la ingestión y transcodificación del video:

    https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/VIDEO_ID/ingest-requests
    
    

De nuevo enviarás JSON en el cuerpo de la solicitud especificando la ubicación del archivo de video:

    {
      "master":{
        "url":"https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.mp4"
      },
      "profile":"multi-platform-extended-static",
      "capture-images": true
    }
    
    

La profile aquí está el perfil de ingesta que especifica qué representaciones deben crearse en el proceso de transcodificación. En la mayoría de los casos, uno de los siguientes perfiles estándar debería ser adecuado:

Perfiles de entrega dinámica

  • multi-platform-extended-static
  • multi-platform-standard-static

Perfiles de ingesta heredados

  • videocloud-default-v1 (the default)
  • screencast-1280
  • smart-player-transition
  • single-bitrate-high
  • audio-only
  • single-bitrate-standard
  • high-resolution

Sin embargo, puede crear perfiles de ingesta personalizados adicionales, si es necesario, utilizando el Ingest Profiles API o usando Video Cloud Estudio.

Agregar póster e imágenes en miniatura

La capture-images opción en el código anterior instruye Video Cloud para capturar imágenes en miniatura y póster para el video en el punto medio durante el proceso de transcodificación. Alternativamente, puede configurar capture-images a false e ingiera imágenes en su lugar, ya sea al mismo tiempo que ingiere el video o más tarde:

    {
    "master":{
    "url":"https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "https://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "https://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    }
    }
    
    

Ver Imágenes y Dynamic Ingest API para más detalles.

Agregar pistas de texto para subtítulos o capítulos

También puede utilizar el Dynamic Ingest API para agregar pistas de texto en WebVTT archivos a videos, ya sea en el momento de la ingestión o más tarde. Las pistas de texto se utilizan para agregar subtítulos o capítulos a un video.

    {
    "master":{
    "url":"https://some.site.com/videos/mp4/Bird_Woodpecker.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "https://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "https://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    },
    "text_tracks": [
    {
    "url": "https://some.site.com/captions/for_video/Water-in-Motion.vtt",
    "srclang": "en",
    "kind": "captions",
    "label": "English",
    "default": true
    }
    ]
    }
    
    

Ver Ingesta de archivos WebVTT para más detalles.

Gestión de vídeos

La CMS API le permite recuperar datos de video para una cuenta. (Como se muestra arriba, también se usa para crear objetos de video como parte del proceso de ingestión de video). La solicitud más básica es la siguiente:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos
    
    

De forma predeterminada, esta solicitud devuelve un JSON conjunto de 20 objetos de video que contienen una gran cantidad de metadatos, incluido el nombre, la descripción, las etiquetas, los campos personalizados, las fechas en que se creó y se modificó por última vez, las URL del póster y la miniatura, y mucho más.

Puede refinar los resultados de la solicitud agregando uno o más de los siguientes parámetros a la solicitud:

limit
esto determina la cantidad de objetos de video que se devolverán y se puede configurar en cualquier número hasta 100; el valor predeterminado es 20
offset
esto determina la cantidad de elementos a omitir, por lo que se usa junto con limit para desplazarse por el catálogo de vídeos: el valor predeterminado es 0
sort
esto determina el campo de metadatos de video para ordenar el resultado; de manera predeterminada, los resultados se ordenan por updated_at (descendente, para mostrar primero los videos actualizados más recientemente)

Ver CMS API Descripción general: parámetros para obtener información detallada sobre estos parámetros.

Búsqueda de vídeos

También puede buscar videos por una amplia gama de criterios utilizando el q parámetro. Puede buscar por campos específicos como nombre, descripción y etiquetas, así como por fechas y el estado de los videos:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos?q=tags:sea,mammal
    
    

Para obtener detalles y todas las opciones de búsqueda, consulte Buscar videos.

Obtener y actualizar un video específico

Para recuperar un video específico por su id o id de referencia:

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/id
    or
    https://cms.api.brightcove.com/v1/accounts/account_id/videos/ref:reference_id
    
    

A GET request devuelve el objeto de video. Para actualizarlo, modifique el JSON y devuélvelo usando un PATCH solicitud a la misma URL.

Listas de reproducción

La información de la lista de reproducción también se gestiona mediante el CMS API de la misma manera que la información de video. Tenga en cuenta que Video Cloud admite ocho tipos de listas de reproducción en dos categorías:

Listas de reproducción manuales (o EXPLICIT)
contener un conjunto específico de videos; se pueden incluir hasta 100 videos
Listas de reproducción inteligentes
construido dinámicamente en tiempo de ejecución según los criterios de búsqueda: hay siete variedades de listas de reproducción inteligentes que se corresponden con la forma en que se ordenan los videos dentro de la lista:
  • ACTIVATEDOLDESTTONEWEST
  • ACTIVATEDNEWESTTOOLDEST
  • ALPHABETICAL
  • PLAYSTOTAL
  • PLAYSTRAILINGWEEK
  • STARTDATEOLDESTTONEWEST
  • STARTDATENEWESTTO_OLDEST

El límite en la cantidad de videos se puede establecer en cualquier número hasta 100.

Al igual que con los videos, puede recuperar todas las listas de reproducción utilizando limit y offset para desplazarse por los resultados si la cuenta tiene una gran cantidad de listas de reproducción:

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists
    
    

La matriz devuelta de objetos de lista de reproducción incluirá metadatos para la lista de reproducción, incluido el type correspondiente a uno de los tipos descritos anteriormente. Si el tipo es EXPLICIT, también habrá una video_ids matriz que contendrá los identificadores de los vídeos incluidos. Si el tipo es uno de los tipos de lista de reproducción inteligente, habrá un search propiedad que contiene la cadena de búsqueda que recupera los videos, algo como esto:

    q=tags:fish,birds
    
    

También puede recuperar una única lista de reproducción por su id:

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists/playlist_id
    
    

Si necesita recuperar los objetos de video completos para una lista de reproducción (para mostrar información sobre los videos en una página), simplemente agregue /videos a esa URL:

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists/playlist_id/videos
    
    

Tenga en cuenta que para una lista de reproducción inteligente, la solicitud devolverá los videos que coinciden con los criterios de búsqueda actualmente, pero eso puede cambiar.

Creando jugadores

Los reproductores de Brightcove se pueden crear a través del Player Management API . La API le permite crear reproductores, actualizar sus propiedades y obtener el código de inserción en forma de URL, una iframe etiqueta, o un bloque de HTML para incrustar en la página.

Puede tener hasta 200 jugadores por cuenta, pero generalmente es menos confuso para los usuarios tener tan pocos jugadores como sea absolutamente necesario. Debe tener reproductores separados para reproducir videos individuales o listas de reproducción, pero de lo contrario, solo necesitará reproductores diferentes cuando tengan un estilo diferente o se les agregue una funcionalidad diferente a través de complementos.

Para crear un reproductor, simplemente haga un POST solicitud a la Player Management API:

    https://players.api.brightcove.com/v2/accounts/account_id/players
    
    

En el cuerpo de la solicitud, incluya el configuración del jugador - lo único que se requiere es un name:

    {
    "name": "Single video player for blog posts"
    }
    
    

La respuesta le dará la identificación del jugador, así como el código de inserción en varias formas:

    {
    "embed_code": "<iframe src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "embed_in_page": "https://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/in_page.embed",
    "id": "de055fa4-4f09-45af-8531-419c6794ad04",
    "preview_embed_code": "<iframe src='//preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "preview_url": "https://preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html",
    "url": "https://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html"
    }
    
    

Para obtener la configuración completa del reproductor, realice una solicitud al /players endpoint, pero agregue la ID del jugador que se devuelve en la respuesta anterior:

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04
    
    

Puedes hacer un PATCH solicitud al mismo punto final para actualizar la configuración del reproductor.

Notarás en la respuesta anterior, la preview_embed_code y preview_url. Para permitir la prueba de nuevos jugadores o actualizaciones de jugadores, los reproductores recién creados o actualizados se configuran en modo de vista previa para permitirle verlos antes de enviar los cambios a los reproductores existentes. Para impulsar los cambios a la producción, necesita publicar el jugador con esta solicitud:

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04/publish
    
    

Personalización de jugadores

La Jugador de Brightcove está construido con tecnologías web estándar: HTML, CSS y JavaScript. Puede personalizar el reproductor utilizando esas mismas tecnologías. Esto se puede hacer en la página donde está publicado el reproductor, pero la mejor práctica es agregar sus personalizaciones al reproductor a través del reproductor. configuración , actualizando el reproductor a través de un PATCH solicitud a la Player Management API como se explica en la sección anterior.

También puede agregar funciones y características adicionales al reproductor a través de JavaScript complementos , y hay una extensa API del reproductor para ayudarlo a integrar su código con el reproductor. Brightcove ofrece una serie de complementos listos para usar para cosas como habilitar publicidad, personalizar la pantalla final y agregar superposiciones.

Publicación de vídeos

En el Sección de creación de jugadores arriba vimos que cuando obtienes el objeto de configuración del reproductor usando el Player Management API , los datos devueltos incluyen una etiqueta iframe para incrustar el reproductor en una página HTML y también una URL para el HTML completo si desea incrustar el reproductor directamente en una página.

Para cualquier incrustación que elija, deberá agregar un Video Cloud identificación de video o identificación de lista de reproducción al código de inserción para agregar contenido al reproductor. El código de inserción de iframe se ve así:

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

A la URL del reproductor, debe agregar el parámetro videoId={}video_id para que el código de inserción completo se vea así:

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

Si se trata de un reproductor de listas de reproducción, utilice el parámetro playlistId={playlist_id} en lugar de. La modificación del código de inserción en la página es similar.

A menos que las dimensiones del reproductor estén fijas en la configuración del reproductor, también necesitará dimensionar el reproductor agregando ancho y alto en un style atributo:

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen
    style=width:640px;height:360px;></iframe>
    
    

Obtener informes de análisis

La Analytics API le permite generar informes analíticos de diferentes dimensions. Ver el Guías de dimensiones para más información.

Puede especificar el intervalo de fechas para el informe, las métricas que se devolverán y puede obtener los datos en JSON , csv , o xlxs formato

Para períodos dentro del último mes, también puede generar información detallada Informes de participación que muestran reproducciones por cada centésima parte del video.

Resumen de API

A continuación, se muestra un resumen de las API útiles para la integración con Video Cloud.

OAuth API
Se utiliza para crear credenciales de cliente y tokens de acceso para acceder a las otras API.
Administración de medios
Ingest Profiles API
Se utiliza para crear perfiles de ingesta personalizados que especifican las representaciones que se crearán para los videos agregados a Video Cloud
Dynamic Ingest API
Se utiliza para agregar videos y recursos multimedia relacionados a Video Cloud
CMS API
Se utiliza para crear objetos de video para la ingestión y para administrar videos y listas de reproducción.
Jugadores de Brightcove
El jugador de Brightcove
El jugador incluye un JavaScript API para interactuar con el jugador en tiempo de ejecución
Player Management API
Se utiliza para crear y configurar reproductores y para obtener el código de inserción del jugador.
Analytics API
Se utiliza para obtener informes analíticos sobre el rendimiento del video.