今天用yt-dlp就下载了一个视频,下载第二个就提示要cookies参数了,一开始我用–cookies cookies.txt,但是并没有搞定,后面才知道油管会频繁的轮换Cookie,可能就是没有成功的原因。

我会讲下谷歌浏览器,我是怎么解决的,至于其他浏览器,就不知道了,最后面讲下我尝试的其他方法。

一、谷歌浏览器

  1. 新建一个无痕(隐私)窗口
  2. 登录油管账号(尽量用小号)
  3. 随便打开几个视频,然后关闭
  4. 下载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