利用闲置旧电脑安装飞牛搭建私人家庭影音

利用闲置旧电脑安装飞牛搭建私人家庭影音

LiXin
2025-12-22 / 0 评论 / 3 阅读 / 正在检测是否收录...

本方案是由 openlist + emby + go-emby2openlist + danmu-api 组成的,openlist挂载网盘,emby作为媒体服务器,go-emby2openlist为openlist连接emby做302重定向,danmu-api是视频播放的弹幕,不看弹幕也可以不安装。

如何不看弹幕也可以使用openlist+飞牛影视更简单,使用strm刮削更快,但是首播需要多等几秒,类似方案有很多。今天主要是使用我使用的方案openlist + emby + go-emby2openlist + danmu-api

非专业人士,本篇文章仅作为自己后续维护使用

安装openlist

前期准备

首先打开飞牛的 “文件管理”,在我的文件下的 docker 文件夹下,创建一个名为 openlist 的文件夹。查看openlist文件夹权限,右键点击 openlist 文件夹 -> 属性 -> 权限,确保你的当前用户拥有读写权限。

部署 OpenList (使用 Docker Compose)

使用 Compose 部署的好处是方便后续维护,不用去点点选选复杂的 UI。

  1. 打开飞牛桌面的 “Docker” 应用。
  2. 点击左侧的 “Compose”,然后点击顶部的 “新增”
  3. 项目名称:填 openlist
  4. 存储位置:选择刚才创建的 /vol1/1000/docker/openlist 文件夹。
  5. 代码框:将以下代码完整粘贴进去:
services:
  openlist:
    image: openlistteam/openlist:latest
    container_name: openlist
    ports:
      - 5244:5244
    volumes:
      - /vol1/1000/docker/openlist:/opt/openlist/data # 注意修改为你的实际路径
    environment:
      - TZ=Asia/Shanghai
    user: '0:0' # 【避坑必填】强制以root运行,避免fnOS下挂载网盘权限报错
    restart: always
  1. 点击 “完成”,等待镜像拉取并启动。

获取初始密码

OpenList 初始密码是随机生成的,隐藏在日志里。

  1. 在 Docker 的 “容器” 列表中,找到 openlist
  2. 点击它的 “日志” 图标。
  3. 在搜索框输入 password 或者是往下翻,你会看到一行:
    Successfully created the initial administrator password: [一串随机字符]
  4. 把它复制下来

