
=== 2026-05-12 18:37:23 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260512-183723-55594e --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260512-183723-55594e' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-183723-55594e.yaml
[   INFO   ] MusicExtractorSVM: no classifier models were configured by default
[   INFO   ] On connection Flux::flux → IIR::signal:
[   INFO   ] BUFFER SIZE MISMATCH: max=0 - asked for read size 4096
[   INFO   ] resizing buffer to 36040/4505
[   INFO   ] FrameCutter: dropping incomplete frame
/usr/local/lib/python3.13/dist-packages/scipy/cluster/hierarchy.py:810: ClusterWarning: The symmetric non-negative hollow observation matrix looks suspiciously like an uncondensed distance matrix
  return linkage(y, method='ward', metric='euclidean')

======================================================================
music-pipeline3000 v2 | 2 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[18:37:25] 🏥 Health check...
[18:37:27] ✅ qishui: OK
[18:37:27] ✅ netease: OK
[18:37:27] ✅ qq: OK

[18:37:27] 🔍 [01_Merry-Go-Round_20260512] Step 0: Fetching...
[18:37:27] 🔍 [02_Butterflies_20260512] Step 0: Fetching...
[18:37:29] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping
[18:37:29] 🔄 [02_Butterflies_20260512] Step 0: retry 1/2 in 5s...
[18:37:30] ✅ [01_Merry-Go-Round_20260512] Step 0: netease | 44c lyrics
[18:37:30] ⬇️  [01_Merry-Go-Round_20260512] Step 0.5: Download from netease...
[18:37:36] ✅ [01_Merry-Go-Round_20260512] Step 0.5: 6080481 bytes | 311.2s
[18:37:36] 🔬 [01_Merry-Go-Round_20260512] Step 0.75: Audio features...
[18:37:37] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping
[18:37:37] 🔄 [02_Butterflies_20260512] Step 0: retry 2/2 in 10s...
[18:37:52] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping
[18:37:52] ❌ [02_Butterflies_20260512] Step 0: No audio URL
[18:38:16] ✅ [01_Merry-Go-Round_20260512] Step 0.75: BPM=163.6 Key=D minor (39.4s)
[18:38:16] 🧠 [01_Merry-Go-Round_20260512] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T10:38:16.229Z", "trace_id": "batch-20260512-183723-55594e", "song_key": "01_Merry-Go-Round_20260512", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/01_Merry-Go-Round_20260512/song_pgc.mp3", "has_features": true}}
  📊 Gemini official: 56s | prompt_tokens=13091 completion=1358
{"__trace__": true, "ts": "2026-05-12T10:39:12.499Z", "trace_id": "batch-20260512-183723-55594e", "song_key": "01_Merry-Go-Round_20260512", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 56.2, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-12T10:39:12.499Z", "trace_id": "batch-20260512-183723-55594e", "song_key": "01_Merry-Go-Round_20260512", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 56.27}
[18:39:12] ⚠️  [01_Merry-Go-Round_20260512] Step 1.5: prompt 1204c > 1000c, compressing...
  📏 [01_Merry-Go-Round_20260512] prompt 1204c → 884c (smart truncate)
[18:39:12] ✅ [01_Merry-Go-Round_20260512] Step 1.5: prompt compressed 1204c → 884c
[18:39:12] ✅ [01_Merry-Go-Round_20260512] Step 1: 56.2s | prompt=884c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 105s (1.8min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1
[MasterDB] ✅ 批次 batch-20260512-183723-55594e → +0 新增, ~0 更新 | 总计 694 首
[exit 0]

=== 2026-05-12 18:39:13 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e --profile __runtime_batch-20260512-183723-55594e --resume-mode each --skip-feishu ===
[phase2] batch=batch-20260512-183723-55594e pending=1 groups=1
[phase2] group 1/1 -> 01_Merry-Go-Round_20260512
[profile] ✅ Loaded profile '__runtime_batch-20260512-183723-55594e' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-183723-55594e.yaml
[phase2] 🌐 01_Merry-Go-Round_20260512: 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-20260512-183723-55594e/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e --profile __runtime_batch-20260512-183723-55594e --skip-feishu
[18:39:13] 🎨 [01_Merry-Go-Round_20260512] Step 2 Turn 1: generating creative brief...
[18:39:37] 🎨 [01_Merry-Go-Round_20260512] Step 2 brief: 24.1s | in=2188 out=1206
[18:39:37] ✅ [01_Merry-Go-Round_20260512] Step 2 brief: engine=B theme=一个人站在祖先曾经站过的同一块石头上，第一次意识到自己正在重
[18:39:37] 🌐 [01_Merry-Go-Round_20260512] Step 2: target_language=auto → lang_mode=EN | multi-turn
[18:39:37] 🤖 [01_Merry-Go-Round_20260512] Step 2 Turn 2: 36640 chars ≈ 9160 tokens → claude-sonnet-4-6
[18:40:31] ⚠️  [01_Merry-Go-Round_20260512] Step 2 API: originality 62% < 85% | 2 copied phrases
          ❗ "chord, creating a moment of bright hope before resolving back to the tonic minor.)" ~ "chord, creating a moment of bright hope before resolving back to the tonic minor.)" (100%)
          ❗ "chord, leaving the harmony completely unresolved and demanding the chorus.)" ~ "chord, leaving the harmony completely unresolved and demanding the chorus.)" (100%)
[18:40:31] 🔄 [01_Merry-Go-Round_20260512] Step 2 API: originality retry 1/3...
[18:41:26] ⚠️  [01_Merry-Go-Round_20260512] Step 2 API originality retry 1 failed: Expecting value: line 1 column 1 (char 0)
[18:41:26] ⚠️  [01_Merry-Go-Round_20260512] Step 2 API: best originality 62% after 3 retries
[18:41:26] ✅ [01_Merry-Go-Round_20260512] Step 2 API: 《Grain in the Stone》 | 53.3s | in=20529 out=2418 | ~$0.098
{"timestamp": "2026-05-12T18:39:13.549917+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e", "profile": "__runtime_batch-20260512-183723-55594e", "concurrency": 3, "resume_mode": "each", "pending_song_count": 1, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/01_Merry-Go-Round_20260512"], "success_count": 1, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/01_Merry-Go-Round_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/01_Merry-Go-Round_20260512/step2_json_b.json", "agent_summary": "API direct: Grain in the Stone", "returncode": 0, "stderr": "", "attempt": 1, "attempts": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/01_Merry-Go-Round_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/01_Merry-Go-Round_20260512/step2_json_b.json", "agent_summary": "API direct: Grain in the Stone", "returncode": 0, "stderr": "", "attempt": 1}]}]}], "resume": {"status": "success", "returncode": 0, "stdout_tail": "\n======================================================================\nmusic-pipeline3000 v2 | 2 songs\n======================================================================\nGemini concurrency: 2 | Suno concurrency: 3\nOutput: /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[18:41:28] 🏥 Health check...\n[18:41:30] ✅ qishui: OK\n[18:41:30] ✅ netease: OK\n[18:41:30] ✅ qq: OK\n\n[18:41:30] 🔍 [02_Butterflies_20260512] Step 0: Fetching...\n  📝 [01_Merry-Go-Round_20260512] lyrics stripped: 4883c → 4878c\n[18:41:30] 🎵 [01_Merry-Go-Round_20260512] Step 3: Suno generation (weirdness=50, style_influence=50 · 纯音乐)...\n[18:41:30] 🎨 [01_Merry-Go-Round_20260512] Step 4: SeeDream cover (parallel)...\n  ✅ submitted: ['2a34508f', '74c6fe0f']\n  🎵 2a34508f... → submitted\n  🎵 74c6fe0f... → submitted\n[18:41:33] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping\n[18:41:33] 🔄 [02_Butterflies_20260512] Step 0: retry 1/2 in 5s...\n  🎵 2a34508f... → queued\n  🎵 74c6fe0f... → queued\n[18:41:40] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping\n[18:41:40] 🔄 [02_Butterflies_20260512] Step 0: retry 2/2 in 10s...\n  🎵 2a34508f... → streaming\n  🎵 74c6fe0f... → streaming\n[18:41:53] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping\n[18:41:53] ❌ [02_Butterflies_20260512] Step 0: No audio URL\n  🎵 2a34508f... → complete\n  🎵 74c6fe0f... → complete\n[18:46:22]    🎧 [01_Merry-Go-Round_20260512] Song 1: https://cdn1.suno.ai/2a34508f-958b-4c9a-bec0-959a82a197cc.mp3\n[18:46:22]    🎧 [01_Merry-Go-Round_20260512] Song 2: https://cdn1.suno.ai/74c6fe0f-3216-466a-9ba2-1161fac622c9.mp3\n[18:46:22] 🎛️ [01_Merry-Go-Round_20260512] Step 3.5: 混音...\n[18:46:48]    🎚️ [01_Merry-Go-Round_20260512] Song 1: edm | 低41/中56/高2%\n[18:47:13]    🎚️ [01_Merry-Go-Round_20260512] Song 2: edm | 低47/中49/高4%\n[18:47:13] ✅ [01_Merry-Go-Round_20260512] Step 3.5: 51.2s | 2 songs mixed\n[18:47:13] ⚠️  [01_Merry-Go-Round_20260512] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 344s (5.7min)\n======================================================================\n✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1\n[MasterDB] ✅ 批次 batch-20260512-183723-55594e → +1 新增, ~0 更新 | 总计 695 首\n", "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260512-183723-55594e' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-183723-55594e.yaml\n", "summary": {"timestamp": "2026-05-12T18:47:13.752919+08:00", "wall_clock": 343.6, "total": 2, "success": 1, "awaiting_step2": 0, "failed": 1}}, "status": "success"}
[exit 0]

=== 2026-05-12 18:47:14 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/I5UfsjqRZhUCO3tbgeVc18mHnYb
[Feishu] 📐 Expanded master sheet from 633 to 734 rows
[Feishu] ✅ Appended 1 new songs to master sheet (rows 634-634)
[MasterDB] ✅ 批次 batch-20260512-183723-55594e → +1 新增, ~0 更新 | 总计 634 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/I5UfsjqRZhUC
[18:47:22] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [Grain in the Stone] topic head sent (message_id=om_x100b6f041d6290acb16c2f80937c26d)
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V1_raw.mp3 replied
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V1_mixed.mp3 replied
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V2_raw.mp3 replied
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V2_mixed.mp3 replied
[Feishu] ✅ Already on file server: /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260512-183723-55594e
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e

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

=== 2026-05-12 18:53:25 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260512-183723-55594e --resume /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e ===
[profile] ✅ Loaded profile '__runtime_batch-20260512-183723-55594e' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-183723-55594e.yaml

======================================================================
music-pipeline3000 v2 | 2 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[18:53:26] 🏥 Health check...
[18:53:28] ✅ qishui: OK
[18:53:28] ✅ netease: OK
[18:53:28] ✅ qq: OK

[18:53:28] ⏭️  [01_Merry-Go-Round_20260512] Already complete, skipping
[18:53:28] 🔍 [02_Butterflies_20260512] Step 0: Fetching...
[18:53:32] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping
[18:53:32] 🔄 [02_Butterflies_20260512] Step 0: retry 1/2 in 5s...
[18:53:39] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping
[18:53:39] 🔄 [02_Butterflies_20260512] Step 0: retry 2/2 in 10s...
[18:53:52] ⚠️  [netease] 'Butterflies' too short (110s < 120s), likely a cover/clip, skipping
[18:53:52] ❌ [02_Butterflies_20260512] Step 0: No audio URL

======================================================================
SUMMARY | 24s (0.4min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1
[MasterDB] ✅ 批次 batch-20260512-183723-55594e → +0 新增, ~1 更新 | 总计 695 首
[exit 0]

=== 2026-05-12 18:53:53 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/PmhisoThqhMrLhtelrPctN5Mn5d
[Feishu] ⏭️  Skip duplicate (complete): Merry-Go-Round (https://fileserver.yuchenhu.com/pipeline/batch-20260512-183723-55594e/01_Merry-Go-Round_20260512/song_pgc.mp3)
[MasterDB] ✅ 批次 batch-20260512-183723-55594e → +0 新增, ~0 更新 | 总计 634 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/PmhisoThqhMr
[18:54:09] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [Grain in the Stone] topic head sent (message_id=om_x100b6f0423dae884b30f9f93cc166a5)
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V1_raw.mp3 replied
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V1_mixed.mp3 replied
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V2_raw.mp3 replied
[Feishu IM] ✅ [Grain in the Stone] Grain in the Stone_V2_mixed.mp3 replied
[Feishu] ✅ Already on file server: /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260512-183723-55594e
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260512-183723-55594e

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