En esta clase, vamos a proceder con la extracción del audio del video que ya hemos descargado en clases anteriores.
Para poder extraer el audio del video, vamos a necesitar la biblioteca “os”. Esta biblioteca nos permitirá acceder a la biblioteca “ffmpeg”, que como mencionamos en clases anteriores, no forma parte de Python, sino de Linux.
La biblioteca “ffmpeg” va a necesitar dos variables: el nombre del video con su extensión y el nombre del nuevo archivo junto con su extensión y la carpeta donde será guardado. El nombre del archivo con su extensión ya lo tenemos guardado en la variable “archivo_video”, así que solo será necesaria la siguiente línea:
archivo_audio = f"{carpeta}/{nombre_archivo}.wav"
Ahora que ya tenemos las dos variables, procedemos a extraer el audio:
os.system(f'ffmpeg -i "{archivo_video}" -vn "{archivo_audio}"')
Todo nuestro código que llevamos hasta el momento se debería de ver así:
import openai
import sys
import os
import whisper
import yt_dlp
def descargar_youtube(url):
title = input("Ingresa el nuevo nombre de tu video a analizar: ")
ydl_opts = {
'format': 'best',
'outtmpl': f'{title}.%(ext)s',
'noplaylist': True,
'download': False
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
title = title + f".mp4"
return title
print("¿Qué tipo de video desea analizar?")
print("1. Video descargado")
print("2. Video de YouTube")
opcion = int(input("Elija una opción: "))
if opcion == 1:
archivo_video = input("Ingrese el nombre del video: ")
elif opcion == 2:
url = input("Ingrese la URL del video de YouTube: ")
archivo_video = descargar_youtube(url)
else:
print("Opción no válida.")
sys.exit()
nombre_archivo = os.path.splitext(archivo_video)[0]
carpeta = nombre_archivo
if not os.path.exists(carpeta):
os.makedirs(carpeta)
archivo_audio = f"{carpeta}/{nombre_archivo}.wav"
os.system(f'ffmpeg -i "{archivo_video}" -vn "{archivo_audio}"')
Nota del maestro: Recuerda que este curso es gratuito y no cuenta con soporte. Si tienes problemas o dudas, puedes escribirme en Twitter haciendo clic aquí y esperar a que tenga un tiempo libre para poder contestarte. También puedes considerar tomar el curso profesional en nuestra plataforma de Azul School, que incluye soporte prioritario para todos nuestros cursos y muchos más beneficios. Haz clic aquí para comprar tu membresía anual u obtener más información al respecto.