我是今天才知道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,方法:
- 完全关闭浏览器
- 用命令解锁浏览器
"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就行了,国内的暂时推荐豆包。