Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Visão geral
O PlayReady Test Server suporta a sintaxe JSON Base64 para configuração de licença, fornecendo um método compacto e seguro para URL para incorporar parâmetros de licença complexos. Essa abordagem codifica dados de configuração JSON no formato Base64, tornando-os adequados para parâmetros de URL e cabeçalhos HTTP.
Processo de codificação
A sintaxe JSON Base64 envolve duas etapas:
- Criar um objeto de configuração JSON
- Codifique a cadeia de caracteres JSON usando a codificação Base64
JSON Configuration → Base64 Encoding → URL Parameter
Estrutura JSON básica
Antes de codificar, crie uma configuração JSON:
{
"licenseType": "persistent",
"keyId": "12345678-1234-1234-1234-123456789012",
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
Exemplos de codificação Base64
Configuração simples
JSON original:
{"licenseType": "persistent", "keyId": "12345678-1234-1234-1234-123456789012"}
Base64 codificado:
eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Configuração complexa
JSON original:
{
"licenseType": "rental",
"keyId": "87654321-4321-4321-4321-210987654321",
"expirationDate": "2024-12-31T23:59:59Z",
"outputProtection": {
"digital": "required",
"analog": "never"
}
}
Base64 codificado:
eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiIsIm91dHB1dFByb3RlY3Rpb24iOnsiZGlnaXRhbCI6InJlcXVpcmVkIiwiYW5hbG9nIjoibmV2ZXIifX0=
Utilização de URL
Formato do parâmetro de consulta
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=BASE64_ENCODED_JSON
URLs de exemplo completo
Licença persistente
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Licença de aluguer
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiJ9
Opções de configuração
Tipos de Licença
Suporte para todos os tipos de licença padrão:
{
"licenseType": "persistent|non-persistent|rental|subscription"
}
Configurações de proteção de saída
Configure a proteção de saída digital e analógica:
{
"outputProtection": {
"digital": "required|optional|never",
"analog": "required|optional|never",
"hdcp": {
"version": "1.4|2.0|2.1|2.2",
"required": true
}
}
}
Time-Based Restrições
Definir prazos de validade e carência:
{
"expirationDate": "2024-12-31T23:59:59Z",
"gracePeriod": 3600,
"firstPlayExpiration": "PT48H"
}
Exemplos de implementação
JavaScript/HTML5
// Create configuration object
const config = {
licenseType: "persistent",
keyId: keyId,
outputProtection: {
digital: "required",
analog: "optional"
}
};
// Convert to JSON and encode
const jsonString = JSON.stringify(config);
const base64Data = btoa(jsonString);
// Build URL
const licenseUrl = `https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=${base64Data}`;
Aplicação C#
using System;
using System.Text;
using Newtonsoft.Json;
// Create configuration object
var config = new {
licenseType = "persistent",
keyId = keyId,
outputProtection = new {
digital = "required",
analog = "optional"
}
};
// Convert to JSON and encode
string jsonString = JsonConvert.SerializeObject(config);
byte[] jsonBytes = Encoding.UTF8.GetBytes(jsonString);
string base64Data = Convert.ToBase64String(jsonBytes);
// Build URL
string licenseUrl = $"https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data={base64Data}";
Exemplo de Python
import json
import base64
# Create configuration dictionary
config = {
"licenseType": "persistent",
"keyId": key_id,
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
# Convert to JSON and encode
json_string = json.dumps(config)
base64_data = base64.b64encode(json_string.encode('utf-8')).decode('utf-8')
# Build URL
license_url = f"https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data={base64_data}"
Configurações avançadas
Conteúdo Multi-Track
Configuração para conteúdo com várias faixas:
{
"licenseType": "persistent",
"tracks": [
{
"keyId": "video-key-guid",
"trackType": "video",
"outputProtection": {
"digital": "required"
}
},
{
"keyId": "audio-key-guid",
"trackType": "audio",
"outputProtection": {
"digital": "optional"
}
}
]
}
Licenças Domain-Bound
Configuração para conteúdo vinculado a domínio:
{
"licenseType": "persistent",
"keyId": "domain-key-guid",
"domainBinding": {
"domainId": "domain-service-id",
"domainAccountId": "account-identifier",
"required": true
}
}
Testes e Validação
Verificação de descodificação
Para verificar a codificação Base64:
// Decode Base64 back to JSON
const decodedJson = atob(base64Data);
const configObject = JSON.parse(decodedJson);
console.log(configObject);
Cenários de teste comuns
- Tipos de licença básicos: teste cada tipo de licença individualmente
- Proteção de saída: verifique diferentes níveis de proteção
- Restrições de tempo: expiração do teste e períodos de carência
- Configurações complexas: teste cenários de várias faixas e domínio
Tratamento de erros
Erros de codificação
- JSON inválido: estrutura JSON malformada antes da codificação
- Problemas de codificação: Problemas de codificação de caracteres durante a conversão de Base64
- Segurança de URL: Garanta a codificação adequada de URL dos dados Base64
Server-Side Erros
- Falhas de decodificação: HTTP 400 com erro de decodificação Base64
- Análise JSON: HTTP 400 com erros de estrutura JSON
- Configuração inválida: HTTP 400 com erros de validação de configuração
Melhores práticas
- Validação JSON: Valide JSON antes de codificar
- Codificação de URL: codificar corretamente dados Base64 para URLs
- Limites de tamanho: mantenha as configurações razoavelmente dimensionadas para limites de URL
- Teste: Teste completamente o processo de codificação/descodificação
- Tratamento de erros: lide com erros de codificação e servidor normalmente
Vantagens
- Compacto: mais compacto do que JSON completo em URLs
- URL seguro: a codificação Base64 é segura para URL
- Flexível: suporta objetos de configuração complexos
- Padrão: Usa codificação Base64 padrão
Documentação relacionada
- Serviço do Servidor de Teste PlayReady - Visão geral do serviço principal
- Sintaxe JSON CustomData - Formato de configuração JSON completo
- Sintaxe da cadeia de caracteres de consulta - Abordagem simples baseada em parâmetros
- PlayReady Test Servers - Documentação completa do servidor
Suporte e solução de problemas
Para problemas com a sintaxe JSON Base64:
- Verificar a estrutura JSON antes de codificar
- Processo de codificação/descodificação Test Base64
- Verifique a codificação de URL de dados Base64
- Validar parâmetros de configuração
- Revise as respostas de erro do servidor para obter detalhes
Para obter suporte adicional, consulte a documentação principal dos Servidores de Teste PlayReady .