吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2095|回复: 14
上一主题 下一主题
收起左侧

[其他原创] 飞牛弹幕增强Docker版

[复制链接]
跳转到指定楼层
楼主
CoffeeH1 发表于 2026-5-28 17:34 回帖奖励

fn-danmu - 飞牛影视弹幕增强

为飞牛影视(fnOS)添加弹幕支持,基于 danmu-api 弹幕数据源,通过反向代理自动注入弹幕脚本到播放页面。

git地址:https://github.com/rgcaafe/fn-danmu
浏览器插件版:https://www.52pojie.cn/thread-2108750-1-1.html

效果展示

播放视频时自动匹配弹幕,弹幕从右向左滚动飘过播放器画面。

支持 PC 浏览器 / TV 浏览器 / 任何带浏览器的设备,无需安装任何扩展或 App。

功能列表:

  • 自动匹配:根据视频标题 + 季/集信息自动匹配弹幕
  • 手动搜索:按动漫名搜索 → 选集 → 加载弹幕
  • 换集自动加载
  • 弹幕行避让(不重叠)
  • 点击弹幕暂停 3 秒并显示时间戳
  • 弹幕参数可调(字号、行间距、透明度、速度、密度、显示区域、时间偏移等)
  • HTTP / HTTPS 双协议支持
  • 飞牛 SPA 内跳转自动重新注入

实现原理

