## Before / After | 场景 | Before | After | | --- | --- | --- | | 首轮下载 | 只看 `DONE ok=22 failures=...`,人工继续补 | 每轮都产出 `download_manifest.tsv`、`missing_or_unmatched.tsv`、`candidate_audit.tsv` | | 候选不足 | 先用 `/api/ss`,失败后临时发现 `/api/s/{q,m,n,k}` | 默认并行跑 `/api/ss` + QQ/咪咕/网易/酷我接口,并记录每个平台候选数 | | 验收 | 人工数文件,后来才发现缺 54 号和 5 首短音频 | `--check-only --source-dir <src> --output-dir <out> --min-duration 45 --qa-json qa_report.json`;缺号或短音频直接 exit 1 | | 交付口径 | “下载完了”容易漏掉错误匹配、短音频、登录弹窗 | 只有 `expected_count=55`、`missing_indices=[]`、`short_tracks=[]`、`unmatched=[]` 才能说完成 | ### 建议命令 ```bash python3 /Users/bytedance/Documents/learning-bu/.agents/skills/song-mp3-download/scripts/download_tonzhon_mp3.py \ --source-dir "/path/to/source" \ --output-dir "/path/to/out" \ --expected-artists "/path/to/expected_artists.tsv" \ --probe-duration python3 /Users/bytedance/Documents/learning-bu/.agents/skills/song-mp3-download/scripts/download_tonzhon_mp3.py \ --source-dir "/path/to/source" \ --output-dir "/path/to/out" \ --check-only \ --min-duration 45 \ --qa-json "/path/to/out/qa_report.json" ``` ### 成功信号 ```text total_expected 55 total_mp3 55 missing_indices none short_under_45s 0 unmatched 0 exit_code 0 ``` ### 失败信号 ```text missing_indices 54 short_under_45s 5 unmatched 3 exit_code 1 ``` 失败后不要重新开始整批任务,优先查看 `candidate_audit.tsv`,只对失败序号加 `--probe-duration --force` 或补 `expected_artists.tsv`。