Repository navigation
Releases
红果TV v1.0.43
红果TV v1.0.43
播放修复:真签名(对齐上游 0.1.31)
修复 11-11 起的断播问题。
根因:平台从 2026-11-11 起校验播放请求的真签名。此前版本的 x-argus 是占位值(base64 时间戳),加上伪造的 x-gorgon/x-helios/x-medusa 头,播放模型接口对这类请求一律静默返回空体(HTTP 200 + 0 字节)——注册、详情、目录都正常,唯独播放被丢弃。
修复(移植上游 0.1.31 的真签名实现):
- 新增
Argus.kt:fqapp 的 x-argus/x-ladon 真签名移植(ProtoBuf 编码、Simon 分组加密、Argus 551 布局、Ladon ARX 密码) - 播放请求(GET video_tab 与 POST multi_video_model 两条路径)改用真签名头:
x-argus/x-ladon/x-khronos/x-ss-req-ticket按最终 query 重新生成,x-khronos与 URL 的_rticket同源 - 移除全部占位签名头——真签名与占位头同时出现会被直接拒绝
- 目录、搜索、详情等非播放接口不受影响
线上验证:同一播放请求,旧签名返回 0 字节,真签名返回 17.5KB 完整播放模型(含 1080P 档)。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.42
红果TV v1.0.42
播放修复:对齐上游 0.1.30 身份架构
修复"上游能播、我们不能播"的问题。
根因:v1.0.38 引入的设备身份持久化(identity.json,register-once-keep-forever)把 TV 锁死在一个被平台风控拉黑的旧 device_id 上——空响应屏蔽按设备身份生效,旧身份每次启动被复用,永远播不了。
修复(对齐上游 0.1.30,经逐文件逐字段对比确认):
- 移除设备身份持久化:每次冷启动注册全新匿名身份(与上游一致)。被拉黑的旧身份不再被复用,新身份即时恢复播放。
- POST 播放请求 device_level 3→1:对齐上游取值。
- 签名链路(signPlayback/medusa/deviceProto/processNonce)与版本钉(73932/7.3.9.32)经逐字段对拍与上游完全一致,未改动。
升级提示:安装后请完全退出 App 再冷启动一次(旧 identity.json 会被自动忽略,无需手动清理)。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.41
红果TV v1.0.41
账号双向同步(v1.0.32~41 累积)
- 手机红果 App ↔ 电视端全量双向同步:收藏、观看记录、我的预约
- 预约独立成页(导航栏"最近观看"后):已上线可播放,待上线显示卡片与上线时间
- 删除语义:电视端删除记录/取消收藏不再被手机端"复活"(tombstone 机制;重新观看/收藏自动撤销)
- 同步失败可见(提示条 + 自动重试),进入收藏/最近观看/预约页 90 秒节流自动同步
- 协议限制说明:云端无"删除观看记录"端点(上游也没有),观看记录删除仅本机生效
封面显示修复(v1.0.38)
- 修复同步来的收藏/最近观看/预约的剧集封面在 Android 7/8 电视上全部空白的问题
- 根因:账号接口返回 HEIC 格式封面(HEIF 解码需 Android 9+);现改写为 byteimg 无签名 JPEG(同一图源,永不过期)
- 旧版本已同步的数据同样自动修复
焦点修复(v1.0.39~41)
- 预约页"刷新预约"不再跳回首页,刷新后焦点停在原位,状态行实时显示读取进度
- 从导航栏滑到"我的预约"后,数据加载完成不再把焦点抢到第一张卡片——后台数据落地永远不移动用户焦点
- 未登录点"刷新预约"现在会弹出提示(原来静默无反应)
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.30
红果TV v1.0.30
播放诊断增强:错误信息携带请求路径明细。
更新内容
- 播放错误诊断行:播放失败时错误信息携带本轮每条请求路径的结果明细(接口类型 · 主机代号 · HTTP 状态 · 响应字节数 · 协议),电视上截图即可精确定位是哪条路径、哪个主机返回了什么,不再需要连接电脑抓包。诊断信息不含任何地址、请求头或设备参数,无隐私泄露风险。
- 片尾预取提速:后台预取下一集的超时预算收紧(连接 4 秒 / 读取 4 秒 / 总计 8 秒),慢请求不再占用片尾预取窗口,预取命中率更高。
- 空响应错误信息同时标注身份轮换状态(已轮换/轮换失败),配合诊断行可区分"路径问题"与"身份问题"。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.29
红果TV v1.0.29
连播修复:签名算法修正 + 换集自愈 + 片尾预取。
更新内容
- 修复"只能播一集"(关键修复):与上游最新实现逐行对拍,发现并修复三处签名算法错误(hash 扩展轮取值、签名分支选择、medusa 报文指纹字段)。修复后用上游 12 组固定测试向量逐一验证,全部通过。此前签名虽能通过校验但与官方客户端存在可辨识差异,是风控识别的重点。
- 换集自愈(轮内身份轮换):服务端按"设备身份 × 接口路径"限制请求次数,一个身份的额度用完后所有请求返回空数据。本版在额度耗尽时立即更换设备身份并在同一次调用内重试——换集失败从"等半分钟报错"变为"一次调用内自动恢复"。
- 片尾预取下一集:播放临近片尾时后台提前获取下一集片源(只走主播放刚成功的路径,不额外消耗额度),换集瞬间起播。
- 路由健康记忆:记住每条接口路径的最近结果,刚返回空数据的路径 30 秒内不再重试,成功过的路径优先——不再反复撞已知死路浪费额度。
- 进程级缓存:播放模型缓存 10 分钟有效且全进程共享,切回刚看过的集直接命中,零请求。
- 设备身份持久化:重启应用不再重新注册,减少注册接口消耗。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.23
红果TV v1.0.23
播放接口修复:请求签名 + 解析防御。
更新内容
- 播放请求加签名(关键修复):服务端已开始强制播放接口校验请求签名(x-gorgon/x-khronos/x-ladon/x-argus/x-helios/x-medusa 六头签名链)。此前播放请求不签名也能通过,本次风控升级后不签名的请求全部返回空数据——表现为"官方 APP 能看、本应用无法播放"。本版为两条播放路径(video_tab 与旧接口)全部加上签名链,与官方客户端行为对齐。
- 解析失败防御:服务端风控有时返回非空但非 JSON 的内容(拦截页),此前会导致解析异常直接打断播放通道切换。本版将解析失败转为友好提示,并保证三通道切换链(App API → 旧接口 → 网站 MP4)完整走完,任何单通道失败不再影响后续通道。
- 播放失败页诊断信息保留(机型 · 系统版本 · 应用版本 · 恢复计数 · 错误类别),截图即可定位问题。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.20
红果TV v1.0.20
播放失败页新增结构化诊断信息。
更新内容
- 播放失败页诊断行:播放失败时,错误页新增一行结构化诊断信息(机型 · 系统版本 · 应用版本 · 恢复计数 · 错误类别),截图即可定位失败根因,不再折叠为笼统提示。错误类别区分:播放器错误码(exo=)、接口空响应(empty,含身份轮换标记 rotated=1)、设备注册失败(register)等。
- 修复部分电视上播放失败提示无法定位原因的问题(模拟器正常、电视失败的场景现可通过诊断行区分解码/网络/证书根因)。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.19
红果TV v1.0.19
播放接口修复:身份轮换自愈 + bytevc2 兼容模型。
更新内容
- 播放身份轮换自愈:服务端会按设备身份选择性屏蔽播放接口(被屏蔽身份所有域名持续空响应,换域名无法逃逸,只有全新身份能恢复)。本版在连续两轮空响应后(约 25 秒)自动重新注册一次匿名设备身份再继续恢复——被屏蔽时从"耗尽恢复预算失败"变为约 25–35 秒自动恢复。任何一次播放成功即复位;同一失败期至多轮换一次;轮换后仍失败照旧走原有 3 次自动恢复。
- bytevc2 兼容模型:当片源所有档位都是电视无法解码的 bytevc2 编码时,自动用官方播放器的兼容路径(codec_type=0 + force_codec=h264)再取一次片源,实测可取回可播的 H.265/H.264 档位。至多一次额外请求,有可用档位不触发。
- 播放失败诊断信息在已轮换身份后仍失败时带
rotated=1标记,截图反馈可定位。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.18
红果TV v1.0.18
更新内容
- 播放接口迁移:播放主通道切换到官方新接口(video_tab),修复近期播放失败;清晰度仍为 1080P(新接口当前仅提供这一档可播放资源)
- 题材条带修复:题材分类条带如实显示网站分类列表,移除"穿越"题材入口(该题材的数据源已全部失效:AI 分类页不存在、AI 剧搜索无结果、feed 通道被风控间歇性拦截)
- 死代码清理:移除 AI feed 通道(dragon UA、本地过滤、36 行轮次)等已失效链路
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。
红果TV v1.0.17
红果TV v1.0.17
本版累计十二项修复与功能,覆盖更新器、播放/推荐接口、穿越题材链路、焦点操作与收藏管理。
更新与网络
- 更新器国内镜像修复:镜像链重排扩充为 5 通道(GitHub 直连 → ghfast.top → gh.llkk.cc → gh-proxy.com → ghproxy.net),实测可用镜像优先;请求 UA 补浏览器前缀(裸 UA 被部分镜像 403)。
- GitHub 直连快速失败:直连通道检查 8 秒超时(原 25 秒挂等),不通立即降级镜像;直连下载按体量动态限时,镜像保持宽松超时。
播放与推荐接口(服务端风控应对)
- 设备注册链路:播放与推荐请求携带服务端注册身份(device_register),未注册 device_id 自 10 月底起一律返回空数据。
- 版本钉版 73932:feed 请求版本号与注册链路对齐(原 73532 已被服务端拉黑)。
- AI 剧 feed 专用 UA:ai_series 通道只认 com.dragon.read UA(番茄读书产品线),其余链路保持 phoenix.read。
- feed 凑满循环中途容错:续翻轮空响应不再丢弃已收集剧集,整页报错降级为部分内容。
- AI 通道每轮 36 行:单轮产出翻倍,请求轮数与风控暴露减半。
穿越题材
- 真人剧穿越迁移网站搜索:215 部、真分页几十页、无风控无签名,彻底绕开 App 接口;genre=205 过滤保证纯真人剧。
- 穿越条目前置:条带里紧跟"全部"第一位,不再埋在 26 个按钮末尾。
- 空分类容错:服务端无内容的分类(如动作冒险)显示空页面,不再误报"分页信息异常"。
- 每页三页合并:搜索每页 10 行合并为每主题页约 27 部,网格密度与其它题材一致。
- 题材持久化缓存:题材列表与"全部"一样落盘缓存(7 天),切换题材秒显上次列表、后台静默刷新。
焦点操作
- 题材条带焦点循环:右到尾跳回最前、左到头跳到最后,条带滚动自动跟随。
- 首页分区焦点循环:接着看/热门发现各分区行内首尾互指;焦点卡片超出可视窗时行自动滚动跟随;循环跳转直接生效,不再受 HorizontalScrollView 半屏距离检查拖累(长行不再"按两下")。
收藏管理
- 收藏页管理功能:新增"管理收藏"按钮,可单条取消收藏(进度保留)或一键清空全部收藏(观看记录保留),与"最近观看"页的管理记录体验一致。
安装
与上一版同签名,可直接覆盖安装,收藏与观看记录保留。Android 7.0+(API 24)。
派生来源
GPL-3.0-only。派生自 N3urda/hongguoTV,详见 NOTICE.md。本应用不是内容平台官方客户端,仅供学习交流。