┌──────────────┐      ┌───────────────────────┐      ┌──────────────┐
│  浏览器 / TV  │      │   danmaku-proxy       │      │  飞牛影视     │
│              │      │   (Docker)            │      │  (fnOS)      │
│  访问 :3000  │─────→│                       │─────→│  :5666       │
│              │      │  ① 拦截页面请求        │      │              │
│              │ HTML │  ② 去掉缓存头          │ HTML│  返回原始页面  │
│  拿到注入后的 │◄─────│  ③ 注入弹幕脚本        │◄─────│              │
│  HTML 页面   │      │  ④ 透传视频流/API/资源  │      └──────────────┘
│              │      │                       │
│  弹幕脚本运行 │      │                       │      ┌──────────────┐
│  请求弹幕数据 │─────→│  /dm-api/* 转发       │─────→│  danmu-api   │
│              │ JSON │                       │ JSON │  :9321       │
│  渲染弹幕    │◄─────│                       │◄─────│              │
└──────────────┘      └───────────────────────┘      └──────────────┘

为什么需要代理?

浏览器直接访问飞牛时,无法向页面注入弹幕脚本。通过反向代理中转:

  1. 浏览器请求页面 → 代理转给飞牛 → 飞牛返回 HTML
  2. 代理在 HTML 的 </head> 前插入 <script>(弹幕脚本)
  3. 修改后的 HTML 返回给浏览器
  4. 视频流、WebSocket、API 等非页面请求原样透传,不影响播放

为什么需要 danmu-api?

飞牛影视本身没有弹幕数据。danmu-api 聚合了各平台的弹幕数据(B站、腾讯、爱奇艺等),提供弹幕搜索和匹配接口。本项目通过代理将浏览器端的弹幕 API 请求转发到 danmu-api 服务。

前置要求

组件 说明
[Docker] + Docker Compose 容器运行环境
[飞牛影视(fnOS)] 已部署并可访问
[danmu-api] 弹幕数据服务,已部署并可访问

部署方式一:使用预构建镜像(推荐)

无需克隆仓库,直接创建配置文件启动。

1. 创建目录和配置文件

bash
mkdir fn-danmaku && cd fn-danmak

创建 docker-compose.yml

services:
  danmaku-proxy:
    image: coffee699/danmaku-proxy:latest
    ports:
      - "3000:3000"
      - "3443:3443"
    environment:
      - FN_URL=http://192.168.10.252:5666    # 改成你的飞牛影视地址
      - DM_URL=http://192.168.10.252:9321    # 改成你的 danmu-api 地址
      - PORT=3000
      - HTTPS_PORT=3443
    volumes:
      - ./certs:/app/certs
    restart: unless-stopped
    init: true

2. 启动

docker compose up -d 

3. 确认启动成功

docker compose logs -f

看到以下内容说明正常:

[启动] 飞牛: http://192.168.10.252:5666
[启动] 弹幕: http://192.168.10.252:9321
[就绪] HTTP:  http://<NAS-IP>:3000
[就绪] HTTPS: https://<NAS-IP>:3443

4. 使用

浏览器或 TV 浏览器访问 http://<NAS-IP>:3000,后续操作和直接访问飞牛一样,但会多出弹幕功能。

更新版本:

docker compose pull
docker compose up -d

部署方式二:从源码构建

1. 克隆仓库

git clone https://github.com/coffee699/fn-danmaku.git
cd fn-danmaku

2. 修改配置

cp docker-compose.yml.example docker-compose.yml

编辑 docker-compose.yml,修改 FN_URLDM_URL 为你的实际地址。

3. 构建并启动

docker compose up -d --build

4. 使用

同方式一,访问 http://<NAS-IP>:3000

更新版本:

git pull
docker compose up -d --build

环境变量

变量 说明 默认值
FN_URL 飞牛影视地址(需带 http://https://,协议必须和飞牛实际协议一致) http://192.168.10.252:5666
DM_URL danmu-api 弹幕服务地址 http://192.168.10.252:9321
PORT 代理 HTTP 端口 3000
HTTPS_PORT 代理 HTTPS 端口(自签证书) 3443

飞牛影视默认是 HTTP,除非你额外配置了 HTTPS 反向代理。协议填错会导致连接失败。

HTTPS 说明

代理同时监听 HTTP 和 HTTPS:

  • HTTP(:3000):直接使用,无需额外配置
  • HTTPS(:3443):首次启动时自动生成自签证书(保存在 ./certs/),浏览器会提示不安全,点"继续访问"即可

如需使用自己的证书,将文件放到 ./certs/ 目录:

./certs/key.pem   # 私钥
./certs/cert.pem  # 证书

使用指南

自动匹配

播放视频后,脚本自动根据视频标题 + 季/集信息调用 danmu-api 匹配弹幕。匹配成功后左下角会显示状态提示和弹幕数量。

手动搜索

  1. 点击播放器右上角的「弹幕」按钮
  2. 在搜索框输入动漫名称,点「搜索」
  3. 从搜索结果中选择动漫
  4. 选择具体集数,点击加载

弹幕设置

点击「弹幕」按钮 → 切换到「⚙ 设置」标签:

设置项 说明 范围
弹幕开关 全局开关 开/关
透明度 弹幕透明度 0 ~ 1
显示区域 弹幕占屏幕高度 10% ~ 80%
文字描边 黑色轮廓增强可读性 开/关
字号 弹幕文字大小 14 ~ 40px
行间距 行与行之间的距离 1.2x ~ 3.0x
滚动速度 滚动弹幕移动速度 0.5x ~ 2.5x
弹幕密度 显示比例,降低可减少弹幕量 10% ~ 100%
同屏上限 同时显示的最大弹幕条数 10 ~ 80
偏移量 时间偏移,校准弹幕与画面的同步 -30s ~ +30s

设置自动保存到浏览器 localStorage,下次打开自动恢复。

交互操作

操作 效果
点击飘过的弹幕 暂停该弹幕 3 秒,显示时间戳
鼠标移动 显示弹幕按钮和控制面板
鼠标离开播放器 3 秒后自动隐藏 UI

TV 端使用

TV 浏览器访问代理地址即可。弹幕设置面板的操作:

  • 有蓝牙鼠标:操作体验和 PC 一致
  • 仅有遥控器:遥控器模拟鼠标点击,可完成基本的开关弹幕、搜索加载等操作

常见问题

Q: 打开页面后看不到弹幕按钮?

确认是通过代理地址(:3000)访问,不是直接访问飞牛地址(:5666)。

Q: 自动匹配一直失败?

文件名可能不被 danmu-api 识别。改用手动搜索加载(弹幕按钮 → 搜索 → 选集)。

Q: 代理日志报 透传错误拦截错误

飞牛不在线或地址配置错误。确认 FN_URL 正确且飞牛正在运行。容器不会因后端离线而退出,飞牛恢复后自动正常。

Q: 视频播放几秒就报错?

检查 FN_URL 的协议(http:// 还是 https://)是否和飞牛实际协议一致。写错协议会导致代理无法正确转发视频流。

Q: 浏览器控制台看到 __DMAPI_PLACEHOLDER__ 相关错误?

使用了旧版镜像或旧版脚本。更新镜像:docker compose pull && docker compose up -d,或从源码重新构建。

项目结构

fn-danmaku/
├── README.md                   # 本文档
├── docker-compose.yml.example  # Docker Compose 配置模板
├── Dockerfile                  # 镜像构建文件
├── package.json                # Node.js 依赖声明
├── server.js                   # 反向代理服务(HTTP/HTTPS + HTML 注入 + API 转发)
└── danmaku.js                  # 弹幕脚本(注入到浏览器端,负责匹配/渲染/交互)

License

MIT

免费评分

参与人数 4吾爱币 +4 热心值 +3 收起 理由
pA55eR + 1 + 1 感谢分享!
BluceQ + 1 鼓励转贴优秀软件安全工具和文档!
TangGod + 1 + 1 鼓励转贴优秀软件安全工具和文档!
qjlfl + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| CoffeeH1 发表于 2026-6-2 09:09 |楼主
fyswww 发表于 2026-6-1 19:31
不清楚,研究danmuapi没搞明白,都是跟着上面的步骤来的默认配置,谢谢

danmuapi 用这个构建:

services:
  danmu-api:
    image: logvar/danmu-api:latest
    ports:
      - "9321:9321"
    # 热更新支持:挂载 config/.env 文件,修改后容器会自动重新加载配置(无需重启容器)
    volumes:
      - ./config:/app/config    # config目录下需要创建.env
      - ./.chche:/app/.cache    # 配置.chche目录,会将缓存实时保存在本地文件
    restart: unless-stopped
沙发
TangGod 发表于 2026-5-28 22:53
3#
yinandidai 发表于 2026-5-29 08:38
4#
BluceQ 发表于 2026-5-29 09:40
TangGod 发表于 2026-5-28 22:53
建议上架到官方应用中心里,挺实用的

并不实用。NAS影视是基于私人开发。没有必要增加公共性功能。
5#
fyswww 发表于 2026-5-31 20:07
大佬,弹幕源怎么换成别的啊,有的动漫搜不到,有的弹幕太少
6#
 楼主| CoffeeH1 发表于 2026-6-1 09:46 |楼主
fyswww 发表于 2026-5-31 20:07
大佬,弹幕源怎么换成别的啊,有的动漫搜不到,有的弹幕太少

你用的那个源呢,发过来我看看。
7#
fyswww 发表于 2026-6-1 19:31
CoffeeH1 发表于 2026-6-1 09:46
你用的那个源呢,发过来我看看。

不清楚,研究danmuapi没搞明白,都是跟着上面的步骤来的默认配置,谢谢
8#
fyswww 发表于 2026-6-1 19:32
fyswww 发表于 2026-6-1 19:31
不清楚,研究danmuapi没搞明白,都是跟着上面的步骤来的默认配置,谢谢

用的   部署方式一:使用预构建镜像(推荐
10#
fyswww 发表于 2026-6-2 14:14
CoffeeH1 发表于 2026-6-2 09:09
danmuapi 用这个构建:

services:

好的,谢谢
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-10 17:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表