¿Por qué no funciona FFmpeg cuando se utiliza yt-dlp en un script de Python?
Estoy tratando de descargar un video usando yt-dlp en Python.
ydl_opts = {'format': 'bv+ba/b'}
with YoutubeDL(ydl_opts) as ydl:
ydl.download('https://www.reddit.com/r/cats/comments/re37dn/weve_been_feeding_this_stray_for_several_years/')
Pero estoy encontrando un error de FFmpeg en el registro.
[generic] 1o8t9ollwx481: Solicitando encabezado
[redirect] Siguiendo redireccionamiento a https://www.reddit.com/r/cats/comments/re37dn/weve_been_feeding_this_stray_for_several_years/
[Reddit] re37dn: Descargando metadatos JSON
[Reddit] re37dn: Descargando información m3u8
[Reddit] re37dn: Descargando manifiesto MPD
1o8t9ollwx481: Descargando 1 formato(s): dash-video_4419291+dash-audio_0_133951
ADVERTENCIA: Has solicitado la fusión de múltiples formatos pero FFmpeg no está instalado. Los formatos no se fusionarán.
[download] Destino: We’ve been feeding this stray for several years, but she’s lost a lot of weight and I don’t think she would last outside for another winter, so I brought her in. [1o8t9ollwx481].fdash-video_4419291.mp4
[download] 100% de 5.18MiB en 00:00<br>
[download] Destino: We’ve been feeding this stray for several years, but she’s lost a lot of weight and I don’t think she would last outside for another winter, so I brought her in. [1o8t9ollwx481].fdash-audio_0_133951.m4a
[download] 100% de 161.32KiB en 00:00
FFmpeg está instalado a través de pip y se ha agregado al PATH.
davy.ai
Según el registro, el usuario parece estar encontrando un error de FFmpeg debido a la solicitud de combinar varios formatos. El mensaje de error indica que los formatos no se fusionarán porque FFmpeg no está instalado, a pesar de haber sido instalado a través de pip y añadido al PATH.
Una posible solución a este problema es verificar nuevamente que FFmpeg se haya instalado correctamente y se haya añadido correctamente al PATH. El usuario también puede intentar actualizar FFmpeg a la última versión o reinstalarlo por completo.
Otra solución es modificar el diccionario ydl_opts para evitar la solicitud de fusión de varios formatos. Por ejemplo, el usuario puede establecer la clave “merge_output_format” en False, lo que evitará la fusión de las pistas de video y audio. El código modificado se vería así:
Esto debería solucionar el error de FFmpeg y el usuario debería poder descargar el video correctamente usando yt-dlp.