BiliSync 是一款专门为 NAS 环境设计的哔哩哔哩同步工具,能够自动下载用户在B站的收藏内容。其输出格式完美适配 Emby、Jellyfin 等主流媒体服务器,下载完成后可直接添加至媒体库并自动识别。
功能概览与开发规划
- 使用用户提交的凭据完成认证,支持凭据过期自动刷新
- 支持用户收藏夹、视频列表及合集的批量下载
- 自动选取用户设定范围内的最佳音视频流,借助 FFmpeg 完成下载后合并
- 基于 Tokio 和 Reqwest 实现异步并发,支持视频与分页内容的高效抓取
- 输出文件命名兼容媒体服务器规范,便于快速导入媒体库
- 单次下载失败后自动加入重试队列,多次失败后自动丢弃任务
- 通过本地数据库记录媒体信息,避免对同一视频发起重复请求
- 完整日志输出,并在请求受限时自动暂停,等待下一执行周期
- 提供多平台二进制可执行文件,并为 Linux 用户提供开箱即用的 Docker 镜像
- 支持自动扫描并下载“稍后再看”列表中的视频
- 支持自动订阅并下载指定 UP 主的全部投稿内容
- 可灵活设置任务并行数量与接口请求频率上限
- 支持大文件分块并行下载,提升传输效率
- 提供 Web UI 界面,用于配置、查看及管理视频与订阅源
准备工作:获取B站身份认证参数
部署前需提前准备好以下五个B站身份校验参数:SESSDATA、bili_jct、buvid3、dedeuserid 和 ac_time_value。
首先在浏览器无痕模式下访问 bilibili 网站首页:
登录个人账户后按下 F12 键打开开发者工具:
在控制台中输入以下指令以获取 ac_time_value 的值:
window.localStorage.ac_time_value
切换至“应用程序”标签页,点击“Cookie”选项:
从中查找并记录 bili_jct、buvid3、dedeuserid 及 SESSDATA 的值:
安装步骤:通过Docker Compose快速部署
使用以下 Docker Compose 配置进行部署:
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/docker/bili-sync/bilibili:/bilibili
restart: unless-stopped
参数说明:
- user:指定容器内运行的用户与组标识(可自定义,默认为 root)
- /app/.config/bili-sync:用于存储程序配置文件的目录
- /app/.config/bili-sync/upper_face(可选):用于存放UP主头像缓存
- /bilibili:用于存放下载视频内容的目标目录
提示:首次启动可能需要一些初始化时间,出现 CONFIG 相关报错属正常现象。启动后请查看日志输出,其中生成的 token 等信息为后续必需。
当日志提示管理页面开始运行,即代表启动成功:
使用指南:配置与订阅管理
在浏览器中访问 http://NAS的IP:12345
即可打开管理界面:
初始登录后右下角可能出现提示警告,可暂时忽略:
进入“设置”页,输入从日志中获取的 Token 完成认证:
认证成功后界面将显示更多信息。默认检测周期为20分钟,一般无需修改:
切换至“B站认证”标签,填入之前获取的五个参数:
点击“我创建的收藏夹”可订阅默认收藏夹:
保存路径应选为之前映射的 /bilibili 目录,子目录结构可自定义(订阅数量较少时可简化路径层级):
建议在B站中专门创建一个新收藏夹用于订阅下载:
支持订阅已关注的视频合集:
也可订阅指定UP主的全部投稿视频:
在“视频源”页面可查看所有订阅状态(“稍后再看”功能默认关闭,可按需开启):
如出现“database is locked”提示,通常为目录权限问题:
通过日志可查看实时任务状态,系统会按设定周期自动下载订阅内容:
“视频”页面展示所有已下载完成的内容:
“仪表盘”提供整体运行状态概览:
在映射的目录中可查看已下载的视频文件:
视频均附带完整的元数据信息:
将目录添加为媒体库后,所有支持 nfo 格式的媒体服务器均可识别(内容类型需设为“电影”):
飞牛OS等系统的竖版海报布局可能不太适配:
Emby 等系统的横版海报展示效果更佳:
总结与评价
如果您是哔哩哔哩的频繁用户,BiliSync 绝对值得部署。一旦完成订阅设置,即可实现定时自动扫描与下载,有效避免因视频下架导致无法观看的问题。
当前版本已提供完整的Web UI界面,操作便捷性大幅提升。唯一稍显繁琐的是B站身份参数的获取过程,尽管Cookie有效期较长,但仍需一定操作成本。
综合推荐指数:⭐⭐⭐⭐⭐(极力推荐)
使用体验评级:⭐⭐⭐⭐(基本满足需求)
部署难度指数:⭐⭐(较为简单)