本镜像基于右咖啡(rgcaafe/fn-danmu)的飞牛弹幕项目修改。飞牛 NAS 影视应用更新(约
2026年6月)后,原版镜像的弹幕自动匹配功能失效,必须手动搜索匹配才能显示弹幕。手动匹配正常但自动匹配不工作。
原项目地址:https://github.com/rgcaafe/fn-danmu
根因
飞牛影视新版对 /v/api/v1/play/info 接口新增了请求签名校验(authx + authorization 请求头)。原版 danmaku.js
自行构造不带签名的请求 → 后端返回 5000 invalid sign → 自动匹配直接退出。同时飞牛新版前端对 window.fetch
的调用方式也导致浏览器侧 XHR/fetch **无法捕获该请求。
修复方案
将视频信息获取从浏览器侧直接调用 API 改为代理层拦截:
- server.js:在透传 play/info 响应时,解析并缓存视频标题、季号、集号;暴露本地接口 /dm-api/video-info 供前端读取
- danmaku.js:去掉自行调用 play/info 的逻辑,改为轮询代理层的 /dm-api/video-info 接口,获取视频信息后自动匹配弹幕
使用方法
Docker Compose 配置,直接用我已构建好的镜像(基于右咖啡原项目,仅修改了 server.js 和 danmaku.js):
services:
danmaku-proxy:
image: chanhuan01/fntv-danmu:latest
ports:
- "3000:3000"
- "3443:3443"
environment:
- FN_URL=https://你的飞牛IP:5669
- DM_URL=http://你的弹幕API地址:9321
- PORT=3000
- HTTPS_PORT=3443
volumes:
- ./certs:/app/certs
restart: unless-stopped
修改 FN_URL 和 DM_URL 为你自己的地址,然后:
docker compose up -d
飞牛影视里把地址指向 http://NAS_IP:3000 或 https://NAS_IP:3443 即可。
镜像地址
chanhuan01/fntv-danmu:latest(AMD64 架构,适用于主流 NAS / x86 设备)
鸣谢
感谢右咖啡(rgcaafe)的原项目和镜像,本项目仅在其基础上适配了飞牛影视新版 API 的签名校验。