飞牛 fnos 使用docker部署 bili-sync:打造自动化 B 站资源下载器,与主流媒体服务器无缝衔接

Bili-Sync介绍及相关部署操作

一、Bili-Sync概述

Bili-Sync是哔哩哔哩内容同步助手,它能借助用户提供的登录信息,定期对用户的视频合集以及个人收藏进行遍历,找出还没在本地保存的新内容,然后自动下载到本地存储,以此保证本地视频资料库与哔哩哔哩平台上的内容能同步更新。其下载的内容包含视频文件、封面图片、弹幕数据、标签信息以及视频简介等,并且所有文件都是按照与Emby、Jellyfin等主流媒体服务器软件相兼容的文件架构来组织的,这样目标文件夹就能无缝集成到这些媒体服务器中,无需额外设置或调整,就能实现内容的自动识别与管理。

二、compose部署Bili-Sync的步骤

  1. 新建文件夹
    在任意位置创建一个名为“bili-sync”的文件夹
    2024-12-16T06:08:38.png
    用来存放“docker-compose.yaml”文件和配置文件,示例如下:(此处可按需创建,文中无具体示例展示)
  2. 新增项目
    使用docker的compose方式构建,点击新增项目。
    2024-12-16T06:08:50.png
  3. 创建项目
    输入项目名称,路径选择刚刚创建的“bili-sync”文件夹,点击创建。接着把以下代码拷贝进“docker-compose.yml”文件中(创建项目后立即启动打钩):
    2024-12-16T06:09:00.png

    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
     volumes:
       - /vol1/1000/docker/bili-sync:/app/.config/bili-sync  # 配置文件路径
       - /vol1/1000/影视/bilibili:/videos  # 视频存储路径
     logging:
       driver: "local"

    如果运行报错,请在浏览器打开文章后再复制代码,将冒号“:”前面的路径换成自己的,像“/app/.config/bili-sync”配置文件路径以及“/videos”视频储存路径,都要放到合适的储存位置,要注意元数据和视频是保存到一起的,以免占用空间。点击完成后,等待构建完成。
    2024-12-16T06:09:10.png

  4. 查看配置
    如果没有设置配置文件,容器会一直重启,这时可以查看日志,提示配置文件不合法往往就是因为配置文件没有配置正确到映射的配置文件路径。
    2024-12-16T06:09:24.png
    找到“config.toml”文件,可以看到里面的值都是空的,如下:

    [credential]
    sessdata = ""
    bili_jct = ""
    buvid3 = ""
    dedeuserid = ""
    ac_time_value = ""

    操作步骤如下:

    • 找到“config.toml”双击打开;

    2024-12-16T06:09:49.png

    • 在“credential”处填入你B站账户信息。

    2024-12-16T06:09:57.png

  5. 获取credential所需信息(以微软Edge浏览器为例)
    • 获取sessdata、bili_jct、buvid3、dedeuserid
      • 首先浏览器登录B站,在首页按F12打开开发者工具;
      • 在开发工具上方找到“应用程序”选项卡;

    2024-12-16T06:11:03.png

     - 在左侧找到“存储/Cookies”,并选中任意一个域名,在右侧找到对应的sessdata、bili_jct、buvid3、dedeuserid。

    2024-12-16T06:11:29.png

    • 获取ac_time_value
      • B站首页按F12打开开发者工具,找到控制台;

    2024-12-16T06:11:49.png

     - 在对应位置先输入“允许粘贴”,按回车后粘贴如下代码
    window.localStorage.ac_time_value

    即可获得ac_time_value的值。
    完成上述操作就能获得五个Credential所需信息。
    2024-12-16T06:12:15.png

  6. 设置配置文件
    • config.toml填入获取到的Credential:按照前面获取的信息填入相应位置。

    2024-12-16T06:12:24.png

    • 设置下载视频的路径:在“config.toml”拉到最底下设置相关参数,“favorite_list”是收藏夹保存位置,“collection_list”是视频合集/视频列表保存位置。

    2024-12-16T06:12:34.png

     - **设置收藏夹视频下载**:可以提前创建好文件夹(不创建运行的时候也会自动生成)

    2024-12-16T06:12:46.png
    获取收藏夹ID(登录B站点击收藏夹,选择默认或者自己创建的收藏夹,获取fid后面的收藏夹ID)
    2024-12-16T06:13:53.png
    参考设置如下(路径为容器内部路径,注意看代码中映射的路径):

  7. = "/videos/收藏夹"
         - **设置视频合集/视频列表配置参数**:
    找到你喜欢的UP主,进入他的主页,视频合集和视频列表是两种类型,区分方式如下:
    两者的名称前缀不同,视频合集会有显式的“合集”字样,两者的图标也不同。

“season:{mid}:{season_id}” = “视频合集路径”,“series:{mid}:{series_id}” = “视频列表路径”。
获取视频合集key,随便打开一个合集,查看url链接即可获得(例如合集的key为season:946974:2046621);获取视频列表key,随便打开一个视频列表,查看url链接即可获得(例如列表的key为series:946974:30829)
2024-12-16T06:14:33.png
参考设置如下(路径为容器内部路径,注意看代码中映射的路径):

"season:946974:2046621" = "/videos/视频合集"
"series:946974:30829" = "/videos/视频列表"

注意:如果第一次路径等信息配置不正确,且保存并且运行容器了,请直接删掉容器和映射到目录中的全部配置文件重新部署,不然会一直出错,视频下载不下来可能是路径错了或者没删除错误信息,这点要格外留意。设置完保存配置文件,重启容器查看日志,运行正常。
2024-12-16T06:15:07.png
至于配置文件其他参数,可以参考官方文档(https://bili-sync.allwens.work/configuration),能设置清晰度、码率、弹幕字体大小、比例等参数。

  1. 飞牛影视设置
    • 在应用商城安装fnOS影视,设置可访问文件夹;

    2024-12-16T06:15:23.png

    • 进入飞牛影视创建媒体,内容类型选择电影;

    2024-12-16T06:15:31.png

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

    2024-12-16T06:15:49.png