# Eine Wiedergabesitzung erstellen

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

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.

- 01**Zuschauer**

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

- 02**Ihr Backend**

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

- 03**DRM-X**

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

- 04**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[#](#create-a-universal-playback-session)



```
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[#](#authentication-and-trusted-request-fields)

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](https://docs.drm-x.com/de/license-service/policies). | 

| `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[#](#consume-the-response-descriptors)

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[#](#handle-errors-and-release-reservations)

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](https://docs.drm-x.com/de/api-reference/errors).

Veröffentlichen Sie die Reservierung auf Stop, Wiedergabeersatz, Terminalfehler und Anwendungsabschaltung. Ein neuer Wiedergabeversuch erhält eine neue Sitzung ID.

<!-- Canonical: https://docs.drm-x.com/de/api-reference/playback-sessions -->
<!-- Language: de -->
