# 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.

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.

- 01**Espectador**

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

- 02**Su backend**

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

- 03**DRM-X**

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

- 04**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 [#](#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"
  }
}
```



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

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

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

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

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

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.

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