如何使用 yt_dlp 在我的视频下载算法中导入 ffmpeg?

问题描述 投票:0回答:1

我正在开发一个项目,以指定的质量从 YouTube 下载视频。我会使用 pytube 来执行此操作,但使用它我无法下载有年龄限制的视频。当我正常导入 yt_dlp 时,据我了解,我没有安装内置的 ffmpeg,并且无法下载除 720p 之外的所有分辨率的视频。我可以安装某种用于音频和视频合并的库吗?还是需要连接外部程序(这对我来说是不可取的,因为我想购买一个不提供安装外部程序的简单主机)?

python youtube youtube-dl yt-dlp
1个回答
0
投票

我是 MD Rahit Azim,我也致力于解决同样的问题 -

要将

ffmpeg
yt-dlp
集成而无需手动安装外部程序,您可以使用
yt-dlp
库以及用于处理后处理(例如合并音频和视频)的内部方法。但是,
yt-dlp
确实依赖于
ffmpeg
来合并音频和视频,因此您可以采用以下方法。

使用
yt-dlp
处理 ffmpeg 的步骤:

  1. 使用pip安装

    yt-dlp
    确保您的 Python 环境中安装了
    yt-dlp
    。您可以使用 pip 安装它:

    pip install yt-dlp
    
    
  2. 使用Python包安装ffmpeg

    :
    为了避免手动安装 
    ffmpeg
    ,您可以使用 
    imageio-ffmpeg
     等 Python 包,它将 
    ffmpeg
     捆绑为包的一部分。

    使用pip安装:

    pip install imageio[ffmpeg]
    此软件包会在环境中安装 

    ffmpeg

    ,然后您可以配置 
    yt-dlp
     以使用此捆绑的 
    ffmpeg

  3. 配置yt-dlp

    以查找
    ffmpeg
    在您的
    yt-dlp
     下载脚本中,确保 
    yt-dlp
     知道在哪里可以找到 
    ffmpeg
    。您可以通过传递 
    ffmpeg_location
     参数,将其指向 
    imageio_ffmpeg
     位置来完成此操作。

    示例:

    import yt_dlp import imageio_ffmpeg as ffmpeg ydl_opts = { 'format': 'bestvideo+bestaudio/best', # Download the best quality video and audio 'ffmpeg_location': ffmpeg.get_ffmpeg_version(), # Pointing to the bundled ffmpeg 'postprocessors': [{ 'key': 'FFmpegVideoConvertor', 'preferedformat': 'mp4', # Merge to mp4 format }] } with yt_dlp.YoutubeDL(ydl_opts) as ydl: ydl.download(['https://www.youtube.com/watch?v=VIDEO_ID'])
    
    
  4. 运行脚本: 现在,当您运行脚本时,它应该使用与
    ffmpeg

     包捆绑在一起的 
    imageio-ffmpeg
     来合并音频和视频流。

总结

    使用
  • imageio-ffmpeg
     避免手动安装 
    ffmpeg
  • 通过
  • ffmpeg
     参数将 
    yt-dlp
     的位置传递给 
    ffmpeg_location
  • 确保
  • yt-dlp
    选项包括合并音频和视频流。
通过这种方式,您可以捆绑项目中的所有内容,而无需安装外部程序,并且它应该可以在简单的托管环境中运行。

© www.soinside.com 2019 - 2024. All rights reserved.