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()