Spaces:
Runtime error
Runtime error
import gradio as gr | |
import yt_dlp | |
import os | |
import binascii | |
import json | |
def dl_user(inp): | |
out_json={} | |
os.system(f'yt-dlp "{inp}" --write-info-json --skip-download --cookies-from-browser chrome -o "{inp_out}"') | |
try: | |
with open(f"{inp_out}.info.json", "r") as f: | |
f_out = f.read() | |
print(f_out) | |
json_object = json.loads(f_out) | |
out_json = json.dumps(json_object, indent=4) | |
print (out_json) | |
except Exception as e: | |
print (e) | |
return out_json | |
def dl(inp): | |
out = None | |
out_file=[] | |
out_json={} | |
try: | |
inp_out=inp.replace("https://","") | |
inp_out=inp_out.replace("/","_").replace(".","_") | |
os.system(f'yt-dlp "{inp}" --write-description --skip-download -o "{inp_out}"') | |
os.system(f'yt-dlp "{inp}" --write-info-json --skip-download -o "{inp_out}"') | |
os.system(f'yt-dlp "{inp}" --trim-filenames 100 -o "{inp_out}.mp4"') | |
out = f"{inp_out}.mp4" | |
out_file.append(out) | |
out_file.append(f"{inp_out}.description") | |
out_file.append(f"{inp_out}.info.json") | |
out_json=f'{inp_out}.info.json' | |
try: | |
with open(f"{inp_out}.info.json", "r") as f: | |
f_out = f.read() | |
print(f_out) | |
#for line in f_out: | |
# print (line) | |
# json_line.append(line) | |
#dec_line = line.decode('utf-8', 'backslashreplace') | |
#out_line = binascii.hexlify(eval(dec_line)) | |
#print (out_line) | |
json_object = json.loads(f_out) | |
out_json = json.dumps(json_object, indent=4) | |
print (out_json) | |
except Exception as e: | |
print (e) | |
except Exception as e: | |
print (e) | |
out = None | |
return out,out_file,out_json | |
with gr.Blocks() as app: | |
inp_url = gr.Textbox() | |
with gr.Row(): | |
#btn=gr.Button("Search") | |
go_btn = gr.Button("Run") | |
with gr.Row(): | |
with gr.Column(): | |
outp_vid=gr.Video() | |
with gr.Column(): | |
outp_files=gr.Files() | |
out_json = gr.JSON() | |
#btn.click(dl,inp_url,out_json) | |
go_btn.click(dl,inp_url,[outp_vid,outp_files,out_json]) | |
app.launch() | |