
=== 2026-05-12 22:01:07 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260512-220107-d28330/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260512-220107-d28330 -cg 2 -cs 2 --skip-feishu --profile base --step1-only ===
[profile] ✅ Loaded profile 'base' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/base.yaml
[step075] cache hit: song_pgc.mp3 → 2f283b0277b5

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

[22:01:08] 🏥 Health check...
[22:01:14] ✅ qishui: OK
[22:01:14] ❌ netease: DOWN
[22:01:14] ✅ qq: OK

[22:01:14] 🔍 [01_给你一瓶魔法药水_20260512] Step 0: Fetching...
[22:01:18] ✅ [01_给你一瓶魔法药水_20260512] Step 0: qishui | 482c lyrics
[22:01:18] ⬇️  [01_给你一瓶魔法药水_20260512] Step 0.5: Download from qishui...
[22:01:23] ⚠️  [01_给你一瓶魔法药水_20260512] Step 0.5: Only 60.0s preview (expected 258s)
[22:01:23] 🔄 [01_给你一瓶魔法药水_20260512] Step 0.5: Trying fallback netease...
[22:01:32] ✅ [01_给你一瓶魔法药水_20260512] Step 0.5: Fallback netease → 258.8s full audio
[22:01:32] ✅ [01_给你一瓶魔法药水_20260512] Step 0.5: 5581041 bytes | 258.8s
[22:01:32] 🔬 [01_给你一瓶魔法药水_20260512] Step 0.75: Audio features...
[22:01:32] ✅ [01_给你一瓶魔法药水_20260512] Step 0.75: BPM=99.03 Key=E major (36.2s)
[22:01:32] 🧠 [01_给你一瓶魔法药水_20260512] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T14:01:32.446Z", "trace_id": "batch-20260512-220107-d28330", "song_key": "01_给你一瓶魔法药水_20260512", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260512-220107-d28330/01_给你一瓶魔法药水_20260512/song_pgc.mp3", "has_features": true}}
  ⚠️ 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-05-12T14:02:12.681Z", "trace_id": "batch-20260512-220107-d28330", "song_key": "01_给你一瓶魔法药水_20260512", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 2.7, "cost_usd": null, "status": "http_503"}
{"__trace__": true, "ts": "2026-05-12T14:02:12.681Z", "trace_id": "batch-20260512-220107-d28330", "song_key": "01_给你一瓶魔法药水_20260512", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 40.235}
[22:02:12] ❌ [01_给你一瓶魔法药水_20260512] Step 1: http_503 (2.7s)

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

=== 2026-05-12 22:02:12 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260512-220107-d28330 --profile base --resume-mode each --skip-feishu ===
{"timestamp": "2026-05-12T22:02:13.112850+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-220107-d28330", "profile": "base", "concurrency": 3, "resume_mode": "each", "pending_song_count": 0, "groups": [], "status": "noop", "resume": null}
[exit 0]

=== 2026-05-12 22:02:13 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-220107-d28330 ===
[Feishu] No successful songs to export.
[exit 0]
