沙牛提示

阅读本文需要4分钟,分享折腾党必备的自动下载B站视频的方法!

如果你喜欢本文,就分享给你的小伙伴!

01 扎心现实引发的新需求

作为忠实B站用户,无论是学习还是娱乐,B站都是我首选的视频平台。跟很多B友一样,对于很多有价值的视频,我都会放到B站的收藏夹。

但时常,会遇到视频被删除这样扎心的事情——

所以,拥有一群群晖NAS的我,最近萌生了一个想法:

能否实现将B站收藏夹里的视频,自动下载到服务器?

搜索了一番之后,嘿,还真有!

02 解决方案

并且,解决方案还不止一套,最终测试下来,认为这是目前最优的解决方案:

在NAS上通过Docker部署Bilisync服务,再通过Jellyfin之类的影音服务,来实现视频展示和播放。

如果你了解Docker技术基础,那么,这套解决方案并不复杂,只需要以下三个步骤:

  1. 部署Bilisync服务
  2. 修改Bilisync配置文件
  3. 将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

打开配置文件,它长这样:

看上去很复杂,但其实并非每一项都需要填写。必填项目如下:

  1. credential 下的每一项都要填写,这是你的登录信息,只有登录后,才能用你的登录数据,去下载视频。
  2. 可选填写 favorite_listcollection_list,但必须填写其中一项,这是你要实现自动下载的指定收藏夹或视频集合。

其中,credential 的填写,需要你登录B站,如果你使用Edge浏览器,可以按下 F12 快捷键,打开开发者工具,切换到“应用程序”选项卡,并点击其中的“Cookie”,如下图:

然后,依次找到以下项目的值,并填入配置文件中:

  1. sessdata.
  2. bili_jct.
  3. buvid3.
  4. dedeuserid.
  5. 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 开始使用

配置完成之后,你的服务会按照以下流程运行:

  1. 按照你设定的刷新时长(默认1200秒),自动下载你收藏在B站收藏夹的视频。
  2. 当检测到有新视频,Jellyfin会根据展示出视频的封面,以及简介等信息。

整个Jellyfin媒体库如下图:

如果是系列视频,连分集都给自动做好了:

在播放视频时,甚至能够加载自动下载的ass弹幕(当然也是可以关闭的):

ps:默认情况下,中文弹幕会显示为乱码,需要在Jellyfin文件夹中上传并配置字体才能正常显示。

终于不用担心收藏的视频被删除了!