
=== 2026-05-13 02:00:40 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e -cg 2 -cs 2 --skip-feishu --profile miao-wan-xing --step1-only ===
[profile] ✅ Loaded profile 'miao-wan-xing' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/miao-wan-xing.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
[   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')
/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-20260513-020040-7f565e
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[02:00:42] 🏥 Health check...
[02:00:45] ✅ qishui: OK
[02:00:45] ✅ netease: OK
[02:00:45] ✅ qq: OK

[02:00:45] 🔍 [01_我怀念的_20260513] Step 0: Fetching...
[02:00:45] 🔍 [02_给你一瓶魔法药水_20260513] Step 0: Fetching...
[02:00:48] ✅ [02_给你一瓶魔法药水_20260513] Step 0: qishui | 482c lyrics
[02:00:48] ⬇️  [02_给你一瓶魔法药水_20260513] Step 0.5: Download from qishui...
[02:00:49] ⚠️  [qishui] Artist mismatch: requested '孙燕姿' got '阿哲', skipping
[02:00:52] ⚠️  [02_给你一瓶魔法药水_20260513] Step 0.5: Only 60.0s preview (expected 258s)
[02:00:52] 🔄 [02_给你一瓶魔法药水_20260513] Step 0.5: Trying fallback netease...
[02:00:52] ✅ [01_我怀念的_20260513] Step 0: netease | 662c lyrics
[02:00:52] ⬇️  [01_我怀念的_20260513] Step 0.5: Download from netease...
[02:00:59] ✅ [01_我怀念的_20260513] Step 0.5: 5525651 bytes | 289.1s
[02:00:59] 🔬 [01_我怀念的_20260513] Step 0.75: Audio features...
[02:01:11] ✅ [02_给你一瓶魔法药水_20260513] Step 0.5: Fallback netease → 258.8s full audio
[02:01:11] ✅ [02_给你一瓶魔法药水_20260513] Step 0.5: 5581041 bytes | 258.8s
[02:01:11] 🔬 [02_给你一瓶魔法药水_20260513] Step 0.75: Audio features...
[02:01:44] ✅ [01_我怀念的_20260513] Step 0.75: BPM=139.64 Key=E major (45.4s)
[02:01:44] 🧠 [01_我怀念的_20260513] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T18:01:44.908Z", "trace_id": "batch-20260513-020040-7f565e", "song_key": "01_我怀念的_20260513", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/01_我怀念的_20260513/song_pgc.mp3", "has_features": true}}
[02:01:45] ✅ [02_给你一瓶魔法药水_20260513] Step 0.75: BPM=99.03 Key=E major (34.0s)
[02:01:45] 🧠 [02_给你一瓶魔法药水_20260513] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T18:01:45.846Z", "trace_id": "batch-20260513-020040-7f565e", "song_key": "02_给你一瓶魔法药水_20260513", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/02_给你一瓶魔法药水_20260513/song_pgc.mp3", "has_features": true}}
  📊 Gemini official: 32s | prompt_tokens=12032 completion=1350
{"__trace__": true, "ts": "2026-05-12T18:02:16.769Z", "trace_id": "batch-20260513-020040-7f565e", "song_key": "01_我怀念的_20260513", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 31.8, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-12T18:02:16.769Z", "trace_id": "batch-20260513-020040-7f565e", "song_key": "01_我怀念的_20260513", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 31.861}
[02:02:16] ⚠️  [01_我怀念的_20260513] Step 1.5: prompt 1245c > 1000c, compressing...
  📏 [01_我怀念的_20260513] prompt 1245c → 977c (smart truncate)
[02:02:16] ✅ [01_我怀念的_20260513] Step 1.5: prompt compressed 1245c → 977c
[02:02:16] ✅ [01_我怀念的_20260513] Step 1: 31.8s | prompt=977c | prompt_ok=True lyrics_ok=True
  📊 Gemini official: 35s | prompt_tokens=11210 completion=1116
{"__trace__": true, "ts": "2026-05-12T18:02:20.544Z", "trace_id": "batch-20260513-020040-7f565e", "song_key": "02_给你一瓶魔法药水_20260513", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 34.7, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-12T18:02:20.545Z", "trace_id": "batch-20260513-020040-7f565e", "song_key": "02_给你一瓶魔法药水_20260513", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 34.698}
[02:02:20] ✅ [02_给你一瓶魔法药水_20260513] Step 1: 34.7s | prompt=813c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 95s (1.6min)
======================================================================
✅ Done: 2 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260513-020040-7f565e → +0 新增, ~0 更新 | 总计 734 首
[exit 0]

=== 2026-05-13 02:02:21 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e --profile miao-wan-xing --resume-mode each --skip-feishu ===
[phase2] batch=batch-20260513-020040-7f565e pending=2 groups=1
[phase2] group 1/1 -> 01_我怀念的_20260513, 02_给你一瓶魔法药水_20260513
[profile] ✅ Loaded profile 'miao-wan-xing' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/miao-wan-xing.yaml
[phase2] 🌐 01_我怀念的_20260513: target_language=auto
[profile] ✅ Loaded profile 'miao-wan-xing' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/miao-wan-xing.yaml
[phase2] 🌐 02_给你一瓶魔法药水_20260513: 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-20260513-020040-7f565e/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e --profile miao-wan-xing --skip-feishu
[02:02:21] 🌐 [01_我怀念的_20260513] Step 2: target_language=auto → lang_mode=AUTO | single-turn
[02:02:21] 🤖 [01_我怀念的_20260513] Step 2 Turn 2: 15063 chars ≈ 3765 tokens → claude-sonnet-4-6
[02:02:21] 🌐 [02_给你一瓶魔法药水_20260513] Step 2: target_language=auto → lang_mode=AUTO | single-turn
[02:02:21] 🤖 [02_给你一瓶魔法药水_20260513] Step 2 Turn 2: 14704 chars ≈ 3676 tokens → claude-sonnet-4-6
[02:02:52] ⚠️  [02_给你一瓶魔法药水_20260513] Step 2 API: originality 80% < 85% | 0 copied phrases
[02:02:52] 🔄 [02_给你一瓶魔法药水_20260513] Step 2 API: originality retry 1/3...
[02:02:57] ⚠️  [01_我怀念的_20260513] Step 2 API: originality 77% < 85% | 0 copied phrases
[02:02:57] 🔄 [01_我怀念的_20260513] Step 2 API: originality retry 1/3...
[02:03:17] ✅ [02_给你一瓶魔法药水_20260513] Step 2 API retry 1: originality 87% ✓
[02:03:17] ✅ [02_给你一瓶魔法药水_20260513] Step 2 API: 《重力偏移》 engine=C | 56.1s | in=25203 out=4107 | ~$0.137
[02:03:34] ⚠️  [01_我怀念的_20260513] Step 2 API retry 1: originality 82%
[02:03:34] 🔄 [01_我怀念的_20260513] Step 2 API: originality retry 2/3...
[02:04:11] ⚠️  [01_我怀念的_20260513] Step 2 API retry 2: originality 80%
[02:04:11] 🔄 [01_我怀念的_20260513] Step 2 API: originality retry 3/3...
[02:05:00] ⚠️  [01_我怀念的_20260513] Step 2 API originality retry 3 failed: Expecting value: line 1 column 1 (char 0)
[02:05:00] ⚠️  [01_我怀念的_20260513] Step 2 API: best originality 82% after 3 retries
[02:05:00] ✅ [01_我怀念的_20260513] Step 2 API: 《借风还山》 engine=I | 110.0s | in=42640 out=6986 | ~$0.233
{"timestamp": "2026-05-13T02:02:21.707798+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e", "profile": "miao-wan-xing", "concurrency": 3, "resume_mode": "each", "pending_song_count": 2, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/01_我怀念的_20260513", "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/02_给你一瓶魔法药水_20260513"], "success_count": 2, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/01_我怀念的_20260513", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/01_我怀念的_20260513/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-20260513-020040-7f565e/01_我怀念的_20260513", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/01_我怀念的_20260513/step2_json_b.json", "agent_summary": "API direct: 借风还山", "returncode": 0, "stderr": "", "attempt": 1}]}, {"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/02_给你一瓶魔法药水_20260513", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/02_给你一瓶魔法药水_20260513/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-20260513-020040-7f565e/02_给你一瓶魔法药水_20260513", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e/02_给你一瓶魔法药水_20260513/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-20260513-020040-7f565e\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[02:05:01] 🏥 Health check...\n[02:05:03] ✅ qishui: OK\n[02:05:03] ✅ netease: OK\n[02:05:03] ✅ qq: OK\n\n  📝 [01_我怀念的_20260513] lyrics stripped: 2753c → 2747c\n[02:05:03] 🎵 [01_我怀念的_20260513] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[02:05:03] 🎨 [01_我怀念的_20260513] Step 4: SeeDream cover (parallel)...\n  📝 [02_给你一瓶魔法药水_20260513] lyrics stripped: 2500c → 2494c\n[02:05:03] 🎵 [02_给你一瓶魔法药水_20260513] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[02:05:03] 🎨 [02_给你一瓶魔法药水_20260513] Step 4: SeeDream cover (parallel)...\n  ⚠️  captcha token rejected (422), waiting 260s for cache expiry...\n  ✅ submitted: ['fca89d23', '1c607213']\n  🎵 fca89d23... → submitted\n  🎵 1c607213... → submitted\n  🎵 fca89d23... → queued\n  🎵 1c607213... → queued\n  🎵 1c607213... → streaming\n  🎵 fca89d23... → streaming\n  🎵 1c607213... → complete\n  🎵 fca89d23... → complete\n[02:08:07]    🎧 [02_给你一瓶魔法药水_20260513] Song 1: https://cdn1.suno.ai/fca89d23-a87c-4587-9257-bac40812e759.mp3\n[02:08:07]    🎧 [02_给你一瓶魔法药水_20260513] Song 2: https://cdn1.suno.ai/1c607213-64b9-48ac-9492-511e312526d9.mp3\n[02:08:07] 🎛️ [02_给你一瓶魔法药水_20260513] Step 3.5: 混音...\n[02:08:25]    🎚️ [02_给你一瓶魔法药水_20260513] Song 1: pop | 低52/中41/高7%\n[02:08:40]    🎚️ [02_给你一瓶魔法药水_20260513] Song 2: edm | 低55/中42/高3%\n[02:08:40] ✅ [02_给你一瓶魔法药水_20260513] Step 3.5: 32.8s | 2 songs mixed\n[02:08:40] ⚠️  [02_给你一瓶魔法药水_20260513] Step 4: http_403 (non-fatal)\n  🔄 retry #1...\n  ✅ submitted: ['a892d081', '45039900']\n  🎵 a892d081... → submitted\n  🎵 45039900... → submitted\n  🎵 a892d081... → queued\n  🎵 45039900... → queued\n  🎵 a892d081... → streaming\n  🎵 45039900... → streaming\n  🎵 45039900... → complete\n  🎵 a892d081... → complete\n[02:14:16]    🎧 [01_我怀念的_20260513] Song 1: https://cdn1.suno.ai/a892d081-03bc-4a32-9651-0c23385d8a35.mp3\n[02:14:16]    🎧 [01_我怀念的_20260513] Song 2: https://cdn1.suno.ai/45039900-73f8-4142-963a-cdfa8f8d0d9b.mp3\n[02:14:16] 🎛️ [01_我怀念的_20260513] Step 3.5: 混音...\n[02:14:36]    🎚️ [01_我怀念的_20260513] Song 1: pop | 低55/中42/高3%\n[02:14:56]    🎚️ [01_我怀念的_20260513] Song 2: pop | 低42/中54/高4%\n[02:14:56] ✅ [01_我怀念的_20260513] Step 3.5: 40.4s | 2 songs mixed\n[02:14:56] ⚠️  [01_我怀念的_20260513] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 593s (9.9min)\n======================================================================\n✅ Done: 2 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260513-020040-7f565e → +2 新增, ~0 更新 | 总计 736 首\n", "stderr_tail": "[profile] ✅ Loaded profile 'miao-wan-xing' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/miao-wan-xing.yaml\n", "summary": {"timestamp": "2026-05-13T02:14:56.606729+08:00", "wall_clock": 593.0, "total": 2, "success": 2, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-05-13 02:14:57 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e ===
[Feishu] ✅ Exported 2 songs to: https://ccnu62373cgc.feishu.cn/sheets/D7Sys7w6FhZSM1tWQmscsToCnQe
[Feishu] 📐 Expanded master sheet from 673 to 775 rows
[Feishu] ✅ Appended 2 new songs to master sheet (rows 674-675)
[MasterDB] ✅ 批次 batch-20260513-020040-7f565e → +2 新增, ~0 更新 | 总计 675 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/D7Sys7w6FhZS
[02:15:05] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [借风还山] topic head sent (message_id=om_x100b6f02ac5320a0b4a549212334bb3)
[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_x100b6f02ad5520a8b29db84183c30cc)
[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-20260513-020040-7f565e
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260513-020040-7f565e
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260513-020040-7f565e

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