
=== 2026-06-01 13:56:54 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5 -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260601-135654-bc50b5 --target-language zh --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260601-135654-bc50b5' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-135654-bc50b5.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 | 1 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[13:56:56] 🏥 Health check...
[13:56:57] ✅ qishui: OK
[13:56:57] ✅ netease: OK
[13:56:57] ✅ qq: OK

[13:56:57] 🔍 [01_如果你也这样过_20260601] Step 0: Fetching...
[13:57:00] ✅ [01_如果你也这样过_20260601] Step 0: netease | 613c lyrics
[13:57:00] ⬇️  [01_如果你也这样过_20260601] Step 0.5: Download from netease...
[13:57:07] ✅ [01_如果你也这样过_20260601] Step 0.5: 5446627 bytes | 250.8s
[13:57:07] 🔬 [01_如果你也这样过_20260601] Step 0.75: Audio features...
[13:57:58] ✅ [01_如果你也这样过_20260601] Step 0.75: BPM=123.79 Key=C major (51.2s)
[13:57:58] 🧠 [01_如果你也这样过_20260601] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-06-01T05:57:58.963Z", "trace_id": "batch-20260601-135654-bc50b5", "song_key": "01_如果你也这样过_20260601", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5/01_如果你也这样过_20260601/song_pgc.mp3", "has_features": true}}
[13:57:58] 🌐 Step 1: target_language=zh (injecting override directive)
  ⚠️ Gemini official 503 on key #1/5, will retry...
  🔄 Retry 1/4 in 3s...
  ⚠️ Gemini official 503 on key #2/5, will retry...
  🔄 Retry 2/4 in 3s...
  ⚠️ Gemini official 503 on key #3/5, will retry...
  🔄 Retry 3/4 in 3s...
  📊 Gemini official: 40s | prompt_tokens=10854 completion=1195
{"__trace__": true, "ts": "2026-06-01T05:59:00.128Z", "trace_id": "batch-20260601-135654-bc50b5", "song_key": "01_如果你也这样过_20260601", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 39.8, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-06-01T05:59:00.128Z", "trace_id": "batch-20260601-135654-bc50b5", "song_key": "01_如果你也这样过_20260601", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 61.165}
[13:59:00] ⚠️  [01_如果你也这样过_20260601] Step 1.5: prompt 1067c > 1000c, compressing...
  📏 [01_如果你也这样过_20260601] prompt 1067c → 993c (smart truncate)
[13:59:00] ✅ [01_如果你也这样过_20260601] Step 1.5: prompt compressed 1067c → 993c
[13:59:00] ✅ [01_如果你也这样过_20260601] Step 1: 39.8s | prompt=993c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 122s (2.0min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260601-135654-bc50b5 → +0 新增, ~0 更新 | 总计 775 首
[exit 0]

=== 2026-06-01 13:59:01 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5 --profile __runtime_batch-20260601-135654-bc50b5 --resume-mode end --skip-feishu --target-language zh ===
[phase2] batch=batch-20260601-135654-bc50b5 pending=1 groups=1
[phase2] group 1/1 -> 01_如果你也这样过_20260601
[profile] ✅ Loaded profile '__runtime_batch-20260601-135654-bc50b5' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-135654-bc50b5.yaml
[phase2] 🌐 01_如果你也这样过_20260601: target_language=zh
[phase2] resume -> /usr/bin/python3 /srv/repos/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5 --profile __runtime_batch-20260601-135654-bc50b5 --skip-feishu
[13:59:01] 🌐 [01_如果你也这样过_20260601] Step 2: target_language=zh → lang_mode=ZH | single-turn
[13:59:01] 🤖 [01_如果你也这样过_20260601] Step 2 Turn 2: 14747 chars ≈ 3686 tokens → claude-sonnet-4-6
[13:59:39] ⚠️  [01_如果你也这样过_20260601] Step 2 API: originality 80% < 85% | 0 copied phrases
[13:59:39] 🔄 [01_如果你也这样过_20260601] Step 2 API: originality retry 1/3...
[14:00:13] ⚠️  [01_如果你也这样过_20260601] Step 2 API retry 1: originality 81%
[14:00:13] 🔄 [01_如果你也这样过_20260601] Step 2 API: originality retry 2/3...
[14:00:48] ⚠️  [01_如果你也这样过_20260601] Step 2 API retry 2: originality 81%
[14:00:48] 🔄 [01_如果你也这样过_20260601] Step 2 API: originality retry 3/3...
[14:01:34] ⚠️  [01_如果你也这样过_20260601] Step 2 API originality retry 3 failed: Expecting value: line 1 column 1 (char 0)
[14:01:34] ⚠️  [01_如果你也这样过_20260601] Step 2 API: best originality 81% after 3 retries
[14:01:34] ✅ [01_如果你也这样过_20260601] Step 2 API: 《咬合线》 engine=? | 106.7s | in=40223 out=6131 | ~$0.213
{"timestamp": "2026-06-01T13:59:01.514746+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5", "profile": "__runtime_batch-20260601-135654-bc50b5", "concurrency": 3, "resume_mode": "end", "pending_song_count": 1, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5/01_如果你也这样过_20260601"], "success_count": 1, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5/01_如果你也这样过_20260601", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5/01_如果你也这样过_20260601/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-20260601-135654-bc50b5/01_如果你也这样过_20260601", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5/01_如果你也这样过_20260601/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-20260601-135654-bc50b5\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[14:01:36] 🏥 Health check...\n[14:01:37] ✅ qishui: OK\n[14:01:37] ✅ netease: OK\n[14:01:37] ✅ qq: OK\n\n  📝 [01_如果你也这样过_20260601] lyrics stripped: 2705c → 2699c\n[14:01:37] 🎵 [01_如果你也这样过_20260601] Step 3: Suno generation (weirdness=45, style_influence=55)...\n[14:01:37] 🎨 [01_如果你也这样过_20260601] Step 4: SeeDream cover (parallel)...\n  ✅ submitted: ['88ba033e', '45daa497']\n  🎵 88ba033e... → submitted\n  🎵 45daa497... → submitted\n  🎵 88ba033e... → queued\n  🎵 45daa497... → queued\n  🎵 88ba033e... → streaming\n  🎵 45daa497... → streaming\n  🎵 88ba033e... → complete\n  🎵 45daa497... → complete\n[14:06:58]    🎧 [01_如果你也这样过_20260601] Song 1: https://cdn1.suno.ai/88ba033e-0bf4-4b3d-81d5-7dde0ed1deb5.mp3\n[14:06:58]    🎧 [01_如果你也这样过_20260601] Song 2: https://cdn1.suno.ai/45daa497-9680-40c3-8fc5-18838b31ec65.mp3\n[14:06:58] 🎛️ [01_如果你也这样过_20260601] Step 3.5: 混音...\n[14:07:21]    🎚️ [01_如果你也这样过_20260601] Song 1: hip_hop | 低45/中51/高4%\n[14:07:40]    🎚️ [01_如果你也这样过_20260601] Song 2: hip_hop | 低37/中57/高6%\n[14:07:40] ✅ [01_如果你也这样过_20260601] Step 3.5: 42.5s | 2 songs mixed\n[14:07:40] ⚠️  [01_如果你也这样过_20260601] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 363s (6.0min)\n======================================================================\n✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260601-135654-bc50b5 → +1 新增, ~0 更新 | 总计 776 首\n", "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260601-135654-bc50b5' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-135654-bc50b5.yaml\n", "summary": {"timestamp": "2026-06-01T14:07:40.726787+08:00", "wall_clock": 362.9, "total": 1, "success": 1, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-06-01 14:07:41 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5 ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/VmSgs6MhBh0e8dteqGCcdMHjnWf
[Feishu] 📐 Expanded master sheet from 712 to 813 rows
[Feishu] ✅ Appended 1 new songs to master sheet (rows 713-713)
[MasterDB] ✅ 批次 batch-20260601-135654-bc50b5 → +1 新增, ~0 更新 | 总计 713 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/VmSgs6MhBh0e
[14:07:51] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [咬合线] topic head sent (message_id=om_x100b6ee65548fc90b4c1d2203531d7f)
[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-20260601-135654-bc50b5
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260601-135654-bc50b5
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260601-135654-bc50b5

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