"""Test: modifica client_id per sembrare Chrome su Windows"""
from pywidevine import Device, Cdm, PSSH

d = Device.load(r"c:\Users\Claud\Documents\ScriptNowTest\dazn\WVD.wvd")

# Cambia type a CHROME
d.client_id.type = 2

# Modifica client_info per sembrare Chrome su Windows
# Prima vediamo la struttura
print("PRIMA:")
for i, ci in enumerate(d.client_id.client_info):
    print(f"  [{i}] {ci.name} = {ci.value}")

# Modifica i valori per sembrare un Chrome CDM su Windows
chrome_info = {
    "company_name": "Google",
    "model_name": "Chrome CDM",
    "architecture_name": "x86_64", 
    "device_name": "Windows",
    "product_name": "Chrome",
    "build_info": "google/chrome/windows:10/154.0.0.0",
    "widevine_cdm_version": "4.10.2830.0",
}

for ci in d.client_id.client_info:
    if ci.name in chrome_info:
        ci.value = chrome_info[ci.name]

# Rimuovi oem_crypto_security_patch_level (Chrome non lo ha)
# Non possiamo rimuovere facilmente, ma cambiamo il valore

print("\nDOPO:")
for ci in d.client_id.client_info:
    print(f"  {ci.name} = {ci.value}")

# Test challenge
cdm = Cdm.from_device(d)
session = cdm.open()
test_pssh = "AAAAW3Bzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADsIARIQ62dqu8s0Xpa7z2FmMPGj2hoNd2lkZXZpbmVfdGVzdCIQZmtqM2lqYVNkZmloNWVOYSoCSEQyAA=="
challenge = cdm.get_license_challenge(session, PSSH(test_pssh))
print(f"\nChallenge OK, len={len(challenge)}")
cdm.close(session)
