Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überblick
Der PlayReady Test Server unterstützt die Base64 JSON-Syntax für die Lizenzkonfiguration und stellt eine kompakte und URL-sichere Methode zum Einbetten komplexer Lizenzparameter bereit. Bei diesem Ansatz werden JSON-Konfigurationsdaten im Base64-Format codiert, sodass sie für URL-Parameter und HTTP-Header geeignet sind.
Codierungsprozess
Die Base64 JSON-Syntax umfasst zwei Schritte:
- Erstellen eines JSON-Konfigurationsobjekts
- Codieren der JSON-Zeichenfolge mithilfe der Base64-Codierung
JSON Configuration → Base64 Encoding → URL Parameter
Grundlegende JSON-Struktur
Erstellen Sie vor der Codierung eine JSON-Konfiguration:
{
"licenseType": "persistent",
"keyId": "12345678-1234-1234-1234-123456789012",
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
Base64-Codierungsbeispiele
Einfache Konfiguration
Ursprüngliches JSON:
{"licenseType": "persistent", "keyId": "12345678-1234-1234-1234-123456789012"}
Base64-codiert:
eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Komplexe Konfiguration
Ursprüngliches JSON:
{
"licenseType": "rental",
"keyId": "87654321-4321-4321-4321-210987654321",
"expirationDate": "2024-12-31T23:59:59Z",
"outputProtection": {
"digital": "required",
"analog": "never"
}
}
Base64-codiert:
eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiIsIm91dHB1dFByb3RlY3Rpb24iOnsiZGlnaXRhbCI6InJlcXVpcmVkIiwiYW5hbG9nIjoibmV2ZXIifX0=
URL-Verwendung
Abfrageparameterformat
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=BASE64_ENCODED_JSON
Vollständige Beispiel-URLs
Persistente Lizenz
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Mietlizenz
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiJ9
Konfigurationsoptionen
Lizenztypen
Unterstützung für alle Standardlizenztypen:
{
"licenseType": "persistent|non-persistent|rental|subscription"
}
Ausgabeschutzeinstellungen
Konfigurieren des digitalen und analogen Ausgabeschutzes:
{
"outputProtection": {
"digital": "required|optional|never",
"analog": "required|optional|never",
"hdcp": {
"version": "1.4|2.0|2.1|2.2",
"required": true
}
}
}
Time-Based Einschränkungen
Ablauf- und Karenzzeiträume festlegen:
{
"expirationDate": "2024-12-31T23:59:59Z",
"gracePeriod": 3600,
"firstPlayExpiration": "PT48H"
}
Implementierungsbeispiele
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}`;
C#-Anwendung
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}";
Python-Beispiel
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}"
Erweiterte Konfigurationen
Mehrere Nachverfolgen von Inhalten
Konfiguration für Inhalte mit mehreren Titeln:
{
"licenseType": "persistent",
"tracks": [
{
"keyId": "video-key-guid",
"trackType": "video",
"outputProtection": {
"digital": "required"
}
},
{
"keyId": "audio-key-guid",
"trackType": "audio",
"outputProtection": {
"digital": "optional"
}
}
]
}
Domain-Bound-Lizenzen
Konfiguration für domänengebundene Inhalte:
{
"licenseType": "persistent",
"keyId": "domain-key-guid",
"domainBinding": {
"domainId": "domain-service-id",
"domainAccountId": "account-identifier",
"required": true
}
}
Testen und Validierung
Decodierungsüberprüfung
So überprüfen Sie die Base64-Codierung:
// Decode Base64 back to JSON
const decodedJson = atob(base64Data);
const configObject = JSON.parse(decodedJson);
console.log(configObject);
Allgemeine Testszenarien
- Grundlegende Lizenztypen: Testen Sie jeden Lizenztyp einzeln.
- Ausgabeschutz: Überprüfen unterschiedlicher Schutzebenen
- Zeitbeschränkungen: Ablauf- und Karenzzeiträume testen
- Komplexe Konfigurationen: Testen von Multispur- und Domänenszenarien
Fehlerbehandlung
Codierungsfehler
- Ungültiger JSON-Code: Falsch formatierte JSON-Struktur vor der Codierung
- Codierungsprobleme: Probleme bei der Zeichencodierung während der Base64-Konvertierung
- URL-Sicherheit: Sicherstellen der richtigen URL-Codierung von Base64-Daten
Server-Side Fehler
- Decodierungsfehler: HTTP 400 mit Base64-Decodierungsfehler
- JSON-Analyse: HTTP 400 mit JSON-Strukturfehlern
- Konfiguration ungültig: HTTP 400 mit Konfigurationsüberprüfungsfehlern
Bewährte Methoden
- JSON-Validierung: Überprüfen von JSON vor der Codierung
- URL-Codierung: Ordnungsgemäß codieren Base64-Daten für URLs
- Größenbeschränkungen: Halten Sie Konfigurationen für URL-Grenzwerte in angemessener Größe.
- Tests: Testen des Codierungs-/Decodierungsprozesses gründlich
- Fehlerbehandlung: Behandeln von Codierungs- und Serverfehlern ordnungsgemäß
Vorteile
- Kompakt: Kompakter als vollständiges JSON in URLs
- URL-sicher: Base64-Codierung ist URL-sicher
- Flexibel: Unterstützt komplexe Konfigurationsobjekte
- Standard: Verwendet die Standardmäßige Base64-Codierung
Verwandte Dokumentation
- PlayReady Test Server Service – Übersicht über den Hauptdienst
- CustomData JSON-Syntax – Vollständiges JSON-Konfigurationsformat
- Abfragezeichenfolgensyntax – Einfacher parameterbasierter Ansatz
- PlayReady-Testserver – Vollständige Serverdokumentation
Support und Problembehandlung
Für Probleme mit der Base64 JSON-Syntax:
- Überprüfen der JSON-Struktur vor der Codierung
- Testen des Base64-Codierungs-/Decodierungsprozesses
- Überprüfen der URL-Codierung von Base64-Daten
- Überprüfen von Konfigurationsparametern
- Überprüfen von Serverfehlerantworten auf Details
Weitere Unterstützung finden Sie in der Hauptdokumentation zu PlayReady-Testservern .