
=== 2026-04-22 08:44:33 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260422-084433-04c342 --target-language zh --step1-only ===
[profile] ✅ Loaded profile '__runtime_batch-20260422-084433-04c342' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260422-084433-04c342.yaml

======================================================================
music-pipeline3000 v2 | 4 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342
Skip Suno: False | Step1 only: True | Version: v4
======================================================================

[08:44:35] 🏥 Health check...
[08:44:37] ✅ qishui: OK
[08:44:37] ✅ netease: OK
[08:44:37] ✅ qq: OK

[08:44:37] 🔍 [01_CRYSTALLINE FUNK_20260422] Step 0: Fetching...
[08:44:37] 🔍 [02_OI_20260422] Step 0: Fetching...
[08:44:37] 🔍 [03_MALVADO DE VAPO_20260422] Step 0: Fetching...
[08:44:37] 🔍 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: Fetching...
[08:44:37] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:44:37] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 1/2 in 5s...
[08:44:40] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:44:40] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 1/2 in 5s...
[08:44:41] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:44:41] 🔄 [02_OI_20260422] Step 0: retry 1/2 in 5s...
[08:44:41] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:44:41] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 1/2 in 5s...
[08:44:42] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:44:42] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 2/2 in 10s...
[08:44:48] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:44:48] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 2/2 in 10s...
[08:44:49] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:44:49] 🔄 [02_OI_20260422] Step 0: retry 2/2 in 10s...
[08:44:49] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:44:49] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 2/2 in 10s...
[08:44:52] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:44:52] ❌ [01_CRYSTALLINE FUNK_20260422] Step 0: No audio URL
[08:45:01] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:45:01] ❌ [03_MALVADO DE VAPO_20260422] Step 0: No audio URL
[08:45:01] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:45:01] ❌ [02_OI_20260422] Step 0: No audio URL
[08:45:02] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:45:02] ❌ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: No audio URL

======================================================================
SUMMARY | 24s (0.4min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 4
[exit 0]

=== 2026-04-22 08:45:02 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 --profile grammy --resume-mode each --skip-feishu --target-language zh ===
{"timestamp": "2026-04-22T08:45:02.602082+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342", "profile": "grammy", "concurrency": 3, "resume_mode": "each", "pending_song_count": 0, "groups": [], "status": "noop", "resume": null}
[exit 0]

=== 2026-04-22 08:45:02 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-04-22 08:46:06 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260422-084433-04c342 --resume /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260422-084433-04c342' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260422-084433-04c342.yaml

=== 2026-04-22 08:46:09 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260422-084433-04c342 --resume /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260422-084433-04c342' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260422-084433-04c342.yaml

======================================================================
music-pipeline3000 v2 | 4 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[08:46:08] 🏥 Health check...
[08:46:09] ✅ qishui: OK
[08:46:09] ✅ netease: OK
[08:46:09] ✅ qq: OK

[08:46:09] 🔍 [01_CRYSTALLINE FUNK_20260422] Step 0: Fetching...
[08:46:09] 🔍 [02_OI_20260422] Step 0: Fetching...
[08:46:09] 🔍 [03_MALVADO DE VAPO_20260422] Step 0: Fetching...
[08:46:09] 🔍 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: Fetching...
[08:46:09] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:46:09] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 1/2 in 5s...
[08:46:13] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:46:13] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 1/2 in 5s...
[08:46:13] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:46:13] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 1/2 in 5s...
[08:46:13] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:46:13] 🔄 [02_OI_20260422] Step 0: retry 1/2 in 5s...
[08:46:14] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:46:14] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 2/2 in 10s...
[08:46:20] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:46:20] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 2/2 in 10s...
[08:46:21] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:46:21] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 2/2 in 10s...
[08:46:21] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:46:21] 🔄 [02_OI_20260422] Step 0: retry 2/2 in 10s...
[08:46:24] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:46:24] ❌ [01_CRYSTALLINE FUNK_20260422] Step 0: No audio URL
[08:46:33] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:46:33] ❌ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: No audio URL
[08:46:33] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:46:33] ❌ [02_OI_20260422] Step 0: No audio URL
[08:46:34] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:46:34] ❌ [03_MALVADO DE VAPO_20260422] Step 0: No audio URL

