Einleitung
Mit Brightcove-Wiedergabeeinschränkungen können Sie Gerätebeschränkungen für die Videowiedergabe festlegen. Das Gerät jedes Benutzers wird mit einer eindeutigen ID registriert, wenn eine DRM-Lizenzanfrage gestellt wird. Sie steuern die Anzahl der Geräte pro Benutzer.
Das Gerätelimit wird bei jeder Lizenzanfrage überprüft und durchgesetzt. Um diese Einschränkung zu nutzen, müssen Sie a JSON-Webtoken (JWT) mit der aktuellen Benutzerkennung uid
zur Wiedergabe-API.
Wenn Sie diese Funktion noch nicht kennen, lesen Sie die Überblick: Dokument „Brightcove Playback Restrictions“
Geräteregistrierung
Ein Gerät wird bei Brightcove registriert, wenn eine gültige Wiedergabeanforderung, die Folgendes enthält: JSON-Webtoken (JWT) mit uid
und dlimit
Ansprüche eingegangen ist. Ab diesem Moment belegt dieses Gerät einen Steckplatz.
JWT-Ansprüche
Für Gerätegrenzen können Sie neben den allgemein erforderlichen Claims auch die folgenden Claims verwenden:
-
:
uid
Die Benutzer-ID des End-Viewers. Dieses Feld ist für die Geräteregistrierung erforderlich.
-
:
dlimit
Für DRM-Inhalte ist die
dlimit
Claim gibt an, wie viele Geräte ein Benutzer streamen kann. Jedes Gerät von jedem Benutzer, der einen Stream anfordert, wird registriert. Sobald das Stream-Limit erreicht ist, können keine Geräte mehr streamen.Die
dlimit
Mit Claim können Sie steuern, wie viele Geräte mit dem angegebenen Benutzer verknüpft werden könnenuid
. Der Wert muss > sein0
.Wenn die
dlimit
Anspruchswert in späteren Anfragen fallengelassen wird, können zuvor zugelassene Geräte weiter betrieben werden.Beispiel
Wenn diedlimit
Wert wird auf gesetzt3
kann der Benutzer auf den Geräten A, B und C spielen (alles wäre erlaubt). Der Versuch, auf Gerät D zu spielen, wird abgelehnt.
Wenn derdlimit
Wert auf geändert wird1
, kann der Benutzer weiterhin auf allen 3 Geräten A, B und C spielen, es sei denn, die Geräte werden manuell gesperrt, indem Geräte mit der Geräte-API verwaltet werden. Siehe dazu die Geräte verwalten Sektion.
Implementierung
Gehen Sie folgendermaßen vor, um Gerätebeschränkungen zu verwenden:
-
Ein ... kreieren JSON-Web-Token (JWT) mit den allgemein erforderlichen Ansprüchen nebst der
uid
Unddlimit
Ansprüche.Das Gerät jedes Benutzers wird mit einer eindeutigen ID registriert, wenn eine DRM-Lizenzanfrage gestellt wird.
-
Benutzergeräte verwalten mit der Geräte-API. Mit dieser API können Sie die Geräte für einen Benutzer abrufen, Geräte löschen und den Namen für ein Gerät aktualisieren.
Wenn ein Gerät registriert ist, wird es durch ID und Spitzname identifiziert. Mit der Geräte-API können Sie den Geräte-Spitznamen bearbeiten, sodass Sie Ihre Geräteliste einfach verwalten können.
- Konfigurieren Sie Ihren Player die JSON Web Token (JWT) im vorherigen Schritt erstellt.
Geräte verwalten
Sie können Benutzergeräte mit dem Geräte-API.
Geräte-API
Mit der Geräte-API können Sie Benutzergeräte abrufen und löschen.
Basis-URL
Die Basis-URL für die API lautet:
https://playback-auth.api.brightcove.com/v1
Account-Pfad
In allen Fällen werden Anfragen für ein bestimmtes Video Cloud-Konto gestellt. Sie fügen also immer den Begriff Konten gefolgt von Ihrer Konto-ID zur Basis-URL hinzu:
https://playback-auth.api.brightcove.com/v1/accounts/{accountID}
Autorisierung
Ein Zugriffstoken für Anfragen ist erforderlich und muss im Authorization-Header vorhanden sein:
Authorization: Bearer {access_token}
Das Zugriffstoken ist ein temporäres OAuth2-Zugriffstoken, das vom Brightcove OAuth-Dienst abgerufen werden muss. Ausführliche Informationen zum Abrufen von Client-Anmeldeinformationen und deren Verwendung zum Abrufen von Zugriffstoken finden Sie im Übersicht über Brightcove OAuth.
Berechtigungen
Anfragen an die Geräte-API müssen gestellt werden von Kundenanmeldeinformationen mit folgenden Berechtigungen:
-
video-cloud/playback-auth/devices/read
-
video-cloud/playback-auth/devices/write
API-Methoden
Die Geräte-API unterstützt die folgenden Anforderungen. Einzelheiten finden Sie im Geräte-API-Referenz.
Holen Sie sich alle Benutzergeräte
Ruft alle Geräte für das angegebene Konto und den angegebenen Benutzer ab.
Endpunkt anfordernGET /v1/accounts/{accountID}/users/{userID}/devices
Antworttext
Der Antworttext enthält ein Array von Geräten und sollte ungefähr so aussehen:
[
{
"id": "12e12345-11e1-1bd1-d123-1234567890",
"created_at": 1612646018,
"updated_at": 1612646018,
"name": "my device1",
"user_agent": "PlayReadyClient"
},
{
"id": "WVCf123456789abcdefghijkl1234567890abcdefg",
"created_at": 1612385697,
"updated_at": 1612385697,
"name": "my device2",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0"
}
]
Alle Kontogeräte abrufen
Abrufen aller Geräte für jeden Benutzer innerhalb eines Kontos. Sie werden die verwenden page
Und per_page
Parameter, um die Reaktion zu begrenzen.
GET /v1/accounts/{accountID}/devices?page=0&per_page=10
Parameter:
Feld | Typ | Beschreibung | Standardwert | Maximaler Wert |
---|---|---|---|---|
page |
Ganze Zahl | Index der anzufordernden Seite. Ist die Anzahl der Seiten größer als das Seitenlimit, wird die letzte Seite genommen. | 0 | Letzter Index |
per_page |
Ganze Zahl | Anzahl der Elemente, die in der Anfrage angezeigt werden sollen. Sie können zwischen 1 und 100 Einträgen wählen. Wenn Sie keinen Wert angeben, wird der Standardwert verwendet. | 10 | 100 |
Antworttext
Der Antwortkörper enthält eine Reihe von Benutzern und Geräten:
{
"metadata":
{
"page": 3,
"per_page": 10,
"page_count": 5,
"total_count": 55,
"Links": [
{"self": "/v1/accounts/123456/devices?page=3&per_page=10"},
{"first": "/v1/accounts/123456/devices?page=0&per_page=10"},
{"previous": "/v1/accounts/123456/devices?page=2&per_page=10"},
{"next": "/v1/accounts/123456/devices?page=4&per_page=10"},
{"last": "/v1/accounts/123456/devices?page=4&per_page=10"}
]
},
"records": [
{
"account_id": "123456",
"user_id": "user_1",
"device": "device_1"
},
{
"account_id": "123456",
"user_id": "user_1",
"device": "device_2"
},
...
{
"account_id": "123456",
"user_id": "user_10",
"device": "device_1"
}
]
}
Gerätenamen aktualisieren
Aktualisieren Sie den Gerätenamen für das angegebene Konto, den Benutzer und das Gerät.
Endpunkt anfordern
Die PATCH
Mit request können Sie einen beschreibenden Namen für das Gerät festlegen.
PATCH /v1/accounts/{accountID}/users/{userID}/devices/{deviceID}
Content-Type: application/json
Body: {devices object}
Körper der Anfrage
Der Anfragetext enthält den Gerätenamen.
{
"name": "my device1"
}
Hier die Felddetails:
Feld | Typ | Beschreibung |
---|---|---|
name |
Zeichenfolge | Ein beschreibender Spitzname zur Identifizierung des Geräts |
Alle Benutzergeräte löschen
Alle mit einem Benutzer verbundenen Geräte löschen.
Endpunkt anfordernDELETE /v1/accounts/{accountID}/users/{userID}/devices
Löschen eines bestimmten Benutzergeräts
Ein bestimmtes Gerät für einen Benutzer löschen.
Endpunkt anfordernDELETE /v1/accounts/{accountID}/users/{userID}/devices/{deviceID}