Files
fanqie-go/config/config.yaml
T
chenxin 49d0a371fb ✨ feat(video): 新增视频 CENC 解密与流式代理播放
- 逆向 SpadeA(黑桃A) PlayAuth 混淆,从 spade_a 还原 AES-128 内容密钥
- 实现 cenc-aes-ctr MP4 解密(senc 逐样本 CTR + stsd entry 修复),实测可播放
- 新增 /video/proxy/{key} 代理:稳定 key + 磁盘缓存(二次命中提速 130x)+
  http.ServeContent 支持 Range/206/seek 流式播放
- /video 接口新增 output(url/proxy,默认 proxy) 与 quality(max/720p/档位key) 参数,
  可由 config fanqie.video.* 配置默认值;无匹配清晰度时明确报错
- 代理映射复用 audio_cache 存储,抽取 loadMediaProxyEntry 共用;挂接 7 天缓存清理
- deploy.sh 新增 --sync-nginx:备份→重写→校验→失败自动回滚,同步视频代理段配置
2026-10-10 12:58:25 +08:00

125 lines
3.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 番茄小说API服务配置文件
# 服务器配置
server:
port: "40180" # 监听端口
host: "0.0.0.0" # 监听地址
access_key: "" # 访问密钥,为空则不启用验证(用于 /status)
rate_limit_qps: 0 # 每 IP 每秒请求上限(令牌桶,突发 10),0=不限制
# 请求日志(只记元数据与错误摘要,不存响应体;在 /status 页"最近请求"展示)
# 注意:日志时间显示与"近 7 天请求"统计依赖 .env 中的 TZ 时区
request_log:
enabled: true
retention_days: 7 # 日志保留天数,自动清理
# 番茄小说配置
fanqie:
# 算法类型: "gorgon" 或 "8404"
# gorgon: Gorgon算法
# 8404: 备用算法
algorithm: "gorgon"
# 签名方法: "sign2" 或 "sign4"
# sign2: 仅Gorgon签名
# sign4: X-Gorgon + X-Ladon + X-Argus 完整签名
signature: "sign4"
# 内容处理配置
content:
# 是否移除图片(默认false,保留图片)
remove_images: false
# 是否移除图片描述(默认false,保留描述)
remove_image_desc: true
# 是否移除空行(默认true,移除空行)
remove_blank_lines: true
# 是否移除HTML标签(默认false,保留HTML)
remove_html_tags: true
# 是否移除章节名(默认false,保留章节名)
remove_chapter_title: true
# 是否添加段落缩进(默认true,添加两个全角空格)
add_paragraph_indent: true
# 段落间使用双换行(true=\n\n, false=\n)
double_newline: true
# 是否启用段评功能(默认true,启用段评)
enable_review: true
# 视频处理配置
video:
# 输出模式:proxy / url
# proxy: 返回本地解密代理URL /video/proxy/{key}(已解密,可直接播放,推荐)
# url: 返回原始CDN链接(内容为 CENC 加密,需自行解密)
output_mode: "proxy"
# 默认清晰度:max(最高档)/ 360p/480p/540p/720p / 档位 key(video_1..N)
# 留空返回全部清晰度;/video 接口的 quality 参数优先于此配置
quality: "max"
# 解密后视频的磁盘缓存(同一视频重复播放直接读本地文件,无需重新下载解密)
cache_enabled: true
cache_path: "./video_cache"
# 漫画处理配置
manga:
# 输出模式:proxy / data_uri / url
# proxy: 返回本地代理URL /manga/image/{itemID}/{index}(图片已解密,推荐)
# data_uri: 返回 data:image/jpeg;base64,/9j/4AAQ...
# url: 返回原始图片URL数组(不可用:链接404且内容加密)
output_mode: "proxy"
# 缓存配置
cache:
# 是否启用正文内容缓存
enabled: true
# 存储后端:sqlite | postgres
backend: postgres
# SQLite数据库文件路径(backend 为 sqlite 时使用)
sqlite_path: "./cache.db"
# PostgreSQL连接配置(backend 为 postgres 时使用)
# 敏感值(密码等)建议放 .env,见 .env.example;环境变量优先于此处配置
postgres:
host: "127.0.0.1"
port: 5432
user: "postgres"
password: ""
database: "fanqie"
sslmode: "disable" # disable | prefer | require
# Redis缓存(启用后正文缓存与音频代理缓存走 Redis,统计数据与设备池仍在 SQL 库)
redis:
enabled: true
host: "127.0.0.1"
port: 6379
password: ""
db: 1
# 是否启用正文内容缓存自动清理
cleanup_enabled: true
# 正文内容缓存清理时间(秒),0表示不自动清理
cleanup_seconds: 86400
# 设备密钥池配置
device_key_pool:
# 是否启用设备密钥池
enabled: true
# 初始化设备数量
initial_size: 20
# 最小设备数量(低于此数量自动补充)
min_size: 10
# 最大设备数量
max_size: 30