mirror of
https://github.com/widevinedump/DISNEY-4K-SCRIPT.git
synced 2024-03-24 20:20:46 +01:00
New
This commit is contained in:
parent
0bfa3f62e9
commit
4966f5355a
162 changed files with 250891 additions and 0 deletions
52
pywidevine/decrypt/wvdecrypt.py
Normal file
52
pywidevine/decrypt/wvdecrypt.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import logging
|
||||
import subprocess
|
||||
import re
|
||||
from tqdm import tqdm
|
||||
import base64
|
||||
from pywidevine.cdm import cdm, deviceconfig
|
||||
|
||||
class WvDecrypt(object):
|
||||
|
||||
WV_SYSTEM_ID = [237, 239, 139, 169, 121, 214, 74, 206, 163, 200, 39, 220, 213, 29, 33, 237]
|
||||
|
||||
def __init__(self, PSSH):
|
||||
self.logger = logging.getLogger(__name__)
|
||||
self.wvdecrypt_process = None
|
||||
self.pssh = PSSH
|
||||
self.cdm = cdm.Cdm()
|
||||
|
||||
def check_pssh(pssh_b64):
|
||||
pssh = base64.b64decode(pssh_b64)
|
||||
if not pssh[12:28] == bytes(self.WV_SYSTEM_ID):
|
||||
new_pssh = bytearray([0,0,0])
|
||||
new_pssh.append(32+len(pssh))
|
||||
new_pssh[4:] = bytearray(b'pssh')
|
||||
new_pssh[8:] = [0,0,0,0]
|
||||
new_pssh[13:] = self.WV_SYSTEM_ID
|
||||
new_pssh[29:] = [0,0,0,0]
|
||||
new_pssh[31] = len(pssh)
|
||||
new_pssh[32:] = pssh
|
||||
return base64.b64encode(new_pssh)
|
||||
else:
|
||||
return pssh_b64
|
||||
|
||||
self.session = self.cdm.open_session(check_pssh(self.pssh),
|
||||
deviceconfig.DeviceConfig(deviceconfig.device_nexus6_lvl1))
|
||||
|
||||
def start_process(self):
|
||||
keyswvdecrypt=[]
|
||||
keys = self.cdm.get_keys(self.session)
|
||||
|
||||
for key in keys:
|
||||
if key.type == 'CONTENT':
|
||||
keyswvdecrypt.append(('{}:{}'.format(key.kid.hex(), key.key.hex())))
|
||||
|
||||
return keyswvdecrypt
|
||||
|
||||
def get_challenge(self):
|
||||
return self.cdm.get_license_request(self.session)
|
||||
|
||||
def update_license(self, license_b64):
|
||||
self.cdm.provide_license(self.session, license_b64)
|
||||
return True
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue