
=== 2026-05-12 16:56:41 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260512-165641-70714b --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260512-165641-70714b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-165641-70714b.yaml
[step075] cache hit: song_pgc.mp3 → e213902a041d

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

[16:56:43] 🏥 Health check...
[16:56:44] ✅ qishui: OK
[16:56:44] ✅ netease: OK
[16:56:44] ✅ qq: OK

[16:56:44] 🔍 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 0: Fetching...
[16:56:44] 🔍 [02_恋人_20260512] Step 0: Fetching...
[16:56:46] ✅ [qishui] Direct ID fetch: '唯一（Cover G.E.M. 邓紫棋）' id=7505437672325761061
[16:56:46] ✅ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 0: qishui | 267c lyrics
[16:56:46] ⬇️  [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 0.5: Download from qishui...
[16:56:47] ✅ [02_恋人_20260512] Step 0: netease | 607c lyrics
[16:56:47] ⬇️  [02_恋人_20260512] Step 0.5: Download from netease...
[16:56:54] ✅ [02_恋人_20260512] Step 0.5: 5867228 bytes | 276.0s
[16:56:54] 🔬 [02_恋人_20260512] Step 0.75: Audio features...
[16:56:54] ✅ [02_恋人_20260512] Step 0.75: BPM=139.81 Key=D# major (56.0s)
[16:56:54] 🧠 [02_恋人_20260512] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T08:56:54.887Z", "trace_id": "batch-20260512-165641-70714b", "song_key": "02_恋人_20260512", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/02_恋人_20260512/song_pgc.mp3", "has_features": true}}
[step1] cache hit: song_pgc.mp3 → 45e270a3f0b1 (saving 1 Gemini call)
{"__trace__": true, "ts": "2026-05-12T08:56:54.944Z", "trace_id": "batch-20260512-165641-70714b", "song_key": "02_恋人_20260512", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 55.6, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-12T08:56:54.945Z", "trace_id": "batch-20260512-165641-70714b", "song_key": "02_恋人_20260512", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 0.058}
[   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
/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')
[16:56:54] ✅ [02_恋人_20260512] Step 1: 55.6s | prompt=871c | prompt_ok=True lyrics_ok=True
[16:56:57] ✅ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 0.5: 5310347 bytes | 253.9s
[16:56:57] 🔬 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 0.75: Audio features...
[16:57:27] ✅ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 0.75: BPM=143.72 Key=C# major (30.1s)
[16:57:27] 🧠 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T08:57:27.448Z", "trace_id": "batch-20260512-165641-70714b", "song_key": "01_唯一（Cover G.E.M. 邓紫棋）_20260512", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/01_唯一（Cover G.E.M. 邓紫棋）_20260512/song_pgc.mp3", "has_features": true}}
  📊 Gemini official: 64s | prompt_tokens=11575 completion=1791
{"__trace__": true, "ts": "2026-05-12T08:58:31.810Z", "trace_id": "batch-20260512-165641-70714b", "song_key": "01_唯一（Cover G.E.M. 邓紫棋）_20260512", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 64.3, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-12T08:58:31.811Z", "trace_id": "batch-20260512-165641-70714b", "song_key": "01_唯一（Cover G.E.M. 邓紫棋）_20260512", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 64.362}
[16:58:31] ✅ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 1: 64.3s | prompt=931c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 107s (1.8min)
======================================================================
✅ Done: 2 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260512-165641-70714b → +0 新增, ~0 更新 | 总计 682 首
[exit 0]

=== 2026-05-12 16:58:32 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b --profile __runtime_batch-20260512-165641-70714b --resume-mode each --skip-feishu ===
[phase2] batch=batch-20260512-165641-70714b pending=2 groups=1
[phase2] group 1/1 -> 01_唯一（Cover G.E.M. 邓紫棋）_20260512, 02_恋人_20260512
[profile] ✅ Loaded profile '__runtime_batch-20260512-165641-70714b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-165641-70714b.yaml
[phase2] 🌐 01_唯一（Cover G.E.M. 邓紫棋）_20260512: target_language=auto
[profile] ✅ Loaded profile '__runtime_batch-20260512-165641-70714b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-165641-70714b.yaml
[phase2] 🌐 02_恋人_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-165641-70714b/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b --profile __runtime_batch-20260512-165641-70714b --skip-feishu
[16:58:33] 🌐 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2: target_language=auto → lang_mode=AUTO
[16:58:33] 🤖 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API: 36139 chars ≈ 9034 tokens → claude-sonnet-4-6
[16:58:33] 🌐 [02_恋人_20260512] Step 2: target_language=auto → lang_mode=AUTO
[16:58:33] 🤖 [02_恋人_20260512] Step 2 API: 35143 chars ≈ 8785 tokens → claude-sonnet-4-6
[16:59:14] ⚠️  [02_恋人_20260512] Step 2 API: originality 82% < 85% | 0 copied phrases
[16:59:14] 🔄 [02_恋人_20260512] Step 2 API: originality retry 1/3...
[16:59:19] ⚠️  [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API: originality 82% < 85% | 0 copied phrases
[16:59:19] 🔄 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API: originality retry 1/3...
[16:59:50] ⚠️  [02_恋人_20260512] Step 2 API retry 1: originality 83%
[16:59:50] 🔄 [02_恋人_20260512] Step 2 API: originality retry 2/3...
[17:00:21] ⚠️  [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API retry 1: originality 80%
[17:00:21] 🔄 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API: originality retry 2/3...
[17:00:45] ⚠️  [02_恋人_20260512] Step 2 API originality retry 2 failed: Expecting value: line 1 column 1 (char 0)
[17:00:45] ⚠️  [02_恋人_20260512] Step 2 API: best originality 83% after 3 retries
[17:00:45] ✅ [02_恋人_20260512] Step 2 API: 《骨节里的南》 | 77.9s | in=42115 out=5070 | ~$0.202
[17:01:37] ⚠️  [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API originality retry 2 failed: Expecting value: line 1 column 1 (char 0)
[17:01:37] ⚠️  [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API: best originality 82% after 3 retries
[17:01:37] ✅ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 2 API: 《回潮线》 | 108.8s | in=42888 out=5720 | ~$0.214
{"timestamp": "2026-05-12T16:58:32.804763+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b", "profile": "__runtime_batch-20260512-165641-70714b", "concurrency": 3, "resume_mode": "each", "pending_song_count": 2, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/01_唯一（Cover G.E.M. 邓紫棋）_20260512", "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/02_恋人_20260512"], "success_count": 2, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/01_唯一（Cover G.E.M. 邓紫棋）_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/01_唯一（Cover G.E.M. 邓紫棋）_20260512/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-20260512-165641-70714b/01_唯一（Cover G.E.M. 邓紫棋）_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/01_唯一（Cover G.E.M. 邓紫棋）_20260512/step2_json_b.json", "agent_summary": "API direct: 回潮线", "returncode": 0, "stderr": "", "attempt": 1}]}, {"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/02_恋人_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/02_恋人_20260512/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-20260512-165641-70714b/02_恋人_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b/02_恋人_20260512/step2_json_b.json", "agent_summary": "API direct: 骨节里的南", "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-165641-70714b\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[17:01:39] 🏥 Health check...\n[17:01:41] ✅ qishui: OK\n[17:01:41] ✅ netease: OK\n[17:01:41] ✅ qq: OK\n\n  📝 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] lyrics stripped: 4872c → 4865c\n[17:01:42] 🎵 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[17:01:42] 🎨 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 4: SeeDream cover (parallel)...\n  📝 [02_恋人_20260512] lyrics stripped: 3907c → 3901c\n[17:01:42] 🎵 [02_恋人_20260512] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[17:01:42] 🎨 [02_恋人_20260512] Step 4: SeeDream cover (parallel)...\n  ✅ submitted: ['31121d21', '0012de37']\n  🎵 31121d21... → submitted\n  🎵 0012de37... → submitted\n  ✅ submitted: ['6a60d046', '509578d3']\n  🎵 6a60d046... → submitted\n  🎵 509578d3... → submitted\n  🎵 31121d21... → queued\n  🎵 0012de37... → queued\n  🎵 6a60d046... → queued\n  🎵 509578d3... → queued\n  🎵 31121d21... → streaming\n  🎵 0012de37... → streaming\n  🎵 6a60d046... → streaming\n  🎵 509578d3... → streaming\n  🎵 31121d21... → complete\n  🎵 0012de37... → complete\n[17:02:51]    🎧 [02_恋人_20260512] Song 1: https://cdn1.suno.ai/31121d21-f909-48a7-a0af-4db090985195.mp3\n[17:02:51]    🎧 [02_恋人_20260512] Song 2: https://cdn1.suno.ai/0012de37-c8dc-415b-a707-6abc26d4316b.mp3\n[17:02:51] 🎛️ [02_恋人_20260512] Step 3.5: 混音...\n  🎵 509578d3... → complete\n[17:03:11]    🎚️ [02_恋人_20260512] Song 1: hip_hop | 低56/中42/高2%\n  🎵 6a60d046... → complete\n[17:03:12]    🎧 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Song 1: https://cdn1.suno.ai/6a60d046-695a-4480-9e9d-9ab05e6bf7d5.mp3\n[17:03:12]    🎧 [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Song 2: https://cdn1.suno.ai/509578d3-d6a3-4c78-a8e6-9f31c7005fcf.mp3\n[17:03:12] 🎛️ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 3.5: 混音...\n[17:03:29]    🎚️ [02_恋人_20260512] Song 2: jazz | 低48/中49/高2%\n[17:03:29] ✅ [02_恋人_20260512] Step 3.5: 37.6s | 2 songs mixed\n[17:03:29] ⚠️  [02_恋人_20260512] Step 4: http_403 (non-fatal)\n[17:03:47]    🎚️ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Song 1: pop | 低47/中51/高3%\n[17:04:06]    🎚️ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Song 2: pop | 低47/中51/高2%\n[17:04:06] ✅ [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 3.5: 53.7s | 2 songs mixed\n[17:04:06] ⚠️  [01_唯一（Cover G.E.M. 邓紫棋）_20260512] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 144s (2.4min)\n======================================================================\n✅ Done: 2 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260512-165641-70714b → +2 新增, ~0 更新 | 总计 687 首\n", "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260512-165641-70714b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-165641-70714b.yaml\n", "summary": {"timestamp": "2026-05-12T17:04:06.151699+08:00", "wall_clock": 144.2, "total": 2, "success": 2, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-05-12 17:04:07 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-165641-70714b ===
[Feishu] ✅ Exported 2 songs to: https://ccnu62373cgc.feishu.cn/sheets/Wcjbswi3BhuhpSt6iLRc1vZxnRd
[Feishu] 📐 Expanded master sheet from 625 to 727 rows
[Feishu] ✅ Appended 2 new songs to master sheet (rows 626-627)
[MasterDB] ✅ 批次 batch-20260512-165641-70714b → +2 新增, ~0 更新 | 总计 627 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/Wcjbswi3Bhuh
[17:04:16] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [回潮线] topic head sent (message_id=om_x100b6f1a9fd960b8b12fbf1789e2db9)
[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 IM] ✅ [骨节里的南] topic head sent (message_id=om_x100b6f1a9f3bbca8b29c172f14ed0ae)
[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-20260512-165641-70714b
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260512-165641-70714b
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260512-165641-70714b

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