bili-sync-rs介绍
bili-sync 是一款专为 NAS 用户编写的哔哩哔哩同步工具。
它的基本的工作原理是使用用户填写的凭据定期扫描视频合集、收藏夹等,获取到本地未下载过的内容并保存到本地,维持本地视频库与哔哩哔哩网站的同步。
下载的内容包括视频、封面、弹幕、标签与简介信息等,这些文件整体保持与 Emby、Jellyfin 等媒体服务器软件兼容的文件布局,使得目的文件夹可以直接被作为媒体库添加到这些软件中,无需干预自动识别。
https://github.com/amtoaer/bili-sync
部署流程
安装Docker镜像
首先打开飞牛OS自带的Docker,在Docker的镜像仓库中搜索amtoaer/bili-syns-rs并下载。
配置容器
下载完成之后在左侧本地镜像中运行bili-syns-rs,在部署过程中的高级设置里,我们需要为容器设置内容下载文件夹。
这里的存储位置中除了自带的配置文件夹外我们还需要额外设置用于存储收藏夹的目录/media和头像/people文件夹,这里需要注意的是/people文件夹的映射路径需设置成jellyfin的头像元数据存储目录否则媒体库的视频无法正确加载UP主头像,jellyfin的演员头像路径通常是
/vol1/@appcenter/Jellyfin/data/metadata/People
获取B站用户数据
安装完容器后第一次运行会报错。不用担心,此时我们打开容器/app/.config/bili-sync映射到存储空间的文件夹会看到里面生成了一个config.toml文件。其中的内容大概如下:
auth_token = "xxxxxxxx"
bind_address = "0.0.0.0:12345"
video_name = "{{title}}"
page_name = "{{bvid}}"
interval = 1200
upper_path = "/people"
nfo_time_type = "favtime"
time_format = "%Y-%m-%d"
cdn_sorting = false
[credential]
sessdata = ""
bili_jct = ""
buvid3 = ""
dedeuserid = ""
ac_time_value = ""
[filter_option]
video_max_quality = "Quality8k"
video_min_quality = "Quality360p"
audio_max_quality = "QualityHiRES"
audio_min_quality = "Quality64k"
codecs = [
"AV1",
"HEV",
"AVC",
]
no_dolby_video = false
no_dolby_audio = false
no_hdr = false
no_hires = false
[danmaku_option]
duration = 15.0
font = "黑体"
font_size = 25
width_ratio = 1.2
horizontal_gap = 20.0
lane_size = 32
float_percentage = 0.5
bottom_percentage = 0.3
opacity = 76
bold = true
outline = 0.8
time_offset = 0.0
[favorite_list]
[collection_list]
[submission_list]
[watch_later]
enabled = false
path = ""
[concurrent_limit]
video = 3
page = 2
[concurrent_limit.rate_limit]
limit = 4
duration = 250
这其中credential部分是需要我们自己在浏览器中去获取的部分。我们首先需要在浏览器中登入自己的B站账号,随后按F12打开开发者工具并切换到应用程序选项卡中选中Cookie组,我们刷新一下可以看到其中包含很多参数,接下来我们只需找出对应参数的值粘贴到配置文件中即可。
前四个参数的值都可在Cookie组中找出而ac_time_value的值则需要切换到控制台选项卡中输入“window.localStorage.ac_time_value”来获取,如果返回的结果为undefined则重新登录账号再试或者切换到无痕模式下登入账号打开一个视频后再输入上面的代码后可返回正确的字符串。
修改配置文件
在获取参数后就可以获取到账号的数据了,接下来则是添加需要下载的收藏夹。在[favorite_list]下按照xxxxx = "/media/xxxx"的格式填写,等号前面填写的是收藏夹的ID,后面填写的是media文件夹下的子文件夹。收藏夹ID的获取方法:点入个人收藏夹页面在浏览器显示的网址后面找到fid后面的一串数字,这个即为该收藏夹的ID。
以下表格是配置文件中的一些重要参数及其说明
使用jellyfin添加媒体库
安装并添加访问文件夹
在飞牛OS的应用中心中安装Jellyfin服务,随后在应用设置里添加允许访问的文件夹。此文件夹需为docker中/media映射在磁盘的文件夹。
添加媒体库
在首次注册后点击设置->控制台->切换到媒体库选项卡中,随后点击页面中的添加媒体库。
内容类型必须设置为混合电影和电视剧,否则无法正确的显示元数据的内容。
选择路径时我们可以返回飞牛云中jellyfin的应用设置复制文件夹的原始路径随后粘贴回jellyfin的路径中点旁边的搜索显示其子文件夹,随后选择需要添加的文件夹即可
因为我们下载B站视频时已经自带了文件的元数据,所以我们需要将在线刮削的选项全部取消。确保以下及类似选项已经取消勾选,否则会影响媒体库的显示内容。
媒体资料储存方式下的Nfo需要勾选。
随后就可静等扫描媒体库即可。
弹幕加载无中文解决办法
控制带播放选项卡下勾选以下内容
总结
该项目的部署到此已经结束bili-bync-rs相比bili-bync配置文件更加清晰,易用性和实用性也有了很大的提升。这些文件整体保持与 Emby、Jellyfin 等媒体服务器软件兼容的文件布局,使得目的文件夹可以直接被作为媒体库添加到这些软件中,无需干预自动识别。