File size: 1,421 Bytes
af8e4d4 85a8074 1facfd5 85a8074 af8e4d4 e5e8c9d 85a8074 af8e4d4 85a8074 e5e8c9d 85a8074 e5e8c9d 85a8074 e5e8c9d 85a8074 d3a3a19 e5e8c9d af8e4d4 85a8074 e5e8c9d 1facfd5 85a8074 e5e8c9d af8e4d4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
import gradio as gr
import moviepy as mp
import os
import time
def convert_to_mp3(video_file):
if video_file is None:
return None
# Generamos un nombre único basado en el tiempo para evitar conflictos
timestamp = int(time.time())
output_filename = f"audio_hd_{timestamp}.mp3"
try:
# Nueva forma de cargar el video en MoviePy 2.0+
video = mp.VideoFileClip(video_file.name)
# Extraer y guardar el audio con máxima calidad
video.audio.write_audiofile(output_filename, bitrate="320k", logger=None)
# Es vital cerrar el archivo para que Hugging Face pueda borrarlo después
video.close()
return output_filename
except Exception as e:
return f"Error en la conversión: {str(e)}"
# Interfaz estética
with gr.Blocks(theme=gr.themes.Default()) as demo:
gr.Markdown("# 🎵 Convertidor de Video a MP3 Pro")
gr.Markdown("Extrae audio en **320kbps** sin depender de internet ni sufrir bloqueos.")
with gr.Row():
with gr.Column():
video_input = gr.File(label="Sube tu video aquí", file_types=["video"])
btn = gr.Button("🔥 Convertir a MP3", variant="primary")
with gr.Column():
audio_output = gr.File(label="Tu MP3 de alta calidad")
btn.click(fn=convert_to_mp3, inputs=video_input, outputs=audio_output)
demo.launch()
|