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.