
=== 2026-05-14 12:05:04 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260514-120504-ff9f9f --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260514-120504-ff9f9f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260514-120504-ff9f9f.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')

======================================================================
music-pipeline3000 v2 | 5 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[12:05:06] 🏥 Health check...
[12:05:09] ✅ qishui: OK
[12:05:09] ✅ netease: OK
[12:05:09] ✅ qq: OK

[12:05:09] 🔍 [01_When We Wish Upon A Star_20260514] Step 0: Fetching...
[12:05:09] 🔍 [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 0: Fetching...
[12:05:09] 🔍 [03_Laughter in the Rain_20260514] Step 0: Fetching...
[12:05:09] 🔍 [04_nostalgia_20260514] Step 0: Fetching...
[12:05:09] 🔍 [05_Luv Sic, Pt. 2_20260514] Step 0: Fetching...
[12:05:12] ✅ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 0: netease | 68c lyrics
[12:05:12] ⬇️  [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 0.5: Download from netease...
[12:05:12] ✅ [01_When We Wish Upon A Star_20260514] Step 0: netease | 7c lyrics
[12:05:12] ⬇️  [01_When We Wish Upon A Star_20260514] Step 0.5: Download from netease...
[12:05:12] ✅ [03_Laughter in the Rain_20260514] Step 0: netease | 62c lyrics
[12:05:12] ⬇️  [03_Laughter in the Rain_20260514] Step 0.5: Download from netease...
[12:05:15] ✅ [04_nostalgia_20260514] Step 0: netease | 24c lyrics
[12:05:15] ⬇️  [04_nostalgia_20260514] Step 0.5: Download from netease...
[12:05:15] ✅ [05_Luv Sic, Pt. 2_20260514] Step 0: netease | 7c lyrics
[12:05:15] ⬇️  [05_Luv Sic, Pt. 2_20260514] Step 0.5: Download from netease...
[12:05:17] ✅ [04_nostalgia_20260514] Step 0.5: 2223716 bytes | 122.0s
[12:05:17] 🔬 [04_nostalgia_20260514] Step 0.75: Audio features...
[12:05:18] ✅ [03_Laughter in the Rain_20260514] Step 0.5: 4254217 bytes | 218.6s
[12:05:18] 🔬 [03_Laughter in the Rain_20260514] Step 0.75: Audio features...
[12:05:18] ✅ [01_When We Wish Upon A Star_20260514] Step 0.5: 3960598 bytes | 226.6s
[12:05:18] 🔬 [01_When We Wish Upon A Star_20260514] Step 0.75: Audio features...
[12:05:32] ✅ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 0.5: 5961125 bytes | 303.1s
[12:05:32] 🔬 [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 0.75: Audio features...
[12:05:32] ✅ [05_Luv Sic, Pt. 2_20260514] Step 0.5: 5052136 bytes | 250.0s
[12:05:32] 🔬 [05_Luv Sic, Pt. 2_20260514] Step 0.75: Audio features...
[12:05:48] ✅ [04_nostalgia_20260514] Step 0.75: BPM=80.0 Key=A minor (31.1s)
[12:05:48] 🧠 [04_nostalgia_20260514] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-14T04:05:48.945Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "04_nostalgia_20260514", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/04_nostalgia_20260514/song_pgc.mp3", "has_features": true}}
[   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')
[12:06:02] ✅ [03_Laughter in the Rain_20260514] Step 0.75: BPM=109.07 Key=F major (44.8s)
[12:06:02] 🧠 [03_Laughter in the Rain_20260514] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-14T04:06:02.999Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "03_Laughter in the Rain_20260514", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/03_Laughter in the Rain_20260514/song_pgc.mp3", "has_features": true}}
[step1] 🎹 Instrumental mode — acoustic vocal_score=0.347
[   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')
[12:06:27] ✅ [01_When We Wish Upon A Star_20260514] Step 0.75: BPM=136.09 Key=C major (38.4s)
[12:06:27] 🧠 [01_When We Wish Upon A Star_20260514] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-14T04:06:27.336Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "01_When We Wish Upon A Star_20260514", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/01_When We Wish Upon A Star_20260514/song_pgc.mp3", "has_features": true}}
[step1] 🎹 Instrumental mode — empty lyrics fallback
[   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')
[12:06:52] ✅ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 0.75: BPM=135.97 Key=D# major (49.9s)
[12:06:52] 🧠 [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-14T04:06:52.958Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "02_I Finally Found Someone (Cinema Sax Album Version)_20260514", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/02_I Finally Found Someone (Cinema Sax Album Version)_20260514/song_pgc.mp3", "has_features": true}}
[step1] 🎹 Instrumental mode — empty lyrics fallback
/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')
[12:07:00] ✅ [05_Luv Sic, Pt. 2_20260514] Step 0.75: BPM=92.42 Key=F# major (32.9s)
[12:07:00] 🧠 [05_Luv Sic, Pt. 2_20260514] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-14T04:07:00.251Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "05_Luv Sic, Pt. 2_20260514", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/05_Luv Sic, Pt. 2_20260514/song_pgc.mp3", "has_features": true}}
[step1] 🎹 Instrumental mode — empty lyrics fallback
  📊 Gemini official: 41s | prompt_tokens=7023 completion=1052
{"__trace__": true, "ts": "2026-05-14T04:07:34.254Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "04_nostalgia_20260514", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 41.2, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-14T04:07:34.255Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "04_nostalgia_20260514", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 105.31}
[12:07:34] ⚠️  [04_nostalgia_20260514] Step 1.5: prompt 1030c > 1000c, compressing...
  📏 [04_nostalgia_20260514] prompt 1030c → 934c (smart truncate)
[12:07:34] ✅ [04_nostalgia_20260514] Step 1.5: prompt compressed 1030c → 934c
[12:07:34] ✅ [04_nostalgia_20260514] Step 1: 41.2s | prompt=934c | prompt_ok=True lyrics_ok=True
  📊 Gemini official: 37s | prompt_tokens=8615 completion=1109
{"__trace__": true, "ts": "2026-05-14T04:07:37.774Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "03_Laughter in the Rain_20260514", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 37.5, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-14T04:07:37.774Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "03_Laughter in the Rain_20260514", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 94.775}
[12:07:37] ⚠️  [03_Laughter in the Rain_20260514] Step 1.5: prompt 1302c > 1000c, compressing...
  📏 [03_Laughter in the Rain_20260514] prompt 1302c → 810c (smart truncate)
[12:07:37] ✅ [03_Laughter in the Rain_20260514] Step 1.5: prompt compressed 1302c → 810c
[12:07:37] ✅ [03_Laughter in the Rain_20260514] Step 1: 37.5s | prompt=810c | prompt_ok=True lyrics_ok=True
  📊 Gemini official: 58s | prompt_tokens=8872 completion=1370
{"__trace__": true, "ts": "2026-05-14T04:08:32.186Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "01_When We Wish Upon A Star_20260514", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 57.9, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-14T04:08:32.186Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "01_When We Wish Upon A Star_20260514", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 124.85}
[12:08:32] ⚠️  [01_When We Wish Upon A Star_20260514] Step 1.5: prompt 1263c > 1000c, compressing...
  📏 [01_When We Wish Upon A Star_20260514] prompt 1263c → 931c (smart truncate)
[12:08:32] ✅ [01_When We Wish Upon A Star_20260514] Step 1.5: prompt compressed 1263c → 931c
[12:08:32] ✅ [01_When We Wish Upon A Star_20260514] Step 1: 57.9s | prompt=931c | prompt_ok=True lyrics_ok=True
  📊 Gemini official: 57s | prompt_tokens=11320 completion=1137
{"__trace__": true, "ts": "2026-05-14T04:08:34.723Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "02_I Finally Found Someone (Cinema Sax Album Version)_20260514", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 56.9, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-14T04:08:34.723Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "02_I Finally Found Someone (Cinema Sax Album Version)_20260514", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 101.765}
[12:08:34] ⚠️  [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 1.5: prompt 1625c > 1000c, compressing...
  📏 [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] prompt 1625c → 964c (smart truncate)
[12:08:34] ✅ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 1.5: prompt compressed 1625c → 964c
[12:08:34] ✅ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 1: 56.9s | prompt=964c | prompt_ok=True lyrics_ok=True
  📊 Gemini official: 46s | prompt_tokens=9619 completion=1040
{"__trace__": true, "ts": "2026-05-14T04:09:18.329Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "05_Luv Sic, Pt. 2_20260514", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 46.1, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-14T04:09:18.329Z", "trace_id": "batch-20260514-120504-ff9f9f", "song_key": "05_Luv Sic, Pt. 2_20260514", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 138.077}
[12:09:18] ⚠️  [05_Luv Sic, Pt. 2_20260514] Step 1.5: prompt 1340c > 1000c, compressing...
  📏 [05_Luv Sic, Pt. 2_20260514] prompt 1340c → 967c (smart truncate)
[12:09:18] ✅ [05_Luv Sic, Pt. 2_20260514] Step 1.5: prompt compressed 1340c → 967c
[12:09:18] ✅ [05_Luv Sic, Pt. 2_20260514] Step 1: 46.1s | prompt=967c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 249s (4.1min)
======================================================================
✅ Done: 5 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260514-120504-ff9f9f → +0 新增, ~0 更新 | 总计 762 首
[exit 0]

=== 2026-05-14 12:09:19 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f --profile __runtime_batch-20260514-120504-ff9f9f --resume-mode end --skip-feishu ===
[phase2] batch=batch-20260514-120504-ff9f9f pending=5 groups=2
[phase2] group 1/2 -> 01_When We Wish Upon A Star_20260514, 02_I Finally Found Someone (Cinema Sax Album Version)_20260514, 03_Laughter in the Rain_20260514
[profile] ✅ Loaded profile '__runtime_batch-20260514-120504-ff9f9f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260514-120504-ff9f9f.yaml
[phase2] 🎹 01_When We Wish Upon A Star_20260514: instrumental → step2 meta (title+cover, no lyrics)
[profile] ✅ Loaded profile '__runtime_batch-20260514-120504-ff9f9f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260514-120504-ff9f9f.yaml
[phase2] 🎹 02_I Finally Found Someone (Cinema Sax Album Version)_20260514: instrumental → step2 meta (title+cover, no lyrics)
[profile] ✅ Loaded profile '__runtime_batch-20260514-120504-ff9f9f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260514-120504-ff9f9f.yaml
[phase2] 🎹 03_Laughter in the Rain_20260514: instrumental → step2 meta (title+cover, no lyrics)
[phase2] group 2/2 -> 04_nostalgia_20260514, 05_Luv Sic, Pt. 2_20260514
[profile] ✅ Loaded profile '__runtime_batch-20260514-120504-ff9f9f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260514-120504-ff9f9f.yaml
[phase2] 🎹 04_nostalgia_20260514: instrumental → step2 meta (title+cover, no lyrics)
[profile] ✅ Loaded profile '__runtime_batch-20260514-120504-ff9f9f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260514-120504-ff9f9f.yaml
[phase2] 🎹 05_Luv Sic, Pt. 2_20260514: instrumental → step2 meta (title+cover, no lyrics)
[phase2] resume -> /usr/bin/python3 /srv/repos/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f --profile __runtime_batch-20260514-120504-ff9f9f --skip-feishu
[12:09:23] ✅ [03_Laughter in the Rain_20260514] Step 2 🎹 instrumental: 《Velvet Pocket》 | 3.3s | in=603 out=108
[12:09:24] ✅ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 2 🎹 instrumental: 《Silk on Still Water》 | 4.4s | in=692 out=151
[12:09:27] ✅ [01_When We Wish Upon A Star_20260514] Step 2 🎹 instrumental: 《Fractures in Amber》 | 7.3s | in=628 out=122
[12:09:30] ✅ [05_Luv Sic, Pt. 2_20260514] Step 2 🎹 instrumental: 《Velvet Static》 | 3.5s | in=705 out=125
[12:09:31] ✅ [04_nostalgia_20260514] Step 2 🎹 instrumental: 《Steamed Glass》 | 4.7s | in=665 out=152
{"timestamp": "2026-05-14T12:09:19.556674+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f", "profile": "__runtime_batch-20260514-120504-ff9f9f", "concurrency": 3, "resume_mode": "end", "pending_song_count": 5, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/01_When We Wish Upon A Star_20260514", "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/02_I Finally Found Someone (Cinema Sax Album Version)_20260514", "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/03_Laughter in the Rain_20260514"], "success_count": 3, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/01_When We Wish Upon A Star_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/01_When We Wish Upon A Star_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Fractures in Amber", "returncode": 0, "stderr": "", "attempt": 1, "attempts": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/01_When We Wish Upon A Star_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/01_When We Wish Upon A Star_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Fractures in Amber", "returncode": 0, "stderr": "", "attempt": 1}]}, {"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/02_I Finally Found Someone (Cinema Sax Album Version)_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/02_I Finally Found Someone (Cinema Sax Album Version)_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Silk on Still Water", "returncode": 0, "stderr": "", "attempt": 1, "attempts": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/02_I Finally Found Someone (Cinema Sax Album Version)_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/02_I Finally Found Someone (Cinema Sax Album Version)_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Silk on Still Water", "returncode": 0, "stderr": "", "attempt": 1}]}, {"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/03_Laughter in the Rain_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/03_Laughter in the Rain_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Velvet Pocket", "returncode": 0, "stderr": "", "attempt": 1, "attempts": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/03_Laughter in the Rain_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/03_Laughter in the Rain_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Velvet Pocket", "returncode": 0, "stderr": "", "attempt": 1}]}]}, {"group_index": 2, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/04_nostalgia_20260514", "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/05_Luv Sic, Pt. 2_20260514"], "success_count": 2, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/04_nostalgia_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/04_nostalgia_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Steamed Glass", "returncode": 0, "stderr": "", "attempt": 1, "attempts": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/04_nostalgia_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/04_nostalgia_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Steamed Glass", "returncode": 0, "stderr": "", "attempt": 1}]}, {"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/05_Luv Sic, Pt. 2_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/05_Luv Sic, Pt. 2_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Velvet Static", "returncode": 0, "stderr": "", "attempt": 1, "attempts": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/05_Luv Sic, Pt. 2_20260514", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f/05_Luv Sic, Pt. 2_20260514/step2_json_b.json", "agent_summary": "instrumental meta: Velvet Static", "returncode": 0, "stderr": "", "attempt": 1}]}]}], "resume": {"status": "success", "returncode": 0, "stdout_tail": "plete\n[12:11:37]    🎧 [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Song 1: https://cdn1.suno.ai/858226d4-6fbf-418d-9e86-312984c6c8e2.mp3\n[12:11:37]    🎧 [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Song 2: https://cdn1.suno.ai/8464ff8c-1fe5-498e-b6f6-7f2299470149.mp3\n[12:11:37] 🎛️ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 3.5: 混音...\n  ✅ submitted: ['4777688f', '39a19013']\n  🎵 4777688f... → submitted\n  🎵 39a19013... → submitted\n[12:11:57]    🎚️ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Song 1: classical | 低34/中66/高0%\n  🎵 4777688f... → streaming\n  🎵 39a19013... → streaming\n  🎵 94feb7c7... → complete\n  🎵 336d97d5... → complete\n[12:11:58]    🎧 [01_When We Wish Upon A Star_20260514] Song 1: https://cdn1.suno.ai/94feb7c7-f272-4151-86ff-230910b1c387.mp3\n[12:11:58]    🎧 [01_When We Wish Upon A Star_20260514] Song 2: https://cdn1.suno.ai/336d97d5-560b-4718-a4fc-5803cd68f0d0.mp3\n[12:11:58] 🎛️ [01_When We Wish Upon A Star_20260514] Step 3.5: 混音...\n[12:12:12]    🎚️ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Song 2: classical | 低55/中45/高0%\n[12:12:12] ✅ [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 3.5: 34.9s | 2 songs mixed\n[12:12:12] ⚠️  [02_I Finally Found Someone (Cinema Sax Album Version)_20260514] Step 4: http_403 (non-fatal)\n  ✅ submitted: ['edfd8c9a', '204d7c5f']\n  🎵 501c6ee9... → complete\n[12:12:12]    🎧 [03_Laughter in the Rain_20260514] Song 1: https://cdn1.suno.ai/38350f0f-12b5-449b-9f01-8108ef32a0ad.mp3\n[12:12:12]    🎧 [03_Laughter in the Rain_20260514] Song 2: https://cdn1.suno.ai/501c6ee9-e24b-4f80-890e-c9fce95fc539.mp3\n[12:12:12] 🎛️ [03_Laughter in the Rain_20260514] Step 3.5: 混音...\n  🎵 edfd8c9a... → streaming\n  🎵 204d7c5f... → queued\n[12:12:25]    🎚️ [03_Laughter in the Rain_20260514] Song 1: pop | 低67/中31/高2%\n[12:12:38]    🎚️ [01_When We Wish Upon A Star_20260514] Song 1: classical | 低32/中68/高0%\n[12:12:51]    🎚️ [03_Laughter in the Rain_20260514] Song 2: pop | 低68/中28/高3%\n[12:12:51] ✅ [03_Laughter in the Rain_20260514] Step 3.5: 38.7s | 2 songs mixed\n[12:12:51] ⚠️  [03_Laughter in the Rain_20260514] Step 4: http_403 (non-fatal)\n  🎵 204d7c5f... → streaming\n[12:13:05]    🎚️ [01_When We Wish Upon A Star_20260514] Song 2: edm | 低24/中76/高0%\n[12:13:05] ✅ [01_When We Wish Upon A Star_20260514] Step 3.5: 67.0s | 2 songs mixed\n[12:13:05] ⚠️  [01_When We Wish Upon A Star_20260514] Step 4: http_403 (non-fatal)\n  🎵 39a19013... → complete\n  🎵 4777688f... → complete\n[12:13:16]    🎧 [04_nostalgia_20260514] Song 1: https://cdn1.suno.ai/4777688f-432f-46c7-821d-f25ca5cba933.mp3\n[12:13:16]    🎧 [04_nostalgia_20260514] Song 2: https://cdn1.suno.ai/39a19013-6476-4609-b84e-24a0c72c6342.mp3\n[12:13:16] 🎛️ [04_nostalgia_20260514] Step 3.5: 混音...\n[12:13:28]    🎚️ [04_nostalgia_20260514] Song 1: edm | 低76/中24/高0%\n  🎵 204d7c5f... → complete\n[12:13:39]    🎚️ [04_nostalgia_20260514] Song 2: rnb | 低73/中27/高0%\n[12:13:39] ✅ [04_nostalgia_20260514] Step 3.5: 22.6s | 2 songs mixed\n[12:13:39] ⚠️  [04_nostalgia_20260514] Step 4: http_403 (non-fatal)\n  🎵 edfd8c9a... → complete\n[12:13:44]    🎧 [05_Luv Sic, Pt. 2_20260514] Song 1: https://cdn1.suno.ai/edfd8c9a-3212-4c81-bbf7-a807b5331727.mp3\n[12:13:44]    🎧 [05_Luv Sic, Pt. 2_20260514] Song 2: https://cdn1.suno.ai/204d7c5f-09f5-4a85-8483-f474199e4fba.mp3\n[12:13:44] 🎛️ [05_Luv Sic, Pt. 2_20260514] Step 3.5: 混音...\n[12:13:56]    🎚️ [05_Luv Sic, Pt. 2_20260514] Song 1: rnb | 低84/中16/高0%\n[12:14:06]    🎚️ [05_Luv Sic, Pt. 2_20260514] Song 2: rnb | 低83/中17/高0%\n[12:14:06] ✅ [05_Luv Sic, Pt. 2_20260514] Step 3.5: 22.1s | 2 songs mixed\n[12:14:06] ⚠️  [05_Luv Sic, Pt. 2_20260514] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 272s (4.5min)\n======================================================================\n✅ Done: 5 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260514-120504-ff9f9f → +5 新增, ~0 更新 | 总计 767 首\n", "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260514-120504-ff9f9f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260514-120504-ff9f9f.yaml\n", "summary": {"timestamp": "2026-05-14T12:14:06.953341+08:00", "wall_clock": 271.5, "total": 5, "success": 5, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-05-14 12:14: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-20260514-120504-ff9f9f ===
[Feishu] ✅ Exported 5 songs to: https://ccnu62373cgc.feishu.cn/sheets/Ov5fsToZnhO5TIt61vfc1LSrnvP
[Feishu] 📐 Expanded master sheet from 699 to 804 rows
[Feishu] ✅ Appended 5 new songs to master sheet (rows 700-704)
[MasterDB] ✅ 批次 batch-20260514-120504-ff9f9f → +5 新增, ~0 更新 | 总计 704 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/Ov5fsToZnhO5
[12:14:16] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [Fractures in Amber] topic head sent (message_id=om_x100b6f608f4abcb8b4b4434e47329c3)
[Feishu IM] ✅ [Fractures in Amber] Fractures in Amber_V1_raw.mp3 replied
[Feishu IM] ✅ [Fractures in Amber] Fractures in Amber_V1_mixed.mp3 replied
[Feishu IM] ✅ [Fractures in Amber] Fractures in Amber_V2_raw.mp3 replied
[Feishu IM] ✅ [Fractures in Amber] Fractures in Amber_V2_mixed.mp3 replied
[Feishu IM] ✅ [Silk on Still Water] topic head sent (message_id=om_x100b6f608c4b8840b28e2e8ae09daf0)
[Feishu IM] ✅ [Silk on Still Water] Silk on Still Water_V1_raw.mp3 replied
[Feishu IM] ✅ [Silk on Still Water] Silk on Still Water_V1_mixed.mp3 replied
[Feishu IM] ✅ [Silk on Still Water] Silk on Still Water_V2_raw.mp3 replied
[Feishu IM] ✅ [Silk on Still Water] Silk on Still Water_V2_mixed.mp3 replied
[Feishu IM] ✅ [Velvet Pocket] topic head sent (message_id=om_x100b6f608d9664acb28735926b7c395)
[Feishu IM] ✅ [Velvet Pocket] Velvet Pocket_V1_raw.mp3 replied
[Feishu IM] ✅ [Velvet Pocket] Velvet Pocket_V1_mixed.mp3 replied
[Feishu IM] ✅ [Velvet Pocket] Velvet Pocket_V2_raw.mp3 replied
[Feishu IM] ✅ [Velvet Pocket] Velvet Pocket_V2_mixed.mp3 replied
[Feishu IM] ✅ [Steamed Glass] topic head sent (message_id=om_x100b6f608a9e70acb34ebf53f0ba3bb)
[Feishu IM] ✅ [Steamed Glass] Steamed Glass_V1_raw.mp3 replied
[Feishu IM] ✅ [Steamed Glass] Steamed Glass_V1_mixed.mp3 replied
[Feishu IM] ✅ [Steamed Glass] Steamed Glass_V2_raw.mp3 replied
[Feishu IM] ✅ [Steamed Glass] Steamed Glass_V2_mixed.mp3 replied
[Feishu IM] ✅ [Velvet Static] topic head sent (message_id=om_x100b6f608b8a7cb4b393d1ccdef91f0)
[Feishu IM] ✅ [Velvet Static] Velvet Static_V1_raw.mp3 replied
[Feishu IM] ✅ [Velvet Static] Velvet Static_V1_mixed.mp3 replied
[Feishu IM] ✅ [Velvet Static] Velvet Static_V2_raw.mp3 replied
[Feishu IM] ✅ [Velvet Static] Velvet Static_V2_mixed.mp3 replied
[Feishu] ✅ Already on file server: /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260514-120504-ff9f9f
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260514-120504-ff9f9f

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