[!info] Bili-Sync 简介
bili-sync 是一款专为 NAS 用户编写的哔哩哔哩同步工具。

它的基本的工作原理是使用用户填写的凭据定期扫描视频合集、收藏夹等,获取到本地未下载过的内容并保存到本地,维持本地视频库与哔哩哔哩网站的同步。

下载的内容包括视频、封面、弹幕、标签与简介信息等,这些文件整体保持与 Emby、Jellyfin 等媒体服务器软件兼容的文件布局,使得目的文件夹可以直接被作为媒体库添加到这些软件中,无需干预自动识别。

Bili-Sync Docker 部署

Step 1 : 创建相关目录

创建一个文件夹,用于保存配置文件和 docker-compose.yml 文件。在改文件夹下创建 config 子文件夹用于存放配置文件,记住该文件夹位置,用于填写下文中 ${你希望存储程序配置的目录}

[!cite]+ 例如我的目录:

Docker/
└─ BiliSync/
   └─ config/

再创建一个文件夹,用于保存视频文件。同时记住改文件夹位置,用于填写下文中 ${你希望存储视频的目录}

[!cite]+ 例如我的目录:

Media/
└─ BiliBili/

Step 2 : 创建 Docker Compose

配置 Docker Compose 文件模板:

services:
  bili-sync-rs:
    image: amtoaer/bili-sync-rs:latest
    restart: unless-stopped
    network_mode: bridge
    # 该选项请仅在日志终端支持彩色输出时启用,否则日志中可能会出现乱码
    tty: true
    # 非必需设置项,推荐设置为宿主机用户的 uid 及 gid (`$uid:$gid`)
    # 可以执行 `id ${user}` 获取 `user` 用户的 uid 及 gid
    # 程序下载的所有文件权限将与此处的用户保持一致,不设置默认为 Root
    user: 1000:1000
    hostname: bili-sync-rs
    container_name: bili-sync-rs
    # 程序默认绑定 0.0.0.0:12345 运行 http 服务
    # 可同时修改 compose 文件与 config.toml 变更服务运行的端口
    ports:
      - 12345:12345
    volumes:
      # 将 ${你希望存储程序配置的目录} 替换为你刚刚创建的用于存放配置文件的目录
      - ${你希望存储程序配置的目录}:/app/.config/bili-sync
      # metadata/people 正确挂载才能在 Emby 或 Jellyfin 中显示 UP 主头像 
      # 右边的目标目录不固定,只需要确保目标目录与 bili-sync 中填写的“UP 主头像保存路径”保持一致即可 
      # 由于飞牛影视目前不支持人物功能,故可暂先不做设置
      - ${Emby 或 Jellyfin 配置下的 metadata/people 目录}:/app/.config/bili-sync/upper_face
      # 接下来可以挂载一系列用于保存视频的目录,接着在 bili-sync 中配置将视频下载到这些目录即可
      - ${你希望存储视频的目录}:${稍后在 bili-sync 中设置的存放视频目录}

[!cite]- 例如我的配置:

services:
  bili-sync-rs:
    image: amtoaer/bili-sync-rs:latest
    restart: unless-stopped
    network_mode: bridge
    tty: true
    user: 1000:1000
    hostname: bili-sync-rs
    container_name: bili-sync-rs
    ports:
      - 12345:12345
    volumes:
      - /vol3/1000/Docker/BiliSync/config:/app/.config/bili-sync
      - /vol3/1000/Media/BiliBili:/media

配置完成后保存为docker-compose.yml 文件,并将该文件保存至上文创建的用于存放配置文件的目录

[!cite]+ 例如我的目录:

Docker/
└─ BiliSync/
   ├─ config/
   └─ docker-compose.yml

桌面打开Docker,点击侧栏 Compose -> 新增项目

  • 项目名称 填写 bili-sync-rs

  • 路径 选择上文创建的用于用于保存配置文件和 docker-compose.yml 文件的目录

此时会弹窗 “所选的的路径已包含 docker-compose 配置文件”,点击 “确定” 即可。此时系统会自动导入 Compose 文件

