File size: 849 Bytes
cfb3ce0
 
 
1f0782b
 
 
 
 
 
 
 
529c9a7
1f0782b
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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()