import os import gradio as gr import yt_dlp import base64 def youtube2video(url): URL = url ydl_opts = { 'format': 'bestaudio/best', 'outtmpl': 'audio', 'postprocessors': [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': 'mp3', 'preferredquality': '192', }] } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download([URL]) with open('audio.mp3', 'rb') as file: mp3 = file.read() base64_mp3 = base64.b64encode(mp3).decode('utf-8') return base64_mp3 input_url = gr.Textbox() output_base64 = gr.Textbox() interface = gr.Interface( fn=youtube2video, inputs=input_url, outputs=output_base64, ) interface.launch()