Base URL adalah origin tempat layanan ini di-deploy. Semua request dan
response menggunakan application/json.
Decrypt
POST
/api/decrypt
Membuat challenge Widevine, mengirimkannya ke license server, lalu
mengembalikan content key (clearkey) dalam format kid:key.
Request body
PSSH box dalam Base64.
URL license server (http/https publik).
Proxy HTTP/HTTPS untuk request license.
Header tambahan (pasangan nama/nilai).
Cookie tambahan (pasangan nama/nilai).
Payload JSON kustom; field challenge diisi otomatis. Kosongkan untuk mengirim challenge biner mentah.
Contoh request
1. Dasar — pssh + licurl (Widevine test Shaka)
curl -X POST https://andaikautau.my.id/api/decrypt \
-H "Content-Type: application/json" \
-d '{
"pssh": "AAAAW3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADsIARIQ62dqu8s0Xpa7z2FmMPGj2hoNd2lkZXZpbmVfdGVzdCIQZmtqM2xqYVNkZmFsa3IzaioCSEQyAA==",
"licurl": "https://cwip-shaka-proxy.appspot.com/no_auth"
}'
2. Dengan headers — token / User-Agent kustom
curl -X POST https://andaikautau.my.id/api/decrypt \
-H "Content-Type: application/json" \
-d '{
"pssh": "AAAAW3Bzc2gAAAAA...",
"licurl": "https://license.example.com/widevine",
"headers": {
"Authorization": "Bearer eyJhbGciOi...",
"User-Agent": "Mozilla/5.0",
"Origin": "https://player.example.com"
}
}'
3. Dengan cookies — sesi login
curl -X POST https://andaikautau.my.id/api/decrypt \
-H "Content-Type: application/json" \
-d '{
"pssh": "AAAAW3Bzc2gAAAAA...",
"licurl": "https://license.example.com/widevine",
"cookies": {
"sessionid": "abc123def456",
"csrftoken": "xyz789"
}
}'
4. Dengan proxy — routing request license
curl -X POST https://andaikautau.my.id/api/decrypt \
-H "Content-Type: application/json" \
-d '{
"pssh": "AAAAW3Bzc2gAAAAA...",
"licurl": "https://license.example.com/widevine",
"proxy": "http://user:pass@127.0.0.1:8080"
}'
5. Dengan data — payload JSON kustom
curl -X POST https://andaikautau.my.id/api/decrypt \
-H "Content-Type: application/json" \
-d '{
"pssh": "AAAAW3Bzc2gAAAAA...",
"licurl": "https://license.example.com/widevine",
"data": {
"userId": 42,
"sessionToken": "s3cr3t",
"drmType": "widevine"
}
}'
6. Lengkap — semua field digabung
curl -X POST https://andaikautau.my.id/api/decrypt \
-H "Content-Type: application/json" \
-d '{
"pssh": "AAAAW3Bzc2gAAAAA...",
"licurl": "https://license.example.com/widevine",
"proxy": "http://user:pass@127.0.0.1:8080",
"headers": { "Authorization": "Bearer eyJhbGciOi..." },
"cookies": { "sessionid": "abc123def456" },
"data": { "userId": 42 }
}'
Response sukses (200)
{
"status": "success",
"message": "kid1:key1\nkid2:key2",
"clearkeys": ["kid1:key1", "kid2:key2"]
}
Response gagal
{
"status": "fail",
"error": "pssh_required",
"message": "PSSH wajib diisi.",
"field": "pssh"
}
Kode error umum: request_invalid, pssh_required,
pssh_invalid, licurl_invalid,
license_timeout, license_http_error,
license_not_found, keys_not_found,
device_unavailable.
Health
GET
/health
Mengecek apakah perangkat dekripsi dan pywidevine siap.
{ "status": "ok", "ready": true }