======================================================================
SUMMARY | 24s (0.4min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 4
[exit 0]

=== 2026-04-22 08:46: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-20260422-084433-04c342 ===
[Feishu] No successful songs to export.
[exit 0]

======================================================================
music-pipeline3000 v2 | 4 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[08:46:11] 🏥 Health check...
[08:46:12] ✅ qishui: OK
[08:46:12] ✅ netease: OK
[08:46:12] ✅ qq: OK

[08:46:12] 🔍 [01_CRYSTALLINE FUNK_20260422] Step 0: Fetching...
[08:46:12] 🔍 [02_OI_20260422] Step 0: Fetching...
[08:46:12] 🔍 [03_MALVADO DE VAPO_20260422] Step 0: Fetching...
[08:46:12] 🔍 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: Fetching...
[08:46:12] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:46:12] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 1/2 in 5s...
[08:46:15] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:46:15] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 1/2 in 5s...
[08:46:15] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:46:15] 🔄 [02_OI_20260422] Step 0: retry 1/2 in 5s...
[08:46:16] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:46:16] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 1/2 in 5s...
[08:46:17] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:46:17] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 2/2 in 10s...
[08:46:22] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:46:22] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 2/2 in 10s...
[08:46:23] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:46:23] 🔄 [02_OI_20260422] Step 0: retry 2/2 in 10s...
[08:46:23] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:46:23] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 2/2 in 10s...
[08:46:27] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:46:27] ❌ [01_CRYSTALLINE FUNK_20260422] Step 0: No audio URL
[08:46:35] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:46:35] ❌ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: No audio URL
[08:46:35] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:46:35] ❌ [02_OI_20260422] Step 0: No audio URL
[08:46:36] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:46:36] ❌ [03_MALVADO DE VAPO_20260422] Step 0: No audio URL

======================================================================
SUMMARY | 24s (0.4min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 4
[exit 0]

=== 2026-04-22 08:46:36 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-04-22 08:47:26 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260422-084433-04c342 --resume /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260422-084433-04c342' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260422-084433-04c342.yaml

=== 2026-04-22 08:47:28 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260422-084433-04c342 --resume /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260422-084433-04c342' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260422-084433-04c342.yaml

======================================================================
music-pipeline3000 v2 | 4 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[08:47:27] 🏥 Health check...
[08:47:29] ✅ qishui: OK
[08:47:29] ✅ netease: OK
[08:47:29] ✅ qq: OK

[08:47:29] 🔍 [01_CRYSTALLINE FUNK_20260422] Step 0: Fetching...
[08:47:29] 🔍 [02_OI_20260422] Step 0: Fetching...
[08:47:29] 🔍 [03_MALVADO DE VAPO_20260422] Step 0: Fetching...
[08:47:29] 🔍 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: Fetching...
[08:47:29] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:47:29] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 1/2 in 5s...
[08:47:33] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:47:33] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 1/2 in 5s...
[08:47:33] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:47:33] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 1/2 in 5s...
[08:47:33] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:47:33] 🔄 [02_OI_20260422] Step 0: retry 1/2 in 5s...
[08:47:34] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:47:34] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 2/2 in 10s...
[08:47:40] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:47:40] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 2/2 in 10s...
[08:47:40] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:47:40] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 2/2 in 10s...
[08:47:41] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:47:41] 🔄 [02_OI_20260422] Step 0: retry 2/2 in 10s...
[08:47:49] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:47:49] ❌ [01_CRYSTALLINE FUNK_20260422] Step 0: No audio URL
[08:47:53] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:47:53] ❌ [03_MALVADO DE VAPO_20260422] Step 0: No audio URL
[08:47:53] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:47:53] ❌ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: No audio URL
[08:47:53] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:47:53] ❌ [02_OI_20260422] Step 0: No audio URL

