mirror of
https://cdm-project.com/How-To/Obtaining-PSSH.git
synced 2025-04-29 15:04:26 +02:00
30 lines
647 B
Python
30 lines
647 B
Python
import base64
|
|
|
|
import requests
|
|
import xmltodict
|
|
|
|
|
|
def read_pssh_from_bytes(bytes: bytes):
|
|
pssh_offset = bytes.rfind(b"pssh")
|
|
_start = pssh_offset - 4
|
|
_end = pssh_offset - 4 + bytes[pssh_offset - 1]
|
|
pssh = bytes[_start:_end]
|
|
return pssh
|
|
|
|
|
|
url = input("Enter Init segment url: ")
|
|
headers = {
|
|
# "Range": "bytes=0-962",
|
|
}
|
|
print("Downloading...")
|
|
|
|
res = requests.get(url, headers=headers)
|
|
if not res.ok:
|
|
print(f"Could not download init segment: {res.text}")
|
|
|
|
pssh = read_pssh_from_bytes(res.content)
|
|
if pssh is not None:
|
|
print(f"PSSH: {base64.b64encode(pssh).decode('utf8')}")
|
|
else:
|
|
print("Failed to extract PSSH!")
|