Ya que estás delegando en youtube-dl
la descarga del vídeo, puedes aprovechar y pasarle a ese comando las opciones --extract-audio
y --audio-format
, y de este modo te evitas el problema que estás planteando, a la vez que evitas la dependencia de la biblioteca ffmpy
(aunque necesitarás tener instalado ffmpeg
de todas formas, pues youtube-dl
lo usa).
Es decir, podrías hacer algo así:
# Omitida la parte en que se busca la url del vídeo o se le pide al usuario# Se supone que en la variable `url` ya la tenemosconvertir = input("Quedarse sólo con el audio? [S/n]: ").lower()extra = ""if convertir == "s" or convertir == "": formato = input("Formato del audio? [mp3]: ").lower() if formato == "": formato = "mp3" extra = "--extract-audio --audio-format {}".format(formato)comando = "youtube-dl.py {} -o %\(title\)s.%\(ext\)s {}".format(url, extra)subprocess.call(comando, shell=True)print("Gracias por usar el programa")
Los formatos que puedes pedirle a youtube-dl
son "aac","flac", "mp3", "m4a", "opus", "vorbis", o "wav".