我是今天才知道yt-dlp这个项目,源于我的you-get无法下载某个视频,就重新搜索,才知道yt-dlp。

yt-dlp是出自youtube-dl,所以在命令上挺多一样的,使用之前还是需要安装ffmpeg和python。

怎么安装ffmpeg和python可以看我之前的教程:Windows 11安装you-get 下载网页视频教程

yt-dlp我是直接下载的打包好的exe文件,当然这并不是图形界面软件,相当于把环境打包好这个exe文件里面了,直接添加进环境就能用了,免去用命令安装可能出现的错误。

第一步、下载yt-dlp.exe

下载好yt-dlp.exe之后,把它放到你需要使用的文件夹,然后去配置环境。

第二步、给yt-dlp.exe添加环境变量

  • 右键点击 “此电脑”,选择 “属性”。
  • 在弹出的窗口中,点击 “高级系统设置”。
  • 在 “系统属性” 窗口的 “高级” 选项卡下,点击 “环境变量” 按钮。
  • 在 “系统变量” 列表中找到 “Path” 变量。
  • 在 “编辑环境变量” 窗口中,点击 “新建”,然后输入 yt-dlp.exe 所在的完整文件夹路径(比如我的D:\f\test ),点击 “确定” 逐步保存设置退出即可。
  • 之后就可以在命令提示符窗口直接使用 yt-dlp.exe 相关命令了。
  • 也就是我的yt-dlp.exe放在D:\f\test这个文件夹里面的。

第三步、用终端PowerShell 软件使用

具体命令:

默认下载最佳视频命令,这个有可能不是mp4的格式:

yt-dlp -f best 视频地址

和youtube-dl一样,还有一个下载默认视频的命令:

yt-dlp -f "bv+ba/b" 视频

但是这个命令下载下来的视频大概率是webm的格式。

下载最佳的mp4和音频,并且自动合并:

yt-dlp -f 'bv[ext=mp4]+ba[ext=m4a]' --embed-metadata --merge-output-format mp4 视频地址
#不带封面
yt-dlp -f 'bv[ext=mp4]+ba[ext=m4a]' --embed-metadata --embed-thumbnail --merge-output-format mp4 视频地址
#带封面

主要是看具体视频,有可能和best默认的一样。

yt-dlp -F "视频地址"

这个是看当前视频的具体信息,格式啥的。

比如我想下载好的音频并且自动转换为mp3格式:

yt-dlp -f140 -x --audio-format mp3 视频格式

140就是前面绿色的id号。

如果要下载指定的视频和音频id:

yt-dlp -f 299+140 视频地址

下载你以为最佳的mp4和音频格式,如果视频是mp4,后面也有mp4_dash参数,然后音频是m4a,也带mp4a.参数,以下命令就会自动把音频合并进去,这个是我自己用得比较多的,我一般用来下载最佳质量的视频,就是把画质最佳的mp4和最佳的音频合并下载。

yt-dlp -f 137+140 视频地址

下载指定id的视频和音频,强制合并为mp4格式:

yt-dlp -f "249+247" --merge-output-format mp4 视频地址

这个一般用于把webm强制合并为mp4格式,加引号更稳一点,不加也行。

下载1080加音频:

yt-dlp -f 'bv[height=1080][ext=mp4]+ba[ext=m4a]' 视频地址

下载4k加音频:

yt-dlp -f 'bv[height=2160][ext=mp4]+ba[ext=m4a]' --embed-metadata 视频地址

我常用的命令:

yt-dlp -f best 视频地址
#默认最佳,我对视频要求不高的时候就用这个
yt-dlp -F "视频地址"
#看具体信息
yt-dlp -f id+id 视频
#找最佳画质的mp4和最佳音质的音频

其他常用命令:

下载整个列表的视频:

yt-dlp 列表地址

带Cookie下载(我会单独发文章写):

yt-dlp --cookies cookies.txt "视频地址"
#这个是手动传递,需要cookies.txt具体路径
yt-dlp --cookies-from-browser chrome "视频地址"
yt-dlp --cookies-from-browser chrome --cookies cookies.txt "视频地址"
#这个是直接调用浏览器的cookies

如果提示/yt-dlp/yt-dlp/issues/7271的错误,就需要先解锁cookies,方法:

  1. 完全关闭浏览器
  2. 用命令解锁浏览器
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-features=LockProfileCookieDatabase

前面是浏览器的安装路径,也可以改快捷方式:

  • 找到浏览器的快捷方式(右键点击浏览器图标 -> 属性)。
  • 在“目标”栏的末尾添加参数: –disable-features=LockProfileCookieDatabase
  • 点击“应用”并保存,然后打开浏览。

谷歌浏览器:chrome://version/  访问这个页面,看看在命令行有没有这句:–disable-features=LockProfileCookieDatabase

有就是解锁成功了。

带socks5下载,这个我用不到,因为我用的OpenWrt,已经自动了:

yt-dlp --proxy socks5://127.0.0.1:端口 视频地址

带年龄下载:

yt-dlp --age-limit 18 视频地址

我比较倾向用cookies来下载有年龄限制的视频。

下载在特定日期之前上传的视频:

yt-dlp --datebefore 20241210 列表地址

下载在特定日期之后上传的视频:

yt-dlp --dateafter 20241210 列表地址

下载最近1月内上传的视频:

yt-dlp --dateafter now-1months 列表地址

下载指定日期范围内的视频,例如2024年12月01日到2024年12月10日:

yt-dlp --dateafter 20241201 --datebefore 20241210 列表地址

下载列表中指定的一些视频:

yt-dlp --playlist-items 5,8,20 列表地址

帮助:

yt-dlp --help

 

参考:https://github.com/yt-dlp/yt-dlp

现在有什么不会的操作,问ai就行了,国内的暂时推荐豆包。