NAS 也能玩转B站!Bili-Sync 打造自动化B站资源同步下载器
🧾 详细介绍
bili-sync 是一款专为 NAS 用户编写的哔哩哔哩同步工具。基本的工作原理是使用用户填写的凭据定期扫描视频合集、收藏夹等,获取到本地未下载过的内容并保存到本地,维持本地视频库与哔哩哔哩网站的同步。下载的内容包括视频、封面、弹幕、标签与简介信息等,这些文件整体保持与 Emby、Jellyfin 等媒体服务器软件兼容的文件布局,使得目的文件夹可以直接被作为媒体库添加到这些软件中,无需干预自动识别。
✨ 核心亮点
- 🦀 高性能实现:基于 Rust + Tokio 编写,运行高效、资源占用低,适合长期部署在 NAS 或服务器上
- 📥 自动同步下载:定期扫描用户的收藏夹和视频合集,自动下载本地未保存的新内容
- 🧩 丰富的下载内容:支持下载视频文件、封面图、弹幕、标签、简介,甚至 CC 字幕(可转为 SRT 格式)
- 🖥️ Web 管理界面:内置 WebUI,可远程查看任务状态、管理下载、重置失败任务等
- 🧠 媒体服务器友好:下载结构兼容 Emby、Jellyfin 等媒体库,支持自动识别与刮削
- 🔗 原视频链接保留:视频简介中自动附带原始 B 站链接,便于回访与分享
- 🧰 优雅退出机制:支持 SIGINT/SIGTERM 信号处理,适合自动化部署场景
- 🧪 错误处理优化:网络异常不计入重试,日志信息更丰富,便于排查问题
- 🐳 Docker 支持完善:提供官方镜像,支持 Linux/amd64 与 arm64 架构,部署简单
🐳部署指南
以下是使用 Docker Compose 部署 Bili-Sync 的详细步骤,其它部署方式请参考 Bili-Sync说明
🎯 Docker Compose
docker-compose.yml
文件
services:
bili-sync-rs:
image: amtoaer/bili-sync-rs:latest
restart: unless-stopped
network_mode: bridge
tty: true
user: 1000:1001
hostname: bili-sync-rs
container_name: bili-sync-rs
ports:
- 12345:12345
volumes:
- ./config:/app/.config/bili-sync
- ./BilibiliVideos:/home/amtoaer/HDDs/Videos/Bilibilis/
# 如果你使用的是群晖系统,请移除最后的 logging 配置,否则会导致日志不显示
logging:
driver: "local"
- 在飞牛主页面找到 Docker 打开后,切换菜单 Compose -> 新增项目
- 创建项目页面根据实际情况定义 项目名称、选择 路径,并把上面 docker-compose.yml 文件内容复制填入 来源 文本框内容。按需修改检查无误后点击 确定 按钮进行部署
- 获取 认证Token
获取 sessdata、bili_jct、buvid3 和 dedeuserid
此教程以谷歌浏览器(Chrome)
为例,其它浏览器获取方式请参考凭据获取流程获取- 按 F12 打开开发者工具
- 在工具窗口上方选择
应用程序
选项卡
- 在左侧找到【存储/Cookies】,选中任意哔哩哔哩域名,在右侧即可找到对应值,复制出来备用。
- 获取 ac_time_value
在工具窗口上方选择
控制台
选项卡,执行下面代码后按Enter
获取值。window.localStorage.ac_time_value
执行后显示undefined
,就退出账号再执行命令获取。之后再获取sessdata、bili_jct、buvid3 和 dedeuserid。
📖使用
- 浏览器访问
http://nas-ip:12345
- 打开设置页面
- 进行必要配置(B站认证)
此处填写上面获取到的sessdata、bili_jct、buvid3 、 dedeuserid和ac_time_value
- 添加视频源订阅
用户在正确填写“B 站认证”后可以在“快捷订阅”部分查看自己创建的收藏夹、关注的合集与 UP 主一键订阅,也可以在“视频源”页手动添加并管理。
对于手动添加的视频源,可参考如下页面获取所需的参数: - 收藏夹
- 合集 / 列表
- 用户投稿
添加完订阅就无需进行任何干预了,视频下载任务会在后台每隔特定时间(由配置中的“同步间隔”决定)自动运行一次,刷新并下载启用的视频源!
⚠️ 总结
bili-sync是一款哔哩哔哩内容同步助手,可通过用户提供的登录信息,定期扫描视频合集与个人收藏,自动下载本地尚未保存的新内容。下载内容包括视频文件、封面图、弹幕、标签信息及视频简介等,文件结构与 Emby、Jellyfin 等主流媒体服务器高度兼容。也就是说,下载后的内容可直接集成至媒体服务器,无需额外配置即可实现自动识别与智能管理。
评论区