======================================================================
SUMMARY | 24s (0.4min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 4
[exit 0]

=== 2026-04-22 08:47:53 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 ===
[Feishu] No successful songs to export.
[exit 0]

======================================================================
music-pipeline3000 v2 | 4 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[08:47:30] 🏥 Health check...
[08:47:32] ✅ qishui: OK
[08:47:32] ✅ netease: OK
[08:47:32] ✅ qq: OK

[08:47:32] 🔍 [01_CRYSTALLINE FUNK_20260422] Step 0: Fetching...
[08:47:32] 🔍 [02_OI_20260422] Step 0: Fetching...
[08:47:32] 🔍 [03_MALVADO DE VAPO_20260422] Step 0: Fetching...
[08:47:32] 🔍 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: Fetching...
[08:47:32] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:47:32] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 1/2 in 5s...
[08:47:34] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:47:34] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 1/2 in 5s...
[08:47:34] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:47:34] 🔄 [02_OI_20260422] Step 0: retry 1/2 in 5s...
[08:47:34] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:47:34] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 1/2 in 5s...
[08:47:37] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:47:37] 🔄 [01_CRYSTALLINE FUNK_20260422] Step 0: retry 2/2 in 10s...
[08:47:42] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:47:42] 🔄 [02_OI_20260422] Step 0: retry 2/2 in 10s...
[08:47:42] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:47:42] 🔄 [03_MALVADO DE VAPO_20260422] Step 0: retry 2/2 in 10s...
[08:47:42] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:47:42] 🔄 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: retry 2/2 in 10s...
[08:47:50] ⚠️  [qq] 'CRYSTALLINE FUNK' too short (75s < 120s), likely a cover/clip, skipping
[08:47:50] ❌ [01_CRYSTALLINE FUNK_20260422] Step 0: No audio URL
[08:47:54] ⚠️  [netease] 'OI' too short (88s < 120s), likely a cover/clip, skipping
[08:47:54] ❌ [02_OI_20260422] Step 0: No audio URL
[08:47:54] ⚠️  [netease] 'MONTAGEM MENTE MA (刀马进行曲)' too short (75s < 120s), likely a cover/clip, skipping
[08:47:54] ❌ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0: No audio URL
[08:47:54] ⚠️  [netease] 'MALVADO DE VAPO' too short (77s < 120s), likely a cover/clip, skipping
[08:47:54] ❌ [03_MALVADO DE VAPO_20260422] Step 0: No audio URL

======================================================================
SUMMARY | 23s (0.4min)
======================================================================
✅ Done: 0 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 4
[exit 0]

=== 2026-04-22 08:47:55 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/steps/step5_feishu.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 ===
[Feishu] No successful songs to export.
[exit 0]

=== 2026-04-22 08:54:26 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/_input.json -o /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 -cg 2 -cs 2 --skip-feishu --profile __runtime_batch-20260422-084433-04c342 --resume /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342 --target-language zh ===
[profile] ✅ Loaded profile '__runtime_batch-20260422-084433-04c342' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260422-084433-04c342.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')
/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 | 4 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[08:54:28] 🏥 Health check...
[08:54:30] ✅ qishui: OK
[08:54:30] ✅ netease: OK
[08:54:30] ✅ qq: OK

