下载视频神器-命令行下载视频

下载视频神器-命令行下载视频

发生背景

正在学习哔哩哔哩 java socket 知识,发现一个非常好的视频,想下载下来随时学习。

都程序员了,就别总是页面GUI了。

20240721082743

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的数据呢。感兴趣的人可以自行探索。

这里我没有实际操作。因为我发现了更好的一个神器命令

20240721082801

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 了?

[Bilibili] unable to download 720p/1080p video

Download bilibili videos in 1080p resolution