Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import os | |
| import subprocess | |
| from pydub import AudioSegment | |
| from IPython.display import Audio | |
| def get_video_title(url): | |
| result = subprocess.run(["yt-dlp", "--get-title", url], capture_output=True, text=True) | |
| if result.returncode == 0: | |
| return result.stdout.strip() | |
| else: | |
| return "Unknown Video" | |
| def fetch(url, custom_name, ext): | |
| title = get_video_title(url) | |
| max_length = 50 | |
| truncated_title = title[:max_length].strip() | |
| filename = f"{custom_name}.{ext}" if custom_name else f"{truncated_title}.{ext}" | |
| opts = { | |
| "wav": ["-f", "ba", "-x", "--audio-format", "wav"], | |
| "mp4": ["-f", "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best"], | |
| }[ext] | |
| command = ["yt-dlp"] + opts + [url, "-o", filename] | |
| subprocess.run(command) | |
| return filename | |
| def play_audio(output_audio): | |
| audio = AudioSegment.from_file(output_audio) | |
| audio.export("output.wav", format="wav") | |
| gr.Interface(fn=None, live=False, outputs="audio").play("output.wav") | |
| app = gr.Interface( | |
| theme='Hev832/EasyAndCool', | |
| fn=play_audio, | |
| inputs=[ | |
| gr.Textbox(label="YouTube video address", placeholder="Paste video link here..."), | |
| gr.Textbox(label="File name", placeholder="Defaults to video title"), | |
| gr.Dropdown(value="wav", label="Format") | |
| ], | |
| outputs=None, | |
| description="<div style='font-size:30px; text-align:center;'>YouTube Audio Player</div>" | |
| ) | |
| app.launch(debug=True, share=True) | |