1. yt-dlp 的安装

yt-dlpyoutube-dl 的一个更活跃的分支,支持更多网站和功能。你可以通过多种方式安装 yt-dlp

使用 pip 安装

pip install yt-dlp

使用 Homebrew 安装(macOS 和 Linux)

brew install yt-dlp

从源代码安装

  1. yt-dlp GitHub 仓库 下载最新的源码。
  2. 运行以下命令:
python setup.py install

2. yt-dlp 下载 YouTube 视频的命令

基本下载命令

yt-dlp -f 'bestvideo+bestaudio' "https://www.youtube.com/watch?v=VIDEO_ID" -o '%(title)s.%(ext)s'
  • -f 'bestvideo+bestaudio':选择最佳视频和最佳音频格式。
  • "https://www.youtube.com/watch?v=VIDEO_ID":目标视频的 URL。
  • -o '%(title)s.%(ext)s':输出文件的命名格式,%(title)s 表示视频标题,%(ext)s 表示视频格式。

视频输出为mp4

yt-dlp -f 'bestvideo+bestaudio' "https://www.youtube.com/watch?v=Oa0ZHfcalCM&ab_channel=BBCWorldService" -o '%(title)s.%(ext)s' --merge-output-format mp4

yt-dlp -f 'bestvideo+bestaudio' "https://www.bilibili.com/video/BV1JvyTYuE7i/?spm_id_from=333.337.search-card.all.click&vd_source=c11d09ba7abb2a71f51f62f383bc1e6b" -o '%(title)s.%(ext)s' --merge-output-format mp4

https://www.bilibili.com/video/BV1JvyTYuE7i/?spm_id_from=333.337.search-card.all.click&vd_source=c11d09ba7abb2a71f51f62f383bc1e6b
  • -f 'bestvideo+bestaudio':选择最佳视频和音频流进行下载。
  • -o '%(title)s.%(ext)s':指定输出文件名格式。
  • --merge-output-format mp4:指定合并后的输出格式为 MP4。

这个命令会下载最佳的视频和音频流,然后合并成 MP4 格式。确保你有 **ffmpeg**

使用 --continue 选项

yt-dlp 默认支持断点续传,你可以使用 --continue 选项来确保从上次结束的地方继续下载。通常情况下,这个选项是默认启用的,但你可以显式指定它以确保续传功能开启。

yt-dlp --continue -f 'bv*[height=1080]+ba' "https://www.youtube.com/watch?v=vLRQUR68MSo&list=PL9nxfq1tlKKl1uTYq11gCFJ6I__wYRXsX&index=1" -o '%(title)s.%(ext)s'

下载缩略图的命令

yt-dlp --write-thumbnail --skip-download "https://www.youtube.com/watch?v=VIDEO_ID"
  • --write-thumbnail:下载视频的缩略图。
  • --skip-download:仅下载缩略图而不下载视频。

如果希望同时下载视频和缩略图:

yt-dlp --write-thumbnail -f 'bestvideo+bestaudio' "https://www.youtube.com/watch?v=VIDEO_ID" -o '%(title)s.%(ext)s'

3. 下载哔哩哔哩 (Bilibili) 视频时,如果遇到需要登录时候,需要注意的事情

需要提供登录状态的 cookies。以下是具体步骤:

方法一:使用浏览器扩展导出 Netscape 格式的 cookies

  1. 安装Cookie-Editor扩展(例如 edge 浏览器)。
  2. 打开 Bilibili 并登录。
  3. 使用 Cookie-Editor导出 cookies,选择“导出为文本(Netscape 格式)”,保存为 cookies.txt 文件。

方法二:使用 --cookies-from-browser 选项

直接从浏览器中读取 cookies 进行下载:

yt-dlp --cookies-from-browser chrome -f 'bv*[height=1080]+ba' "https://www.bilibili.com/video/BV1uY28YdECM" -o '%(title)s.%(ext)s'

chrome 替换为你的浏览器名称,例如 firefoxedge

验证可用格式并下载

  1. 查看可用格式
yt-dlp --cookies cookies.txt --list-formats "https://www.bilibili.com/video/BV1ocxveJE2H/?vd_source=6278f29e0b4b9859224ba32ab49ee184"
  1. 下载指定格式的视频
yt-dlp --cookies cookies.txt -f 'bv*[height=1080]+ba' "https://www.bilibili.com/video/BV1ocxveJE2H/?vd_source=6278f29e0b4b9859224ba32ab49ee184" -o '%(title)s.%(ext)s'

其他注意事项

  • 确保 cookies 文件的路径正确,并且文件格式为 Netscape 格式。
  • 确保你的账号具有相应的权限,如果视频需要付费会员,请确保你的账号是会员。
  • cookies 文件有可能会过期,如果下载失败,请重新导出新的 cookies 文件。