下载视频神器-命令行下载视频
发生背景
正在学习哔哩哔哩 java socket
知识,发现一个非常好的视频,想下载下来随时学习。
都程序员了,就别总是页面GUI了。
you-get
链接:you-get
我一直用 you-get
命令,这个命令非常好用。它能直接下载整个视频列表,而且速度还很快1
you-get --playlist https://www.bilibili.com/video/CV1nX4y1N7U7/\?p\=1\&vd_source\=c3e9801497e408c0e02a3ddb59c2d64
命令执行后,你会发现,下载的视频是480p的。原因是哔哩哔哩非登陆下只能下载480p的。
所以我们想下载720p,1080p的,命令执行时就要带上cookies。
命令也支持1
2
3
4
5
6创建一个文件cookies.txt
vim /Users/xx/cookies.txt
内容是bilibili的cookies,通过开发者模式可以找到。这里推荐浏览器两个插件获取,更方便
https://chromewebstore.google.com/detail/copy-cookies/jcbpglbplpblnagieibnemmkiamekcdg?utm_source=ext_app_menu
https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc
拿到cookies放入 /Users/xx/cookies.txt
。
执行命令1
you-get --cookies /Users/xx/cookies.txt --playlist https://www.bilibili.com/video/CV1nX4y1N7U7/\?p\=1\&vd_source\=c3e9801497e408c0e02a3ddb59c2d64e
你应该会有疑问:cookies.txt里怎么放cookies的数据呢。感兴趣的人可以自行探索。
这里我没有实际操作。因为我发现了更好的一个神器命令
yt-dlp
链接:yt-dlp
yt-dlp
的好处是它可以自动获取cookies 去获取清晰度格式最高的视频,google浏览器命令行加 --cookies-from-browser chrome
1 | yt-dlp https://www.bilibili.com/video/BV1nX4y1N7U7/\?p\=1\&vd_source\=c3e9801497e408c0e02a3ddb59c2d64e --cookies-from-browser chrome |
如果想下载整个视频列表的数据,很简单,根据视频链接特点,如上把 p=1&
去掉即可。
解决的办法倒是很简单,解决的过程我是探索了个把小时才发现的。
执行如下,下载的就是清晰度最高的视频列表了1
yt-dlp https://www.bilibili.com/video/BV1nX4y1N7U7/\?vd_source\=c3e9801497e408c0e02a3ddb59c2d64e --cookies-from-browser chrome
辅助
解决过程中用到的资料
yt-dlp you-get 下载 B 站视频,现在只有 480p 了?