DRM-X 6.0 logo de la colombe et de la branche d'oliveDRM-X 6.0Documentation
◎ Français

Créer une session de lecture

Request and consume the DRM-X Universal Playback Session Contract with authentication, trusted Content IDs, and bounded authorization.

Voir le MarkdownExemples en ligneMise à jour 2026-09-05
Votre moteur décide de l'accès; DRM-X applique la politique signée. Les licences de médias chiffrés et DRM suivent des chemins de livraison séparés.
Votre moteur décide de l'accès; DRM-X applique la politique signée. Les licences de médias chiffrés et DRM suivent des chemins de livraison séparés.
API

Créer une session de lecture universelle #

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"
  }
}

Une réponse réussie au contrat v1 comprend le manifeste faisant autorité, les variantes disponibles, DRM-licence spécifique URL, une courte durée de vie DRM License Token ou l'autorisation de procuration du client, un itinéraire de libération, la hauteur maximale autorisée et les voies autorisées. Cache-Control: no-store.

Utilisez une session imprévisible ID pour chaque tentative de lecture réelle. La réutilisation d'un ID à travers les appareils va à l'encontre du comptage simultané du flux.

Authentification et champs de requête de confiance#

Appelez ce API de votre serveur avec un client de projet API qui a license-tokens:create. Utilisez l'environnement UUID comme siteId. Votre visionneur authentifié appelle votre terminal; votre terminal fournit les champs de confiance ci-dessous.

ChampSignificationRègle d'intégration
contentIdLa référence de contenu publiéeRésoudre à partir de votre catalogue de confiance après la vérification des droits.
subjectVotre identifiant de visionneur stableDérivé de la session authentifiée, pas d'un utilisateur fourni par le client ID.
drmSystemwidevine, playready, fairplay ou wiseplayCorrespond à la sélection DRM à la lecteur capacités.
sessionIdIdentité de cette tentative de lectureGénérer une nouvelle valeur imprévisible pour chaque tentative.
contentTypevod ou liveUtilisez le type enregistré pour le contenu.
playbackModestreaming dans Contrat v1La lecture hors ligne nécessite une extension ultérieure du contrat.
licensePolicyTemplate / licensePolicyUne politique désignée ou une politique sur les douanesSélectionnez sur votre serveur; ne fournissez pas les deux. Voir les règles de politique .
platformCapabilitiesPlate-forme, systèmes DRM, types de manifestes et conseils d'appareilEnvoyer des capacités explicites avec de nouvelles intégrations. Ils décrivent le client; ils ne remplacent pas la politique de licence.

Consommez les descripteurs de réponse#

Utilisez les descripteurs de contrat v1 imbriqués. Ne construisez pas d'URL de licence à partir de devines ou remplacez les URLs manifestes enregistrées par lecteur entrées.

Champ de réponseComment l'utiliser
contractVersionVérifiez que la version du contrat retourné est supportée par votre intégration.
manifestUrl / manifestUrlsChargez le manifeste sélectionné faisant autorité ou une variante compatible retournée.
expiresAtL'expiration de cette autorisation limitée.
drmLire system, licenseServerUrl, drmLicenseToken, tokenType et l'option fairPlayCertificateUrl. Un proxy jeton du client peut remplacer l'autorisation face au navigateur par sa propre session délimitée.
releaseUtilisez ses url, method et authorizationScheme pour libérer la session lorsque la lecture prend fin.
policyHonor maximumHeight et allowedTrackTypes. Le fournisseur applique toujours la politique signée.
tracksLisez la capacité de sélection de la langue audio/sous-titre et la norme de langue-tag.

Retournez votre réponse lecteur avec Cache-Control: no-store. Ne transmettez jamais le projet Access Key dans le navigateur. Limitez les en-têtes d'autorisation aux itinéraires de licence et de certificat retournés.

Gérer les erreurs et les réservations de libération#

Inspectez l'état HTTP et la machine-readable code. Conservez le requestId pour le dépannage et le respect retryable ; un droit refusé ou une police invalide a besoin d'une décision corrigée, pas d'une boucle de réessayer. Consultez la référence d'erreur de session playback .

Relâchez la réservation sur Stop, le remplacement de la lecture, les erreurs de terminal et l'arrêt de l'application. Une nouvelle tentative de lecture obtient une nouvelle session ID.