NAS佬还是对B站下手了!用bili-sync将合集与收藏夹视频同步到本地保存

某天刷B站突然想起一个看过并收藏的视频,当我点开收藏夹想再看一遍的时候,发现有不少视频变这样了。

QQ_1757165436079 拷贝.png

小电视哭丧着脸,我也是一脸懵。这好好的视频说下架就下了吗?

看来数字内容还是攥在自己手里才方便,平台里网盘里的东西说没就没了。

正好最近关注到一个开源哔哩哔哩工具项目 【bili-sync】,可以定时自动化把B站收藏的合集和收藏夹内容同步到本地。

这不巧了嘛咱有NAS呀,要空间有空间要挂机有挂机,只需要Docker部署一下,就再也不用看小电视两眼汪汪了。

说干就干,查阅项目文档,5分钟搞定部署成功,体验了一下还真是方便。


先来介绍一下这款神器。

bili-sync 是什么?

bili-sync 是一款专为 NAS 用户编写的哔哩哔哩同步工具。

微信图片_2025-09-07_001444_290.png

它的基本的工作原理是使用用户填写的凭据定期扫描视频合集、收藏夹等,获取到本地未下载过的内容并保存到本地,维持本地视频库与哔哩哔哩网站的同步。

下载的内容包括视频、封面、弹幕、标签与简介信息等,这些文件整体保持与 Emby、Jellyfin 等媒体服务器软件兼容的文件布局,使得目的文件夹可以直接被作为媒体库添加到这些软件中,无需干预自动识别。

如何安装bili-sync?

作者为各个平台提供了预构建的二进制文件,并且打包了 Linux/amd64 与 Linux/arm64 两个平台的 Docker 镜像。用户可以自行选择使用哪种方式运行。

也就是说你不仅可以在支持Docker的NAS服务器上运行。同样也可以在PC上通过双击打开可执行文件直接运行。最终都是通过启动一个WebUI可视化界面,进行配置和所有操作。

区别就是NAS服务器一般是24小时不关机的,更适合定时同步更新,而PC一旦关机,就没法离线执行查询下载任务了。如果你没有NAS又想尝尝鲜,那也可以用PC试试,二进制文件支持Linux系统、Mac和Windows系统。

安装前准备

bili-sync是通过浏览器登录B站,获取用户cookies信息,根据填入的用户凭据,用bilibili的API接口连接B站,获取信息。

所以需要先用浏览器登录并找到以下五个参数信息保存备用:

1
2
3
4
5
SESSDATA:
bili_jct:
buvid3:
DedeUserID:
ac_time_value:

前面四个参数为Cookies参数,以Edge浏览器为例,登录B站后,按Ctrl+Shift+I或者F12 打开开发者工具,在上方点击【应用程序】选项卡,左侧点【Cookie】展开,点击https://www.bilibili.com标签,复制对应的参数值保存。

QQ_1757170432369 拷贝.png

最后一个ac_time_value 相对特殊,仅用于刷新 Cookies,打开开发者工具,进入控制台,输入window.localStorage.ac_time_value即可获取值。

QQ_1757171211258 拷贝.png

以上参数详细说明及不同浏览器获取教程,详见bilibili-api获取 Credential 类所需信息

Docker安装

推荐使用Compose安装,文档给出的Docker Compose文件注释详尽,大家可以根据自己机器情况修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
services:
bili-sync-rs:
# 不推荐使用 latest 这种模糊的 tag,最好直接指明版本号
image: amtoaer/bili-sync-rs:latest
restart: unless-stopped
network_mode: bridge
# 该选项请仅在日志终端支持彩色输出时启用,否则日志中可能会出现乱码
tty: true
# 非必需设置项,推荐设置为宿主机用户的 uid 及 gid (`$uid:$gid`)
# 可以执行 `id ${user}` 获取 `user` 用户的 uid 及 gid
# 程序下载的所有文件权限将与此处的用户保持一致,不设置默认为 Root
user: 1000:1000
hostname: bili-sync-rs
container_name: bili-sync-rs
# 程序默认绑定 0.0.0.0:12345 运行 http 服务
# 可同时修改 compose 文件与 config.toml 变更服务运行的端口
ports:
- 12345:12345
volumes:
- ${你希望存储程序配置的目录}:/app/.config/bili-sync
# metadata/people 正确挂载才能在 Emby 或 Jellyfin 中显示 UP 主头像
# 右边的目标目录不固定,只需要确保目标目录与 bili-sync 中填写的“UP 主头像保存路径”保持一致即可
- ${Emby Jellyfin 配置下的 metadata/people 目录}:/app/.config/bili-sync/upper_face
# 接下来可以挂载一系列用于保存视频的目录,接着在 bili-sync 中配置将视频下载到这些目录即可
# 例如:
# - /home/amtoaer/HDDs/Videos/Bilibilis/:/home/amtoaer/HDDs/Videos/Bilibilis/
# 如果你使用的是群晖系统,请移除最后的 logging 配置,否则会导致日志不显示
logging:
driver: "local"

