沙牛提示
阅读本文需要4分钟,分享折腾党必备的自动下载B站视频的方法!
如果你喜欢本文,就分享给你的小伙伴!
01 扎心现实引发的新需求
作为忠实B站用户,无论是学习还是娱乐,B站都是我首选的视频平台。跟很多B友一样,对于很多有价值的视频,我都会放到B站的收藏夹。
但时常,会遇到视频被删除这样扎心的事情——
所以,拥有一群群晖NAS的我,最近萌生了一个想法:
能否实现将B站收藏夹里的视频,自动下载到服务器?
搜索了一番之后,嘿,还真有!
02 解决方案
并且,解决方案还不止一套,最终测试下来,认为这是目前最优的解决方案:
在NAS上通过Docker部署Bilisync服务,再通过Jellyfin之类的影音服务,来实现视频展示和播放。
如果你了解Docker技术基础,那么,这套解决方案并不复杂,只需要以下三个步骤:
- 部署Bilisync服务
- 修改Bilisync配置文件
- 将Bilisync视频文件夹添加到影音服务
以下为详细步骤——
03 详细步骤
1. 部署Bilisync服务
Bilisync,是一个免费且开源的服务,且功能便是自动下载B站收藏夹,或视频合集到本地。
你可以在群晖之类的服务器上,通过Docker技术,来进行部署。
附上具体的代码(需修改文件夹路径),在SSH工具中执行即可:
sudo docker run -d \
--name bilisync \
-v /volume1/docker/bilisync/config:/app/.config/bili-sync \
-v /volume2/video/Bili:/media \
amtoaer/bili-sync-rs:latest
2. 修改Bilisync配置文件
Bilisync只是一个基础服务,仅实现B站视频的自动下载,跟很多Docker服务不同的是,它并没有提供Web管理界面。
如果你执行了上面的Docker代码,那你一定会发现,所运行的Docker容器,在初次运行之后,马上就自动停止了,并且,再尝试运行,也会马上停止。
这是因为,我们还需要修改Bilisync的配置文件,它位于你服务器上存放配置文件的目录下——如果你使用上面的代码运行,那么,配置文件的存储路径便是 /volume1/docker/bilisync/config
文件夹,配置文件名为 config.toml
。
打开配置文件,它长这样:
看上去很复杂,但其实并非每一项都需要填写。必填项目如下:
credential
下的每一项都要填写,这是你的登录信息,只有登录后,才能用你的登录数据,去下载视频。- 可选填写
favorite_list
和collection_list
,但必须填写其中一项,这是你要实现自动下载的指定收藏夹或视频集合。
其中,credential
的填写,需要你登录B站,如果你使用Edge浏览器,可以按下 F12
快捷键,打开开发者工具,切换到“应用程序”选项卡,并点击其中的“Cookie”,如下图:
然后,依次找到以下项目的值,并填入配置文件中:
sessdata
.bili_jct
.buvid3
.dedeuserid
.ac_time_value
.
这些值都能够在开发者工具中找到。
然后,获取B站收藏夹ID,并填写到配置文件的 favorite_list
节点中。
你需要在B站打开需要自动下载的收藏夹,然后看一下浏览器网址,比如我的收藏夹:
网址中画红线的地方,即为收藏夹ID。
把它连同保存路径,填写到配置文件中,如下图:
OK,配置文件修改大功告成!再重新运行容器,就会自动下载收藏夹的视频了。
更多配置文件的参数,可以参考Bilisync的官方文档:https://bili-sync.allwens.work/quick-start
。
3. 将视频添加到影音服务
现在,虽然Bilisync已经成功运行,能够实现收藏夹视频自动下载了。但是,Bilisync并未提供Web界面,所以,你只能在服务器上打开文件夹查看……
因此,明智的方法是:把视频下载文件夹,添加到你服务器上的影音服务。
常见的影音服务,诸如Emby、Plex、Jellyfin,这里以我自己所使用的、免费开源的Jellyfin为例。
我们需要在Jellyfin中新建一个媒体库,并指定文件夹为B站视频文件夹:
因为Bilisync在下载视频时,会自动下载视频封面、简介等信息,所以最好关闭视频信息的自动搜刮,取消前面的对勾即可:
完成!
04 开始使用
配置完成之后,你的服务会按照以下流程运行:
- 按照你设定的刷新时长(默认1200秒),自动下载你收藏在B站收藏夹的视频。
- 当检测到有新视频,Jellyfin会根据展示出视频的封面,以及简介等信息。
整个Jellyfin媒体库如下图:
如果是系列视频,连分集都给自动做好了:
在播放视频时,甚至能够加载自动下载的ass弹幕(当然也是可以关闭的):
ps:默认情况下,中文弹幕会显示为乱码,需要在Jellyfin文件夹中上传并配置字体才能正常显示。
终于不用担心收藏的视频被删除了!