[!cite] 例如我的实践:

点击 “确定” 创建后启动该 Compose

Step 3 : 获取auth_token

创建完成后点击侧栏 容器 -> ... -> 运行日志 查看容器日志,获取 auth_token

注意: 该 auth_token 信息仅在首次运行时打印,保存, 后面用得到。

进行初步配置

Step 1 : 授权验证

浏览器中输入 http://<NAS的IP>:12345 访问 Bili-Sync 后台界面

点击左侧边栏底部 “设置” -> 输入上文日志中获取的 auth_token,进行验证

认证后就能设置基本设置、 B站认证、视频质量、弹幕渲染、高级设置等功能

Step 2 : B站验证

登录B站首页,并按 F12 打开开发者工具。

点击顶栏 应用 选项卡,并在左侧选中 存储 > Cookies > 任意一个域名,找到 sessdatabili_jctbuvid3dedeuserid 对应的4个值,依次保存。
``

点击顶栏 控制台 选项卡,粘贴下面命令获得ac_time_value的值,若让输入“ 允许粘贴”便按照提示操作,将获取到的值保存。

window.localStorage.ac_time_value

返回 Bili-Sync 后台界面

点击左侧边栏底部 “设置” -> “B站认证”,输入前文获取的五个参数值,并点击 “保存配置”

初步使用指南

Part 1 : 配置下载收藏夹视频

前文进行 Docker Compose 文件配置时候,进行了如下映射,记住 ${稍后在 bili-sync 中设置的存放视频目录}

      - ${你希望存储视频的目录}:${稍后在 bili-sync 中设置的存放视频目录}

点击左侧边栏 "快捷订阅 > 我创建的收藏夹”,选择目标收藏夹,点击 “+订阅”

在本地保存路径中填写 ${稍后在 bili-sync 中设置的存放视频目录}\自定义子目录

[!cite]+ 例如我的实践:

[!note]
也可以在左侧边栏 "内容管理 > 视频源” -> “收藏夹” 中手动添加

收藏夹ID获取方式如图:先选中对应的收藏夹,地址栏复制fid

Part 2 : 配置下载关注的up主视频

点击左侧边栏 "快捷订阅 > 我关注的up主”,选择目标up主,点击 “+订阅” 并填入路径地址即可

[!note]
也可以在左侧边栏 "内容管理 > 视频源” -> “用户投稿” 中手动添加

up主ID获取方式如图:先进入对应up主空间,地址栏复制id或者复制个人资料卡的 “UID” 选项

Part 3 : 配置合集下载

视频合集和视频列表虽然在哔哩哔哩网站交互上行为类似,但在接口层级是两个不同的概念,程序配置中需要对两者做出区分。

目前 B 站绝大部分内容都是视频合集(Season),视频列表(Series)是古早的功能,现在已经不常见了。

配置形式与区分方法

新版本 b 站网页端已经对两种类型做了初步整合,将需要的参数展示在了视频合集/视频列表的 URL 中,不再需要手动查看接口。URL 的路径格式为:

/{mid}/lists/{id}?type={season/series}

点开你想要订阅的视频合集/视频列表详情,对照查看 URL 即可获取所需参数。

视频合集

image

类型为 合集(Season),用户 ID 为 521722088,合集 ID 为 1987140

视频列表

image

类型为 列表(Series),用户 ID 为 521722088,列表 ID 为 387214

Part 4 : 视频下载进度监看

通过左侧边栏 “总览 > 日志” 可查看下载情况

通过做侧边栏 “内容管理 > 视频” 也可查看下载进度

完成下载之后在配置的文件夹中即可看到视频文件

影视库设置

Part 1 : 飞牛影视设置

在飞牛应用中心安装影视,设置可访问文件夹,包含 ${你希望存储视频的目录}

![[Pasted image 20250823082545.png]]

进入飞牛影视,创建媒体,选择内容类型为“电影”。“媒体文件夹” 中一定要包含 ${你希望存储视频的目录}

返回影视首页,等待挂削即可