
=== 2026-04-30 15:14:50 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260430-151450-68906d --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260430-151450-68906d' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260430-151450-68906d.yaml
[step075] cache hit: song_pgc.mp3 → 590baca16846

======================================================================
music-pipeline3000 v2 | 1 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[15:14:51] 🏥 Health check...
[15:14:53] ✅ qishui: OK
[15:14:53] ✅ netease: OK
[15:14:53] ✅ qq: OK

[15:14:53] 🔍 [01_酒醉的蝴蝶_20260430] Step 0: Fetching...
[15:14:58] 🔄 [01_酒醉的蝴蝶_20260430] Step 0: retry 1/2 in 5s...
[15:15:14] ✅ [01_酒醉的蝴蝶_20260430] Step 0: qq | 415c
[15:15:14] ⬇️  [01_酒醉的蝴蝶_20260430] Step 0.5: Download from qq...
[15:15:20] ✅ [01_酒醉的蝴蝶_20260430] Step 0.5: 5033509 bytes | 206.2s
[15:15:20] 🔬 [01_酒醉的蝴蝶_20260430] Step 0.75: Audio features...
[15:15:20] ✅ [01_酒醉的蝴蝶_20260430] Step 0.75: BPM=139.97 Key=F# minor (25.3s)
[15:15:20] 🧠 [01_酒醉的蝴蝶_20260430] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-04-30T07:15:20.205Z", "trace_id": "batch-20260430-151450-68906d", "song_key": "01_酒醉的蝴蝶_20260430", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d/01_酒醉的蝴蝶_20260430/song_pgc.mp3", "has_features": true}}
[step1] cache hit: song_pgc.mp3 → c8ec2799e5be (saving 1 Gemini call)
{"__trace__": true, "ts": "2026-04-30T07:15:20.246Z", "trace_id": "batch-20260430-151450-68906d", "song_key": "01_酒醉的蝴蝶_20260430", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 33.0, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-04-30T07:15:20.246Z", "trace_id": "batch-20260430-151450-68906d", "song_key": "01_酒醉的蝴蝶_20260430", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 0.041}
[15:15:20] ⚠️  [01_酒醉的蝴蝶_20260430] Step 1.5: prompt 1117c > 1000c, compressing...
  📏 [01_酒醉的蝴蝶_20260430] prompt 1117c → 878c (smart truncate)
[15:15:20] ✅ [01_酒醉的蝴蝶_20260430] Step 1.5: prompt compressed 1117c → 878c
[15:15:21] 🎯 [01_酒醉的蝴蝶_20260430] Mood rewritten with inspiration
[15:15:21] ✅ [01_酒醉的蝴蝶_20260430] Step 1: 33.0s | prompt=869c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 28s (0.5min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260430-151450-68906d → +0 新增, ~0 更新 | 总计 619 首
[exit 0]

=== 2026-04-30 15:15:21 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d --profile __runtime_batch-20260430-151450-68906d --resume-mode each --skip-feishu ===
[phase2] batch=batch-20260430-151450-68906d pending=1 groups=1
[phase2] group 1/1 -> 01_酒醉的蝴蝶_20260430
[profile] ✅ Loaded profile '__runtime_batch-20260430-151450-68906d' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260430-151450-68906d.yaml
[phase2] 🌐 01_酒醉的蝴蝶_20260430: 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-20260430-151450-68906d/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d --profile __runtime_batch-20260430-151450-68906d --skip-feishu
[15:15:21] 🌐 [01_酒醉的蝴蝶_20260430] Step 2: target_language=auto → lang_mode=AUTO
[15:15:21] 🤖 [01_酒醉的蝴蝶_20260430] Step 2 API: 12759 chars ≈ 3189 tokens → claude-sonnet-4-6
[15:15:45] ⚠️  [01_酒醉的蝴蝶_20260430] Step 2 API: originality 80% < 85% | 1 copied phrases
          ❗ "enters with the main, melancholic pentatonic hook.)" ~ "enters with the main, melancholic pentatonic hook.)" (100%)
[15:15:45] 🔄 [01_酒醉的蝴蝶_20260430] Step 2 API: originality retry 1/3...
[15:16:03] ⚠️  [01_酒醉的蝴蝶_20260430] Step 2 API retry 1: originality 84%
[15:16:03] 🔄 [01_酒醉的蝴蝶_20260430] Step 2 API: originality retry 2/3...
[15:16:22] ⚠️  [01_酒醉的蝴蝶_20260430] Step 2 API retry 2: originality 84%
[15:16:22] 🔄 [01_酒醉的蝴蝶_20260430] Step 2 API: originality retry 3/3...
[15:16:45] ⚠️  [01_酒醉的蝴蝶_20260430] Step 2 API originality retry 3 failed: Expecting value: line 1 column 1 (char 0)
[15:16:45] ⚠️  [01_酒醉的蝴蝶_20260430] Step 2 API: best originality 84% after 3 retries
[15:16:45] ✅ [01_酒醉的蝴蝶_20260430] Step 2 API: 《一个人挺好的（不稀罕你那份依靠）》 | 60.0s | in=36126 out=5219 | ~$0.187
{"timestamp": "2026-04-30T15:15:21.773942+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d", "profile": "__runtime_batch-20260430-151450-68906d", "concurrency": 3, "resume_mode": "each", "pending_song_count": 1, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d/01_酒醉的蝴蝶_20260430"], "success_count": 1, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d/01_酒醉的蝴蝶_20260430", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d/01_酒醉的蝴蝶_20260430/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-20260430-151450-68906d/01_酒醉的蝴蝶_20260430", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d/01_酒醉的蝴蝶_20260430/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-20260430-151450-68906d\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[15:16:47] 🏥 Health check...\n[15:16:48] ✅ qishui: OK\n[15:16:48] ✅ netease: OK\n[15:16:48] ✅ qq: OK\n\n  🎤 [01_酒醉的蝴蝶_20260430] Vocal override (replaced): Female\n  📝 [01_酒醉的蝴蝶_20260430] lyrics stripped: 2028c → 2022c\n[15:16:48] 🎵 [01_酒醉的蝴蝶_20260430] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[15:16:48] 🎨 [01_酒醉的蝴蝶_20260430] Step 4: SeeDream cover (parallel)...\n  ✅ submitted: ['bb28c41f', '577a448e']\n  🎵 bb28c41f... → submitted\n  🎵 577a448e... → submitted\n  🎵 bb28c41f... → queued\n  🎵 577a448e... → queued\n  🎵 bb28c41f... → streaming\n  🎵 577a448e... → streaming\n  🎵 577a448e... → complete\n  🎵 bb28c41f... → complete\n[15:18:41]    🎧 [01_酒醉的蝴蝶_20260430] Song 1: https://cdn1.suno.ai/bb28c41f-ff99-4804-99bc-67f2b4f53abb.mp3\n[15:18:41]    🎧 [01_酒醉的蝴蝶_20260430] Song 2: https://cdn1.suno.ai/577a448e-6653-4759-b224-30335fd012f9.mp3\n[15:18:41] 🎛️ [01_酒醉的蝴蝶_20260430] Step 3.5: 混音...\n[15:18:58]    🎚️ [01_酒醉的蝴蝶_20260430] Song 1: edm | 低70/中28/高3%\n[15:19:09]    🎚️ [01_酒醉的蝴蝶_20260430] Song 2: edm | 低51/中42/高6%\n[15:19:09] ✅ [01_酒醉的蝴蝶_20260430] Step 3.5: 27.7s | 2 songs mixed\n[15:19:09] ⚠️  [01_酒醉的蝴蝶_20260430] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 141s (2.3min)\n======================================================================\n✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260430-151450-68906d → +1 新增, ~0 更新 | 总计 620 首\n", "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260430-151450-68906d' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260430-151450-68906d.yaml\n", "summary": {"timestamp": "2026-04-30T15:19:09.604012+08:00", "wall_clock": 140.9, "total": 1, "success": 1, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-04-30 15:19:10 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/QL9bsDJ6PhHIKztCRCgcs2EYnXe
[Feishu] 📐 Expanded master sheet from 560 to 661 rows
[Feishu] ✅ Appended 1 new songs to master sheet (rows 561-561)
[MasterDB] ✅ 批次 batch-20260430-151450-68906d → +1 新增, ~0 更新 | 总计 561 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/QL9bsDJ6PhHI
[15:19:18] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [一个人挺好的（不稀罕你那份依靠）] topic head sent (message_id=om_x100b500469a019d0b3eaebec587fa43)
[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-20260430-151450-68906d
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260430-151450-68906d
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260430-151450-68906d

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