Eine Wiedergabesitzung erstellen
Fordern Sie den DRM-X Universal Playback Session Contract mit Authentifizierung, vertrauenswürdigen Content IDs und begrenzter Autorisierung an.
Erstellen Sie eine universelle Playback-Sitzung#
POST https://api6.drm-x.com/api/v1/playback/environments/{siteId}/sessions
Accept: application/json
Content-Type: application/json
X-DRMX-Client-Id: {siteKey}
X-DRMX-Client-Secret: {accessKey}
{
"contentId": "course-12-lesson-4",
"contentType": "vod",
"drmSystem": "widevine",
"subject": "customer-user-1001",
"sessionId": "new-unpredictable-id-per-playback",
"playbackMode": "streaming",
"licensePolicyTemplate": "multi-tier-standard",
"useEnvironmentDefaults": true,
"applicationId": "customer-web",
"platformCapabilities": {
"clientPlatform": "web",
"drmSystems": ["widevine"],
"manifestTypes": ["dash"],
"maximumHeight": 2160,
"persistentState": false,
"sdkVersion": "1.2.0-preview.6"
}
}
Eine erfolgreiche Contract v1-Antwort enthält das autoritative Manifest, verfügbare Manifestvarianten, eine DRM-Sondergenehmigung URL, eine kurzlebige DRM License Token oder Kunden-Proxy-Autorisierung, eine Release-Route, die lizenzierte maximale Höhe und erlaubte Tracks. Cache-Control: no-store.
Verwenden Sie eine unvorhersehbare Sitzung ID für jeden realen Wiedergabeversuch. Wiederverwendung einer ID über Geräte hinweg besiegt die gleichzeitige Stromzählung.
Authentifizierung und vertrauenswürdige Anfragefelder#
Rufen Sie diesen API aus Ihrem Backend mit einem Projekt API-Client auf, der license-tokens:create hat. Verwenden Sie die Umgebung UUID als siteId. Ihr authentifizierter Viewer ruft Ihren Endpunkt auf; Ihr Endpunkt liefert die vertrauenswürdigen Felder unten.
| Feld | Bedeutung | Integrationsregel |
|---|---|---|
contentId | Die veröffentlichte Inhaltsreferenz | Lösen Sie aus Ihrem vertrauenswürdigen Katalog nach der Berechtigungsprüfung. |
subject | Ihre stabile Viewer-Kennung | Ableiten von der authentifizierten Sitzung, nicht von einem Client bereitgestellten Benutzer ID. |
drmSystem | widevine, playready, fairplay oder wiseplay | Passen Sie die ausgewählten DRM zu den Player Fähigkeiten. |
sessionId | Identität dieses Wiedergabeversuchs | Generieren Sie einen neuen, unvorhersehbaren Wert für jeden Versuch. |
contentType | vod oder live | Verwenden Sie den Typ, der für den Inhalt registriert ist. |
playbackMode | streaming im Vertrag v1 | Die Offline-Wiedergabe erfordert eine spätere Vertragsverlängerung. |
licensePolicyTemplate / licensePolicy | Eine benannte Richtlinie oder eine benutzerdefinierte Richtlinie | Wählen Sie auf Ihrem Server aus; geben Sie nicht beide an. siehe policy rules. |
platformCapabilities | Plattform, DRM Systeme, manifeste Typen und Gerätehinweise | Senden Sie explizite Funktionen mit neuen Integrationen. Sie beschreiben den Client; sie überschreiben die Lizenzrichtlinie nicht. |
Verwenden Sie die Antwort-Deskriptoren#
Verwenden Sie die verschachtelten Contract v1-Deskriptoren. Konstruieren Sie keine Lizenz-URLs aus Vermutungen oder ersetzen Sie registrierte Manifest-URLs durch Player-Eingaben.
| Antwortfeld | Wie man es benutzt |
|---|---|
contractVersion | Stellen Sie sicher, dass die zurückgegebene Vertragsversion von Ihrer Integration unterstützt wird. |
manifestUrl / manifestUrls | Laden Sie das autoritativ ausgewählte Manifest oder eine zurückgegebene kompatible Variante. |
expiresAt | Der Ablauf dieser begrenzten Ermächtigung. |
drm | Lesen Sie system, licenseServerUrl, drmLicenseToken, tokenType und den optionalen fairPlayCertificateUrl. Ein Customer-Token-Proxy kann die Browser-zugewandte Autorisierung durch eine eigene begrenzte Sitzung ersetzen. |
release | Verwenden Sie seine url, method und authorizationScheme, um die Sitzung zu veröffentlichen, wenn die Wiedergabe endet. |
policy | Ehre maximumHeight und allowedTrackTypes. Der Anbieter setzt die unterschriebene Richtlinie weiterhin durch. |
tracks | Lesen Sie Audio-/Untertitel-Sprachauswahlfähigkeit und den Sprach-Tag-Standard. |
Geben Sie Ihre Player-Antwort mit Cache-Control: no-store zurück. leiten Sie das Projekt Access Key niemals an den Browser weiter. Beschränken Sie die Autorisierungs-Header auf die zurückgegebenen Lizenz- und Zertifikatsrouten.
Behandeln Sie Fehler und veröffentlichen Sie Reservierungen#
Inspektion der HTTP Status und maschinenlesbar code. Behalten Sie die requestId für Troubleshooting und Respekt retryable; Eine verweigerte Berechtigung oder ungültige Politik erfordert eine korrigierte Entscheidung, keine Wiederholungsschleife. Wiedergabesitzungsfehlerreferenz.
Veröffentlichen Sie die Reservierung auf Stop, Wiedergabeersatz, Terminalfehler und Anwendungsabschaltung. Ein neuer Wiedergabeversuch erhält eine neue Sitzung ID.
DRM-X 6.0