
=== 2026-05-12 16:36:05 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260512-163605-19aedb --resume /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb --target-language en ===
[profile] ✅ Loaded profile '__runtime_batch-20260512-163605-19aedb' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-163605-19aedb.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-163605-19aedb
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[16:36:06] 🏥 Health check...
[16:36:08] ✅ qishui: OK
[16:36:08] ✅ netease: OK
[16:36:08] ✅ qq: OK

[16:36:08] 🔍 [01_So Easy (To Fall In Love)_20260512] Step 0: Fetching...
[16:36:11] ✅ [01_So Easy (To Fall In Love)_20260512] Step 0: netease | 1504c lyrics
[16:36:11] ⬇️  [01_So Easy (To Fall In Love)_20260512] Step 0.5: Download from netease...
[16:36:15] ✅ [01_So Easy (To Fall In Love)_20260512] Step 0.5: 3242078 bytes | 169.0s
[16:36:15] 🔬 [01_So Easy (To Fall In Love)_20260512] Step 0.75: Audio features...
[16:36:37] ✅ [01_So Easy (To Fall In Love)_20260512] Step 0.75: BPM=140.02 Key=D# major (21.4s)
[16:36:37] 🧠 [01_So Easy (To Fall In Love)_20260512] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T08:36:37.431Z", "trace_id": "batch-20260512-163605-19aedb", "song_key": "01_So Easy (To Fall In Love)_20260512", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb/01_So Easy (To Fall In Love)_20260512/song_pgc.mp3", "has_features": true}}
[16:36:37] 🌐 Step 1: target_language=en (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-05-12T08:37:14.694Z", "trace_id": "batch-20260512-163605-19aedb", "song_key": "01_So Easy (To Fall In Love)_20260512", "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-05-12T08:37:14.695Z", "trace_id": "batch-20260512-163605-19aedb", "song_key": "01_So Easy (To Fall In Love)_20260512", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 37.264}
[16:37:14] ❌ [01_So Easy (To Fall In Love)_20260512] Step 1: http_503 (3.0s)

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

=== 2026-05-12 16:37:15 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-163605-19aedb ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-05-12 16:54:33 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260512-163605-19aedb --resume /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb --target-language en ===
[profile] ✅ Loaded profile '__runtime_batch-20260512-163605-19aedb' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260512-163605-19aedb.yaml

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

[16:54:34] 🏥 Health check...
[16:54:37] ✅ qishui: OK
[16:54:37] ✅ netease: OK
[16:54:37] ✅ qq: OK

[16:54:37] 🧠 [01_So Easy (To Fall In Love)_20260512] Step 1: Gemini (queuing)...
{"__trace__": true, "ts": "2026-05-12T08:54:37.632Z", "trace_id": "batch-20260512-163605-19aedb", "song_key": "01_So Easy (To Fall In Love)_20260512", "step": "step1", "type": "step_start", "inputs": {"audio": "/srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb/01_So Easy (To Fall In Love)_20260512/song_pgc.mp3", "has_features": true}}
[16:54:37] 🌐 Step 1: target_language=en (injecting override directive)
  📊 Gemini official: 48s | prompt_tokens=9059 completion=1974
{"__trace__": true, "ts": "2026-05-12T08:55:25.970Z", "trace_id": "batch-20260512-163605-19aedb", "song_key": "01_So Easy (To Fall In Love)_20260512", "step": "step1", "type": "api_call", "provider": "gemini", "model": "gemini-2.5-pro", "duration_sec": 48.3, "cost_usd": null, "status": "success"}
{"__trace__": true, "ts": "2026-05-12T08:55:25.970Z", "trace_id": "batch-20260512-163605-19aedb", "song_key": "01_So Easy (To Fall In Love)_20260512", "step": "step1", "type": "step_end", "status": "success", "duration_sec": 48.338}
[16:55:25] ⚠️  [01_So Easy (To Fall In Love)_20260512] Step 1.5: prompt 1311c > 1000c, compressing...
  📏 [01_So Easy (To Fall In Love)_20260512] prompt 1311c → 841c (smart truncate)
[16:55:25] ✅ [01_So Easy (To Fall In Love)_20260512] Step 1.5: prompt compressed 1311c → 841c
[16:55:25] ✅ [01_So Easy (To Fall In Love)_20260512] Step 1: 48.3s | prompt=841c | prompt_ok=True lyrics_ok=True
[16:55:25] 🌐 [01_So Easy (To Fall In Love)_20260512] Step 2: target_language=en → lang_mode=EN
[16:55:25] 🤖 [01_So Easy (To Fall In Love)_20260512] Step 2 API: 37581 chars ≈ 9395 tokens → claude-sonnet-4-6
[16:56:11] ⚠️  [01_So Easy (To Fall In Love)_20260512] Step 2 API: originality 53% < 85% | 3 copied phrases
          ❗ "over the Abmaj7 chord on "easy", creating sweet tension before resolving down to the Cm7.)" ~ "over the Abmaj7 chord on "easy", creating sweet tension before resolving down to the Cm7.)" (100%)
          ❗ "over the Abmaj7 chord on "easy", creating sweet tension before resolving down to the Cm7.)" ~ "over the Abmaj7 chord on "easy", creating sweet tension before resolving down to the Cm7.)" (100%)
          ❗ "over the simple chord progression, delaying resolution by floating without a strong melodic lead.)" ~ "over the simple chord progression, delaying resolution by floating without a strong melodic lead.)" (100%)
[16:56:11] 🔄 [01_So Easy (To Fall In Love)_20260512] Step 2 API: originality retry 1/3...
[16:56:55] ⚠️  [01_So Easy (To Fall In Love)_20260512] Step 2 API originality retry 1 failed: Expecting value: line 1 column 1 (char 0)
[16:56:55] ⚠️  [01_So Easy (To Fall In Love)_20260512] Step 2 API: best originality 53% after 3 retries
[16:56:55] ✅ [01_So Easy (To Fall In Love)_20260512] Step 2 API: 《Second Glance》 | 45.8s | in=19979 out=2839 | ~$0.103
[16:56:56] ✅ [01_So Easy (To Fall In Love)_20260512] Step 2.5: originality 53% ✓
[16:56:56] ✅ [01_So Easy (To Fall In Love)_20260512] Step 2: 《Second Glance》
[16:56:56] 📁 [01_So Easy (To Fall In Love)_20260512] Renamed → 01_So Easy (To Fall In Love)_Second_Glance_20260512
  📝 [01_So Easy (To Fall In Love)_Second_Glance_20260512] lyrics stripped: 5844c → 5000c
[16:56:56] 🎵 [01_So Easy (To Fall In Love)_Second_Glance_20260512] Step 3: Suno generation (weirdness=50, style_influence=50)...
[16:56:56] 🎨 [01_So Easy (To Fall In Love)_Second_Glance_20260512] Step 4: SeeDream cover (parallel)...
  ✅ submitted: ['60511f1c', '66b2595e']
  🎵 60511f1c... → submitted
  🎵 66b2595e... → submitted
  🎵 60511f1c... → queued
  🎵 66b2595e... → queued
  🎵 60511f1c... → streaming
  🎵 66b2595e... → streaming
  🎵 60511f1c... → complete
  🎵 66b2595e... → complete
[17:00:23]    🎧 [01_So Easy (To Fall In Love)_Second_Glance_20260512] Song 1: https://cdn1.suno.ai/60511f1c-d012-40c7-9730-7bbc162e3df3.mp3
[17:00:23]    🎧 [01_So Easy (To Fall In Love)_Second_Glance_20260512] Song 2: https://cdn1.suno.ai/66b2595e-7837-47e3-b0af-0a2b8378bc37.mp3
[17:00:23] 🎛️ [01_So Easy (To Fall In Love)_Second_Glance_20260512] Step 3.5: 混音...
[17:00:42]    🎚️ [01_So Easy (To Fall In Love)_Second_Glance_20260512] Song 1: edm | 低52/中45/高2%
[17:00:58]    🎚️ [01_So Easy (To Fall In Love)_Second_Glance_20260512] Song 2: edm | 低70/中29/高2%
[17:00:58] ✅ [01_So Easy (To Fall In Love)_Second_Glance_20260512] Step 3.5: 35.7s | 2 songs mixed
[17:00:58] ⚠️  [01_So Easy (To Fall In Love)_Second_Glance_20260512] Step 4: http_403 (non-fatal)

======================================================================
SUMMARY | 381s (6.4min)
======================================================================
✅ Done: 1 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260512-163605-19aedb → +1 新增, ~0 更新 | 总计 683 首
[exit 0]

=== 2026-05-12 17:00:59 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-163605-19aedb ===
[Feishu] ✅ Exported 1 songs to: https://ccnu62373cgc.feishu.cn/sheets/ItHqsrUjIhMIgitmhTwc0ri0nXf
[Feishu] 📐 Expanded master sheet from 622 to 723 rows
[Feishu] ✅ Appended 1 new songs to master sheet (rows 623-623)
[MasterDB] ✅ 批次 batch-20260512-163605-19aedb → +1 新增, ~0 更新 | 总计 623 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/ItHqsrUjIhMI
[17:01:10] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [Second Glance] topic head sent (message_id=om_x100b6f1a8bbe2ce0b48a11aa5ac8561)
[Feishu IM] ✅ [Second Glance] Second Glance_V1_raw.mp3 replied
[Feishu IM] ✅ [Second Glance] Second Glance_V1_mixed.mp3 replied
[Feishu IM] ✅ [Second Glance] Second Glance_V2_raw.mp3 replied
[Feishu IM] ✅ [Second Glance] Second Glance_V2_mixed.mp3 replied
[Feishu] ✅ Already on file server: /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260512-163605-19aedb
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260512-163605-19aedb

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