使用 bili-sync 保存 B 站视频

目标 & 背景

有时候 B 站的视频,收藏后会被下架,或者作者自己删除了,等后面想回去接着看,收藏夹中只能看到该视频已失效,也完全记不得这个视频是啥

再加上家里的电视都是使用 Apple TV,想要给家人看非常麻烦,直到前段时间看到了 bili-sync 这个项目,该项目基于 bilibili-api 使用 python 进行开发

本篇文章基于 bili-sync 1.1.8 版本,如有不同,请参考官方文档

目录层级

首先按照下方层级创建对应的文件及文件夹,注意 config.json 文件是需要手动创建的

config.json 中填入如下内容

这里的 interval 我设置的是 5,也就是 5 分钟刷新一次 B 站收藏夹

B 站基础信息获取

bilibili-api 文档 中讲的比较详细,但是在我实际使用时,经常会碰到 bili-sync 自己挂了的情况,如果你也碰到类似情况,建议参考下方流程

收藏夹路径映射

进入你 B 站的收藏页面,比如我这里的 学习 收藏夹,点击右边的学习即可进入该收藏夹的 web 页面

如果你的收藏夹是空的,是点不进去的,至少需要一个收藏

image

此时查看浏览器的地址,在 ml 后面的内容就代表了你当前收藏夹的 id

接着配置 config.jsonpath_mapper 的具体内容,该属性是一个 map,如果你有多个收藏夹,多加几行即可,如上文中我的学习收藏夹,将 id 填入,后面对应的是 bili-sync 在容器中的映射位置,其中 /Videos/Bilibilis 是固定的,后面的 学习 就是你自己要起的名字

docker 配置

这里需要映射三组路径,configdata 就是 目录层级 中需要创建的内容,而这里的 /volume1/视频/link/Bilibili 代表视频文件到底存放在哪里

Emby 配置

bili-sync 在整理元数据时,使用的是 Emby 的标准,因此我之前搭建的 Plex 就无法正确识别元数据。所以为了可以正确运行,还需要在群晖上安装 Emby,这个过程比较简单,这里就不介绍了。在 Emby 添加媒体库时,我这里只打开了下面三个开关,其他的所有功能全部关闭

image

最后

日常我使用 infuse 作为我所有设备的终端播放,得益于 infuse 支持的库比较全,我可以通过增加 Emby 服务,将现有的 Plex 数据合并到一起,平日需要看 B 站的视频,直接在 infuse 选择即可,省去两个应用切来切去的麻烦

整体 bili-sync 在我这里已经平稳运行了挺长时间,几乎无感使用,尤其是新版本作者增加了分 P 下载,整理为集合的功能,非常舒服