DRM-X 6.0 Taube und Olivenzweig LogoDRM-X 6.0Dokumentation
◎ Deutsch

Wiedergabesitzung erstellen

Fordern Sie den DRM-X Universal Playback Session Contract mit Authentifizierung, vertrauenswürdigen Content IDs und begrenzter Autorisierung an.

Markdown anzeigenLive-BeispieleAktualisiert am 2026-10-26

So wird die Wiedergabe autorisiert

Ihr Backend entscheidet, wer Inhalte ansehen darf. DRM-X stellt die Wiedergabeautorisierung bereit. Damit fordert der Player eine DRM-Lizenz an.

  1. Zuschauer

    Meldet sich bei Ihrem Dienst an und fordert ein Video an.

  2. Ihr Backend

    Prüft den Kauf, das Abonnement oder eine andere Zugriffsberechtigung des Nutzers.

  3. DRM-X

    Wendet die gewählten Wiedergaberegeln an und gibt Konfiguration und Autorisierung zurück.

  4. Player

    Fordert mit der erhaltenen Autorisierung die für die Wiedergabe benötigte DRM-Lizenz an.

Ihr Backend entscheidet über den Zugriff; DRM-X erzwingt die unterschriebene Richtlinie. Verschlüsselte Medien und DRM Lizenzen folgen getrennten Lieferwegen.
API

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-beta.4"
  }
}

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.

Beispiel einer erfolgreichen Antwort

Dieses Beispiel verwendet nicht funktionsfähige Beispiel-URLs und einen Platzhalter-Token. Lesen Sie die verschachtelten Deskriptoren; Kompatibilitätsaliase sind für ältere Integrationen enthalten.

{
  "contractVersion": 1,
  "playbackMode": "streaming",
  "sessionId": "c9006ed8-58c8-45db-9ed0-311d1047c210",
  "contentId": "course-12-lesson-4",
  "drmSystem": "widevine",
  "manifestUrl": "https://media.example.test/course-12/manifest.mpd",
  "manifestUrls": {"dash": "https://media.example.test/course-12/manifest.mpd"},
  "expiresAt": "2026-10-26T12:10:00Z",
  "drm": {
    "system": "widevine",
    "licenseServerUrl": "https://license6.drm-x.com/v1/licenses/widevine",
    "drmLicenseToken": "REDACTED_EXAMPLE_ONLY",
    "tokenType": "Bearer",
    "fairPlayCertificateUrl": null
  },
  "release": {
    "url": "https://license6.drm-x.com/v1/playback-sessions/release",
    "method": "POST",
    "authorizationScheme": "Bearer"
  },
  "policy": {"maximumHeight": 1080, "allowedTrackTypes": ["AUDIO", "SD", "HD"]},
  "tracks": {"audioLanguageSelection": true, "subtitleLanguageSelection": true, "languageTagStandard": "BCP-47"},
  "platformCapabilities": null,
  "playerBranding": null,
  "token": "REDACTED_EXAMPLE_ONLY",
  "tokenType": "Bearer",
  "licenseServerUrl": "https://license6.drm-x.com/v1/licenses/widevine",
  "fairPlayCertificateUrl": null,
  "releaseUrl": "https://license6.drm-x.com/v1/playback-sessions/release",
  "maximumHeight": 1080,
  "allowedTrackTypes": ["AUDIO", "SD", "HD"]
}

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.

FeldBedeutungIntegrationsregel
contentIdDie veröffentlichte InhaltsreferenzLösen Sie aus Ihrem vertrauenswürdigen Katalog nach der Berechtigungsprüfung.
subjectIhre stabile Viewer-KennungAbleiten von der authentifizierten Sitzung, nicht von einem Client bereitgestellten Benutzer ID.
drmSystemwidevine, playready, fairplay oder wiseplayPassen Sie die ausgewählten DRM zu den Player Fähigkeiten.
sessionIdIdentität dieses WiedergabeversuchsGenerieren Sie einen neuen, unvorhersehbaren Wert für jeden Versuch.
contentTypevod oder liveVerwenden Sie den Typ, der für den Inhalt registriert ist.
playbackModestreaming im Vertrag v1Die Offline-Wiedergabe erfordert eine spätere Vertragsverlängerung.
licensePolicyTemplate / licensePolicyEine benannte Richtlinie oder eine benutzerdefinierte RichtlinieWählen Sie auf Ihrem Server aus; geben Sie nicht beide an. siehe policy rules.
platformCapabilitiesPlattform, DRM Systeme, manifeste Typen und GerätehinweiseSenden 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.

AntwortfeldWie man es benutzt
contractVersionStellen Sie sicher, dass die zurückgegebene Vertragsversion von Ihrer Integration unterstützt wird.
manifestUrl / manifestUrlsLaden Sie das autoritativ ausgewählte Manifest oder eine zurückgegebene kompatible Variante.
expiresAtDer Ablauf dieser begrenzten Ermächtigung.
drmLesen Sie system, licenseServerUrl, drmLicenseToken, tokenType und den optionalen fairPlayCertificateUrl. Ein Customer-Token-Proxy kann die Browser-zugewandte Autorisierung durch eine eigene begrenzte Sitzung ersetzen.
releaseVerwenden Sie seine url, method und authorizationScheme, um die Sitzung zu veröffentlichen, wenn die Wiedergabe endet.
policyEhre maximumHeight und allowedTrackTypes. Der Anbieter setzt die unterschriebene Richtlinie weiterhin durch.
tracksLesen 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.

POST https://license6.drm-x.com/v1/playback-sessions/release
Authorization: Bearer REDACTED_EXAMPLE_ONLY
Accept: application/json

HTTP/1.1 200 OK
{"contractVersion":1,"released":true,"code":"license_session_released","requestId":"example-request-id"}

Verwenden Sie die zurückgegebene Freigabe-URL und das Autorisierungsschema mit demselben DRM License Token. Ein Anfragekörper ist nicht erforderlich. Eine authentifizierte wiederholte Freigabe liefert HTTP 200 mit released false und code license_session_not_active. Abgelaufene oder ungültige Autorisierung kann vor der Freigabe fehlschlagen; holen Sie für einen neuen Wiedergabeversuch eine neue Autorisierung ein. Wiederholen Sie vorübergehende Dienstfehler mit zunehmender Wartezeit und begrenzter Versuchszahl.

Dieser öffentliche Vertrag beschreibt Streaming. Kundeneigene Offline-Endpunkte und gerätegebundene dauerhafte Lizenzen haben eigene Abläufe. Verwenden Sie diese Streaming-Antwort nicht als Offline-Lizenz.