DRM-X 6.0 paloma y rama de olivo logotipoDRM-X 6.0Documentación
◎ Español

Crea una sesión de reproducción

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

Ver MarkdownEjemplos en funcionamientoActualizado el 2026-10-26

Cómo se autoriza la reproducción

Su backend decide quién puede ver el contenido. DRM-X proporciona la autorización de reproducción. El reproductor la utiliza para solicitar una licencia DRM.

  1. Espectador

    Inicia sesión en su servicio y solicita un vídeo.

  2. Su backend

    Comprueba la compra, la suscripción u otro permiso del usuario para ver el contenido.

  3. DRM-X

    Aplica las reglas seleccionadas y devuelve la configuración y la autorización de reproducción.

  4. Reproductor

    Utiliza la autorización recibida para solicitar la licencia DRM necesaria para reproducir el contenido.

Su backend decide el acceso; DRM-X aplica la política firmada. Los medios cifrados y las licencias DRM siguen caminos de entrega separados.
API

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

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.

Ejemplo de respuesta correcta

Este ejemplo utiliza URL de muestra no operativas y un token de marcador de posición. Lea los descriptores anidados; los alias de compatibilidad se incluyen para integraciones anteriores.

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

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.

CampoSignificadoRegla de integración
contentIdLa referencia del contenido publicadoResolver desde su catálogo de confianza después del cheque de derechos.
subjectSu identificador de visualización estableDerivado de la sesión autenticada, no un usuario suministrado por el cliente ID.
drmSystemwidevine, playready, fairplay, o wiseplayCoincide con las capacidades seleccionadas DRM a las reproductor.
sessionIdIdentidad de este intento de reproducciónGenerar un nuevo valor impredecible para cada intento.
contentTypevod o liveUtilice el tipo registrado para el contenido.
playbackModestreaming en Contrato v1La reproducción sin línea requiere una prórroga posterior del contrato.
licensePolicyTemplate / licensePolicyUna política o política personalizada nombradaSeleccione en su servidor; no provea ambos. Ver reglas de política.
platformCapabilitiesPlataforma, DRM sistemas, tipos de manifiesto, e indicios de dispositivoEnviar 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 respuestaCómo utilizarlo
contractVersionVerifique que la versión del contrato devuelto es compatible con su integración.
manifestUrl / manifestUrlsCargue el manifiesto autorizado seleccionado o una variante compatible devuelta.
expiresAtLa expiración de esta autorización consolidada.
drmLea 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.
releaseUtilice su url, method, y authorizationScheme para liberar la sesión cuando termina la reproducción.
policyHonor maximumHeight y allowedTrackTypes. El proveedor aún hace cumplir la política firmada.
tracksLea 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.

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

Use la URL de liberación y el esquema de autorización devueltos, con el mismo DRM License Token. No se requiere cuerpo de solicitud. Una liberación repetida y autenticada devuelve HTTP 200, released false y code license_session_not_active. Una autorización caducada o no válida puede fallar antes de liberar la sesión; obtenga una nueva autorización para un nuevo intento de reproducción. Reintente los fallos temporales del servicio con espera progresiva y un límite de intentos.

Este contrato público describe la reproducción en streaming. Los endpoints de uso sin conexión del cliente y las licencias persistentes vinculadas a dispositivos tienen flujos independientes; no reutilice esta respuesta de streaming como licencia sin conexión.