Added proxy support.

This commit is contained in:
TPD94
2024-04-27 17:54:02 -04:00
parent 16aa10cf5f
commit 7b60567512
2 changed files with 22 additions and 8 deletions

View File

@@ -19,7 +19,7 @@ except:
# Defining decrypt function
def decrypt_content(in_pssh: str = None, license_url: str = None, headers: dict = None, mpd: str = None) -> list:
def decrypt_content(in_pssh: str = None, license_url: str = None, headers: dict = None, mpd: str = None, proxy: str = None) -> list:
# prepare pssh
pssh = PSSH(in_pssh)
@@ -36,12 +36,21 @@ def decrypt_content(in_pssh: str = None, license_url: str = None, headers: dict
# Generate the challenge
challenge = cdm.get_license_challenge(session_id, pssh)
# send license challenge
license = requests.post(
url=license_url,
headers=headers,
data=challenge
)
if proxy:
# send license challenge
license = requests.post(
url=license_url,
headers=headers,
data=challenge,
proxies={'http': proxy}
)
else:
# send license challenge
license = requests.post(
url=license_url,
headers=headers,
data=challenge
)
# Parse the license if it comes back in plain bytes
try:

View File

@@ -27,6 +27,11 @@ def post_endpoint():
# Get the MPD url
mpd = data['manifest_url']
# Get the proxy if there is one
if data['proxy'] != None:
proxy = data['proxy']
print(proxy)
# Format the headers
# Split the string into lines
@@ -43,7 +48,7 @@ def post_endpoint():
print(json.dumps(headers_dict, indent=4))
try:
keys = decrypt_content(in_pssh=pssh, license_url=lic_url, headers=headers_dict, mpd=mpd)
keys = decrypt_content(in_pssh=pssh, license_url=lic_url, headers=headers_dict, mpd=mpd, proxy=proxy)
return {"keys": keys}
except Exception as error:
return {"keys": [f'{error}']}