
=== 2026-05-12 23:51:31 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71 -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
[   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-20260512-235131-3a6f71
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[23:51:32] 🏥 Health check...
[23:51:34] ✅ qishui: OK
[23:51:34] ✅ netease: OK
[23:51:34] ✅ qq: OK

[23:51:34] 🔍 [01_给你一瓶魔法药水_20260512] Step 0: Fetching...
[23:51:35] ✅ [01_给你一瓶魔法药水_20260512] Step 0: qishui | 482c lyrics
[23:51:35] ⬇️  [01_给你一瓶魔法药水_20260512] Step 0.5: Download from qishui...
[23:51:40] ⚠️  [01_给你一瓶魔法药水_20260512] Step 0.5: Only 60.0s preview (expected 258s)
[23:51:40] 🔄 [01_给你一瓶魔法药水_20260512] Step 0.5: Trying fallback netease...
[23:51:50] ✅ [01_给你一瓶魔法药水_20260512] Step 0.5: Fallback netease → 258.8s full audio
[23:51:50] ✅ [01_给你一瓶魔法药水_20260512] Step 0.5: 5581041 bytes | 258.8s
[23:51:50] 🔬 [01_给你一瓶魔法药水_20260512] Step 0.75: Audio features...
[23:52:26] ✅ [01_给你一瓶魔法药水_20260512] Step 0.75: BPM=99.03 Key=E major (35.9s)
[23:52:26] 🧠 [01_给你一瓶魔法药水_20260512] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T15:52:26.368Z", "trace_id": "batch-20260512-235131-3a6f71", "song_key": "01_给你一瓶魔法药水_20260512", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71/01_给你一瓶魔法药水_20260512/song_pgc.mp3", "has_features": true}}
  ⚠️ Gemini official 503 on key #1/5, will retry...
  🔄 Retry 1/4 in 3s...
  📊 Gemini official: 48s | prompt_tokens=12250 completion=1626
{"__trace__": true, "ts": "2026-05-12T15:53:23.893Z", "trace_id": "batch-20260512-235131-3a6f71", "song_key": "01_给你一瓶魔法药水_20260512", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 47.7, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-12T15:53:23.894Z", "trace_id": "batch-20260512-235131-3a6f71", "song_key": "01_给你一瓶魔法药水_20260512", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 57.525}
[23:53:23] ✅ [01_给你一瓶魔法药水_20260512] Step 1: 47.7s | prompt=828c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 110s (1.8min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260512-235131-3a6f71 → +0 新增, ~0 更新 | 总计 723 首
[exit 0]

=== 2026-05-12 23:53:24 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71 --profile base --resume-mode each --skip-feishu ===
[phase2] batch=batch-20260512-235131-3a6f71 pending=1 groups=1
[phase2] group 1/1 -> 01_给你一瓶魔法药水_20260512
[profile] ✅ Loaded profile 'base' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/base.yaml
[phase2] 🌐 01_给你一瓶魔法药水_20260512: 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-20260512-235131-3a6f71/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71 --profile base --skip-feishu
[23:53:25] 🎨 [01_给你一瓶魔法药水_20260512] Step 2 Turn 1: generating creative brief...
[23:53:39] 🎨 [01_给你一瓶魔法药水_20260512] Step 2 brief: 14.7s | in=4479 out=492
[23:53:39] ✅ [01_给你一瓶魔法药水_20260512] Step 2 brief: engine=A theme=两人并肩站在天台，不说话，只是看同一片天空，却都觉得这是今天
[23:53:39] 🌐 [01_给你一瓶魔法药水_20260512] Step 2: target_language=auto → lang_mode=AUTO | multi-turn
[23:53:39] 🤖 [01_给你一瓶魔法药水_20260512] Step 2 Turn 2: 16655 chars ≈ 4163 tokens → claude-sonnet-4-6
[23:54:23] ⚠️  [01_给你一瓶魔法药水_20260512] Step 2 API: originality 76% < 85% | 0 copied phrases
[23:54:23] 🔄 [01_给你一瓶魔法药水_20260512] Step 2 API: originality retry 1/3...
[23:55:05] ⚠️  [01_给你一瓶魔法药水_20260512] Step 2 API retry 1: originality 76%
[23:55:05] 🔄 [01_给你一瓶魔法药水_20260512] Step 2 API: originality retry 2/3...
[23:55:46] ⚠️  [01_给你一瓶魔法药水_20260512] Step 2 API retry 2: originality 78%
[23:55:46] 🔄 [01_给你一瓶魔法药水_20260512] Step 2 API: originality retry 3/3...
[23:56:33] ⚠️  [01_给你一瓶魔法药水_20260512] Step 2 API originality retry 3 failed: Expecting value: line 1 column 1 (char 0)
[23:56:33] ⚠️  [01_给你一瓶魔法药水_20260512] Step 2 API: best originality 78% after 3 retries
[23:56:33] ✅ [01_给你一瓶魔法药水_20260512] Step 2 API: 《你站这里》 | 126.6s | in=44015 out=7890 | ~$0.250
{"timestamp": "2026-05-12T23:53:24.983202+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71", "profile": "base", "concurrency": 3, "resume_mode": "each", "pending_song_count": 1, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71/01_给你一瓶魔法药水_20260512"], "success_count": 1, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71/01_给你一瓶魔法药水_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71/01_给你一瓶魔法药水_20260512/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-20260512-235131-3a6f71/01_给你一瓶魔法药水_20260512", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71/01_给你一瓶魔法药水_20260512/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-20260512-235131-3a6f71\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[23:56:34] 🏥 Health check...\n[23:56:36] ✅ qishui: OK\n[23:56:36] ✅ netease: OK\n[23:56:36] ✅ qq: OK\n\n  📝 [01_给你一瓶魔法药水_20260512] lyrics stripped: 4734c → 4728c\n[23:56:36] 🎵 [01_给你一瓶魔法药水_20260512] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[23:56:36] 🎨 [01_给你一瓶魔法药水_20260512] Step 4: SeeDream cover (parallel)...\n  ✅ submitted: ['b970700e', '32376f7b']\n  🎵 b970700e... → submitted\n  🎵 32376f7b... → submitted\n  🎵 b970700e... → queued\n  🎵 32376f7b... → queued\n  🎵 b970700e... → streaming\n  🎵 32376f7b... → streaming\n  🎵 b970700e... → complete\n  🎵 32376f7b... → complete\n[23:59:39]    🎧 [01_给你一瓶魔法药水_20260512] Song 1: https://cdn1.suno.ai/b970700e-7881-4b7e-a609-d8691a65e418.mp3\n[23:59:39]    🎧 [01_给你一瓶魔法药水_20260512] Song 2: https://cdn1.suno.ai/32376f7b-8d3d-4d92-b836-522ffe22bc53.mp3\n[23:59:39] 🎛️ [01_给你一瓶魔法药水_20260512] Step 3.5: 混音...\n[00:00:02]    🎚️ [01_给你一瓶魔法药水_20260512] Song 1: pop | 低48/中47/高5%\n[00:00:21]    🎚️ [01_给你一瓶魔法药水_20260512] Song 2: rock | 低42/中54/高5%\n[00:00:21] ✅ [01_给你一瓶魔法药水_20260512] Step 3.5: 42.6s | 2 songs mixed\n[00:00:21] ⚠️  [01_给你一瓶魔法药水_20260512] Step 4: http_403 (non-fatal)\n\n======================================================================\nSUMMARY | 226s (3.8min)\n======================================================================\n✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260512-235131-3a6f71 → +1 新增, ~0 更新 | 总计 724 首\n", "stderr_tail": "[profile] ✅ Loaded profile 'base' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/base.yaml\n", "summary": {"timestamp": "2026-05-13T00:00:21.997347+08:00", "wall_clock": 225.9, "total": 1, "success": 1, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-05-13 00:00:23 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-235131-3a6f71 ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/Q289sARnRh1QC1t9xZQcvvSSnIE
[Feishu] 📐 Expanded master sheet from 662 to 763 rows
[Feishu] ✅ Appended 1 new songs to master sheet (rows 663-663)
[MasterDB] ✅ 批次 batch-20260512-235131-3a6f71 → +1 新增, ~0 更新 | 总计 663 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/Q289sARnRh1Q
[00:00:30] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [你站这里] topic head sent (message_id=om_x100b6f00a739c4acb39cfa3cc8e93ed)
[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-20260512-235131-3a6f71
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260512-235131-3a6f71
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260512-235131-3a6f71

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