[08:54:30] ⬇️  [01_CRYSTALLINE FUNK_20260422] Step 0.5: Download from qq...
[08:54:30] ⬇️  [02_OI_20260422] Step 0.5: Download from netease...
[08:54:30] ⬇️  [03_MALVADO DE VAPO_20260422] Step 0.5: Download from netease...
[08:54:30] ⬇️  [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0.5: Download from netease...
[08:54:33] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0.5: 1621484 bytes | 75.7s
[08:54:33] 🔬 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0.75: Audio features...
[08:54:34] ✅ [02_OI_20260422] Step 0.5: 1687846 bytes | 88.0s
[08:54:34] 🔬 [02_OI_20260422] Step 0.75: Audio features...
[08:54:41] ✅ [01_CRYSTALLINE FUNK_20260422] Step 0.5: 1566642 bytes | 76.0s
[08:54:41] 🔬 [01_CRYSTALLINE FUNK_20260422] Step 0.75: Audio features...
[08:54:41] ✅ [03_MALVADO DE VAPO_20260422] Step 0.5: 1664856 bytes | 77.3s
[08:54:41] 🔬 [03_MALVADO DE VAPO_20260422] Step 0.75: Audio features...
[08:54:51] ✅ [02_OI_20260422] Step 0.75: BPM=129.98 Key=D# major (16.7s)
Traceback (most recent call last):
  File "/srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py", line 876, in <module>
    main()
    ~~~~^^
  File "/srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py", line 863, in main
    asyncio.run(run_pipeline(
    ~~~~~~~~~~~^^^^^^^^^^^^^^
        songs, output_dir,
        ^^^^^^^^^^^^^^^^^^
    ...<6 lines>...
        target_language=args.target_language,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ))
    ^^
  File "/usr/lib/python3.13/asyncio/runners.py", line 195, in run
    return runner.run(main)
           ~~~~~~~~~~^^^^^^
  File "/usr/lib/python3.13/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py", line 745, in run_pipeline
    results = await asyncio.gather(*tasks)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/srv/current/3000music-platform-next/services/music-pipeline/scripts/pipeline.py", line 308, in run_song
    lyrics = (song_dir / "lyrics.txt").read_text()
  File "/usr/lib/python3.13/pathlib/_local.py", line 548, in read_text
    return PathBase.read_text(self, encoding, errors, newline)
           ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/pathlib/_abc.py", line 632, in read_text
    with self.open(mode='r', encoding=encoding, errors=errors, newline=newline) as f:
         ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/pathlib/_local.py", line 539, in open
    return io.open(self, mode, buffering, encoding, errors, newline)
           ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/02_OI_20260422/lyrics.txt'
[exit 1]
[profile] ✅ Loaded profile 'grammy' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/grammy.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')
[   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')
[   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 | 4 songs
======================================================================
Gemini concurrency: 2 | Suno concurrency: 2
Output: /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342
Skip Suno: False | Step1 only: False | Version: v4
======================================================================

[09:34:22] 🏥 Health check...
[09:34:24] ✅ qishui: OK
[09:34:24] ✅ netease: OK
[09:34:24] ✅ qq: OK

[09:34:24] 🔬 [01_CRYSTALLINE FUNK_20260422] Step 0.75: Audio features...
[09:34:24] 🧠 [02_OI_20260422] Step 1: Gemini (queuing)...
[09:34:24] 🌐 Step 1: target_language=zh (injecting override directive)
[09:34:24] 🔬 [03_MALVADO DE VAPO_20260422] Step 0.75: Audio features...
[09:34:24] 🔬 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0.75: Audio features...
[09:34:41] ✅ [01_CRYSTALLINE FUNK_20260422] Step 0.75: BPM=127.02 Key=F# minor (17.2s)
[09:34:41] 🧠 [01_CRYSTALLINE FUNK_20260422] Step 1: Gemini (queuing)...
[09:34:41] 🌐 Step 1: target_language=zh (injecting override directive)
[09:34:52] ✅ [03_MALVADO DE VAPO_20260422] Step 0.75: BPM=129.88 Key=G# minor (11.5s)
[09:34:52] 🧠 [03_MALVADO DE VAPO_20260422] Step 1: Gemini (queuing)...
[09:34:52] 🌐 Step 1: target_language=zh (injecting override directive)
  📊 Gemini official: 36s | prompt_tokens=6030 completion=1268
[09:35:00] ⚠️  [02_OI_20260422] Step 1.5: prompt 1244c > 1000c, compressing...
  📏 [02_OI_20260422] prompt 1244c → 943c (smart truncate)
[09:35:00] ✅ [02_OI_20260422] Step 1.5: prompt compressed 1244c → 943c
[09:35:00] ✅ [02_OI_20260422] Step 1: 36.0s | prompt=943c | prompt_ok=True lyrics_ok=True
[09:35:00] 🌐 [02_OI_20260422] Step 2: target_language=zh → lang_mode=ZH
[09:35:00] 🤖 [02_OI_20260422] Step 2 API: 27654 chars ≈ 6913 tokens → claude-sonnet-4-6
[09:35:03] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 0.75: BPM=129.84 Key=C# minor (10.8s)
[09:35:03] 🧠 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 1: Gemini (queuing)...
[09:35:03] 🌐 Step 1: target_language=zh (injecting override directive)
  📊 Gemini official: 32s | prompt_tokens=5634 completion=1112
[09:35:31] ⚠️  [01_CRYSTALLINE FUNK_20260422] Step 1.5: prompt 1043c > 1000c, compressing...
  📏 [01_CRYSTALLINE FUNK_20260422] prompt 1043c → 955c (smart truncate)
[09:35:31] ✅ [01_CRYSTALLINE FUNK_20260422] Step 1.5: prompt compressed 1043c → 955c
[09:35:31] ✅ [01_CRYSTALLINE FUNK_20260422] Step 1: 31.6s | prompt=955c | prompt_ok=True lyrics_ok=True
[09:35:31] 🌐 [01_CRYSTALLINE FUNK_20260422] Step 2: target_language=zh → lang_mode=ZH
[09:35:31] 🤖 [01_CRYSTALLINE FUNK_20260422] Step 2 API: 27109 chars ≈ 6777 tokens → claude-sonnet-4-6
  📊 Gemini official: 31s | prompt_tokens=5989 completion=1294
[09:35:34] ⚠️  [03_MALVADO DE VAPO_20260422] Step 1.5: prompt 1253c > 1000c, compressing...
  📏 [03_MALVADO DE VAPO_20260422] prompt 1253c → 923c (smart truncate)
[09:35:34] ✅ [03_MALVADO DE VAPO_20260422] Step 1.5: prompt compressed 1253c → 923c
[09:35:34] ✅ [03_MALVADO DE VAPO_20260422] Step 1: 30.6s | prompt=923c | prompt_ok=True lyrics_ok=True
[09:35:34] 🌐 [03_MALVADO DE VAPO_20260422] Step 2: target_language=zh → lang_mode=ZH
[09:35:34] 🤖 [03_MALVADO DE VAPO_20260422] Step 2 API: 27623 chars ≈ 6905 tokens → claude-sonnet-4-6
[09:35:42] ⚠️  [02_OI_20260422] Step 2 API: originality 84% < 85% | 0 copied phrases
[09:35:42] 🔄 [02_OI_20260422] Step 2 API: originality retry 1/3...
[09:36:03] ⚠️  [03_MALVADO DE VAPO_20260422] Step 2 API: originality 80% < 85% | 1 copied phrases
          ❗ ". Sharp, transient-heavy snares and vocal chops occupy 2-5kHz. Saturated mids give warmth. Very little high-end air >10kHz. Aggressive bus compression and limiting for extreme loudness. Stereo field is narrow in the lows, with vocal chops panned for width.)" ~ ". Sharp, transient-heavy snares and vocal chops occupy 2-5kHz. Saturated mids give warmth. Very little high-end air >10kHz. Aggressive bus compression and limiting for extreme loudness. Stereo field is narrow in the lows, with vocal chops panned for width.)" (100%)
[09:36:03] 🔄 [03_MALVADO DE VAPO_20260422] Step 2 API: originality retry 1/3...
[09:36:07] ✅ [01_CRYSTALLINE FUNK_20260422] Step 2 API: 《压舱石》 | 35.7s | in=14576 out=1879 | ~$0.072
[09:36:07] ✅ [01_CRYSTALLINE FUNK_20260422] Step 2.5: originality 100% ✓
[09:36:07] ✅ [01_CRYSTALLINE FUNK_20260422] Step 2: 《压舱石》
[09:36:07] 📁 [01_CRYSTALLINE FUNK_20260422] Renamed → 01_CRYSTALLINE FUNK_压舱石_20260423
  📝 [01_CRYSTALLINE FUNK_压舱石_20260423] lyrics stripped: 2608c → 2601c
[09:36:07] 🎵 [01_CRYSTALLINE FUNK_压舱石_20260423] Step 3: Suno generation (weirdness=50, style_influence=50)...
[09:36:07] 🎨 [01_CRYSTALLINE FUNK_压舱石_20260423] Step 4: SeeDream cover (parallel)...
  📊 Gemini official: 37s | prompt_tokens=5642 completion=1160
[09:36:08] ⚠️  [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 1.5: prompt 1084c > 1000c, compressing...
  📏 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] prompt 1084c → 891c (smart truncate)
[09:36:08] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 1.5: prompt compressed 1084c → 891c
[09:36:08] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 1: 36.5s | prompt=891c | prompt_ok=True lyrics_ok=True
[09:36:08] 🌐 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 2: target_language=zh → lang_mode=ZH
[09:36:08] 🤖 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 2 API: 27427 chars ≈ 6856 tokens → claude-sonnet-4-6
[09:36:23] ✅ [02_OI_20260422] Step 2 API retry 1: originality 87% ✓
[09:36:23] ✅ [02_OI_20260422] Step 2 API: 《压舱石》 | 83.1s | in=31878 out=4134 | ~$0.158
[09:36:23] ✅ [02_OI_20260422] Step 2.5: originality 87% ✓
[09:36:23] ✅ [02_OI_20260422] Step 2: 《压舱石》
[09:36:23] 📁 [02_OI_20260422] Renamed → 02_OI_压舱石_20260423
  📝 [02_OI_压舱石_20260423] lyrics stripped: 3190c → 3183c
[09:36:23] 🎵 [02_OI_压舱石_20260423] Step 3: Suno generation (weirdness=50, style_influence=50)...
[09:36:23] 🎨 [02_OI_压舱石_20260423] Step 4: SeeDream cover (parallel)...
[09:36:28] ⚠️  [03_MALVADO DE VAPO_20260422] Step 2 API originality retry 1 failed: Expecting value: line 1 column 1 (char 0)
[09:36:28] ⚠️  [03_MALVADO DE VAPO_20260422] Step 2 API: best originality 80% after 3 retries
[09:36:28] ✅ [03_MALVADO DE VAPO_20260422] Step 2 API: 《骨震》 | 29.3s | in=14751 out=2084 | ~$0.076
[09:36:28] ✅ [03_MALVADO DE VAPO_20260422] Step 2.5: originality 80% ✓
[09:36:28] ✅ [03_MALVADO DE VAPO_20260422] Step 2: 《骨震》
[09:36:28] 📁 [03_MALVADO DE VAPO_20260422] Renamed → 03_MALVADO DE VAPO_骨震_20260423
  📝 [03_MALVADO DE VAPO_骨震_20260423] lyrics stripped: 2973c → 2967c
[09:36:28] 🎵 [03_MALVADO DE VAPO_骨震_20260423] Step 3: Suno generation (weirdness=50, style_influence=50)...
[09:36:28] 🎨 [03_MALVADO DE VAPO_骨震_20260423] Step 4: SeeDream cover (parallel)...
[09:36:45] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 2 API: 《铁齿咬弦》 | 37.5s | in=14656 out=1999 | ~$0.074
[09:36:45] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 2.5: originality 100% ✓
[09:36:45] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Step 2: 《铁齿咬弦》
[09:36:45] 📁 [04_MONTAGEM MENTE MA (刀马进行曲)_20260422] Renamed → 04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423
  📝 [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] lyrics stripped: 2969c → 2964c
[09:36:45] 🎵 [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Step 3: Suno generation (weirdness=50, style_influence=50)...
[09:36:45] 🎨 [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Step 4: SeeDream cover (parallel)...
  ✅ submitted: ['140fe8e1', 'bca85a33']
  🎵 140fe8e1... → submitted
  🎵 bca85a33... → submitted
  🎵 140fe8e1... → queued
  🎵 bca85a33... → queued
  🎵 bca85a33... → streaming
  ✅ submitted: ['57489136', '0b0c5ae9']
  🎵 57489136... → submitted
  🎵 0b0c5ae9... → submitted
  🎵 140fe8e1... → streaming
  🎵 57489136... → queued
  🎵 0b0c5ae9... → queued
  🎵 57489136... → streaming
  🎵 0b0c5ae9... → streaming
  🎵 bca85a33... → complete
  🎵 57489136... → complete
  🎵 0b0c5ae9... → complete
[09:39:27]    🎧 [02_OI_压舱石_20260423] Song 1: https://cdn1.suno.ai/57489136-2e47-4c7f-aee3-4ae1ff89dfa1.mp3
[09:39:27]    🎧 [02_OI_压舱石_20260423] Song 2: https://cdn1.suno.ai/0b0c5ae9-7e90-45ac-936f-4c8f1a8a5278.mp3
[09:39:27] 🎛️ [02_OI_压舱石_20260423] Step 3.5: 混音...
  ✅ submitted: ['77b693a5', '3dea387b']
[09:39:44]    🎚️ [02_OI_压舱石_20260423] Song 1: edm | 低67/中28/高5%
  🎵 77b693a5... → submitted
  🎵 3dea387b... → submitted
[09:40:05]    🎚️ [02_OI_压舱石_20260423] Song 2: edm | 低76/中18/高6%
[09:40:05] ✅ [02_OI_压舱石_20260423] Step 3.5: 37.4s | 2 songs mixed
  🎵 77b693a5... → streaming
  🎵 3dea387b... → streaming
[09:40:07] ✅ [02_OI_压舱石_20260423] Step 4: 17.7s | /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/02_OI_压舱石_20260423/cover_seedream.jpg
  🎵 3dea387b... → complete
  🎵 140fe8e1... → complete
[09:41:08]    🎧 [01_CRYSTALLINE FUNK_压舱石_20260423] Song 1: https://cdn1.suno.ai/140fe8e1-c886-4e7c-a0b6-b0ca87d484fa.mp3
[09:41:08]    🎧 [01_CRYSTALLINE FUNK_压舱石_20260423] Song 2: https://cdn1.suno.ai/bca85a33-e723-4f54-aef9-0deb31af3fbb.mp3
[09:41:08] 🎛️ [01_CRYSTALLINE FUNK_压舱石_20260423] Step 3.5: 混音...
  ✅ submitted: ['fb249f0d', 'eb4c28c1']
  🎵 fb249f0d... → submitted
  🎵 eb4c28c1... → submitted
[09:41:50]    🎚️ [01_CRYSTALLINE FUNK_压舱石_20260423] Song 1: edm | 低78/中18/高3%
  🎵 fb249f0d... → streaming
  🎵 eb4c28c1... → streaming
[09:42:06]    🎚️ [01_CRYSTALLINE FUNK_压舱石_20260423] Song 2: edm | 低87/中11/高2%
[09:42:06] ✅ [01_CRYSTALLINE FUNK_压舱石_20260423] Step 3.5: 57.2s | 2 songs mixed
[09:42:08] ✅ [01_CRYSTALLINE FUNK_压舱石_20260423] Step 4: 17.6s | /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/01_CRYSTALLINE FUNK_压舱石_20260423/cover_seedream.jpg
  🎵 77b693a5... → complete
[09:42:27]    🎧 [03_MALVADO DE VAPO_骨震_20260423] Song 1: https://cdn1.suno.ai/77b693a5-474f-4eeb-9cc5-faf9c60fea78.mp3
[09:42:27]    🎧 [03_MALVADO DE VAPO_骨震_20260423] Song 2: https://cdn1.suno.ai/3dea387b-a54a-4ba8-90bd-80c8592b0433.mp3
[09:42:27] 🎛️ [03_MALVADO DE VAPO_骨震_20260423] Step 3.5: 混音...
[09:43:06]    🎚️ [03_MALVADO DE VAPO_骨震_20260423] Song 1: edm | 低88/中10/高2%
  🎵 fb249f0d... → complete
  🎵 eb4c28c1... → complete
[09:43:06]    🎧 [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Song 1: https://cdn1.suno.ai/fb249f0d-caa5-4e4f-8d7b-697a492e2dfd.mp3
[09:43:06]    🎧 [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Song 2: https://cdn1.suno.ai/eb4c28c1-16db-464f-96c9-552593834f7b.mp3
[09:43:06] 🎛️ [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Step 3.5: 混音...
[09:43:22]    🎚️ [03_MALVADO DE VAPO_骨震_20260423] Song 2: edm | 低86/中12/高2%
[09:43:22] ✅ [03_MALVADO DE VAPO_骨震_20260423] Step 3.5: 55.3s | 2 songs mixed
[09:43:37]    🎚️ [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Song 1: edm | 低63/中33/高4%
[09:43:38] ✅ [03_MALVADO DE VAPO_骨震_20260423] Step 4: 13.4s | /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/03_MALVADO DE VAPO_骨震_20260423/cover_seedream.jpg
[09:43:51]    🎚️ [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Song 2: edm | 低75/中19/高5%
[09:43:51] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Step 3.5: 45.0s | 2 songs mixed
[09:43:53] ✅ [04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423] Step 4: 18.0s | /srv/music-files-platform-next/pipeline/batch-20260422-084433-04c342/04_MONTAGEM MENTE MA (刀马进行曲)_铁齿咬弦_20260423/cover_seedream.jpg

======================================================================
SUMMARY | 569s (9.5min)
======================================================================
✅ Done: 4 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260422-084433-04c342 → +4 新增, ~0 更新 | 总计 343 首
