Registro de complementos

En este tema, aprenderá cómo se puede usar el Registro de complementos para rastrear y administrar los complementos que utiliza su Brightcove Player.

¿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.