youniube / zhenguo-app
git clone https://github.com/youniube/zhenguo-app.git
v0.2.171 · 2d ago
红果鉴 / 真果鉴 Flutter 多端应用:直播 、自定义API弹幕
—
stars, 24h
+26
stars, 7 days · #1,459
+26
stars, 30 days · #9,697
26
★ total · +26% this week
7
forks · 2 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageDart
License—
Created2026-10-13 (7d ago)
Last pushtoday
Watchers0
OwnerUser
Links
README excerpt
# 红果鉴 / 真果鉴 Flutter 多端独立短剧应用,原名“短剧库 APP”。站源请求、解析、下载和播放均在设备上完成。当前开发版本:**0.2.181+2194**。本次更新:**完整接入小苹果与蜜果,保留多线路、分页搜索和分类筛选**。本轮为待设备验收的开发快照;按本次推送与测试包要求执行本地检查,并跟踪两版 Android 和未签名 iOS 测试包构建,产物与构建状态以 GitHub Actions 为准;最近正式版为 v0.2.171。 ### 本轮适配与验证(0.2.181,待设备验收) 将用户提供的小苹果 JavaScript 和暗夜蜜桃 Python 协议迁入 Go 设备端核心,不依赖脚本解释器或转接服务。小苹果追加在普通站源组末尾;暗夜蜜桃统一显示为“蜜果”,追加在绿色模式会隐藏的站源组末尾。蜜果使用独立的 `miguo-honey` 标识,原有“米果”保持独立。默认红果鉴不开放这两个站源,真果鉴沿用已有用户权限与绿色模式规则。 小苹果包含剧集、电影、综艺、动漫、短剧、4K 专区、奈飞专区,保留最新 / 最热 / 评分排序、4K 分组和奈飞地区筛选。内置原脚本的 RSA 公钥、AES 参数及 RRSP 签名和解密参数,原生发送二进制 Protobuf 请求,按同一分集归并源站线路并在播放前刷新 token;RRSP 单独签名与解密,坏线路不覆盖有效线路,缺失集数明确报错。 蜜果包含视频、短剧、红桃、擦边、动漫、国产、黑料、HBO、直播九个频道及原脚本全部分类选项;保留厂牌与二级筛选的来源映射。会话 ID、密钥和签名经握手与挑战验证自动获取,保存在进程内,过期或收到 401 时重新握手一次;用户无需填写临时 token。播放保留接口实际返回的直连与代理,按原脚本优先使用非直连预览代理,锁定分集与预览线路明确标注试看,未返回的线路不补造。 分类栏新增“分类筛选”入口,切换厂牌时清理不适用的下级选项,筛选与未筛选结果使用独立缓存;电视遥控器可从分类行进入筛选。两源接入既有详情、选集、手动切线、失败换线、下载和站源管理;M3U8 查询参数标识沿播放与下载链路识别,Referer 和 User-Agent 随媒体请求保留。DASH 地址交给播放器直连处理,当前离线下载仅支持 M3U8 / MP4 等既有格式,DASH 下载返回明确提示。 新增仅使用本机合成数据的回归用例,覆盖二进制请求、分集与线路归并、坏线路隔离、蜜果握手和 401 刷新、签名、分模块搜索、代理与试看、RRSP 加密响应和缺集拒绝、HLS 查询参数与下载清单、DASH 播放请求头、分类参数、缓存隔离、源分组和 TV 筛选入口。推送前通过 Go 1.24.1 的 vet、默认 / 全站源版 Go 全量测试及后续 RRSP / HLS 定向复验,22 项构建脚本检查(Windows 跳过 2 项平台用例)、锁定依赖解析和 192 个 Dart 文件格式检查;Dart 分析无错误或警告,保留 10 项既有提示。与既有 Actions 一致的 Flutter 检查通过 114 项,新增的 5 项用例在默认版与全站源版分别通过,共 124 项执行,新增用例已纳入 Actions。开发检查不请求、下载或分析真实站源图片;真实接口可达性与 Android / Windows / iOS 设备播放仍待集中验收。两版 Android / 未签名 iOS 测试包随本次推送构建,最终状态以对应 Actions 为准。 首次 Actions 的全部检查、两版 Android 和红果 iOS 已成功;真果 iOS 在排队约 15 分钟后被 GitHub 取消,注释明确为 macOS ARM 运行器容量不足,多次尝试仍未取得运行器,未进入编译。单项重试仍在排队后,iOS 任务改为 GitHub 官方标准 `macos-15-intel` 运行器,继续使用相同脚本、完整检查及 iPhone ARM64 编译目标。应用版本维持 `0.2.181+2194`,构建恢复状态以随后 Actions 为准。 ### 本轮修复与验证(0.2.180,待设备验收) 直播页三点按钮和全屏播放页“自动画质”此前分别维护播放菜单,0.2.178 未覆盖直播页三点入口。现将两个入口统一接入 `showYspPlaybackMenu`,保留原有弹窗高度、菜单样式、选项顺序和操作回调,仅将菜单内容放入滚动视图。竖屏能容纳时保持原有排列;横屏或字体较大时可以向上滚动,查看并点击最下面的“订阅分享与诊断”。底部安全区域位于滚动视图外,滚动到底时为系统 Home 指示条保留空间。 按本次推送与测试包构建安排,本地通过 Go 1.24.1 的 vet、默认 / 全站源版 Go 全量测试、22 项构建脚本检查(其中 2 项平台用例在 Windows 跳过)、锁定依赖解析及 191 个 Dart 文件格式检查。Dart 分析无错误或警告,保留 10 项既有提示;与 Actions 一致的 Flutter 检查通过 114 项,其中新增 3 项回归覆盖竖屏四项可见及点击、横屏三点菜单和全屏菜单上滑后点击最后一项,并检查底部安全区域。这 3 项菜单用例已纳入 Actions;开发验证使用合成数据并禁用远程图片。测试包由本次普通推送触发既有 Actions 检查和构建,实际构建结果以 Actions 为准;iOS / Android 实机滚动和点击效果仍待验收。 ### 本轮修复与验证(0.2.179,待设备验收) 黄果视频、黄果网页及黄果旧 API 在返回 HLS 主播放列表时,按列表中的分辨率登记可用档位,自动播放优先最高分辨率,同档优先较高码率;手动选择已有档位时明确保留该档的视频与关联音轨。各档继续使用源站最终播放列表地址和相同的媒体请求链路,保留相对地址、签名参数、Referer、Cookie 会话与密钥凭证;修正同一主播放列表的不同画质被线路去重合并的问题。源站未提供的档位不补造;只有单一视频流或缺少分辨率时保持未知清晰度,不能从地址名称推断为 720P / 1080P。不可用的已保存偏好仍回退当前可用最高档。 手机和 Windows 控制栏改用解码器报告的原始宽高显示实际分辨率,例如 `406×720` 或 `1280×720`,并为完整尺寸预留按钮宽度;清晰度面板与 TV 播放设置分别显示实际分辨率、源站档位和画质偏好。切集、切换画质及重新取流时清空上一段媒体的尺寸,新的解码参数到达后刷新控制栏及已打开的设置面板,并把实际分辨率记入播放诊断。源站只开放 480P / 720P 或锁定 1080P 时,本次修复不会改变站源权限或恢复源片已经丢失的细节。 补充合成数据用例,覆盖最高档与同档码率选择、手动选档、缺失分辨率、签名和音轨保留、重定向基址、同 URL 多画质、实际解码尺寸与画质偏好区分,以及设置面板内动态更新和切换后的旧尺寸清理。测试中的解码尺寸与显示尺寸由 `ScriptedPlayer.videoSize` 分别注入,受保护的视频参数控制器只在测试播放器子类内部访问,修复 `invalid_use_of_protected_member` 导致 CI 在静态分