import gradio as gr import yt_dlp import os def downloader(video_url, audio_format, audio_name): ydl_opts = { 'format': 'bestaudio/best', 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': audio_format, }], 'outtmpl': f"audios/{audio_name}", } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([video_url]) return save_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()