Skip to content

视频号下载改走 resolver /direct 直连拼接 - #68

Merged
zj1123581321 merged 4 commits into
mainfrom
card/wechat-direct
Sep 2, 2026
Merged

视频号下载改走 resolver /direct 直连拼接#68
zj1123581321 merged 4 commits into
mainfrom
card/wechat-direct

Conversation

@zj1123581321

Copy link
Copy Markdown
Collaborator

背景

视频号联调实测:VTA 生产(n305)到 resolver(fordeal)之间走 Tailscale DERP 中继仅 ~15KB/s,经 resolver 流式端点中转 415MB 视频不可行(Fixes #67 的推荐方案落地后仍受链路速度制约)。

改动

resolver 新增 GET /api/stream/wechat_channels/{sph_code}/direct(上游 f66787d 已生产可用)返回解密文件头 + 微信 CDN 直链;本 PR 让 VTA 的视频号下载改为直连拼接:

  • MediaResolverClient.fetch_wechat_direct:调 /direct,校验扁平 JSON(sph_code 回显、正整数字段、head_b64 长度),错误映射与 resolve() 同语义
  • MediaResolverDownloader.download_file 识别 resolver 视频号流式 URL(netloc 匹配 + path 正则)后走 _download_wechat_direct:写解密头(ftyp 校验)→ CDN Range 拉身子 → 断流/410 等换链续传(≤5 次,零进展放弃)→ 总字节数校验
  • 安全:cdn_url(含时效 token)不进日志/异常/持久化;CDN 请求不带 X-API-Key;每次请求前过 SSRF 校验
  • 抖音/小红书等其他平台路径未动

验证

  • uv run pytest tests/unit:2805 passed
  • 新增 11 场景用例(tests/unit/test_media_resolver_wechat_direct.py 等),含断流续传 Range 断言、换链、日志无 token 断言
  • 红验:新测试文件拷到 base commit(4e0a5ab)运行全部失败

联调计划

合并部署 n305 后用 https://weixin.qq.com/sph/AHaM8SrlXX(2 小时视频)跑真实联调。

Task-Id: VideoTranscriptAPI-20260902-04

Agent-Executor: cursor
Agent-Model: cursor-grok-4.6-high
Dispatch-Id: dlg-20260902-104254-d684c2
Task-Id: VideoTranscriptAPI-20260902-04
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Required Gate v2 — 状态面板

当前状态:pass · 可合并

当前裁决:code_pass / primary_pass

Gate 历史(v1;来源为持久化 gate_terminal 制品)

Run Attempt Head 状态 收件人动作
33629309739 1 b2d67c3 skipped 无需动作(主审未跑,绿≠过审)
33632551707 1 adf870a skipped 无需动作(主审未跑,绿≠过审)
33633817267 1 ba9f80b unavailable 修基础设施
33634300960 1 ba9f80b fail 要修代码
33637728206 1 5fdbead pass 可合并

历史行按 run_id + run_attempt 去重并只增不删;删除本评论后可由 gate_terminal 制品重建。

Agent-Executor: kimi
Agent-Model: kimi-code/k3-256k
Agent-Effort: high
Dispatch-Id: dlg-20260902-122616-64c9fb
Task-Id: VideoTranscriptAPI-20260902-05
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

⚙️ Review ledger state(机器状态记录,非评审结论)

这是 review ledger 的机器状态记录,不代表评审结论,通常无需任何操作。

机器状态明细
  • Commit: 5fdbead128175f757e44c15af010ab605382a6bb
  • Round: 4
  • Status / findings: pass / 2
  • Reviewer: codex-sub
  • Comparison: new_head; persistent/resolved/new = 0/0/2

完整数据保存在 codex-review-ledger-v2 artifact;此 sticky comment 仅保存 v2 epoch 的跨 rerun 连续游标。

Agent-Executor: grok
Agent-Model: grok-4.6
Agent-Effort: unknown
Dispatch-Id: dlg-20260902-125054-3011bf
Task-Id: VideoTranscriptAPI-20260902-06
Co-authored-by: Cursor <cursoragent@cursor.com>
Agent-Executor: cursor
Agent-Model: cursor-grok-4.6-high
Agent-Effort: unknown
Dispatch-Id: dlg-20260902-131907-98654a
Task-Id: VideoTranscriptAPI-20260902-04
@zj1123581321
zj1123581321 merged commit aa5b969 into main Sep 2, 2026
10 checks passed
@zj1123581321
zj1123581321 deleted the card/wechat-direct branch September 2, 2026 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

下载 MediaResolverAPI 视频号流时按 Range 续传(纵深防御)

1 participant