Update app.py
Browse files
app.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
import gradio as gr
|
2 |
-
import moviepy as mp
|
3 |
import tempfile
|
4 |
import os
|
5 |
|
@@ -7,8 +7,9 @@ def extraer_audio(video_file):
|
|
7 |
"""
|
8 |
Funci贸n que recibe la ruta de un archivo de video,
|
9 |
extrae el audio y lo guarda en un archivo temporal .mp3.
|
|
|
10 |
"""
|
11 |
-
#
|
12 |
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio:
|
13 |
temp_audio_path = temp_audio.name
|
14 |
|
@@ -17,23 +18,29 @@ def extraer_audio(video_file):
|
|
17 |
clip = mp.VideoFileClip(video_file)
|
18 |
|
19 |
# Extraer el audio y guardarlo en el archivo temporal
|
|
|
20 |
clip.audio.write_audiofile(temp_audio_path, logger=None)
|
21 |
clip.close()
|
22 |
|
23 |
-
#
|
24 |
-
return temp_audio_path
|
25 |
-
|
26 |
except Exception as e:
|
27 |
-
# En caso de error,
|
28 |
if os.path.exists(temp_audio_path):
|
29 |
os.remove(temp_audio_path)
|
30 |
-
|
|
|
31 |
|
32 |
-
#
|
|
|
|
|
33 |
iface = gr.Interface(
|
34 |
fn=extraer_audio,
|
35 |
inputs=gr.File(label="Sube tu archivo de video (.mp4, .avi, .mkv, etc.)"),
|
36 |
-
outputs=
|
|
|
|
|
|
|
37 |
title="Extracci贸n de audio de Video a MP3",
|
38 |
description="Esta aplicaci贸n extrae el audio de un video y lo convierte a un archivo .mp3"
|
39 |
)
|
|
|
1 |
import gradio as gr
|
2 |
+
import moviepy.editor as mp
|
3 |
import tempfile
|
4 |
import os
|
5 |
|
|
|
7 |
"""
|
8 |
Funci贸n que recibe la ruta de un archivo de video,
|
9 |
extrae el audio y lo guarda en un archivo temporal .mp3.
|
10 |
+
Retorna una tupla: (ruta_del_mp3_o_None, mensaje).
|
11 |
"""
|
12 |
+
# Creamos un archivo temporal para el MP3, sin borrarlo autom谩ticamente
|
13 |
with tempfile.NamedTemporaryFile(delete=False, suffix=".mp3") as temp_audio:
|
14 |
temp_audio_path = temp_audio.name
|
15 |
|
|
|
18 |
clip = mp.VideoFileClip(video_file)
|
19 |
|
20 |
# Extraer el audio y guardarlo en el archivo temporal
|
21 |
+
# Al usar logger=None se evita mostrar demasiada salida en consola
|
22 |
clip.audio.write_audiofile(temp_audio_path, logger=None)
|
23 |
clip.close()
|
24 |
|
25 |
+
# Si todo sale bien, regresamos la ruta al MP3 y un mensaje de 茅xito
|
26 |
+
return temp_audio_path, "隆Audio extra铆do exitosamente!"
|
|
|
27 |
except Exception as e:
|
28 |
+
# En caso de error, eliminamos el archivo temporal (si existe)
|
29 |
if os.path.exists(temp_audio_path):
|
30 |
os.remove(temp_audio_path)
|
31 |
+
# Retornamos None en la parte de archivo y un mensaje de error
|
32 |
+
return None, f"Error al procesar el video: {str(e)}"
|
33 |
|
34 |
+
# Creamos la interfaz de Gradio con DOS salidas:
|
35 |
+
# - El archivo de audio
|
36 |
+
# - Un textbox para mostrar mensajes (茅xito o error)
|
37 |
iface = gr.Interface(
|
38 |
fn=extraer_audio,
|
39 |
inputs=gr.File(label="Sube tu archivo de video (.mp4, .avi, .mkv, etc.)"),
|
40 |
+
outputs=[
|
41 |
+
gr.File(label="Descarga el audio en formato MP3"),
|
42 |
+
gr.Textbox(label="Mensaje")
|
43 |
+
],
|
44 |
title="Extracci贸n de audio de Video a MP3",
|
45 |
description="Esta aplicaci贸n extrae el audio de un video y lo convierte a un archivo .mp3"
|
46 |
)
|