Spaces:
Running
Running
import gradio as gr | |
import yt_dlp | |
import os | |
def downloader(video_url, audio_format, audio_name): | |
os.makedirs('audios', exist_ok=True) | |
ydl_opts = { | |
'format': 'bestaudio/best', | |
'postprocessors': [{ | |
'key': 'FFmpegExtractAudio', | |
'preferredcodec': audio_format, | |
}], | |
'outtmpl': f"audios/{audio_name}", | |
} | |
output_path = f"audios/{audio_name}.%(ext)s" | |
with yt_dlp.YoutubeDL(ydl_opts) as ydl: | |
ydl.download([video_url]) | |
return output_path | |
with gr.Blocks() as demo: | |
gr.Markdown("# YouTube Downloader 2.0") | |
video_url = gr.Textbox(label="YouTube video link") | |
audio_name = gr.Textbox(label="Audio name of YouTube audio") | |
audio_format = gr.Radio(["wav", "flac", "mp3"], label="Select the output format") | |
output = gr.Audio(label="Output") | |
download_button = gr.Button("Download") | |
download_button.click(downloader, inputs=[video_url, audio_format, audio_name], outputs=output) | |
demo.launch() | |