Kembali ke tool

API Docs

Referensi endpoint untuk developer. Kirim satu request, dapatkan clearkey.

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 string wajib

PSSH box dalam Base64.

licurl string wajib

URL license server (http/https publik).

proxy string opsional

Proxy HTTP/HTTPS untuk request license.

headers object opsional

Header tambahan (pasangan nama/nilai).

cookies object opsional

Cookie tambahan (pasangan nama/nilai).

data object / string opsional

Payload JSON kustom; field challenge diisi otomatis. Kosongkan untuk mengirim challenge biner mentah.

Contoh request

1. Dasar — pssh + licurl (Widevine test Shaka)

cURL
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
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
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
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
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
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)

JSON
{
  "status": "success",
  "message": "kid1:key1\nkid2:key2",
  "clearkeys": ["kid1:key1", "kid2:key2"]
}

Response gagal

JSON
{
  "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.

JSON
{ "status": "ok", "ready": true }