mdnestor commited on
Commit
1f0782b
·
verified ·
1 Parent(s): 30bd45a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -18
app.py CHANGED
@@ -1,21 +1,26 @@
1
  import gradio as gr
2
  import os
3
 
4
- def fetch(url, name, ext):
5
- opts = {
6
- "mp3": "-f \"ba\" -x --audio-format mp3",
7
- "mp4": "-f \"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best\"",
8
- }[ext]
9
- filename = f"{name}.{ext}"
10
- os.system(f"yt-dlp {opts} {url} -o {filename}")
11
- return filename
12
-
13
- gr.Interface(
14
- fetch,
15
- [gr.Textbox(label="Media link", placeholder="URL goes here..."),
16
- gr.Textbox(label="File name", placeholder="best-vid"),
17
- gr.Dropdown(["mp3", "mp4"], value="mp4", label="File type")],
18
- gr.outputs.File(label="Download!"),
19
- description="Download web media! Works on most sites like YouTube, Reddit, Twitter, Instagram, etc.",
20
- enable_queue=True
21
- ).launch()
 
 
 
 
 
 
1
  import gradio as gr
2
  import os
3
 
4
+ def fetch(url, name, audio_only):
5
+ filename = f"{name}.{'mp3' if audio_only else 'mp4'}"
6
+
7
+ if audio_only:
8
+ opts = f'-x --audio-format mp3 -o "{filename}"'
9
+ else:
10
+ opts = f'-o "{filename}"'
11
+
12
+ os.system(f'yt-dlp {opts} "{url}"')
13
+ return filename if os.path.exists(filename) else "Download failed."
14
+
15
+ with gr.Blocks() as demo:
16
+ 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) :)")
17
+
18
+ url = gr.Textbox(label="media URL")
19
+ name = gr.Textbox(label="output name", value="output")
20
+ audio_only = gr.Checkbox(label="audio only (mp3)", value=False)
21
+ button = gr.Button("download")
22
+ output = gr.File()
23
+
24
+ button.click(fetch, inputs=[url, name, audio_only], outputs=output)
25
+
26
+ demo.launch()