mirror of
https://cdm-project.com/Decryption-Tools/TPD-Keys.git
synced 2025-04-29 15:14:25 +02:00
v1.32
- Removed service certificate from generic - Added some JSON response handlers for generic script - Fixed Udemy in GUI mode
This commit is contained in:
parent
6b52e6ecf0
commit
221a2b74be
@ -240,7 +240,7 @@ def start_gui(wvd: str = None, api_key: str = None):
|
||||
if values['-PSSH-'] != '' and values['-OPTIONS-'] == 'Udemy' and values['-LIC_URL-'] != '' and values['-HEADERS-'] != '' and values['-COOKIES-'] != '':
|
||||
if not values['-USE_API-']:
|
||||
try:
|
||||
_, key_out = Sites.Udemy.decrypt_udemy(wvd=wvd, in_pssh=values['-PSSH-'],
|
||||
_, key_out = Sites.Udemy.decrypt_udemy(wvd=wvd, in_pssh=values['-PSSH-'], in_license_url=values['-LIC_URL-'],
|
||||
license_curl_headers=ast.literal_eval(clean_dict(dict=values['-HEADERS-'])),
|
||||
license_curl_cookies=ast.literal_eval(clean_dict(dict=values['-COOKIES-'])))
|
||||
window['-OUTPUT-'].update(f"{key_out}")
|
||||
@ -251,7 +251,7 @@ def start_gui(wvd: str = None, api_key: str = None):
|
||||
window['-OUTPUT-'].update(f"No API key")
|
||||
if api_key is not None:
|
||||
try:
|
||||
_, key_out = Sites.Udemy.decrypt_udemy_remotely(api_key=api_key, in_pssh=values['-PSSH-'],
|
||||
_, key_out = Sites.Udemy.decrypt_udemy_remotely(api_key=api_key, in_pssh=values['-PSSH-'], in_license_url=values['-LIC_URL-'],
|
||||
license_curl_headers=ast.literal_eval(clean_dict(dict=values['-HEADERS-'])),
|
||||
license_curl_cookies=ast.literal_eval(clean_dict(dict=values['-COOKIES-'])))
|
||||
window['-OUTPUT-'].update(f"{key_out}")
|
||||
@ -367,7 +367,7 @@ def start_gui(wvd: str = None, api_key: str = None):
|
||||
if event == 'Source Code':
|
||||
webbrowser.open(url='https://cdm-project.com/Decryption-Tools/TPD-Keys')
|
||||
if event == 'Version':
|
||||
sg.popup('Version 1.31', custom_text='Close', grab_anywhere=True)
|
||||
sg.popup('Version 1.32', custom_text='Close', grab_anywhere=True)
|
||||
|
||||
# 4 - the close
|
||||
window.close()
|
||||
|
@ -60,28 +60,8 @@ def decrypt_generic(wvd: str = None, license_curl_headers: dict = None, mpd_url:
|
||||
# open CDM session
|
||||
session_id = cdm.open()
|
||||
|
||||
# get service certificate
|
||||
service_cert = requests.post(
|
||||
url=license_url,
|
||||
data=cdm.service_certificate_challenge,
|
||||
headers=license_curl_headers
|
||||
)
|
||||
if service_cert.status_code != 200:
|
||||
print(f"Couldn't retrieve service cert\n{service_cert.content}")
|
||||
return None, service_cert.content
|
||||
else:
|
||||
try:
|
||||
service_cert = service_cert.content
|
||||
cdm.set_service_certificate(session_id, service_cert)
|
||||
except Exception as error:
|
||||
print(f'an error occurred!\n{error}')
|
||||
return None, error
|
||||
|
||||
# generate license challenge
|
||||
if service_cert:
|
||||
challenge = cdm.get_license_challenge(session_id, pssh, privacy_mode=True)
|
||||
else:
|
||||
challenge = cdm.get_license_challenge(session_id, pssh)
|
||||
# Generate the challenge
|
||||
challenge = cdm.get_license_challenge(session_id, pssh)
|
||||
|
||||
# send license challenge
|
||||
license = requests.post(
|
||||
@ -94,15 +74,22 @@ def decrypt_generic(wvd: str = None, license_curl_headers: dict = None, mpd_url:
|
||||
print(f'An error occurred!\n{license.content}')
|
||||
return license.content
|
||||
|
||||
# Extract license from content
|
||||
license = license.content
|
||||
|
||||
# parse license challenge
|
||||
try:
|
||||
cdm.parse_license(session_id, license)
|
||||
except Exception as error:
|
||||
print(f'an error occurred!\n{error}')
|
||||
return None, error
|
||||
cdm.parse_license(session_id, license.content)
|
||||
except:
|
||||
try:
|
||||
cdm.parse_license(session_id, license.json().get('license'))
|
||||
except:
|
||||
try:
|
||||
cdm.parse_license(session_id, license.json().get('licenseData'))
|
||||
except:
|
||||
try:
|
||||
cdm.parse_license(session_id, license.json().get('widevine2License'))
|
||||
except Exception as error:
|
||||
print(f'an error occurred!\n{error}')
|
||||
return None, error
|
||||
|
||||
|
||||
# assign variable for returned keys
|
||||
returned_keys = ""
|
||||
|
Loading…
x
Reference in New Issue
Block a user