Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Genel Bakış
PlayReady Test Sunucusu, lisans yapılandırması için Base64 JSON söz dizimini destekler ve karmaşık lisans parametrelerini eklemek için kompakt ve URL güvenli bir yöntem sağlar. Bu yaklaşım, JSON yapılandırma verilerini Base64 biçiminde kodlayarak URL parametreleri ve HTTP üst bilgileri için uygun hale getirir.
Kodlama İşlemi
Base64 JSON söz dizimi iki adımdan oluşur:
- JSON yapılandırma nesnesi oluşturma
- Base64 kodlamasını kullanarak JSON dizesini kodlama
JSON Configuration → Base64 Encoding → URL Parameter
Temel JSON Yapısı
Kodlamadan önce bir JSON yapılandırması oluşturun:
{
"licenseType": "persistent",
"keyId": "12345678-1234-1234-1234-123456789012",
"outputProtection": {
"digital": "required",
"analog": "optional"
}
}
Base64 Kodlama Örnekleri
Basit Yapılandırma
Özgün JSON:
{"licenseType": "persistent", "keyId": "12345678-1234-1234-1234-123456789012"}
Base64 Kodlanmış:
eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Karmaşık Yapılandırma
Özgün JSON:
{
"licenseType": "rental",
"keyId": "87654321-4321-4321-4321-210987654321",
"expirationDate": "2024-12-31T23:59:59Z",
"outputProtection": {
"digital": "required",
"analog": "never"
}
}
Base64 Kodlanmış:
eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiIsIm91dHB1dFByb3RlY3Rpb24iOnsiZGlnaXRhbCI6InJlcXVpcmVkIiwiYW5hbG9nIjoibmV2ZXIifX0=
URL Kullanımı
Sorgu Parametresi Biçimi
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=BASE64_ENCODED_JSON
Tam Örnek URL'ler
Kalıcı Lisans
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InBlcnNpc3RlbnQiLCJrZXlJZCI6IjEyMzQ1Njc4LTEyMzQtMTIzNC0xMjM0LTEyMzQ1Njc4OTAxMiJ9
Kiralama Lisansı
https://playready.directtaps.net/pr/svc/rightsmanager.asmx?cfg=base64&data=eyJsaWNlbnNlVHlwZSI6InJlbnRhbCIsImtleUlkIjoiODc2NTQzMjEtNDMyMS00MzIxLTQzMjEtMjEwOTg3NjU0MzIxIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTEyLTMxVDIzOjU5OjU5WiJ9
Yapılandırma Seçenekleri
Lisans Türleri
Tüm standart lisans türleri için destek:
{
"licenseType": "persistent|non-persistent|rental|subscription"
}
Çıkış Koruması Ayarları
Dijital ve analog çıkış korumasını yapılandırın:
{
"outputProtection": {
"digital": "required|optional|never",
"analog": "required|optional|never",
"hdcp": {
"version": "1.4|2.0|2.1|2.2",
"required": true
}
}
}
Time-Based Kısıtlamaları
Süre sonu ve yetkisiz kullanım sürelerini ayarlayın:
{
"expirationDate": "2024-12-31T23:59:59Z",
"gracePeriod": 3600,
"firstPlayExpiration": "PT48H"
}
Uygulama Örnekleri
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# Uygulaması
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 Örneği
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}"
Gelişmiş Yapılandırmalar
çok parçalı içerik
Birden çok parça içeren içerik için yapılandırma:
{
"licenseType": "persistent",
"tracks": [
{
"keyId": "video-key-guid",
"trackType": "video",
"outputProtection": {
"digital": "required"
}
},
{
"keyId": "audio-key-guid",
"trackType": "audio",
"outputProtection": {
"digital": "optional"
}
}
]
}
Domain-Bound Lisansları
Etki alanına bağlı içerik için yapılandırma:
{
"licenseType": "persistent",
"keyId": "domain-key-guid",
"domainBinding": {
"domainId": "domain-service-id",
"domainAccountId": "account-identifier",
"required": true
}
}
Test ve Doğrulama
Kod Çözme Doğrulaması
Base64 kodlamasını doğrulamak için:
// Decode Base64 back to JSON
const decodedJson = atob(base64Data);
const configObject = JSON.parse(decodedJson);
console.log(configObject);
Yaygın Test Senaryoları
- Temel Lisans Türleri: Her lisans türünü ayrı ayrı test edin
- Çıkış Koruması: Farklı koruma düzeylerini doğrulama
- Zaman Kısıtlamaları: Test süre sonu ve yetkisiz kullanım süreleri
- Karmaşık Yapılandırmalar: Çoklu izleme ve etki alanı senaryolarını test etme
Hata İşleme
Kodlama Hataları
- Geçersiz JSON: Kodlamadan önce hatalı biçimlendirilmiş JSON yapısı
- Kodlama Sorunları: Base64 dönüştürme sırasında karakter kodlama sorunları
- URL Güvenliği: Base64 verilerinin düzgün URL kodlamasını sağlayın
Server-Side Hataları
- Kod Çözme Hataları: Base64 kod çözme hatasıyla HTTP 400
- JSON Ayrıştırma: JSON yapısı hatalarıyla HTTP 400
- Yapılandırma Geçersiz: Yapılandırma doğrulama hatalarıyla HTTP 400
En İyi Yöntemler
- JSON Doğrulaması: Kodlamadan önce JSON doğrulama
- URL Kodlama: URL'ler için Base64 verilerini düzgün bir şekilde kodlama
- Boyut Sınırları: URL sınırları için yapılandırmaların makul boyutta kalmasını sağlayın
- Test: Kodlama/kod çözme işlemini kapsamlı bir şekilde test etme
- Hata İşleme: Hem kodlama hem de sunucu hatalarını düzgün bir şekilde işleme
Avantajlar
- Kompakt: URL'lerde tam JSON'dan daha kompakt
- URL Güvenli: Base64 kodlaması URL güvenlidir
- Esnek: Karmaşık yapılandırma nesnelerini destekler
- Standart: Standart Base64 kodlamasını kullanır
İlgili Belgeler
- PlayReady Test Sunucusu Hizmeti - Ana hizmete genel bakış
- CustomData JSON Sözdizimi - Tam JSON yapılandırma biçimi
- Sorgu Dizesi Sözdizimi - Basit parametre tabanlı yaklaşım
- PlayReady Test Sunucuları - Eksiksiz sunucu belgeleri
Destek ve Sorun Giderme
Base64 JSON söz dizimi ile ilgili sorunlar için:
- Kodlamadan önce JSON yapısını doğrulama
- Base64 kodlama/kod çözme işlemini test etme
- Base64 verilerinin URL kodlamasını denetleme
- Yapılandırma parametrelerini doğrulama
- Ayrıntılar için sunucu hata yanıtlarını gözden geçirin
Ek destek için ana PlayReady Test Sunucuları belgelerine bakın.