import gradio as gr import os def fetch(url, name, audio_only): filename = f"{name}.{'mp3' if audio_only else 'mp4'}" if audio_only: opts = f'-x --audio-format mp3 -o "{filename}"' else: opts = f'-o "{filename}"' os.system(f'yt-dlp {opts} "{url}"') return filename if os.path.exists(filename) else "Download failed." with gr.Blocks() as demo: gr.Markdown("Downloads video/audio from url as mp4 (or mp3). Simply a convenience wrapper around [yt-dlp](https://github.com/yt-dlp/yt-dlp) :)") url = gr.Textbox(label="media URL") name = gr.Textbox(label="output name", value="output") audio_only = gr.Checkbox(label="audio only (mp3)", value=False) button = gr.Button("download") output = gr.File() button.click(fetch, inputs=[url, name, audio_only], outputs=output) demo.launch()