Create from_init.py
This commit is contained in:
commit
927083d04d
50
from_init.py
Normal file
50
from_init.py
Normal file
@ -0,0 +1,50 @@
|
||||
import base64
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
import os
|
||||
|
||||
def find_wv_pssh_offsets(raw: bytes) -> list:
|
||||
offsets = []
|
||||
offset = 0
|
||||
while True:
|
||||
offset = raw.find(b'pssh', offset)
|
||||
if offset == -1:
|
||||
break
|
||||
size = int.from_bytes(raw[offset-4:offset], byteorder='big')
|
||||
pssh_offset = offset - 4
|
||||
offsets.append(raw[pssh_offset:pssh_offset+size])
|
||||
offset += size
|
||||
return offsets
|
||||
|
||||
def to_pssh(content: bytes) -> list:
|
||||
wv_offsets = find_wv_pssh_offsets(content)
|
||||
return [base64.b64encode(wv_offset).decode() for wv_offset in wv_offsets]
|
||||
|
||||
def from_file(file_path: str) -> list:
|
||||
return to_pssh(Path(file_path).read_bytes())
|
||||
|
||||
def get_pssh(mpd_link):
|
||||
|
||||
# Define yt-dlp download parameters
|
||||
yt_dlp_download = [
|
||||
f'{os.getcwd()}/yt-dlp.exe',
|
||||
'-f',
|
||||
'bv',
|
||||
'--allow-u',
|
||||
'-o',
|
||||
f'{os.getcwd()}/init.mp4',
|
||||
'--test',
|
||||
f'{mpd_link}'
|
||||
]
|
||||
|
||||
subprocess.run(yt_dlp_download, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
|
||||
|
||||
pssh_list = from_file(f'{os.getcwd()}/init.mp4')
|
||||
target_pssh = None
|
||||
for pssh in pssh_list:
|
||||
if 70 < len(pssh) < 190:
|
||||
target_pssh = pssh
|
||||
os.remove(path=f'{os.getcwd()}/init.mp4')
|
||||
return target_pssh
|
||||
|
||||
print(get_pssh(input("MPD LINK: ")))
|
Loading…
Reference in New Issue
Block a user