Crear una sesión de reproducción
Request and consume the DRM-X Universal Playback Session Contract with authentication, trusted Content IDs, and bounded authorization.
Crear una sesión de reproducción universal #
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"
}
}
Una respuesta exitosa de Contrato v1 incluye el manifiesto autoritativo, las variantes de manifiesto disponibles, una licencia DRM- específica URL, una autorización proxy de corta duración DRM License Token o de cliente, una ruta de liberación, la altura máxima licenciada, y las pistas permitidas. Devuélvalo con Cache-Control: no-store.
Usar una sesión impredecible ID para cada intento de reproducción real. Reutilizar un ID a través de dispositivos derrota el conteo de corriente simultánea.
Autenticación y campos de solicitud de confianza #
Llame a este API de su backend con un proyecto API cliente que tiene license-tokens:create. Utilice el medio ambiente UUID como siteId. Su espectador autenticado llama su punto final; su punto final proporciona los campos de confianza a continuación.
| Campo | Significado | Regla de integración |
|---|---|---|
contentId | La referencia del contenido publicado | Resolver desde su catálogo de confianza después del cheque de derechos. |
subject | Su identificador de visualización estable | Derivado de la sesión autenticada, no un usuario suministrado por el cliente ID. |
drmSystem | widevine, playready, fairplay, o wiseplay | Coincide con las capacidades seleccionadas DRM a las reproductor. |
sessionId | Identidad de este intento de reproducción | Generar un nuevo valor impredecible para cada intento. |
contentType | vod o live | Utilice el tipo registrado para el contenido. |
playbackMode | streaming en Contrato v1 | La reproducción sin línea requiere una prórroga posterior del contrato. |
licensePolicyTemplate / licensePolicy | Una política o política personalizada nombrada | Seleccione en su servidor; no provea ambos. Ver reglas de política. |
platformCapabilities | Plataforma, DRM sistemas, tipos de manifiesto, e indicios de dispositivo | Enviar capacidades explícitas con nuevas integraciones. Describen al cliente; no anulan la política de licencia. |
Consumir los descriptores de respuesta #
Utilice los descriptores de Contrato anidado v1. No construya URLs de licencias de adivinanzas o reemplace URLs de manifiesto registrados con entradas reproductor.
| Campo de respuesta | Cómo utilizarlo |
|---|---|
contractVersion | Verifique que la versión del contrato devuelto es compatible con su integración. |
manifestUrl / manifestUrls | Cargue el manifiesto autorizado seleccionado o una variante compatible devuelta. |
expiresAt | La expiración de esta autorización consolidada. |
drm | Lea system, licenseServerUrl, drmLicenseToken, tokenType, y el opcional fairPlayCertificateUrl. Un proxy de token del cliente puede reemplazar la autorización del navegador con su propia sesión atada. |
release | Utilice su url, method, y authorizationScheme para liberar la sesión cuando termina la reproducción. |
policy | Honor maximumHeight y allowedTrackTypes. El proveedor aún hace cumplir la política firmada. |
tracks | Lea la capacidad de selección de audio/subtítulos y el estándar de etiquetas de idioma. |
Regrese su reproductor respuesta con Cache-Control: no-store. Nunca reenvíe el proyecto Access Key al navegador. Restringir los encabezados de autorización a la licencia devuelta y las rutas de certificado.
Errores de mano y reservas de liberación #
Inspeccione el estado HTTP y legible por máquina code. Retenga el requestId para la solución de problemas y respeto retryable; un derecho negado o una política inválida necesita una decisión corregida, no un bucle de reingreso. Ver la referencia de error playback session.
Libere la reserva en Stop, reemplazo de reproducción, errores terminales y cierre de aplicaciones. Un nuevo intento de reproducción consigue una nueva sesión ID.
DRM-X 6.0