0017 离线视频校验与按需复核
- 状态:已采纳
- 日期:2026-10-26
- 取代:0001 的每周联网全量巡检、0010 的自动统计写入入口
背景
issue #170 的 587 个视频中,569 个返回 HTTP 412,确认失效为 0;仅 18 个确定结果,可信覆盖率约 3.1%。原报告同时写着「结果不可信」和「没有发现失效视频」,容易误读为正常。
运行 40285428240 的联网步骤约 6 分 12 秒,runner 信息为 Azure eastus。旧配置是周一 02:00 UTC、串行 400ms、15 秒超时、匿名 buvid(不是账号登录态),没有缓存、退避或熔断。这些证据不能确证 IP 或速率是唯一根因,也不支持用账号/IP 轮换规避。
决定
- 同一个
check-videos.yml移除 schedule、联网调用和 issue 写权限,相关变更/手动触发只运行离线校验、mock 测试、报告 artifact 与 Actions summary。 - 默认命令离线。联网只允许本机显式选择最多 20 个视频或变更项,串行 5 秒间隔、15 秒超时;不获取 Cookie 或账号凭据,不自动重试。全目录复核建议最多月度、人工分批确认,不创建定时任务。
- HTTP 412/429、API -412/-429 停止并冷却 24 小时;连续三次未知也停止。缓存 7 天内的可信结果,持久化冷却,单工作区拒绝并行运行。
- 当次状态和历史可信记录分开。报告区分可用、确认失效、未知、未检查,列出去重后的目录/所选覆盖率及逐视频可信日期;低覆盖率不能称正常。未知/未检查不覆盖最后可信记录。
--stats不再支持;保留已提交的评分数据与算法,避免部分复核给整个评分文件盖上新的日期。巡检不自动改菜谱、链接、issue 或生产数据。
影响与验证
离线 Actions 成功仅表示静态校验和测试通过,不代表视频可用。网络质量或风控问题不会让静态 CI 失败;本机在线复核未完成时退出码为 2,并保存原因,不能将其解释为确认失效。
测试使用模拟响应覆盖可用、明确失效、超时、全 412、429、部分完成、去重、空输入、缓存/冷却及可信历史保留。修复期间暂停旧 workflow;只有 main 已包含离线实现后才恢复同一 workflow。历史 issue #170 保持原样,PR 仅引用。