import gradio as gr import yt_dlp import os import binascii def dl(inp): out = None out_file=[] try: inp_out=inp.replace("https://","") inp_out=inp_out.replace("/","_").replace(".","_") os.system(f'yt-dlp "{inp}" --trim-filenames 100 --skip-download --write-description -o "{inp_out}.description"') os.system(f'yt-dlp "{inp}" --trim-filenames 100 --skip-download --write-info-json -o "{inp_out}.info.json"') 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") try: with open(f"{inp_out}.info.json", "rb") as f: f_out = f.readlines() for line in f_out: print (line) #dec_line = line.decode('utf-8', 'backslashreplace') #out_line = binascii.hexlify(eval(dec_line)) #print (out_line) except Exception as e: print (e) except Exception as e: print (e) out = None return out,out_file with gr.Blocks() as app: inp_url = gr.Textbox() go_btn = gr.Button() with gr.Row(): outp_vid=gr.Video() outp_files=gr.Files() go_btn.click(dl,inp_url,[outp_vid,outp_files]) app.launch()