Was ist die Plugin-Registry?
Die Plugin-Registrierung ist ein Abschnitt der Player-Verwaltungs-API, der dem Speichern von Informationen über Brightcove-Plugins gewidmet ist. Die Registrierung dient als Referenz für alle Versionen jedes gespeicherten Plugins sowie die damit verbundenen Skripte und Stylesheets. Die Player-Konfiguration nutzt die Plugin-Registry, zeigt die aktuelle Plugin-Version an und ermöglicht es Ihnen auch, eine Plugin-Version anzugeben.
Vorteile
Die Vorteile der Plugin-Registrierung für Brightcove Player-Benutzer sind dreifach:
- Sie können genau sehen, welche Version des Plugins mit Ihrem Player verwendet wird, sowie die spezifischen JavaScript- und CSS-Dateien, die dieser spezifischen Plugin-Version zugeordnet sind.
- Sie können Plugins so konfigurieren, dass sie automatisch aktualisiert werden, wenn neue Versionen veröffentlicht werden, die mit Ihrer Player-Version kompatibel sind.
- Wenn Sie sich aus irgendeinem Grund dafür entscheiden, einen Player auf einer bestimmten Player-Version zu behalten, bleiben Ihre Plugins auf denselben spezifischen Versionen für diesen Player, als er gesperrt wurde. Sie müssen sich keine Sorgen machen, dass ein Plugin auf eine Version aktualisiert wird, die nicht mit Ihrer Player-Version kompatibel ist.
Aktuelle berechtigte Plugins
Die folgende Tabelle zeigt die von Brightcove bereitgestellten Plugins, die mit der Plugin-Registrierung funktionieren. Die Plugin-Registrierungs-ID wird mit der Player-Konfiguration in Verbindung mit der Player Management API verwendet. In diesem Dokument werden zahlreiche Beispiele gezeigt.
Name des Plugins | Plugin-Registrierungs-ID |
---|---|
Adobe Analytics-Player | @brightcove/videojs-bc-aa |
Chromecast-Empfänger | @brightcove/videojs-chromecast-receiver |
Benutzerdefinierter Endbildschirm | @brightcove/videojs-custom-endscreen |
DRM | @brightcove/videojs-drm |
Google Analytics-Player | @brightcove/videojs-bc-ga |
IMA3-Werbung | @brightcove/videojs-ima3 |
Überlagerung | @brightcove/videojs-overlay |
Bild im Bild | @brightcove/videojs-pip |
Playlist-Benutzeroberfläche | @brightcove/videojs-bc-playlist-ui |
Qualitätsauswahlmenü | @brightcove/videojs-quality-menu |
Sozial | @brightcove/videojs-social |
SSAI | @brightcove/videojs-ssai |
Tealium-Player-Plugin | @brightcove/videojs-bc-tealium |
Verwendung eines Plugins angeben
Um die Verwendung eines Plugins anzugeben, geben Sie bei Ihrer Player-Erstellung einfach die Registrierungs-ID für das gewünschte Plugin an. Sie müssen eine Versionsnummer angeben, entweder eine Hauptversion, die automatisch aktualisiert wird (z. B. 2.x) , oder eine Nebenversion (z. B. 2.0.10) , die nicht automatisch aktualisiert wird. Details zum Festlegen der Version finden Sie weiter unten in diesem Dokument. Sie können auch bereitstellen options
für das Plugin, falls vorhanden.
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
Informationen zum erstellten Player werden von der Player Management API zurückgegeben. Sie können den zurückgegebenen URL-Wert verwenden, die Datei index.html in config.json ändern und diese URL durchsuchen, um die Konfiguration des veröffentlichten Players zu sehen.
{
"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>"
}
In der Konfiguration des veröffentlichten Players sehen Sie die Informationen zum Plugin. Beachten Sie, dass eine bestimmte Version des Plugins zusammen mit den entsprechenden Werten für die JavaScript- und CSS-Dateien angezeigt wird.
{
"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"
}
}
Spezifische Hauptversion angeben
Sie können einen Player so konfigurieren, dass er die neueste Version des Plug-ins für eine bestimmte Hauptversion verwendet, die mit dem von Ihnen verwendeten Player kompatibel ist. Wenn Sie dies tun und Nebenversionen des Plugins veröffentlicht werden, wird das Plugin automatisch auf die neueste Nebenversion aktualisiert.
Wenn Sie beispielsweise möchten, dass Ihr Player die neueste kompatible Version des benutzerdefinierten Endscreen-Plugins für Hauptversion 2 des Plugins würden Sie Folgendes verwenden:
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
Die resultierende Konfiguration sieht wie folgt aus:
"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"
],
Spezifische Version angeben
Sie können eine bestimmte Version des zu verwendenden Plugins angeben. Wenn Sie dies tun, wird das Plugin unter keinen Umständen automatisch aktualisiert, sodass Sie bei Bedarf manuell aktualisieren müssen.
Um eine Version des Plugins zu sperren, geben Sie einfach die Version beim Erstellen des Players an:
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
Die Player-Konfiguration spiegelt die jeweilige Version sowie in den JavaScript- und CSS-Dateien wider:
"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"
],
Nicht kompatible Aufgaben
Wenn Sie versuchen, einem Player ein inkompatibles Plugin zuzuweisen oder die Version eines Players so zu ändern, dass ein zuvor zugewiesenes Plugin nicht mehr kompatibel ist, treten Fehler auf. Die Fehler werden hier detailliert beschrieben.
Plugin einem nicht kompatiblen Player zuweisen
Wenn Sie zu irgendeinem Zeitpunkt bei der Player-Erstellung oder -Aktualisierung versuchen, eine Plugin-Version anzugeben, die nicht mit einer Player-Version kompatibel ist, erhalten Sie eine Fehlermeldung. Hier ist zum Beispiel eine Antwort der API, wenn versucht wird, einem neuen Player ein nicht kompatibles, älteres Plugin zuzuweisen:
{
"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",
}
Ändern Sie die Player-Version, die nicht mit dem Plugin kompatibel ist
Wenn Sie versuchen, die Version eines vorhandenen Players zu ändern und der Player bereits über ein Plugin verfügt, das nicht mit der neu zugewiesenen Version des Players kompatibel ist, erhalten Sie eine Fehlermeldung ähnlich der folgenden:
{
"error_code":"APPLICATION_ERROR",
"message":"plugin \"@brightcove/videojs-ima3\" is not compatible with template 5.28.1"
}
Studio-konfiguriertes Plugin
Wenn ein Plugin über Studio geladen wird, spiegelt das Plugin neue Funktionen in der Plugin-Registry wider:
{
"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
}
}
Wie Sie in der Player-Konfiguration sehen können, wird ein in Studio geladenes Plugin mit dem Verhalten der Hauptversion aktualisiert, d. h., Nebenversions-Updates werden automatisch angewendet.
Registrierungsinformationen aktualisieren
Sie können die Plugin-Registrierungsinformationen für einen Player mit Standardverfahren aktualisieren. Die folgende curl-Anweisung verwendet beispielsweise das HTTP PATCH
Methode, um ein Plugin von einer bestimmten Version in das Update-Verhalten der Hauptversion zu ändern:
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
Denken Sie daran, dass Sie Ihren Player veröffentlichen müssen, nachdem Sie eine Änderung vorgenommen haben.
Plugin-Registry-API
Der Player Management API wurden zwei neue Endpunkte hinzugefügt, die das Abrufen von Plugin-Informationen aus der Registrierung ermöglichen und Ihnen folgende Funktionen bieten:
- Rufen Sie alle Plugins in der Registrierung ab.
- Rufen Sie Informationen zu einem bestimmten Plugin ab.
Holen Sie sich alle Plugins
Verwenden Sie Folgendes, um Informationen zu den Plugins abzurufen, die sich derzeit in der Registrierung befinden.
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request GET \
https://players.api.brightcove.com/v2/plugins
Die zurückgegebenen Informationen erscheinen ähnlich wie folgt:
[{
"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"
}]
Holen Sie sich spezifische Plugin-Informationen
Verwenden Sie Folgendes, um Informationen zu einem bestimmten Plugin abzurufen. Beachten Sie, dass der Plugin-Name URL-kodiert sein muss, also anstelle von @brightcove/videojs-ima3
verwenden %40brightcove%2fvideojs-ima3
.
curl \
--header "Content-Type: application/json" \
--user $EMAIL \
--request GET \
https://players.api.brightcove.com/v2/plugins/%40brightcove%2fvideojs-ima3
Die zurückgegebenen Informationen erscheinen ähnlich wie folgt:
{
"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"
}
Obwohl in dieser Antwort nicht angezeigt, können Sie auch a before_template-version
Eigentum und entsprechenden Wert. Dies wird für ältere Plugins angezeigt und legt die neueste Version der Player-Vorlage fest, mit der diese Plugin-Version kompatibel ist. Die minimum_template_version
und before_template-version
arbeiten zusammen, um den Bereich der Player-Vorlagenversionen festzulegen, mit denen das Plugin kompatibel ist.