¿Qué es el Registro de complementos?
El Registro de complementos es una sección de la API de administración de reproductores dedicada a almacenar información sobre los complementos de Brightcove. El registro sirve como referencia para todas las versiones de cada complemento almacenado, así como los scripts y hojas de estilo asociados con cada uno. La configuración del reproductor aprovecha el Registro de complementos, que muestra la versión actual del complemento y también le permite especificar una versión del complemento.
Ventajas
Las ventajas del Registro de complementos para los usuarios de Brightcove Player son tres:
- Puede ver exactamente qué versión del complemento se está utilizando con su reproductor, así como los archivos JavaScript y CSS específicos asociados con esa versión específica del complemento.
- Puede configurar complementos para que se actualicen automáticamente cuando se lancen nuevas versiones que sean compatibles con la versión de su reproductor.
- Si por alguna razón elige mantener un reproductor en una versión específica del reproductor, sus complementos permanecerán en las mismas versiones específicas para ese reproductor cuando estaba bloqueado. No tiene que preocuparse por la actualización de un complemento a una versión que no sea compatible con la versión de su reproductor.
Complementos elegibles actuales
La siguiente tabla muestra los complementos proporcionados por Brightcove que funcionan con el Registro de complementos. La ID de registro del complemento se utilizará con la configuración del reproductor junto con la API de gestión de jugadores. En este documento se mostrarán numerosos ejemplos.
Nombre del plugin | ID de registro del complemento |
---|---|
Reproductor de Adobe Analytics | @ brightcove / videojs-bc-aa |
Receptor Chromecast | @ brightcove / videojs-chromecast-receptor |
Pantalla final personalizada | @ brightcove / videojs-custom-endscreen |
DRM | @ brightcove / videojs-drm |
Reproductor de Google Analytics | @ brightcove / videojs-bc-ga |
Publicidad IMA3 | @ brightcove / videojs-ima3 |
Superposición | @ brightcove / videojs-overlay |
Imagen en imagen | @ brightcove / videojs-pip |
IU de lista de reproducción | @ brightcove / videojs-bc-playlist-ui |
Menú de selección de calidad | @ brightcove / videojs-quality-menu |
Social | @ brightcove / videojs-social |
SSAI | @ brightcove / videojs-ssai |
Complemento Tealium Player | @ brightcove / videojs-bc-tealium |
Especificar el uso de un complemento
Para especificar el uso de un complemento, en la creación de su reproductor, simplemente proporcione el ID de registro para el complemento deseado. Debe especificar un número de versión, ya sea una versión principal que se actualizará automáticamente (por ejemplo 2.x ) o una versión menor (por ejemplo 2.0.10 ) que no se actualizará automáticamente. Los detalles sobre la configuración de la versión aparecen más adelante en este documento. También puede proporcionar options
para el complemento, si lo hubiera.
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request POST \
--data '{
"name": "Plugin Registry Test Player",
"configuration": {
"video_cloud": {
"video": "4093372393001"
},
"plugins": [
{
"registry_id": "@brightcove/videojs-custom-endscreen",
"version": "2.x",
"options": { "content": "<strong>Content</strong> for <em>custom</em> end screen" }
}
]
}
}' \
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players
La API de administración de reproductores devuelve información sobre el reproductor creado. Puedes usar el url valor devuelto, cambie el index.html a config.json y navegue por esa URL para ver la configuración del reproductor publicado.
{
"id": "rkGD9W22Ob",
"url": "http://players.brightcove.net/1507807800001/rkGD9W22Ob_default/index.html",
"embed_code": "<iframe src='//players.brightcove.net/1507807800001/rkGD9W22Ob_default/index.html' allowfullscreen allow='encrypted-media'></iframe>",
"embed_in_page": "http://players.brightcove.net/1507807800001/rkGD9W22Ob_default/in_page.embed",
"preview_url": "http://preview-players.brightcove.net/v2/accounts/1507807800001/players/rkGD9W22Ob/preview/embeds/default/master/index.html",
"preview_embed_code": "<iframe src='//preview-players.brightcove.net/v2/accounts/1507807800001/players/rkGD9W22Ob/preview/embeds/default/master/index.html' allowfullscreen allow='encrypted-media'></iframe>"
}
En la configuración del reproductor publicado, verá la información sobre el complemento. Tenga en cuenta que se muestra una versión específica del complemento, junto con los valores correspondientes para los archivos JavaScript y CSS.
{
"account_id": "1507807800001",
"compatibility": true,
"embed_id": "default",
"player": {
"template": {
"name": "single-video-template",
"version": "6.7.0"
}
},
"player_id": "SyITgzdjb",
"player_name": "Plugin Registry Test Player",
"plugins": [{
"injected_version": "2.0.10",
"name": "customEndscreen",
"registry_id": "@brightcove/videojs-custom-endscreen",
"version": "2.x"
}],
"scripts": [
"//players.brightcove.net/videojs-custom-endscreen/2.0.10/videojs-custom-endscreen.min.js"
],
"stylesheets": [
"//players.brightcove.net/videojs-custom-endscreen/2.0.10/videojs-custom-endscreen.css"
],
"updated_at": "2017-09-26T17:39:10.080Z",
"video_cloud": {
"policy_key": "BCpkADawqM3hOj9...FDx1yFTvWX7m",
"video": "4093372393001"
}
}
Especifique la versión principal específica
Puede configurar un reproductor para que utilice la última versión del complemento para un importante versión compatible con el reproductor que está utilizando. Cuando haga esto, y se publiquen versiones secundarias del complemento, el complemento se actualizará automáticamente a la última versión secundaria.
Por ejemplo, si desea que su reproductor contenga la última versión compatible del complemento de pantalla final personalizado para versión principal 2 del complemento, usaría lo siguiente:
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request POST \
--data '{
"name": "Plugin Registry Test Player",
"configuration": {
"video_cloud": {
"video": "4093372393001"
},
"plugins": [
{
"registry_id": "@brightcove/videojs-custom-endscreen",
"version": "2.x"
}
]
}
}' \
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players
La configuración resultante será similar a la siguiente:
"plugins": [{
"injected_version": "2.0.10",
"name": "customEndscreen",
"registry_id": "@brightcove/videojs-custom-endscreen",
"version": "2.x"
}],
"scripts": [
"//players.brightcove.net/videojs-custom-endscreen/2.0.10/videojs-custom-endscreen.min.js"
],
"stylesheets": [
"//players.brightcove.net/videojs-custom-endscreen/2.0.10/videojs-custom-endscreen.css"
],
Especifique la versión específica
Puede especificar una versión específica del complemento para usar. Si hace esto, el complemento NO se actualizará automáticamente bajo ninguna circunstancia, por lo que tendrá que actualizarlo manualmente si es necesario.
Para bloquear una versión del complemento, simplemente especifique la versión al crear el reproductor:
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request POST \
--data '{
"name": "Plugin Registry Test Player",
"configuration": {
"video_cloud": {
"video": "4093372393001"
},
"plugins": [
{
"registry_id": "@brightcove/videojs-overlay",
"version": "1.0.2"
}
]
}
}' \
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players
La configuración del reproductor reflejará la versión específica, así como en los archivos JavaScript y CSS:
"plugins": [{
"name": "overlay",
"registry_id": "@brightcove/videojs-overlay",
"version": "1.0.2"
}],
"scripts": [
"//players.brightcove.net/videojs-overlay/1.0.2/videojs-overlay.min.js"
],
"stylesheets": [
"//players.brightcove.net/videojs-overlay/1.0.2/videojs-overlay.css"
],
Asignaciones no compatibles
Si intenta asignar un complemento incompatible a un reproductor, o cambia la versión de un reproductor para que un complemento previamente asignado ya no sea compatible, se producirán errores. Los errores se detallan aquí.
Asignar complemento a un reproductor no compatible
Si en algún momento, ya sea en la creación o actualización del reproductor, intenta especificar una versión del complemento que no es compatible con una versión del reproductor, obtendrá un error. Por ejemplo, aquí hay una respuesta de la API cuando se intenta asignar un complemento antiguo no compatible a un nuevo reproductor:
{
"message": "There are no versions of the plugin that match the specified major version. The major version specified was 1.x for plugin @brightcove/videojs-bc-playlist-ui",
"error_code": "PLAYER_MANAGEMENT_ERROR",
}
Cambiar la versión del reproductor para que no sea compatible con el complemento
Si intenta cambiar la versión de un reproductor existente, y el reproductor ya tiene un complemento que no es compatible con la versión recién asignada del reproductor, obtendrá un error similar al siguiente:
{
"error_code":"APPLICATION_ERROR",
"message":"plugin \"@brightcove/videojs-ima3\" is not compatible with template 5.28.1"
}
Complemento configurado para Studio
Si un complemento se carga a través de Studio, el complemento reflejará la nueva funcionalidad en el Registro de complementos:
{
"account_id": "1507807800001",
"compatibility": true,
"embed_id": "default",
"player": {
"template": {
"name": "single-video-template",
"version": "6.7.0"
}
},
"player_id": "SJajDfuiW",
"player_name": "Plugin Registry Studio Configuration",
"plugins": [{
"injected_version": "2.0.10",
"name": "customEndscreen",
"options": {
"content": "<h3>This is the endscreen content</h3>"
},
"registry_id": "@brightcove/videojs-custom-endscreen",
"version": "2.x"
}],
"scripts": [
"//players.brightcove.net/videojs-custom-endscreen/2.0.10/videojs-custom-endscreen.min.js"
],
"stylesheets": [
"//players.brightcove.net/videojs-custom-endscreen/2.0.10/videojs-custom-endscreen.css"
],
"updated_at": "2017-09-26T18:09:31.940Z",
"video_cloud": {
"policy_key": "BCpkADawqM3YPJ...SjFagYpRxuoM8btiEoD",
"video": null
}
}
Como puede ver en la configuración del reproductor, un complemento cargado en Studio se actualizará utilizando el comportamiento de la versión principal, es decir, las actualizaciones de la versión secundaria se aplicarán automáticamente.
Actualización de la información del registro
Puede actualizar la información de registro de complementos de un reproductor mediante procedimientos estándar. Por ejemplo, la siguiente declaración curl usa HTTP PATCH
método para cambiar un complemento de una versión específica al comportamiento de actualización de la versión principal:
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request PATCH \
--data '{
"plugins": [{
"registry_id": "@brightcove/videojs-custom-endscreen",
"version": "2.x"
}]
}' \
https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/configuration
Recuerde, debe publicar su reproductor después de realizar un cambio.
API de registro de complementos
Se han agregado dos nuevos puntos finales a la API de administración de reproductores que permiten la recuperación de información de complementos del registro, que le brindan funcionalidad para:
- Recupere todos los complementos del registro.
- Recupera información sobre un complemento específico.
Obtener todos los complementos
Utilice lo siguiente para recuperar información sobre los complementos que se encuentran actualmente en el registro.
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request GET \
https://players.api.brightcove.com/v2/plugins
La información devuelta aparecerá similar a la siguiente:
[{
"documentation": "https://support.brightcove.com/configuring-adobe-analytics-event-tracking",
"description": "Adobe Analytics Player Plugin",
"id": "@brightcove/videojs-bc-aa",
"name": "bcAa",
"current_version": "1.x"
}, {
"documentation": "https://support.brightcove.com/configuring-google-analytics-event-tracking",
"description": "Google Analytics Player Plugin",
"id": "@brightcove/videojs-bc-ga",
"name": "bcGa",
"current_version": "1.x"
}, {
"documentation": "https://support.brightcove.com/google-tag-manager-plugin-brightcove-player",
"description": "Google Tag Manager Player Plugin",
"id": "@brightcove/videojs-bc-gtm",
"name": "bcGtm",
"current_version": "1.x"
}, {
"documentation": "https://support.brightcove.com/playlist-ui-plugin",
"description": "Brightcove customizations to videojs-playlist-ui",
"id": "@brightcove/videojs-bc-playlist-ui",
"name": "bcPlaylistUi",
"current_version": "3.x"
}, {
"documentation": "https://support.brightcove.com/tealium-plugin-brightcove-player",
"description": "Tealium Player Plugin",
"id": "@brightcove/videojs-bc-tealium",
"name": "bcTealium",
"current_version": "1.x"
}, {
"documentation": "https://support.brightcove.com/beta-chromecast-plugin-brightcove-player",
"description": "A Chromecast Receiver plugin for the Brightcove Player",
"id": "@brightcove/videojs-chromecast-receiver",
"name": "chromecastReceiver",
"current_version": "1.x"
}, {
"documentation": "https://support.brightcove.com/custom-endscreen-plugin",
"description": "Custom endscreens for video.js.",
"id": "@brightcove/videojs-custom-endscreen",
"name": "customEndscreen",
"current_version": "2.x"
}, {
"documentation": "https://support.brightcove.com/configuring-brightcove-player-drm",
"description": "Cross-browser support for MPEG-DASH w/ DRM using dash.js and silverlight and HLS Fairplay DRM",
"id": "@brightcove/videojs-drm",
"name": "eme",
"current_version": "5.x"
}, {
"documentation": "https://support.brightcove.com/advertising-ima3-plugin",
"description": "Google Interactive Media Ads (IMA) v3 support for video.js",
"id": "@brightcove/videojs-ima3",
"name": "ima3",
"current_version": "3.x"
}, {
"documentation": "https://support.brightcove.com/display-overlay-plugin",
"description": "Overlay for video.js.",
"id": "@brightcove/videojs-overlay",
"name": "overlay",
"current_version": "2.x"
}, {
"documentation": "https://support.brightcove.com/picture-picture-plugin-aka-floating-or-pinned",
"description": "A plugin for enabling a Picture-In-Picture mode for the Brightcove Player",
"id": "@brightcove/videojs-pip",
"name": "pip",
"current_version": "1.x"
}, {
"documentation": "https://support.brightcove.com/manual-rendition-selection-plugin",
"description": "Quality Selection Menu UI",
"id": "@brightcove/videojs-quality-menu",
"name": "qualityMenu",
"current_version": "1.x"
}, {
"documentation": "https://support.brightcove.com/social-media-plugin",
"description": "Social sharing integrations for video.js.",
"id": "@brightcove/videojs-social",
"name": "social",
"current_version": "3.x"
}, {
"documentation": "https://support.brightcove.com/advertising-ssai-plugin",
"description": "A plugin for the Brightcove Player implementing playback of SSAI streams.",
"id": "@brightcove/videojs-ssai",
"name": "ssai",
"current_version": "1.x"
}]
Obtener información específica sobre el complemento
Utilice lo siguiente para recuperar información sobre un complemento específico. Tenga en cuenta que el nombre del complemento debe estar codificado en URL, por lo que en lugar de @brightcove/videojs-ima3
usar %40brightcove%2fvideojs-ima3
.
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request GET \
https://players.api.brightcove.com/v2/plugins/%40brightcove%2fvideojs-ima3
La información devuelta aparecerá similar a la siguiente:
{
"versions": [{
"scripts": ["//players.brightcove.net/videojs-ima3/3/videojs.ima3.min.js"],
"stylesheets": ["//players.brightcove.net/videojs-ima3/3/videojs.ima3.min.css"],
"version_number": "3.x",
"minimum_template_version": "6.0.0"
}, {
"minimum_template_version": "5.0.0",
"version_number": "2.x",
"stylesheets": ["//players.brightcove.net/videojs-ima3/2/videojs.ima3.min.css"],
"scripts": ["//players.brightcove.net/videojs-ima3/2/videojs.ima3.min.js"]
}, {
"minimum_template_version": "1.14.0",
"version_number": "1.x",
"stylesheets": ["//players.brightcove.net/videojs-ima3/1/videojs.ima3.min.css"],
"scripts": ["//players.brightcove.net/videojs-ima3/1/videojs.ima3.min.js"]
}],
"documentation": "https://support.brightcove.com/advertising-ima3-plugin",
"description": "Google Interactive Media Ads (IMA) v3 support for video.js",
"id": "@brightcove/videojs-ima3",
"name": "ima3",
"current_version": "3.x"
}
Aunque no se muestra en esta respuesta, también puede ver un before_template-version
propiedad y valor correspondiente. Esto aparecerá para los complementos más antiguos y establece la última versión de la plantilla del reproductor con la que esa versión del complemento es compatible. La minimum_template_version
y before_template-version
trabajar juntos para establecer el rango de versiones de plantillas de reproductor con las que el complemento es compatible.