vid-url-dl / app.py
Omnibus's picture
Update app.py
3cf9cd9
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()