assistance Contacter le support | Étatétat du système du système
Contenu de la page

    Registre des plug-ins

    Dans cette rubrique, vous apprendrez comment le Registre des Plugins peut être utilisé pour suivre et gérer les plugins que votre Brightcove Player utilise.

    Qu'est-ce que le registre des plugins ?

    Le registre des plugins est une section de l'API Player Management consacrée au stockage des informations sur les plugins Brightcove. Le registre sert de référence pour toutes les versions de chaque plugin stocké, ainsi que pour les scripts et feuilles de style associés à chacun. La configuration du lecteur exploite le registre des plugins, affichant la version actuelle du plugin, et vous permet également de spécifier une version de plugin.

    Avantages

    Les avantages du registre Plugin Registry pour les utilisateurs de Brightcove Player sont trois fois :

    • Vous pouvez voir exactement quelle version du plugin est utilisée avec votre lecteur, ainsi que les fichiers JavaScript et CSS spécifiques associés à cette version spécifique du plugin.
    • Vous pouvez configurer les plugins pour qu'ils soient automatiquement mis à jour lorsque de nouvelles versions compatibles avec votre version lecteur sont publiées.
    • Si pour une raison quelconque vous choisissez de garder un joueur sur une version de joueur spécifique, vos plugins resteront sur les mêmes versions spécifiques pour ce joueur lorsqu'il a été verrouillé. Vous n'avez pas à vous soucier de la mise à niveau d'un plugin vers une version qui n'est pas compatible avec votre version lecteur.

    Plugins éligibles actuels

    Le tableau suivant présente les plugins fournis par Brightcove qui fonctionnent avec le registre des plug-ins. L' ID de registre du plugin sera utilisé avec la configuration du lecteur en conjonction avec l'API Player Management. De nombreux exemples seront présentés dans ce document.

    Nom du plugin ID de registre du plugin
    Lecteur Adobe Analytics @brightcove/videojs-bc-aa
    Récepteur Chromecast @brightcove/videojs-chromecast-receiver
    Écran de fin personnalisé @brightcove/videojs-custom-endscreen
    Gestion des droits numériques (DRM) @brightcove/videojs-drm
    Lecteur Google Analytics @brightcove/videojs-bc-ga
    IMA3 Publicité @brightcove/videojs-ima3
    Superposition @brightcove/videojs-overlay
    Image dans l'image @brightcove/videojs-pip
    Interface utilisateur de @brightcove/videojs-bc-playlist-ui
    Menu de sélection de qualité @brightcove/videojs-quality-menu
    Réseaux sociaux @brightcove/videojs-social
    SSAI @brightcove/videojs-ssai
    Plugin Tealium Player @brightcove/videojs-bc-tealium

    Spécifier l'utilisation d'un plugin

    Pour spécifier l'utilisation d'un plugin, dans la création de votre lecteur, il vous suffit de fournir l'ID de registre pour le plugin désiré. Vous devez spécifier un numéro de version, soit une version majeure qui sera mise à jour automatique (par exemple 2.x) ou une version mineure (par exemple 2.0.10) qui ne sera pas mise à jour automatique. Les détails sur la définition de la version apparaissent plus loin dans ce document. Vous pouvez également fournir options le plugin, le cas échéant.

        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
              

    Les informations sur le lecteur créé sont renvoyées par l'API Player Management. Vous pouvez utiliser la valeur d' URL renvoyée, changer le index.html en config.json et parcourir cette URL pour voir la configuration du lecteur publié.

        {
          "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 webkitallowfullscreen mozallowfullscreen></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 webkitallowfullscreen mozallowfullscreen></iframe>"
        }

    Dans la configuration du lecteur publié, vous voyez les informations sur le plugin. Notez qu'une version spécifique du plugin est affichée, avec les valeurs correspondantes pour les fichiers JavaScript et 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": "BCpkADawqM3hOj9I_wRb6jx7SLoklIm8eiW-MH1C0CO5xnf8ndABL7WJQOVdWIusPlnfKUD5EZvjHyJOQGeCFndODaM7CRz4h4GxUTLN3OmO7dTcLnxS3cYrXOZx4eaqaSbVFDx1yFTvWX7m",
            "video": "4093372393001"
          }
        }

    Spécifier une version majeure spécifique

    Vous pouvez configurer un lecteur pour utiliser la dernière version du plugin pour une version majeure spécifique compatible avec le lecteur que vous utilisez. Lorsque vous faites cela, et des versions mineures du plugin sont publiées, le plugin sera automatiquement mis à jour vers la dernière version mineure.

    Par exemple, si vous voulez que votre lecteur contienne la dernière version compatible du plugin d'écran de fin personnalisé pour la version majeure 2 du plugin, vous devez utiliser ce qui suit :

        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 configuration résultante apparaîtra similaire à la suivante :

        "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"
        ],

    Spécifier une version spécifique

    Vous pouvez spécifier une version spécifique du plugin à utiliser. Si vous faites cela, le plugin ne sera PAS automatiquement mis à jour en aucun cas, vous devrez donc mettre à jour manuellement si nécessaire.

    Pour verrouiller une version du plugin, il suffit de spécifier la version lors de la création du lecteur :

        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 configuration du lecteur reflétera la version spécifique, ainsi que dans les fichiers JavaScript et 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"
        ],
              

    Affectations non compatibles

    Si vous essayez d'attribuer un plugin incompatible à un lecteur, ou si vous modifiez la version d'un lecteur afin qu'un plugin précédemment attribué ne soit plus compatible, des erreurs se produiront. Les erreurs sont détaillées ici.

    Attribuer un plugin à un lecteur non compatible

    Si à tout moment, que ce soit dans la création ou la mise à jour du lecteur, vous essayez de spécifier une version de plugin non compatible avec une version de lecteur, vous obtiendrez une erreur. Par exemple, voici une réponse de l'API lorsque vous essayez d'attribuer un ancien plugin non compatible à un nouveau lecteur :

        {
          "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",
        }
              

    Changer la version du lecteur pour ne pas être compatible avec le plugin

    Si vous essayez de modifier la version d'un lecteur existant et que le lecteur dispose déjà d'un plugin qui n'est pas compatible avec la version nouvellement assignée du lecteur, vous obtiendrez une erreur similaire à la suivante :

        {
          "error_code":"APPLICATION_ERROR",
          "message":"plugin \"@brightcove/videojs-ima3\" is not compatible with template 5.28.1"
        }
        

    Plugin configuré pour Studio

    Si un plugin est chargé via Studio, le plugin reflétera de nouvelles fonctionnalités dans le registre des plugins :

        {
          "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": "BCpkADawqM3YPJvvfxBgJNEGrPjTPoOw0LyCbiTPnDGtAVExTzXeAW3hcRtPpS8tNeSiA9MosLG076eMXWO8E2Lxv-V7mq1oTIgqK7Xf0HBP_TEm1i-e5zRN_VIW_SjFagYpRxuoM8btiEoD",
            "video": null
          }
        }
              

    Comme vous pouvez le voir dans la configuration du lecteur, un plugin chargé dans Studio sera mis à jour en utilisant le comportement de la version principale, c'est-à-dire que les mises à jour de version mineures seront automatiquement appliquées.

    Mise à jour des informations de

    Vous pouvez mettre à jour les informations de registre de plugin pour un lecteur en utilisant des procédures standard. Par exemple, l'instruction curl suivante utilise la PATCH méthode HTTP pour changer un plugin d'une version spécifique au comportement de mise à jour de version majeure :

        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
              

    N'oubliez pas que vous devez publier votre lecteur après avoir apporté une modification.

    API de registre de plug-in

    Deux nouveaux points de terminaison ont été ajoutés à l'API de gestion du lecteur qui permettent de récupérer les informations de plug-in à partir du Registre, ce qui vous permet de :

    • Récupérez tous les plugins dans le registre.
    • Récupérer des informations sur un plugin spécifique.

    Obtenir tous les plugins

    Utilisez ce qui suit pour récupérer des informations sur les plugins actuellement dans le Registre.

        curl \
          --header "Content-Type: application/json" \
          --user $EMAIL \
          --request GET \
          https://players.api.brightcove.com/v2/plugins
              

    Les informations retournées apparaîtront comme suit :

        [{
          "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"
        }]
              

    Obtenir des informations spécifiques sur le plugin

    Utilisez ce qui suit pour récupérer des informations sur un plugin spécifique. Notez que le nom du plugin doit être encodé par URL, donc au lieu d' @brightcove/videojs-ima3 utiliser %40brightcove%2fvideojs-ima3 .

        curl \
          --header "Content-Type: application/json" \
          --user $EMAIL \
          --request GET \
          https://players.api.brightcove.com/v2/plugins/%40brightcove%2fvideojs-ima3
              

    Les informations retournées apparaîtront comme suit :

        {
          "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"
        }

    Bien que ce n'est pas indiqué dans cette réponse, vous pouvez également voir une before_template-version propriété et une valeur correspondante. Cela apparaîtra pour les anciens plugins et définit la dernière version du modèle de lecteur avec laquelle cette version du plugin est compatible. Le minimum_template_version et before_template-version travaillent ensemble pour définir la gamme de versions de modèle de lecteur avec lesquelles le plugin est compatible.