es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los módulos de Python ffmpeg y ffprobe están instalados, pero youtube-dl no logra encontrarse.

Estoy utilizando Python 3.8 en MacOS Big Sur. He instalado el paquete de módulo de Python para youtube-dl con el siguiente comando:

pip3 install -upgrade youtube-dl

Quería hacer un procesamiento posterior en el contenido descargado, así que instalé los paquetes de Python ffprobe y ffmpeg con los siguientes comandos:

pip3 install ffprobe
pip3 install ffmpeg

Después de instalar, verifiqué la lista de paquetes instalados con el siguiente comando:

pip3 list

La salida fue:

Package    Version   
--------------------
ffmpeg     1.4
ffprobe    0.5
youtube-dl 2021.12.17

A pesar de esto, sigue mostrando el error “no se puede encontrar ffprobe y ffmpeg”. Veo que ambos paquetes están instalados en la siguiente ruta: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/

Estoy tratando de averiguar qué estoy haciendo mal. Muchas respuestas a preguntas similares en SFO sugieren instalar estos paquetes en el sistema operativo utilizando brew, etc., pero en mi caso “quiero hacer todo a través de Python”. ¿No debería ser suficiente con instalar los módulos de Python?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema no está en la instalación de los paquetes de Python ffprobe y ffmpeg, sino en que el módulo youtube-dl no puede encontrar los ejecutables de ffprobe/avprobe y ffmpeg/avconv en tu sistema.

    Una solución podría ser agregar las rutas de los ejecutables a la variable de entorno PATH de tu sistema para que youtube-dl pueda encontrarlos. Puedes hacer esto añadiendo las siguientes líneas a tu archivo .bashrc o .zshrc:

    export PATH="/Library/Frameworks/ffmpeg.framework/Versions/Current/bin:$PATH"
    export PATH="/Library/Frameworks/ffprobe.framework/Versions/Current/bin:$PATH"
    

    Alternativamente, podrías intentar especificar las rutas de los ejecutables directamente en tu script de Python utilizando las opciones --ffmpeg-location y --exec_cmd de youtube-dl. Por ejemplo:

    import youtube_dl
    
    ydl_opts = {
        'format': 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best',
        'outtmpl': '%(title)s.%(ext)s',
        'ffmpeg_location': '/Library/Frameworks/ffmpeg.framework/Versions/Current/bin/ffmpeg',
        'exec_cmd': '/Library/Frameworks/ffprobe.framework/Versions/Current/bin/ffprobe',
    }
    
    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download(['https://www.youtube.com/watch?v=dQw4w9WgXcQ'])
    

    ¡Espero que esto te ayude!

Comments are closed.