今天用yt-dlp就下载了一个视频,下载第二个就提示要cookies参数了,一开始我用–cookies cookies.txt,但是并没有搞定,后面才知道油管会频繁的轮换Cookie,可能就是没有成功的原因。
我会讲下谷歌浏览器,我是怎么解决的,至于其他浏览器,就不知道了,最后面讲下我尝试的其他方法。
一、谷歌浏览器
- 新建一个无痕(隐私)窗口
- 登录油管账号(尽量用小号)
- 随便打开几个视频,然后关闭
- 下载cookies.txt文件,我用的Get cookies.txt LOCALLY插件。
现在就可以正常用–cookies cookies.txt命令了:
yt-dlp --cookies cookies.txt 视频地址
这个会自动下载默认最佳的视频和音频,不过大概率是webm的格式,由于我把cookies.txt放到了yt-dlp.exe同目录下,所以我的命令就不用带具体的cookies.txt路径。
如果要带cookies.txt查看视频的具体信息,命令都一样,比如:
yt-dlp -F --cookies cookies.txt 视频地址
如果不想要默认的webm的格式,想用mp4的:
yt-dlp --cookies "cookies.txt" -f 'bv[ext=mp4]+ba[ext=m4a]' --embed-metadata --merge-output-format mp4 视频链接 #不带封面 yt-dlp --cookies "cookies.txt" -f 'bv[ext=mp4]+ba[ext=m4a]' --embed-metadata --embed-thumbnail --merge-output-format mp4 视频链接 #携带封面
反正就是把–cookies “cookies.txt”放前面就行,其他一样。
这个方法,也会遇到一个问题,cookies失效的问题,就只能重新走一遍新建隐私窗口登录获取cookies的流程。
看了下,感觉其他浏览器也可以这样。
其他我尝试的方法(谷歌浏览器)之解锁cookies。
1、先关闭谷歌浏览器
2、用命令去解锁谷歌浏览器的限制:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-features=LockProfileCookieDatabase
打开命令输入上面的参数,会重新打开浏览器,然后访问:chrome://version/
然后在命令行里面就能看见–disable-features=LockProfileCookieDatabase的参数了。
或者修改谷歌浏览器的快捷方式,在快捷方式里面,在“目标”栏的末尾添加参数:–disable-features=LockProfileCookieDatabase
这个就是每次打开谷歌浏览器,都是解锁状态。
但是我进行上面的操作之后,再去使用yt-dlp自动传递cookies参数的命令:
yt-dlp --cookies-from-browser chrome "视频地址" yt-dlp --cookies-from-browser chrome --cookies cookies.txt "视频地址"
结果2个都不行,当然是提示cookies相关的问题。
其他浏览器:
yt-dlp --cookies-from-browser chrome #谷歌浏览器 yt-dlp --cookies-from-browser firefox #火狐浏览器 yt-dlp --cookies-from-browser edge #edge浏览器 yt-dlp --cookies-from-browser vivaldi #vivaldi浏览器
参考:
- https://github.com/yt-dlp/yt-dlp/issues/10927
- https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp
- https://github.com/yt-dlp/yt-dlp/wiki/Extractors#exporting-youtube-cookies
- https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp