vid-url-dl / app.py
Omnibus's picture
Update app.py
84a96b1
raw
history blame
1.7 kB
import gradio as gr
import yt_dlp
import os
import binascii
import json
def dl(inp):
out = None
out_file=[]
json_line=[]
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.dumps(json_line)
out_json = json.dumps(f_out, 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()
go_btn = gr.Button()
with gr.Row():
outp_vid=gr.Video()
with gr.Column():
outp_files=gr.Files()
out_json = gr.JSON()
go_btn.click(dl,inp_url,[outp_vid,outp_files,out_json])
app.launch()