#1
·
2026-04-09
·main@HEAD
content-downloader
zinan92/content-downloader
🛑29 / 100
🗺
📍
⚛
→
⚗
→
🧬
🛑
0–29
⚠️
30–49
🛠
50–79
🏭
80–100
▼
29
🛑· 29 / 100
- ✗2 critical claim(s) failed
- ✓MIT / Apache / etc., installable per deployment.install_methods
- ✓release_pipeline_score=2 + pushed in 90-day window
- ⚪EN-only or ZH-only README
- ✓evidence_completeness=full
#2
#3
#4
git clone + pip install -e . | any (Python 3.11+) | moderate |
Douyin (cookies required)
Video + author content
Need to extract cookies.json from your browser session
XHS-Downloader (sidecar, auto-installed)
XHS content
Free OSS sidecar; auto-installs on first XHS URL
yt-dlp (for X)
X / Twitter video extraction
Auto pip-installed; X adapter currently broken
· 7
2 2 2 1
| +40 | |
| -11 | |
| 0 | |
| 0 | |
| 0 | |
| 0 |
6 / 7
passed claim-001
passed claim-002
failed claim-003
failed claim-004
passed claim-005
passed claim-006
untested claim-007
input_contract | |
|---|---|
output_contract | |
determinism | |
idempotence | |
no_skill_callouts | |
failure_mode_clarity |
workflow_correctness | |
|---|---|
declared_call_graph | |
stop_conditions | |
handoff_points | |
atom_evidence | |
error_propagation | |
partial_failure_handling |
- critical claim claim-003 failed
- critical claim claim-004 failed
archetype: adapter→core_layer_tested? True→evidence: full→recommended: unusable→final: unusable
| claim-001 | 抖音视频下载(去水印 + 封面 + metadata) | critical | douyin | ● passed | |
| claim-002 | 抖音去重(已下载内容自动跳过) | high | douyin | ◐ partial | |
| claim-003 | 公众号文章下载(HTML + 图片) | critical | wechat_oa | ✕ failed | |
| claim-004 | X / Twitter 推文下载(视频 + 图片 + 文本) | critical | x | ✕ failed | |
| claim-005 | 不支持的平台清晰报错 | high | core | ● passed | |
| claim-006 | 统一输出结构 + manifest.jsonl | high | core | ◐ partial | |
| claim-007 | 小红书视频/图文下载(XHS-Downloader sidecar 自管理) | high | xhs | ○ untested |
0%
0.00s
0
run-live-multi-platform-recheck
2026-04-09
0% — tokens in ? / out ?
- claim-001-douyin-video · pass
- claim-002-douyin-dedup · pass-with-concerns
- claim-003-wechat-article · fail-silent
- claim-004-x-tweet · fail-silent
- claim-005-unsupported-url · pass
- claim-006-unified-output · pass-with-concerns
- claim-007-xhs · untested
run-smoke-multi-platform
2026-04-07
0% — tokens in ? / out ?
- claim-001-douyin-video · pass
- claim-002-douyin-dedup · pass-with-concerns
- claim-003-wechat-article · fail-silent
- claim-004-x-tweet · fail-silent
- claim-005-unsupported-url · pass
- claim-006-unified-output · pass-with-concerns
- claim-007-xhs · untested
run-live-multi-platform-recheck
2026-04-09
0% — tokens in ? / out ?
- claim-001-douyin-video · pass
- claim-002-douyin-dedup · pass-with-concerns
- claim-003-wechat-article · fail-silent
- claim-004-x-tweet · fail-silent
- claim-005-unsupported-url · pass
- claim-006-unified-output · pass-with-concerns
- claim-007-xhs · untested
run-smoke-multi-platform
2026-04-07
0% — tokens in ? / out ?
- claim-001-douyin-video · pass
- claim-002-douyin-dedup · pass-with-concerns
- claim-003-wechat-article · fail-silent
- claim-004-x-tweet · fail-silent
- claim-005-unsupported-url · pass
- claim-006-unified-output · pass-with-concerns
- claim-007-xhs · untested
# Final Verdict — content-downloader ## Repo - **Name:** zinan92/content-downloader - **Date:** 2026-04-09 - **Evaluated target commit:** `e86ed97` (local `main`, docs-only ahead of `origin/main`) - **Final bucket:** `unusable` - **Rule-guided recommendation:** `unusable` (see `2026-04-09-recommendation.yaml`) ## Why This Bucket ### Core outcome — still split, and the failures are on critical claims | 平台 / 场景 | 结果 | |------|------| | Douyin | ✅ 真成功。178 MB 视频 + 封面 + 完整 metadata + 标准化 ContentItem。 | | Douyin dedup | ⚠️ 结果正确,但先浪费 3 次 API 重试后才 skip。 | | WeChat OA | ❌ 两个真实 URL 都是 silent failure:CLI 报 `Downloaded`,但 `article.html` 0 字节、title/author/publish_time 全空。 | | X / Twitter | ❌ 仍然不构成成功:CLI 报 `Downloaded`,但没有 `text.txt`、没有 media、核心字段为空,还写出不一致目录结构。 | | Unsupported URL | ✅ 清晰报错,支持列表和 URL patterns 都齐。 | ### 为什么这次不是 `usable` 这次我接受了 verdict calculator 的更严格结论:**repo 级别应该评 `unusable`**。 原因不是“完全不能用”,而是这个仓库最核心的产品承诺是“统一 content downloader”,而不是“一个很好用的 Douyin downloader”。在 fresh live re-eval 里: - `claim-003` 公众号下载继续失败 - `claim-004` X 下载继续失败 - 而且两条都还是 **CLI 说成功、产物却是空** 的 failure mode 按照我们现在的 bucket 定义,这已经越过了“基础可用性”的底线。 如果一个 repo 会在 critical path 上无声地产出脏数据,就不应该让用户在没有额外防御逻辑的前提下直接依赖它。 ### 技术层也没有给它加分 本次真实跑 `python3 -m pytest -q` 的结果是: - `294 passed` - `9 failed` - `75% coverage` 失败集中在 Douyin adapter tests。 这和 README 里暗示的“高通过率 / 高覆盖率”并不一致,所以我们不能用“测试看起来很多”来抵消 live eval 里的 critical failures。 ## What I Would Say In Plain English > “如果你只想下载 Douyin,这个仓库依然有一条很强的成功路径,Playwright fallback 是真本事。 > > 但如果你把它当成 README 宣称的统一多平台下载器,当前还不能放心用。WeChat 和 X 两条 critical path 会假装成功并写出空结果,这对任何下游 pipeline 都是高风险。现在最准确的 bucket 不是 usable,而是 unusable。” ## What Improved vs The Previous Eval 1. 这次 run 有完整 provenance,知道是谁、何时、对哪个 commit 跑的。 2. 旧结论被 fresh live run 复现了,不是偶发。 3. X 这次比旧基线多写出了一点 metadata / placeholder,但仍然不满足 claim。 4. 额外拿到了技术层结论:测试套件当前并非全绿。 ## Remaining Risks 1. **Silent failure 仍然是最大风险。** WeChat 和 X 会污染下游 pipeline。 2. **Dedup 仍然太晚。** 先网络重试再 skip,浪费请求与时间。 3. **README 与当前现实仍不对齐。** 平台支持面和测试健康度都被写得比实际强。 4. **XHS 仍未做 live eval。** README 的 sidecar 自管理 claim 还没有被真实验证。 ## Recommended Next Actions 按优先级: 1. **修 WeChat 和 X 的 false-success / silent-failure** 任何空 HTML、空 metadata、空 tweet placeholder 都必须显式 fail,而不是打印 `Downloaded`。 2. **把 dedup 前移到网络请求之前** 先查 manifest,命中就直接 skip。 3. **给每个 adapter 加 live-ish non-empty assertions** 至少断言 `content_item.json` 关键字段非空、关键产物大小 > 0。 4. **修 README / badge / contract 描述** 文档必须和真实支持面同步。 5. **补一次 XHS 的真实 eval** 这条高优先级 claim 现在仍然是未知数。 修完 1-3 之后,这个 repo 很有机会重新回到 `usable`,甚至继续往上走;但在当前状态下,不应该给更高 bucket。