yt-dlp 实用小技巧:使用 cookies-from-browser 参数下载需要登录才能观看的视频
yt-dlp 是一款非常著名的开源、在线视频下载工具,命令行方式,目前开发状态很活跃。它源自更加著名的 youtube-dl。今天介绍 2 个小技巧,可以更方便的自动获取浏览器 cookies,让那些需要登录才能观看的视频,在命令行下也非常容易下载。另外就是下载指定格式。@Appinn
感谢 @WM 的推荐。
yt-dlp
yt-dlp 项目在 GitHub,掠过安装,命令行工具比较烦的地方在于完全不知道自己输入的是什么,跟着来就好。两个技巧:
1. 下载指定格式
只需要加上 -F 参数:
yt-dlp -F https://www.youtube.com/watch?v=7SH4irC_xMs
然后你会看到所有检测到的格式:
找到你需要的格式序号,就是最前面那个数字,注意你的终端里不一定是绿色的,可能就是白色字体。
然后使用 -f 序号 下载:
yt-dlp -f 599 https://www.youtube.com/watch?v=7SH4irC_xMs
就能下载到指定格式了,这里是 m4a,仅音频。
2. 下载需要登录的视频
这个时候,往常会需要先导出 cookie,然后再下载,略麻烦不说,将 cookie 会让命令行更长,更头痛。
yt-dlp 有一个简单的参数:--cookies-from-browser,它的意思是从浏览器获取 cookies,就不需要导出了,让 yt-dlp 自己去获取,支持很多浏览器:brave, chrome, chromium, edge, firefox, opera, safari, vivaldi。
你只需要先在浏览器里登录,然后使用命令行下载即可。
以下为使用里 Firefox 的例子:
yt-dlp --cookies-from-browser firefox:/Users/appinn/Library/Application\ Support/Firefox/Profiles/12345.default-release-12345/ https://www.bilibili.com/video/BV1Rp4y187y5/
你需要找到浏览器的 Profile 文件夹位置,对于不同的系统和浏览器,都是不同的,举几个例子:
Windows & Edge:
yt-dlp.exe --cookies-from-browser edge:"C:\Users\appinn\AppData\Local\Microsoft\Edge\User Data\Profile 1" -F https://www.bilibili.com/video/xxxx
注意 Windows 下需要用引号把路径包起来。
Windows & Chrome
yt-dlp.exe --cookies-from-browser chrome:"C:\Users\scavi\AppData\Local\Google\Chrome\User Data\Default" -F https://www.bilibili.com/video/xxxx
macOS & Firefox
yt-dlp --cookies-from-browser firefox:/Users/appinn/Library/Application\ Support/Firefox/Profiles/xxxxx.default-release-123455/ https://www.bilibili.com/video/xxxx/
macOS & Edge
yt-dlp --cookies-from-browser edge:/Users/appinn/Library/Application\ Support/Microsoft\ Edge/Default/ -F https://www.bilibili.com/video/BV1Rp4y187y5/
注意 macOS 下,如果路径中有空格,需要转义,即使用 \ 来代替空格。
当你在命令行中看到下面的提示:
[Cookies] Extracting cookies from edge
[Cookies] Extracted 102 cookies from edge
就代表正确了,否则还需要确认路径。不过这已经比导出 cookie 这件事简单多了。
大概就是这样了。
后记:本文实际上很早就写了一半,后来荒废了。前两天在群里有人问如何下载 B 站视频,瞬间就获得了好几种下载方式。而提问的同学一直在疑惑:为什么我下载的视频文件播放起来颜色不对呢?于是换各种方式下载。
最后发现,是自己的播放器有问题了!
但能一下子收集到这么多下载方式,也是蛮不错的