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.
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.
| 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. |
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#
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#
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.
DRM-X 6.0