Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Información general
El servidor de pruebas de PlayReady admite la sintaxis JSON de Base64 para la configuración de licencias, lo que proporciona un método compacto y seguro para url para insertar parámetros de licencia complejos. Este enfoque codifica los datos de configuración JSON en formato Base64, lo que lo convierte en adecuado para los parámetros de dirección URL y los encabezados HTTP.
Proceso de codificación
La sintaxis JSON de Base64 implica dos pasos:
- Creación de un objeto de configuración JSON
- Codificación de la cadena JSON mediante codificación Base64
JSON Configuration → Base64 Encoding → URL Parameter
Estructura JSON básica
Antes de codificar, cree una configuración JSON:
{
"licenseType": "persistent",
"keyId": "12345678-1234-1234-1234-123456789012",
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
Ejemplos de codificación base64
Configuración sencilla
JSON original:
{"licenseType": "persistent", "keyId": "12345678-1234-1234-1234-123456789012"}
Codificado en Base64:
eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Configuración compleja
JSON original:
{
"licenseType": "rental",
"keyId": "87654321-4321-4321-4321-210987654321",
"expirationDate": "2024-12-31T23:59:59Z",
"outputProtection": {
"digital": "required",
"analog": "never"
}
}
Codificado en Base64:
eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiIsIm91dHB1dFByb3RlY3Rpb24iOnsiZGlnaXRhbCI6InJlcXVpcmVkIiwiYW5hbG9nIjoibmV2ZXIifX0=
Uso de direcciones URL
Formato de parámetro de consulta
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=BASE64_ENCODED_JSON
Direcciones URL de ejemplo completas
Licencia persistente
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Licencia de alquiler
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiJ9
Opciones de configuración
Tipos de licencia
Compatibilidad con todos los tipos de licencia estándar:
{
"licenseType": "persistent|non-persistent|rental|subscription"
}
Configuración de protección de salida
Configurar la protección de salida digital y analógica:
{
"outputProtection": {
"digital": "required|optional|never",
"analog": "required|optional|never",
"hdcp": {
"version": "1.4|2.0|2.1|2.2",
"required": true
}
}
}
Restricciones de Time-Based
Establecer períodos de expiración y gracia:
{
"expirationDate": "2024-12-31T23:59:59Z",
"gracePeriod": 3600,
"firstPlayExpiration": "PT48H"
}
Ejemplos de implementación
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}`;
Aplicación de 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}";
Ejemplo 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}"
Configuraciones avanzadas
Contenido de varias pistas
Configuración del contenido con varias pistas:
{
"licenseType": "persistent",
"tracks": [
{
"keyId": "video-key-guid",
"trackType": "video",
"outputProtection": {
"digital": "required"
}
},
{
"keyId": "audio-key-guid",
"trackType": "audio",
"outputProtection": {
"digital": "optional"
}
}
]
}
licencias de Domain-Bound
Configuración del contenido enlazado a un dominio:
{
"licenseType": "persistent",
"keyId": "domain-key-guid",
"domainBinding": {
"domainId": "domain-service-id",
"domainAccountId": "account-identifier",
"required": true
}
}
Pruebas y validación
Comprobación de descodificación
Para comprobar la codificación Base64:
// Decode Base64 back to JSON
const decodedJson = atob(base64Data);
const configObject = JSON.parse(decodedJson);
console.log(configObject);
Escenarios de prueba comunes
- Tipos de licencia básicos: pruebe cada tipo de licencia individualmente.
- Protección de salida: comprobación de distintos niveles de protección
- Restricciones de tiempo: prueba de expiración y períodos de gracia
- Configuraciones complejas: probar escenarios de varios seguimientos y dominios
Tratamiento de errores
Errores de codificación
- JSON no válido: estructura JSON con formato incorrecto antes de codificar
- Problemas de codificación: problemas de codificación de caracteres durante la conversión de Base64
- Seguridad de direcciones URL: asegúrese de que la codificación de direcciones URL adecuada de los datos de Base64
errores de Server-Side
- Errores de descodificación: error de descodificación HTTP 400 con Base64
- Análisis de JSON: HTTP 400 con errores de estructura JSON
- Configuración no válida: HTTP 400 con errores de validación de configuración
Procedimientos recomendados
- Validación de JSON: validar JSON antes de codificar
- Codificación de direcciones URL: codifique correctamente los datos base64 para las direcciones URL.
- Límites de tamaño: mantener las configuraciones de tamaño razonable para los límites de direcciones URL
- Pruebas: Prueba exhaustiva del proceso de codificación y descodificación
- Control de errores: control de errores tanto de codificación como de servidor
Ventajas
- Compact: más compacto que json completo en direcciones URL
- Seguro para direcciones URL: La codificación base64 es segura para direcciones URL
- Flexible: admite objetos de configuración complejos
- Estándar: usa codificación Base64 estándar
Documentación relacionada
- Servicio de servidor de prueba de PlayReady : información general sobre el servicio principal
- Sintaxis JSON de CustomData : formato de configuración JSON completo
- Sintaxis de cadena de consulta : enfoque basado en parámetros simple
- Servidores de prueba de PlayReady : documentación completa del servidor
Soporte técnico y solución de problemas
Para problemas con la sintaxis JSON de Base64:
- Comprobación de la estructura JSON antes de codificar
- Prueba del proceso de codificación y descodificación de Base64
- Comprobación de la codificación de direcciones URL de los datos base64
- Validación de parámetros de configuración
- Revise las respuestas de error del servidor para obtener más información.
Para obtener soporte adicional, consulte la documentación principal de los servidores de prueba de PlayReady .