Créer une session de lecture
Request and consume the DRM-X Universal Playback Session Contract with authentication, trusted Content IDs, and bounded authorization.
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.
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éponse | Comment l'utiliser |
|---|---|
contractVersion | Vérifiez que la version du contrat retourné est supportée par votre intégration. |
manifestUrl / manifestUrls | Chargez le manifeste sélectionné faisant autorité ou une variante compatible retournée. |
expiresAt | L'expiration de cette autorisation limitée. |
drm | Lire 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. |
release | Utilisez ses url, method et authorizationScheme pour libérer la session lorsque la lecture prend fin. |
policy | Honor maximumHeight et allowedTrackTypes. Le fournisseur applique toujours la politique signée. |
tracks | Lisez 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.
DRM-X 6.0