✨ 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:备份→重写→校验→失败自动回滚,同步视频代理段配置
This commit is contained in:
chenxin committed 2026-10-09 23:56:32 +08:00
1 parent 162dde9222
commit 0aed60713a
13 files changed
+1000 -78

No files matched your search

+15
View File
@@ -51,6 +51,21 @@ fanqie:
# 是否启用段评功能(默认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