Skip to content

jimboo7339/fntv-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FNTV Proxy

飞牛影视代理工具 - 自动解析 .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: 60

Docker Compose 配置

services:
  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 控制台 只输出错误

trace 级别使用示例

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播放

常见问题

Q: 支持哪些视频格式?

A: 支持 stream.mp4stream.MOV 等所有格式。

Q: 缓存多久过期?

A: 默认 60 分钟,可通过 cache_ttl 配置。

Q: 如何查看详细日志?

A: 修改 log_level: debug,会自动输出到 ./logs 目录。

strm路径一定要挂载到docker容器中,不然会播放失败,找不到strm路径

声明

  1. 本项目仅针对 夸克网盘openlist夸克TV驱动挂载下,实现302
  2. 只要strm文件中的地址能正常下载文件,就可以通过本工具实现第三方播放器播放
  3. 经测试 CapyPlayer Vidhub 爆米花 下播放器正常播放

贡献者

项目 Star 数增长趋势

Star History Chart

About

飞牛影视代理工具-第三方播放器代理strm302播放

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors