
=== 2026-06-01 14:31:27 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260601-143127-29b48b --target-language zh --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260601-143127-29b48b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-143127-29b48b.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-143127-29b48b
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[14:31:29] 🏥 Health check...
[14:31:31] ✅ qishui: OK
[14:31:31] ✅ netease: OK
[14:31:31] ✅ qq: OK

[14:31:31] 🔍 [01_半壶纱_20260601] Step 0: Fetching...
[14:31:40] ✅ [01_半壶纱_20260601] Step 0: qq | 411c lyrics
[14:31:40] ⬇️  [01_半壶纱_20260601] Step 0.5: Download from qq...
[14:31:47] ✅ [01_半壶纱_20260601] Step 0.5: 5248472 bytes | 222.0s
[14:31:47] 🔬 [01_半壶纱_20260601] Step 0.75: Audio features...
[14:32:34] ✅ [01_半壶纱_20260601] Step 0.75: BPM=154.81 Key=A minor (46.8s)
[14:32:34] 🧠 [01_半壶纱_20260601] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-06-01T06:32:34.466Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/01_半壶纱_20260601/song_pgc.mp3", "has_features": true}}
[14:32:34] 🌐 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 503 on key #4/5, will retry...
  🔄 Retry 4/4 in 3s...
  ⚠️ Gemini official 503 on key #5/5, will retry...
{"__trace__": true, "ts": "2026-06-01T06:33:08.784Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 6.3, "cost_usd": null, "status": "http_503"}
{"__trace__": true, "ts": "2026-06-01T06:33:08.785Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 34.318}
[14:33:08] ❌ [01_半壶纱_20260601] Step 1: http_503 (6.3s)

======================================================================
SUMMARY | 97s (1.6min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1
[exit 0]

=== 2026-06-01 14:33:09 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b --profile __runtime_batch-20260601-143127-29b48b --resume-mode end --skip-feishu --target-language zh ===
{"timestamp": "2026-06-01T14:33:09.699906+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b", "profile": "__runtime_batch-20260601-143127-29b48b", "concurrency": 3, "resume_mode": "end", "pending_song_count": 0, "groups": [], "status": "noop", "resume": null}
[exit 0]

=== 2026-06-01 14:33:09 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-143127-29b48b ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-06-01 14:33:20 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260601-143127-29b48b --resume /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260601-143127-29b48b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-143127-29b48b.yaml

======================================================================
music-pipeline3000 v2 | 1 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[14:33:21] 🏥 Health check...
[14:33:23] ✅ qishui: OK
[14:33:23] ✅ netease: OK
[14:33:23] ✅ qq: OK

[14:33:23] 🧠 [01_半壶纱_20260601] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-06-01T06:33:23.206Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/01_半壶纱_20260601/song_pgc.mp3", "has_features": true}}
[14:33:23] 🌐 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 503 on key #4/5, will retry...
  🔄 Retry 4/4 in 3s...
  ⚠️ Gemini official 503 on key #5/5, will retry...
{"__trace__": true, "ts": "2026-06-01T06:34:00.494Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 3.0, "cost_usd": null, "status": "http_503"}
{"__trace__": true, "ts": "2026-06-01T06:34:00.494Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 37.289}
[14:34:00] ❌ [01_半壶纱_20260601] Step 1: http_503 (3.0s)

======================================================================
SUMMARY | 37s (0.6min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1
[exit 0]

=== 2026-06-01 14:34:00 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-143127-29b48b ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-06-01 14:34:15 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260601-143127-29b48b --resume /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260601-143127-29b48b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-143127-29b48b.yaml

======================================================================
music-pipeline3000 v2 | 1 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[14:34:17] 🏥 Health check...
[14:34:18] ✅ qishui: OK
[14:34:18] ✅ netease: OK
[14:34:18] ✅ qq: OK

[14:34:18] 🧠 [01_半壶纱_20260601] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-06-01T06:34:18.855Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/01_半壶纱_20260601/song_pgc.mp3", "has_features": true}}
[14:34:18] 🌐 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 503 on key #4/5, will retry...
  🔄 Retry 4/4 in 3s...
  ⚠️ Gemini official 503 on key #5/5, will retry...
{"__trace__": true, "ts": "2026-06-01T06:34:47.619Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 4.5, "cost_usd": null, "status": "http_503"}
{"__trace__": true, "ts": "2026-06-01T06:34:47.619Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 28.764}
[14:34:47] ❌ [01_半壶纱_20260601] Step 1: http_503 (4.5s)

======================================================================
SUMMARY | 29s (0.5min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1
[exit 0]

=== 2026-06-01 14:34:47 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-143127-29b48b ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-06-01 14:37:46 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260601-143127-29b48b --resume /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260601-143127-29b48b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-143127-29b48b.yaml

======================================================================
music-pipeline3000 v2 | 1 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[14:37:48] 🏥 Health check...
[14:37:50] ✅ qishui: OK
[14:37:50] ✅ netease: OK
[14:37:50] ✅ qq: OK

[14:37:50] 🧠 [01_半壶纱_20260601] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-06-01T06:37:50.051Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/01_半壶纱_20260601/song_pgc.mp3", "has_features": true}}
[14:37:50] 🌐 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 503 on key #4/5, will retry...
  🔄 Retry 4/4 in 3s...
  ⚠️ Gemini official 503 on key #5/5, will retry...
{"__trace__": true, "ts": "2026-06-01T06:38:33.764Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 2.5, "cost_usd": null, "status": "http_503"}
{"__trace__": true, "ts": "2026-06-01T06:38:33.764Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 43.713}
[14:38:33] ❌ [01_半壶纱_20260601] Step 1: http_503 (2.5s)

======================================================================
SUMMARY | 44s (0.7min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1
[exit 0]

=== 2026-06-01 14:38:34 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-143127-29b48b ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-06-01 14:38:48 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260601-143127-29b48b --resume /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260601-143127-29b48b' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260601-143127-29b48b.yaml

======================================================================
music-pipeline3000 v2 | 1 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[14:38:50] 🏥 Health check...
[14:38:51] ✅ qishui: OK
[14:38:51] ✅ netease: OK
[14:38:51] ✅ qq: OK

[14:38:51] 🧠 [01_半壶纱_20260601] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-06-01T06:38:51.656Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b/01_半壶纱_20260601/song_pgc.mp3", "has_features": true}}
[14:38:51] 🌐 Step 1: target_language=zh (injecting override directive)
  ⚠️ Gemini official 503 on key #1/5, will retry...
  🔄 Retry 1/4 in 3s...
  📊 Gemini official: 54s | prompt_tokens=10866 completion=1267
{"__trace__": true, "ts": "2026-06-01T06:39:51.262Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 53.6, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-06-01T06:39:51.262Z", "trace_id": "batch-20260601-143127-29b48b", "song_key": "01_半壶纱_20260601", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 59.606}
[14:39:51] ✅ [01_半壶纱_20260601] Step 1: 53.6s | prompt=844c | prompt_ok=True lyrics_ok=True
[14:39:51] 🌐 [01_半壶纱_20260601] Step 2: target_language=zh → lang_mode=ZH | single-turn
[14:39:51] 🤖 [01_半壶纱_20260601] Step 2 Turn 2: 15074 chars ≈ 3768 tokens → claude-sonnet-4-6
[14:40:31] ⚠️  [01_半壶纱_20260601] Step 2 API: originality 79% < 85% | 2 copied phrases
          ❗ ", creating a stable consonance; resolves predictably to root on the final tonic chord , giving a sense of release.)" ~ ", creating a stable consonance; resolves predictably to root on the final tonic chord , giving a sense of release.)" (100%)
          ❗ ", creating a stable consonance; resolves predictably to root on the final tonic chord , giving a sense of release.)" ~ ", creating a stable consonance; resolves predictably to root on the final tonic chord , giving a sense of release.)" (100%)
[14:40:31] 🔄 [01_半壶纱_20260601] Step 2 API: originality retry 1/3...
[14:41:18] ⚠️  [01_半壶纱_20260601] Step 2 API originality retry 1 failed: Expecting value: line 1 column 1 (char 0)
[14:41:18] ⚠️  [01_半壶纱_20260601] Step 2 API: best originality 79% after 3 retries
[14:41:29] ⚠️  Step 2 title library fetch failed: 
[14:41:29] ✅ [01_半壶纱_20260601] Step 2 API: 《折鹤渡》 engine=? | 40.2s | in=10907 out=2291 | ~$0.067
[14:41:29] ✅ [01_半壶纱_20260601] Step 2.5: originality 79% ✓
[14:41:29] ✅ [01_半壶纱_20260601] Step 2: 《折鹤渡》
[14:41:29] 📁 [01_半壶纱_20260601] Renamed → 01_半壶纱_折鹤渡_20260601
  📝 [01_半壶纱_折鹤渡_20260601] lyrics stripped: 3254c → 3249c
[14:41:29] 🎵 [01_半壶纱_折鹤渡_20260601] Step 3: Suno generation (weirdness=50, style_influence=50)...
[14:41:29] 🎨 [01_半壶纱_折鹤渡_20260601] Step 4: SeeDream cover (parallel)...
  ✅ submitted: ['4565f9a7', '12e7752a']
  🎵 4565f9a7... → submitted
  🎵 12e7752a... → submitted
  🎵 4565f9a7... → queued
  🎵 12e7752a... → queued
  🎵 4565f9a7... → streaming
  🎵 12e7752a... → streaming
  🎵 4565f9a7... → complete
  🎵 12e7752a... → complete
[14:44:23]    🎧 [01_半壶纱_折鹤渡_20260601] Song 1: https://cdn1.suno.ai/4565f9a7-d630-4660-bd74-bfc2da7c2e7e.mp3
[14:44:23]    🎧 [01_半壶纱_折鹤渡_20260601] Song 2: https://cdn1.suno.ai/12e7752a-78cf-4f07-bcd3-3efd2fc9da02.mp3
[14:44:23] 🎛️ [01_半壶纱_折鹤渡_20260601] Step 3.5: 混音...
[14:44:46]    🎚️ [01_半壶纱_折鹤渡_20260601] Song 1: hip_hop | 低44/中52/高4%
[14:45:03]    🎚️ [01_半壶纱_折鹤渡_20260601] Song 2: edm | 低42/中58/高1%
[14:45:03] ✅ [01_半壶纱_折鹤渡_20260601] Step 3.5: 39.7s | 2 songs mixed
[14:45:03] ⚠️  [01_半壶纱_折鹤渡_20260601] Step 4: error (non-fatal)

======================================================================
SUMMARY | 371s (6.2min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260601-143127-29b48b → +1 新增, ~0 更新 | 总计 778 首
[exit 0]

=== 2026-06-01 14:45:04 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-143127-29b48b ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/NIGosr49ThDn0stQh7PckUAUnmU
[Feishu] 📐 Expanded master sheet from 714 to 815 rows
[Feishu] ✅ Appended 1 new songs to master sheet (rows 715-715)
[MasterDB] ✅ 批次 batch-20260601-143127-29b48b → +1 新增, ~0 更新 | 总计 715 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/NIGosr49ThDn
[14:45:13] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [折鹤渡] topic head sent (message_id=om_x100b6ee6e96a08a0b1641ff6cb1c96e)
[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-143127-29b48b
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260601-143127-29b48b
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260601-143127-29b48b

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