import gradio as gr from pytube import YouTube import os def download_youtube_video(url): try: # Crea el objeto YouTube a partir de la URL yt = YouTube(url) # Selecciona el stream progresivo con extensión mp4, ordenado de mayor a menor resolución stream = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first() if stream is None: return "No se encontró un stream adecuado para descargar." # Define un directorio de descarga y asegúrate de que exista download_folder = "downloads" os.makedirs(download_folder, exist_ok=True) # Descarga el video en el directorio especificado output_path = stream.download(output_path=download_folder) return f"Video descargado: {output_path}" except Exception as e: return f"Error al descargar el vídeo: {str(e)}" # Crea la interfaz Gradio iface = gr.Interface( fn=download_youtube_video, inputs=gr.Textbox(label="URL del vídeo de YouTube", placeholder="Ingresa la URL aquí..."), outputs=gr.Textbox(label="Resultado"), title="Descargador de Vídeos de YouTube", description="Ingresa la URL de un vídeo de YouTube y descarga la versión en MP4 de mayor resolución disponible." ) if __name__ == "__main__": iface.launch()