我是使用飞牛Docker Compose安装,如果你NAS也是飞牛系统,可以照抄。

在文件管理里,飞牛存储空间创建以下文件夹路径:Docker/compose/bili-sync/Media/bili-sync;右键->【详细信息】->【复制原始路径】。

微信图片_2025-09-07_094451_599.png

打开飞牛Docker,点【Compose】->【新增项目】,项目名称随意,路径粘贴刚才复制的compose完整路径,来源勾选【创建docker-compose.yml】,在下方输入框填入compose配置。
QQ_1757171964800.png

我的飞牛Compose 文件如下,注意volumes下面的挂载目录,即: 前面的文件夹路径,填入上一步创建的/Media/bili-sync 文件夹完整路径,根据自己的设备存储空间不同,需要自行修改:

1
2
3
4
5
6
7
8
9
10
11
12
services:
bili-sync:
image: amtoaer/bili-sync-rs:latest
container_name: bili-sync
user: 0:0
ports:
- 12345:12345
volumes:
- /vol1/1000/Docker/bili-sync/config:/app/.config/bili-sync
- /vol1/1000/Media/bili-sync:/bilibili
- /vol1/1000/Media/bili-sync/upper_face:/app/.config/bili-sync/upper_face
restart: unless-stopped

PC直接运行

没有NAS的小伙伴,在PC上也可以运行,在bili-sync程序发布页选择最新版本中对应机器架构的压缩包,解压后会获取一个名为 bili-sync-rs 的可执行文件,直接双击执行就行。

QQ_1757173926372 拷贝.png

解压后双击运行,会打开cmd窗口,并生成第一次运行日志,注意保存里面的auth_token 值,该token大有用处且只在第一次显示,务必妥善保存。

微信图片_2025-09-06_233218_426.png

另外需要注意的是,如果你使用PC二进制可执行文件方式运行,需要安装 FFmpeg,并正确配置全局环境变量,任意位置可直接通过 ffmpeg 命令访问。具体方法可自行AI搜索解决这里就不展开了。

如何使用

Docker容器或者直接PC运行起来之后,浏览器输入http://你部署服务的机器ip:12345 进入WebUI界面。

前端认证状态需要填入Token,即上面提到的运行日志里的auth_token,采用Docker方式运行的,打开Docker容器的运行日志查找。

微信图片_2025-09-06_233339_122.png

填入该token之后,会出现更多配置信息,点开【B站认证】,填入前面准备好的五个cookies参数信息,点下面的额保存设置。其他的【基本设置】,【视频质量】,【弹幕渲染】,【高级设置】这些可以保持默认,或者根据自己需要调整。

微信图片_2025-09-06_233436_468.png

用户信息输入完成之后即可连接到自己的B站账号收藏夹和合集,以及关注的up主信息,并以简洁的卡片形式显示。

微信图片_2025-09-06_233741_343.png

点击想要同步的收藏夹或者合集卡片下面的【订阅】按钮,注意本地保存路径,要填写容器内的路径,例如前面compose文件里的挂载路径: 后面的/bilibili/文件夹下面,子文件夹名可以自己写。

我第一次没搞清楚,填写挂载的飞牛目录完整路径,导致一直下载不成功,大家一定注意此处。

微信图片_2025-09-06_234148_001.png

填错了也没关系,创建好之后,也可以在【内容管理】->【视频源】里面修改路径,另外还可以手动添加。

微信图片_2025-09-06_234316_510.png

完成之后程序就开始查询下载了,第一次配置玩如果没有触发任务,别慌,等一段时间在间隔时间之后会再次触发查询,或者等不及直接重启容器,也会立即触发查询下载。

容器跑起来了,下载速度还不错的,下载能拉取到的视频质量据说跟自己的会员等级有关系。

微信图片_2025-09-05_224802_371.png

执行日志显示正常扫描下载,说明配置没问题。

QQ_1757166933546.png

半小时不到,几百个视频下载完成。

QQ_1757166824964.png

每个视频以单独的文件夹存储,包含Jellyfin等视频服务可识别的封面,视频信息等等,飞牛影视也可以直接识别到。

微信图片_2025-09-07_001032_543.png

仪表板监控首页,可以显示任务情况,以及系统资源使用情况。只是好像有个Bug,存储空间显示不准确,显示我有12T多的空间,实际并没有😂

QQ_1757166741764.png

最后,在飞牛影视里添加媒体库,将下载文件夹/media/bili-sync 添加到媒体库中,注意内容类型选择【其他视频】,因为已经下载好视频信息了,不需要飞牛刮削,即使刮削,B站视频飞牛也刮削不到。

微信图片_2025-09-07_000851_862.png

添加好之后,就可以在飞牛影视中观看下载的视频了,OK,再也不用担心视频失效了!

微信图片_2025-09-07_000357_402.png