DRM-X 6.0 logo de pomba e ramo de oliveiraDRM-X 6.0Documentação
◎ Português

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.

Ver MarkdownExemplos onlineAtualizado em 2026-09-05
Sua infraestrutura decide o acesso; DRM-X aplica a política assinada. Mídia criptografada e licenças DRM seguem caminhos de entrega separados.
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#

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#

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.

CampoSignificadoRegra de integração
contentIdReferência do conteúdo publicadoResolva a partir do seu catálogo de confiança após a verificação de direitos.
subjectO seu identificador de visualizador estávelDerivado da sessão autenticada, não de um usuário fornecido pelo cliente ID.
drmSystemwidevine, playready, fairplay ou wiseplayCoincidir os DRM selecionados com os recursos reprodutor.
sessionIdIdentidade desta tentativa de reproduçãoGerar um novo valor imprevisível para cada tentativa.
contentTypevod ou liveUse o tipo registrado para o conteúdo.
playbackModestreaming no contrato v1A reprodução offline requer uma extensão posterior do contrato.
licensePolicyTemplate / licensePolicyUma política ou política personalizada nomeadaSelecione no seu servidor; não forneça ambos. Veja regras de política.
platformCapabilitiesPlataforma, sistemas DRM, tipos manifestos e dicas de dispositivosEnviar 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#

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 respostaComo usá-lo
contractVersionVerifique se a versão do contrato retornado é suportada pela sua integração.
manifestUrl / manifestUrlsCarregar o manifesto autorizado selecionado ou uma variante compatível devolvida.
expiresAtA expiração desta autorização limitada.
drmLeia 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.
releaseUse seu url, method e authorizationScheme para liberar a sessão quando a reprodução terminar.
policyHonra maximumHeight e allowedTrackTypes. O provedor ainda executa a política assinada.
tracksLeia á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#

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.

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.