
=== 2026-05-01 10:07:01 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260501-100701-7630af --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260501-100701-7630af' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260501-100701-7630af.yaml
[step075] cache hit: song_pgc.mp3 → 2efeedce0de3

======================================================================
music-pipeline3000 v2 | 1 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[10:07:03] 🏥 Health check...
[10:07:04] ✅ qishui: OK
[10:07:04] ✅ netease: OK
[10:07:04] ✅ qq: OK

[10:07:04] 🔍 [01_牵丝戏_20260501] Step 0: Fetching...
[10:07:08] ✅ [01_牵丝戏_20260501] Step 0: netease | 408c
[10:07:08] ⬇️  [01_牵丝戏_20260501] Step 0.5: Download from netease...
[10:07:14] ✅ [01_牵丝戏_20260501] Step 0.5: 4726327 bytes | 239.3s
[10:07:14] 🔬 [01_牵丝戏_20260501] Step 0.75: Audio features...
[10:07:14] ✅ [01_牵丝戏_20260501] Step 0.75: BPM=86.0 Key=D minor (56.7s)
[10:07:14] 🧠 [01_牵丝戏_20260501] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-01T02:07:14.250Z", "trace_id": "batch-20260501-100701-7630af", "song_key": "01_牵丝戏_20260501", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/01_牵丝戏_20260501/song_pgc.mp3", "has_features": true}}
[step1] cache hit: song_pgc.mp3 → 27bf3f8c9a73 (saving 1 Gemini call)
{"__trace__": true, "ts": "2026-05-01T02:07:14.306Z", "trace_id": "batch-20260501-100701-7630af", "song_key": "01_牵丝戏_20260501", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 44.9, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-01T02:07:14.306Z", "trace_id": "batch-20260501-100701-7630af", "song_key": "01_牵丝戏_20260501", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 0.056}
[10:07:14] ⚠️  [01_牵丝戏_20260501] Step 1.5: prompt 1121c > 1000c, compressing...
  📏 [01_牵丝戏_20260501] prompt 1121c → 916c (smart truncate)
[10:07:14] ✅ [01_牵丝戏_20260501] Step 1.5: prompt compressed 1121c → 916c
[10:07:14] ✅ [01_牵丝戏_20260501] Step 1: 44.9s | prompt=916c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 9s (0.2min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260501-100701-7630af → +0 新增, ~0 更新 | 总计 621 首
[exit 0]

=== 2026-05-01 10:07:14 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af --profile __runtime_batch-20260501-100701-7630af --resume-mode each --skip-feishu ===
[phase2] batch=batch-20260501-100701-7630af pending=1 groups=1
[phase2] group 1/1 -> 01_牵丝戏_20260501
[profile] ✅ Loaded profile '__runtime_batch-20260501-100701-7630af' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260501-100701-7630af.yaml
[phase2] 🌐 01_牵丝戏_20260501: target_language=auto
[phase2] resume -> /usr/bin/python3 /srv/repos/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af --profile __runtime_batch-20260501-100701-7630af --skip-feishu
[10:07:15] 🌐 [01_牵丝戏_20260501] Step 2: target_language=auto → lang_mode=AUTO
[10:07:15] 🤖 [01_牵丝戏_20260501] Step 2 API: 11053 chars ≈ 2763 tokens → claude-sonnet-4-6
[10:07:52] ✅ [01_牵丝戏_20260501] Step 2 API: 《雁归无处觅旧颜》 | 37.8s | in=7713 out=2256 | ~$0.057
{"timestamp": "2026-05-01T10:07:14.849433+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af", "profile": "__runtime_batch-20260501-100701-7630af", "concurrency": 3, "resume_mode": "each", "pending_song_count": 1, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/01_牵丝戏_20260501"], "success_count": 1, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/01_牵丝戏_20260501", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/01_牵丝戏_20260501/step2_json_b.json", "agent_summary": "API direct: 雁归无处觅旧颜", "returncode": 0, "stderr": "", "attempt": 1, "attempts": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/01_牵丝戏_20260501", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af/01_牵丝戏_20260501/step2_json_b.json", "agent_summary": "API direct: 雁归无处觅旧颜", "returncode": 0, "stderr": "", "attempt": 1}]}]}], "resume": {"status": "success", "returncode": 0, "stdout_tail": "\n======================================================================\nmusic-pipeline3000 v2 | 1 songs\n======================================================================\nGemini concurrency: 2 | Suno concurrency: 3\nOutput: /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[10:07:54] 🏥 Health check...\n[10:07:57] ✅ qishui: OK\n[10:07:57] ✅ netease: OK\n[10:07:57] ✅ qq: OK\n\n  📝 [01_牵丝戏_20260501] lyrics stripped: 3208c → 3202c\n[10:07:57] 🎵 [01_牵丝戏_20260501] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[10:07:57] 🎨 [01_牵丝戏_20260501] Step 4: SeeDream cover (parallel)...\n  ✅ submitted: ['71c0380e', 'fb1850d8']\n  🎵 71c0380e... → submitted\n  🎵 fb1850d8... → submitted\n  🎵 71c0380e... → queued\n  🎵 fb1850d8... → queued\n  🎵 71c0380e... → streaming\n  🎵 fb1850d8... → streaming\n  🎵 fb1850d8... → complete\n  🎵 71c0380e... → complete\n[10:12:13]    🎧 [01_牵丝戏_20260501] Song 1: https://cdn1.suno.ai/71c0380e-330f-470a-9786-9eb26f580f04.mp3\n[10:12:13]    🎧 [01_牵丝戏_20260501] Song 2: https://cdn1.suno.ai/fb1850d8-1a5d-46e1-a870-4eef70025eb6.mp3\n[10:12:13] 🎛️ [01_牵丝戏_20260501] Step 3.5: 混音...\n[10:12:35]    🎚️ [01_牵丝戏_20260501] Song 1: pop | 低42/中54/高4%\n[10:12:52]    🎚️ [01_牵丝戏_20260501] Song 2: pop | 低40/中55/高5%\n[10:12:52] ✅ [01_牵丝戏_20260501] Step 3.5: 39.0s | 2 songs mixed\n[10:12:52] ⚠️  [01_牵丝戏_20260501] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 295s (4.9min)\n======================================================================\n✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260501-100701-7630af → +1 新增, ~0 更新 | 总计 622 首\n", "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260501-100701-7630af' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260501-100701-7630af.yaml\n", "summary": {"timestamp": "2026-05-01T10:12:52.118642+08:00", "wall_clock": 294.7, "total": 1, "success": 1, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-05-01 10:12:52 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/DMzpsYUEfhZNhItBQ23c4WfDn9b
[Feishu] 📐 Expanded master sheet from 562 to 663 rows
[Feishu] ✅ Appended 1 new songs to master sheet (rows 563-563)
[MasterDB] ✅ 批次 batch-20260501-100701-7630af → +1 新增, ~0 更新 | 总计 563 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/DMzpsYUEfhZN
[10:13:00] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [雁归无处觅旧颜] topic head sent (message_id=om_x100b50748c1c58a0b32a851ae4ff633)
[Feishu IM] ✅ [雁归无处觅旧颜] 雁归无处觅旧颜_V1_raw.mp3 replied
[Feishu IM] ✅ [雁归无处觅旧颜] 雁归无处觅旧颜_V1_mixed.mp3 replied
[Feishu IM] ✅ [雁归无处觅旧颜] 雁归无处觅旧颜_V2_raw.mp3 replied
[Feishu IM] ✅ [雁归无处觅旧颜] 雁归无处觅旧颜_V2_mixed.mp3 replied
[Feishu] ✅ Already on file server: /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260501-100701-7630af
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260501-100701-7630af

📊 https://ccnu62373cgc.feishu.cn/sheets/DMzpsYUEfhZNhItBQ23c4WfDn9b
[exit 0]
