Plugin-Registrierung

In diesem Thema erfahren Sie, wie die Plugin-Registrierung zur Verfolgung und Verwaltung der vom Brightcove-Player verwendeten Plugins verwendet werden kann.

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.