# Criar uma sessão de reprodução

Solicitar e consumir o DRM-X Universal Playback Session Contract com autenticação, confiável Content IDs, e autorização limitada.

Como a reprodução é autorizada

Seu backend decide quem pode assistir. DRM-X fornece a autorização de reprodução. O player usa essa autorização para solicitar uma licença DRM.

- 01**Espectador**

Entra no seu serviço e solicita um vídeo.

- 02**Seu backend**

Verifica a compra, a assinatura ou outra permissão do usuário para assistir.

- 03**DRM-X**

Aplica as regras escolhidas e retorna a configuração e a autorização de reprodução.

- 04**Player**

Usa a autorização recebida para solicitar a licença DRM necessária para a reprodução.

Sua infraestrutura decide o acesso; DRM-X aplica a política assinada. Mídia criptografada e licenças DRM seguem caminhos de entrega separados.

API 

## Criar uma Sessão Universal de Reprodução[#](#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"
  }
}
```



Uma resposta bem sucedida do Contrato v1 inclui o manifesto autorizado, variantes manifestas disponíveis, uma DRM-licença específica URL, de curta duração DRM License Token ou autorização proxy do cliente, uma rota de liberação, a altura máxima licenciada, e faixas permitidas. `Cache-Control: no-store`.



Use uma sessão imprevisível ID para cada tentativa de reprodução real. A reutilização de um ID nos dispositivos derrota a contagem de fluxos simultâneos.





## Autenticação e campos de requisição confiáveis[#](#authentication-and-trusted-request-fields)

Chame isto API da sua infra- estrutura com um cliente do projecto API que tem `license-tokens:create`. Use o ambiente UUID como `siteId`. O seu visualizador autenticado chama o seu ponto final; o seu ponto final fornece os campos de confiança abaixo.

| Campo | Significado | Regra de integração | 
| --- | --- | --- |

| `contentId` | Referência do conteúdo publicado | Resolva a partir do seu catálogo de confiança após a verificação de direitos. | 

| `subject` | O seu identificador de visualizador estável | Derivado da sessão autenticada, não de um usuário fornecido pelo cliente ID. | 

| `drmSystem` | `widevine`, `playready`, `fairplay` ou `wiseplay` | Coincidir os DRM selecionados com os recursos reprodutor. | 

| `sessionId` | Identidade desta tentativa de reprodução | Gerar um novo valor imprevisível para cada tentativa. | 

| `contentType` | `vod` ou `live` | Use o tipo registrado para o conteúdo. | 

| `playbackMode` | `streaming` no contrato v1 | A reprodução offline requer uma extensão posterior do contrato. | 

| `licensePolicyTemplate` / `licensePolicy` | Uma política ou política personalizada nomeada | Selecione no seu servidor; não forneça ambos. Veja [regras de política](https://docs.drm-x.com/pt/license-service/policies). | 

| `platformCapabilities` | Plataforma, sistemas DRM, tipos manifestos e dicas de dispositivos | Enviar capacidades explícitas com novas integrações. Eles descrevem o cliente; eles não sobrepõem a política de licença. | 



## Consuma os descritores de resposta[#](#consume-the-response-descriptors)

Use os descritores do Contrato aninhado v1. Não construa URLs de licença de palpites ou substitua URLs manifestos registrados por entradas reprodutor.

| Campo de resposta | Como usá-lo | 
| --- | --- |

| `contractVersion` | Verifique se a versão do contrato retornado é suportada pela sua integração. | 

| `manifestUrl` / `manifestUrls` | Carregar o manifesto autorizado selecionado ou uma variante compatível devolvida. | 

| `expiresAt` | A expiração desta autorização limitada. | 

| `drm` | Leia `system`, `licenseServerUrl`, `drmLicenseToken`, `tokenType` e o opcional `fairPlayCertificateUrl`. Um proxy de token do cliente pode substituir a autorização voltada para o navegador por sua própria sessão limitada. | 

| `release` | Use seu `url`, `method` e `authorizationScheme` para liberar a sessão quando a reprodução terminar. | 

| `policy` | Honra `maximumHeight` e `allowedTrackTypes`. O provedor ainda executa a política assinada. | 

| `tracks` | Leia áudio/subtítulo capacidade de seleção de idioma e o padrão de tag-linguagem. | 

Devolva a sua resposta reprodutor com `Cache-Control: no-store`. Nunca envie o projeto Access Key para o navegador. Restrinja os cabeçalhos de autorização para as rotas de licença e certificado devolvidos.



## Lidar com erros e reservas de lançamento[#](#handle-errors-and-release-reservations)

Inspeccionar a HTTP status e legível por máquina `code`. Manter o `requestId` para solução de problemas e respeito `retryable`; um direito negado ou uma política inválida precisa de uma decisão corrigida, não de um ciclo de repetição. [referência de erro da sessão de reprodução](https://docs.drm-x.com/pt/api-reference/errors).

Libere a reserva no Stop, substituição de reprodução, erros de terminal e desligamento da aplicação. Uma nova tentativa de reprodução obtém uma nova sessão ID.

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