飞牛影视代理工具 - 自动解析 .strm 文件并重定向
-
基于飞牛影视0.9.3版本
-
已测试夸克网盘生成的strm
-
已测试115网盘生成的strm #1
-
如有问题请提issue
- ✅ 透明代理飞牛影视服务
- ✅ 自动缓存 PlaybackInfo 中的 .strm MediaSource
- ✅ 拦截视频流请求,返回 302 重定向到真实 URL
- ✅ 支持日志级别配置
- ✅ 缓存过期时间可配置
- ✅ 优雅关闭
创建 config.yaml:
# 代理监听地址
listen: ":28005"
# 飞牛影视服务地址
target: "http://127.0.0.1:8005"
# 日志级别: debug / info / warn / error
log_level: "info"
# 日志目录(debug级别时写入,info级别可省略)
log_dir: "./logs"
# 缓存过期时间(分钟),默认1小时
cache_ttl: 60services:
fntv-proxy:
image: jimboo7339/fntv-proxy:latest
container_name: fntv-proxy
ports:
- "28005:28005"
volumes:
# 挂载strm文件目录(根据实际路径修改) 前后都要修改,在宿主主机是什么位置,在容器里就是什么位置
- /vol00/strm:/vol00/strm:ro
- /vol01/strm:/vol01/strm:ro
# 挂载配置文件(用于热重载)
- ./config.yaml:/app/config.yaml:ro
environment:
# 配置文件路径
- CONFIG=/app/config.yaml
restart: unless-stopped| 变量 | 说明 | 默认值 |
|---|---|---|
CONFIG |
配置文件路径 | ./config.yaml |
TZ |
时区 | Asia/Shanghai |
FNTV_CACHE_TTL |
直链缓存过期时间(分钟) | 60 |
注意: FNTV_CACHE_TTL 优先级高于配置文件中的 cache_ttl
| 级别 | 输出位置 | 说明 |
|---|---|---|
trace |
文件 | 最详细,记录完整请求/响应头、体(排查问题用) |
debug |
控制台 + 文件 | 记录所有请求和响应 |
info |
控制台 | 只输出关键信息(推荐生产环境) |
warn |
控制台 | 只输出警告和错误 |
error |
控制台 | 只输出错误 |
log_level: "trace"
log_dir: "./logs"日志文件将包含:
=== REQUEST ===
Method: GET
URL: /Items/xxx/PlaybackInfo?MediaSourceId=yyy
Headers:
User-Agent: xxx
Authorization: xxx
Body: {...}
===============
=== RESPONSE ===
Request: GET /Items/xxx/PlaybackInfo
Status: 200
Headers:
Content-Type: application/json
================
fntv-proxy/
├── cmd/
│ └── main.go # 入口
├── internal/
│ ├── config/
│ │ └── config.go # 配置管理(热重载)
│ ├── proxy/
│ │ └── server.go # 代理服务器
│ ├── handler/
│ │ ├── playback.go # PlaybackInfo处理
│ │ └── stream.go # Stream处理
│ ├── cache/
│ │ └── cache.go # MediaSource缓存
│ └── logger/
│ └── logger.go # 日志
├── config.yaml # 配置文件
├── docker-compose.yml
├── Dockerfile
└── README.md
1. 播放器 → PlaybackInfo → 代理缓存 MediaSource(含.strm路径)
↓
2. 播放器 → stream.mp4/stream.MOV → 代理
↓
3. 代理查缓存 → 读取.strm → 请求获取真实URL
↓
4. 代理返回 302 → 播放器 → 真实URL播放
A: 支持 stream.mp4、stream.MOV 等所有格式。
A: 默认 60 分钟,可通过 cache_ttl 配置。
A: 修改 log_level: debug,会自动输出到 ./logs 目录。
strm路径一定要挂载到docker容器中,不然会播放失败,找不到strm路径
- 本项目仅针对 夸克网盘 在 openlist的夸克TV驱动挂载下,实现302
- 只要strm文件中的地址能正常下载文件,就可以通过本工具实现第三方播放器播放
- 经测试 CapyPlayer Vidhub 爆米花 下播放器正常播放