NAS佬还是对B站下手了!用bili-sync将合集与收藏夹视频同步到本地保存
NAS佬还是对B站下手了!用bili-sync将合集与收藏夹视频同步到本地保存
JonyLee某天刷B站突然想起一个看过并收藏的视频,当我点开收藏夹想再看一遍的时候,发现有不少视频变这样了。
小电视哭丧着脸,我也是一脸懵。这好好的视频说下架就下了吗?
看来数字内容还是攥在自己手里才方便,平台里网盘里的东西说没就没了。
正好最近关注到一个开源哔哩哔哩工具项目 【bili-sync】,可以定时自动化把B站收藏的合集和收藏夹内容同步到本地。
这不巧了嘛咱有NAS呀,要空间有空间要挂机有挂机,只需要Docker部署一下,就再也不用看小电视两眼汪汪了。
说干就干,查阅项目文档,5分钟搞定部署成功,体验了一下还真是方便。
先来介绍一下这款神器。
bili-sync 是什么?
bili-sync 是一款专为 NAS 用户编写的哔哩哔哩同步工具。
它的基本的工作原理是使用用户填写的凭据定期扫描视频合集、收藏夹等,获取到本地未下载过的内容并保存到本地,维持本地视频库与哔哩哔哩网站的同步。
下载的内容包括视频、封面、弹幕、标签与简介信息等,这些文件整体保持与 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 | SESSDATA: |
前面四个参数为Cookies参数,以Edge浏览器为例,登录B站后,按Ctrl+Shift+I
或者F12
打开开发者工具,在上方点击【应用程序】选项卡,左侧点【Cookie】展开,点击https://www.bilibili.com
标签,复制对应的参数值保存。
最后一个ac_time_value
相对特殊,仅用于刷新 Cookies,打开开发者工具,进入控制台,输入window.localStorage.ac_time_value
即可获取值。
以上参数详细说明及不同浏览器获取教程,详见bilibili-api获取 Credential 类所需信息
Docker安装
推荐使用Compose安装,文档给出的Docker Compose文件注释详尽,大家可以根据自己机器情况修改:
1 | services: |
我是使用飞牛Docker Compose安装,如果你NAS也是飞牛系统,可以照抄。
在文件管理里,飞牛存储空间创建以下文件夹路径:Docker/compose/bili-sync
;/Media/bili-sync
;右键->【详细信息】->【复制原始路径】。
打开飞牛Docker,点【Compose】->【新增项目】,项目名称随意,路径粘贴刚才复制的compose完整路径,来源勾选【创建docker-compose.yml】,在下方输入框填入compose配置。
我的飞牛Compose 文件如下,注意volumes
下面的挂载目录,即:
前面的文件夹路径,填入上一步创建的/Media/bili-sync
文件夹完整路径,根据自己的设备存储空间不同,需要自行修改:
1 | services: |
PC直接运行
没有NAS的小伙伴,在PC上也可以运行,在bili-sync程序发布页选择最新版本中对应机器架构的压缩包,解压后会获取一个名为 bili-sync-rs
的可执行文件,直接双击执行就行。
解压后双击运行,会打开cmd窗口,并生成第一次运行日志,注意保存里面的auth_token
值,该token大有用处且只在第一次显示,务必妥善保存。
另外需要注意的是,如果你使用PC二进制可执行文件方式运行,需要安装 FFmpeg,并正确配置全局环境变量,任意位置可直接通过
ffmpeg
命令访问。具体方法可自行AI搜索解决这里就不展开了。
如何使用
Docker容器或者直接PC运行起来之后,浏览器输入http://你部署服务的机器ip:12345
进入WebUI界面。
前端认证状态需要填入Token,即上面提到的运行日志里的auth_token,采用Docker方式运行的,打开Docker容器的运行日志查找。
填入该token之后,会出现更多配置信息,点开【B站认证】,填入前面准备好的五个cookies参数信息,点下面的额保存设置。其他的【基本设置】,【视频质量】,【弹幕渲染】,【高级设置】这些可以保持默认,或者根据自己需要调整。
用户信息输入完成之后即可连接到自己的B站账号收藏夹和合集,以及关注的up主信息,并以简洁的卡片形式显示。
点击想要同步的收藏夹或者合集卡片下面的【订阅】按钮,注意本地保存路径,要填写容器内的路径,例如前面compose文件里的挂载路径:
后面的/bilibili/
文件夹下面,子文件夹名可以自己写。
我第一次没搞清楚,填写挂载的飞牛目录完整路径,导致一直下载不成功,大家一定注意此处。
填错了也没关系,创建好之后,也可以在【内容管理】->【视频源】里面修改路径,另外还可以手动添加。
完成之后程序就开始查询下载了,第一次配置玩如果没有触发任务,别慌,等一段时间在间隔时间之后会再次触发查询,或者等不及直接重启容器,也会立即触发查询下载。
容器跑起来了,下载速度还不错的,下载能拉取到的视频质量据说跟自己的会员等级有关系。
执行日志显示正常扫描下载,说明配置没问题。
半小时不到,几百个视频下载完成。
每个视频以单独的文件夹存储,包含Jellyfin等视频服务可识别的封面,视频信息等等,飞牛影视也可以直接识别到。
仪表板监控首页,可以显示任务情况,以及系统资源使用情况。只是好像有个Bug,存储空间显示不准确,显示我有12T多的空间,实际并没有😂
最后,在飞牛影视里添加媒体库,将下载文件夹/media/bili-sync
添加到媒体库中,注意内容类型选择【其他视频】,因为已经下载好视频信息了,不需要飞牛刮削,即使刮削,B站视频飞牛也刮削不到。
添加好之后,就可以在飞牛影视中观看下载的视频了,OK,再也不用担心视频失效了!