Registre des plugins

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 de gestion des lecteurs consacrée au stockage d'informations sur les plugins Brightcove. Le registre sert de référence pour toutes les versions de chaque plugin stocké, ainsi que les scripts et les feuilles de style associés à chacun. La configuration du lecteur exploite le registre des plug-ins, affichant la version actuelle du plug-in et vous permettant également de spécifier une version du plug-in.

Avantages

Les avantages du registre de plugins pour les utilisateurs de Brightcove Player sont triples :

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

Plugins éligibles actuels

Le tableau suivant montre les plug-ins fournis par Brightcove qui fonctionnent avec le registre de plug-ins. Les ID de registre du plug-in sera utilisé avec la configuration du lecteur en conjonction avec l'API de gestion des lecteurs. De nombreux exemples seront présentés dans ce document.

Nom du plugin ID de registre du plug-in
Lecteur Adobe Analytics @brightcove/videojs-bc-aa
Récepteur Chromecast @brightcove/videojs-chromecast-receiver
Écran de fin personnalisé @brightcove/videojs-custom-endscreen
GDN @brightcove/videojs-drm
Lecteur Google Analytics @brightcove/videojs-bc-ga
Publicité IMA3 @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
Social @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, lors de la création de votre lecteur, vous fournissez simplement l'ID de registre du plugin souhaité. Vous devez spécifier un numéro de version, soit une version majeure qui se mettra à jour automatiquement (par exemple 2.x ) ou une version mineure (par exemple 2.0.10 ) qui ne se mettra pas à jour automatiquement. Les détails sur la configuration 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 le URL valeur renvoyée, modifiez la index.html à config.json et parcourez cette URL pour voir la configuration du lecteur publié.

    {
      "id": "rkGD9W22Ob",
      "url": "https://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": "https://players.brightcove.net/1507807800001/rkGD9W22Ob_default/in_page.embed",
      "preview_url": "https://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, ainsi que 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écifiez la version principale spécifique

Vous pouvez configurer un lecteur pour utiliser la dernière version du plugin pour un Majeur version compatible avec le lecteur que vous utilisez. Lorsque vous faites cela et que 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écifiez la version spécifique

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

Pour verrouiller une version du plugin, il suffit de préciser la version lors de la création du player :

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

Devoirs non compatibles

Si vous essayez d'attribuer un plugin incompatible à un lecteur ou de modifier 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 le plugin à un lecteur non compatible

Si à tout moment, que ce soit lors de la création ou de 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 donc non compatible avec le plugin

Si vous essayez de changer la version d'un lecteur existant et que le lecteur dispose déjà d'un plugin qui n'est pas compatible avec la nouvelle version du lecteur, vous obtiendrez une erreur semblable à 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 les 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 majeure, c'est-à-dire que les mises à jour de la version mineure seront automatiquement appliquées.

Mise à jour des informations du registre

Vous pouvez mettre à jour les informations de registre de plug-in pour un lecteur à l'aide de 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-ins

Deux nouveaux points de terminaison ont été ajoutés à l'API de gestion des lecteurs 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.

Obtenez tous les plugins

Utilisez ce qui suit pour récupérer des informations sur les plug-ins actuellement dans le registre.

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

Les informations renvoyées apparaîtront semblables aux informations suivantes :

    [{
      "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 les plugins

Utilisez ce qui suit pour récupérer des informations sur un plugin spécifique. Notez que le nom du plugin doit être encodé en URL, donc au lieu de @brightcove/videojs-ima3 utilisation %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 renvoyées apparaîtront semblables aux informations suivantes :

    {
      "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 cela ne soit pas indiqué dans cette réponse, vous pouvez également voir un before_template-version propriété et la 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 de plugin est compatible. Les minimum_template_version et before_template-version travailler ensemble pour définir la gamme de versions de modèles de lecteur avec lesquelles le plugin est compatible.