Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import yt_dlp | |
| def download_media(url, media_type): | |
| ydl_opts = { | |
| 'format': 'bestaudio/best' if media_type == 'Audio' else 'bestvideo+bestaudio/best', | |
| 'outtmpl': '%(title)s.%(ext)s', | |
| } | |
| with yt_dlp.YoutubeDL(ydl_opts) as ydl: | |
| result = ydl.extract_info(url, download=True) | |
| filename = ydl.prepare_filename(result) | |
| return filename | |
| def download_audio(url): | |
| return download_media(url, 'Audio') | |
| def download_video(url): | |
| return download_media(url, 'Video') | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# YouTube Audio/Video Downloader") | |
| url_input = gr.Textbox(label="YouTube URL") | |
| media_type = gr.Radio(label="Select Media Type", choices=["Audio", "Video"], value="Audio") | |
| output = gr.Audio(label="Downloaded File") | |
| download_button = gr.Button("Download") | |
| download_button.click( | |
| fn=lambda url, media: download_audio(url) if media == 'Audio' else download_video(url), | |
| inputs=[url_input, media_type], | |
| outputs=output | |
| ) | |
| demo.launch() | |