登录与配置

  1. 在浏览器输入:http://飞牛IP:5244
  2. 账号admin密码:填入刚才在日志里复制的初始随机密码。
  3. 修改初始密码:登录后点击页面底部的 “管理”,进入 “设置” -> “后端”,修改 “管理员密码” 并保存(以后就不用去翻日志了)。
  4. 开启 WebDAV:在刚才的同一页面(“设置” -> “后端”),找到并确认开启 “WebDAV 用于播放”
  5. :记录下你的 WebDAV 地址(通常是 http://飞牛IP:5244/dav)。这是后续让 go-emby2openlist 实现直连播放(不走 NAS 流量)的核心前提。

挂载网盘

OpenList 现在只是个“空壳”,需要挂载实际的网盘来作为存储空间。我主力使用的是天翼云盘(老号有 10T 空间)和移动云盘(个人与家庭云合并后有 53T 空间)。这两个网盘不开会员下载也不限速,且移动云盘 302 直连走的是定向流量,完全够用。

挂载注意事项

  • WebDAV 策略:设置中务必选择 302 重定向(注:夸克网盘不支持 302)。
  • 关闭签名:在添加存储时,“开启签名”选项千万不要勾选! 如果勾选了,Emby 在通过 302 重定向播放时会因为签名不匹配而直接报错。

具体的各项参数填写教程,请直接移步官方手册:OpenList 官方文档

挂载文件夹

最后一步把openlist挂载到飞牛本地文件夹,打开飞牛文件管理→远程挂载→挂载远程文件夹→选择WebDAV

域名:飞牛IP
端口:5244
选择:http
用户名:admin
密码:openlist密码
指定路径:/dav
挂载名:随便填

我的挂载路径为:/vol02/1000-1-9b6c27ee

我们把openlist挂载到飞牛文件管理,我们网盘已经变成了“本地硬盘”。现在我们安装 Emby


安装emby

前期准备

首先还是打开飞牛的 “文件管理”,在我的文件下的 docker 文件夹下,创建一个名为 emby 的文件夹,在 emby 文件夹内再建一个子文件夹叫 config(用于存放海报墙数据)。

部署 Emby (使用 Docker Compose)

  1. 打开飞牛桌面的 “Docker” 应用。
  2. 点击左侧的 “Compose”,然后点击顶部的 “新增”
  3. 项目名称:填 emby
  4. 存储位置:选择刚才创建的 /vol1/1000/docker/emby 文件夹。
  5. 代码框:复制以下代码
services:
  emby:
    image: emby/embyserver:latest
    container_name: emby
    network_mode: host # host 模式能让 Senplayer 在内网秒搜到服务器
    environment:
      - UID=1000
      - GID=1000
      - TZ=Asia/Shanghai
    volumes:
      - /vol1/1000/docker/emby/config:/config # 存海报和数据库
      - /vol02/1000-1-9b6c27ee/Media:/media     # 映射 OpenList 路径
    restart: always

路径确认:确保第 12 行左边的路径和你飞牛文件管理里的真实路径完全一致,因为我的视频文件夹在Media下,所以我加了/Media。

初始化 Emby

部署成功后,在浏览器访问 http://飞牛IP:8096

  1. 语言选择:选 Chinese Simplified
  2. 创建管理员:账号密码自己设置。
  3. 添加媒体库
  4. 点击“新媒体库”。
  5. 文件夹:点击那个 /media/openlist(就是我们刚才在 Compose 里映射出来的洞)。
  6. 元数据语言:选 Chinese,国家选 People's Republic of China
  7. 配置刮削器
  8. 勾选 TheMovieDb
  9. 重要:把“将媒体图像保存到媒体库文件夹”取消勾选(因为网盘文件夹通常是只读的,或者写入很慢,海报图存放在 NAS 本地的 /config 里速度最快)。

刮削

  • 刮削不出海报:这是因为国内无法直接访问 TMDB 的服务器。
  • 解决:你可以在飞牛系统的 系统设置 -> 网络 -> Hosts 里,手动添加 TMDB 的加速地址,或者在 Docker 里挂一个简单的 DNS 代理。
  • 网盘文件不显示:如果你在 OpenList 里刚添加了文件,Emby 可能还没反应过来。
  • 解决:在 Emby 媒体库点击“扫描媒体库文件”。

部署 go-emby2openlist

部署 go-emby2openlist 的逻辑是:它作为一个“中转站”,拦截本来发往 Emby(8096端口)的请求,处理成直链后再发给播放器。

现在网盘播放视频会消耗 NAS 的流量;部署 go-emby2openlist 后,播放视频时,视频流会直接从网盘服务器发给手机,秒开且不占 NAS 带宽。

创建配置文件夹

打开飞牛的 “文件管理” ,在我的文件下的 docker 文件夹下,创建一个名为 emby-direct 的文件夹,在 emby-direct 文件夹内再建一个子文件夹叫 config(。

部署 emby-direct (使用 Docker Compose)

  1. 打开飞牛桌面的 “Docker” -> “Compose” -> “新增”
  • 项目名称emby-direct
  • 存储位置:选择刚才建的 /vol1/1000/docker/emby-direct
  • 代码框:直接复制下面这段:
services:
  emby-direct:
    image: bpking/go-emby2openlist:latest
    container_name: emby-direct
    network_mode: host # 必须是 host,因为它要接管 8091 等端口
    volumes:
      # 将刚才建的 config 文件夹映射进去
      - /vol1/1000/docker/emby-direct/config:/app/config
    environment:
      - TZ=Asia/Shanghai
    restart: always

点击 “完成” 部署。

修改核心配置文件

部署成功后,容器会自动在你的 config 文件夹里生成一个 constant.js 文件。配置的核心”,我们需要去里面修改它。

  1. 回到“文件管理”,进入 docker/emby-direct/config,找到 constant.js,右键选择“文本编辑”(或直接双击)。
  2. 重点修改以下几个参数(一定要细心)
配置项修改内容建议
embyHosthttp://127.0.0.1:8096(指向你本地的 Emby)
embyApiKey填入你之前在 Emby 后台生成的那个长字符串
alistHosthttp://127.0.0.1:5244(指向你本地的 OpenList)
alistToken在 OpenList 管理后台 -> 设置 -> 后端 找到并复制 “令牌”
embyMountPath["/media"](这是 Emby 容器里看到的路径)
alistMountPath[""](留空,表示直接去掉 /media 前缀,对齐 OpenList 路径)

重启

改完 constant.js 并点击保存后:

  1. 回到飞牛 Docker 界面。
  2. “项目”里找到 emby-direct
  3. 点击 “重启”

在播放器(Senplayer/Yamby)里连接

  • 服务器地址:不要填 8096,要填 http://你的NAS内网IP:8091(这是工具默认的转发端口)。
  • 账号密码:填 Emby 的账号密码。

检查:

在 Senplayer 里点播放,飞牛桌面的 上传速度(流量监控) 几乎没跳动,但是视频秒开,那就是成功的,302 直连配置成功!


danmu-api

配置文件夹

  1. 打开 “文件管理”
  2. 进入路径:/vol1/1000/docker
  3. 新建文件夹:danmu-api

部署 danmu-api (Docker Compose)

在飞牛 Docker -> Compose -> 新增,项目名:danmu-api

services:
  danmu-api:
    image: logvar/danmu-api:latest
    container_name: danmu-api
    ports:
      - 9321:9321
    volumes:
      # 将配置文件持久化到本地,防止更新镜像后配置丢失
      - /vol1/1000/docker/danmu-api:/app/data
    environment:
      - TZ=Asia/Shanghai
      # 【关键:安全】这是后台管理密码,部署后立刻修改
      - ADMIN_TOKEN=admin123 
      # 【关键:匹配】填入 TMDB API Key
      - TMDB_API_KEY=2a5d21d6xxxxxxxxxxxxxx 
    restart: always

TMDB_API免费申请

后台进配置

部署成功后,进入“后台”设置:

  1. 访问地址:在浏览器输入 http://飞牛IP:9321/admin123(记得带上 Token)。
  2. 源配置 (最重要):点击顶部的 “源配置”
  3. 找到 BILIBILI_COOKIE
  4. 扫描登陆B站,获取B站COOKIE(这样能抓到全量弹幕)。
  5. 保存:点击页面最下方的 “保存配置”

在 Senplayer/Yamby 里使用?

进去danmu-api在在上方找到:API端点: http://飞牛IP:9321/12345678 这就是我的需要的链接

  • Senplayer (iOS/iPadOS)
  • 在播放界面点击右下角的“设置”图标。
  • 找到 “弹幕设置” -> “自定义弹幕API”
  • 地址:http://飞牛IP:9321/12345678(外网建议带域名)。
  • Yamby (Emby 客户端)
  • 进入右上角设置 -> 实验性 -> 弹幕 -> Danmaku API(倒数第一个)
  • 添加和管理弹幕 -> 右上角 -> + 新建
  • urlhttp://飞牛IP:9321/12345678

ddns-go

一般家宽没有ipv4但都有ipv6,建议配置ddns-go做解析,即使在外网也能访问,我用cf使用ddns-go解析ipv6,只有ipv6能访问,想要使用ipv4也能访问,可以使用 Cloudflare Tunnel,即使没有外网ip也能访问。

若后续改用 Cloudflare Tunnel,无需路由器端口转发,只需在飞牛 Docker 部署 cloudflared 容器,并在 CF 后台配置 Public Hostname 分别指向内网端口(如 8091 和 9321)即可。

0

评论 (0)

取消