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

[22:49:06] 🏥 Health check...
[22:49:08] ✅ qishui: OK
[22:49:08] ✅ netease: OK
[22:49:08] ✅ qq: OK

[22:49:08] 🔍 [01_Rising Hope_20260420] Step 0: Fetching...
[22:49:08] 🔍 [02_紅蓮華_20260420] Step 0: Fetching...
[22:49:08] 🔍 [03_only my railgun_20260420] Step 0: Fetching...
[22:49:08] 🔍 [04_unravel_20260420] Step 0: Fetching...
[22:49:08] 🔍 [05_God knows..._20260420] Step 0: Fetching...
[22:49:11] ✅ [02_紅蓮華_20260420] Step 0: netease | 658c
[22:49:11] ⬇️  [02_紅蓮華_20260420] Step 0.5: Download from netease...
[22:49:11] ✅ [01_Rising Hope_20260420] Step 0: netease | 1026c
[22:49:11] ⬇️  [01_Rising Hope_20260420] Step 0.5: Download from netease...
[22:49:11] ✅ [03_only my railgun_20260420] Step 0: netease | 886c
[22:49:11] ⬇️  [03_only my railgun_20260420] Step 0.5: Download from netease...
[22:49:13] ✅ [04_unravel_20260420] Step 0: netease | 646c
[22:49:13] ⬇️  [04_unravel_20260420] Step 0.5: Download from netease...
[22:49:13] ✅ [05_God knows..._20260420] Step 0: netease | 539c
[22:49:13] ⬇️  [05_God knows..._20260420] Step 0.5: Download from netease...
[22:49:18] ✅ [01_Rising Hope_20260420] Step 0.5: 4901577 bytes | 252.3s
[22:49:18] 🔬 [01_Rising Hope_20260420] Step 0.75: Audio features...
[22:49:19] ✅ [02_紅蓮華_20260420] Step 0.5: 5174862 bytes | 236.0s
[22:49:19] 🔬 [02_紅蓮華_20260420] Step 0.75: Audio features...
[22:49:19] ✅ [03_only my railgun_20260420] Step 0.5: 5127236 bytes | 257.1s
[22:49:19] 🔬 [03_only my railgun_20260420] Step 0.75: Audio features...
[22:49:19] ✅ [04_unravel_20260420] Step 0.5: 4542944 bytes | 240.7s
[22:49:19] 🔬 [04_unravel_20260420] Step 0.75: Audio features...
[22:49:44] ✅ [05_God knows..._20260420] Step 0.5: 5460317 bytes | 278.9s
[22:49:44] 🔬 [05_God knows..._20260420] Step 0.75: Audio features...
[22:50:01] ✅ [02_紅蓮華_20260420] Step 0.75: BPM=135.31 Key=E minor (42.4s)
[22:50:01] 🧠 [02_紅蓮華_20260420] Step 1: Gemini (queuing)...
[22:50:01] 🌐 Step 1: target_language=zh (injecting override directive)
[22:50:01] ✅ [01_Rising Hope_20260420] Step 0.75: BPM=94.98 Key=G# major (43.3s)
[22:50:01] 🧠 [01_Rising Hope_20260420] Step 1: Gemini (queuing)...
[22:50:01] 🌐 Step 1: target_language=zh (injecting override directive)
[22:50:41] ✅ [03_only my railgun_20260420] Step 0.75: BPM=143.05 Key=D# major (40.1s)
[22:50:41] 🧠 [03_only my railgun_20260420] Step 1: Gemini (queuing)...
[22:50:41] 🌐 Step 1: target_language=zh (injecting override directive)
[22:50:52] ✅ [04_unravel_20260420] Step 0.75: BPM=134.78 Key=G minor (51.1s)
[22:50:52] 🧠 [04_unravel_20260420] Step 1: Gemini (queuing)...
[22:50:52] 🌐 Step 1: target_language=zh (injecting override directive)
[22:51:19] ✅ [05_God knows..._20260420] Step 0.75: BPM=150.06 Key=G# minor (38.1s)
[22:51:19] 🧠 [05_God knows..._20260420] Step 1: Gemini (queuing)...
[22:51:19] 🌐 Step 1: target_language=zh (injecting override directive)
  ⚠️ Gemini official 503 on key #1/5, will retry...
  🔄 Retry 1/4 in 3s...
  📊 Gemini official: 41s | prompt_tokens=11166 completion=1139
[22:51:33] ✅ [02_紅蓮華_20260420] Step 1: 40.9s | prompt=909c | prompt_ok=True lyrics_ok=True
  ⚠️ Gemini official 503 on key #1/5, will retry...
  🔄 Retry 1/4 in 3s...
  📊 Gemini official: 42s | prompt_tokens=11776 completion=1503
[22:52:12] ✅ [01_Rising Hope_20260420] Step 1: 42.0s | prompt=843c | prompt_ok=True lyrics_ok=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: 50s | prompt_tokens=11880 completion=1268
[22:52:34] ✅ [03_only my railgun_20260420] Step 1: 50.3s | prompt=863c | prompt_ok=True lyrics_ok=True
  📊 Gemini official: 35s | prompt_tokens=12385 completion=1177
[22:53:09] ✅ [05_God knows..._20260420] Step 1: 35.3s | prompt=892c | prompt_ok=True lyrics_ok=True
  📊 Gemini official: 43s | prompt_tokens=11229 completion=1118
[22:53:13] ✅ [04_unravel_20260420] Step 1: 43.2s | prompt=919c | prompt_ok=True lyrics_ok=True

======================================================================
SUMMARY | 245s (4.1min)
======================================================================
✅ Done: 5 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0
[MasterDB] ✅ 批次 batch-20260420-224904-dbc809 → +0 新增, ~0 更新 | 总计 557 首
[exit 0]

=== 2026-04-20 22:53:14 exec: /usr/bin/python3 /srv/current/3000music-platform-next/services/music-pipeline/scripts/orchestrate_phase2.py /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809 --profile base --resume-mode each --skip-feishu --target-language zh ===
[phase2] batch=batch-20260420-224904-dbc809 pending=5 groups=2
[phase2] group 1/2 -> 01_Rising Hope_20260420, 02_紅蓮華_20260420, 03_only my railgun_20260420
[profile] ✅ Loaded profile 'base' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/base.yaml
[phase2] 🌐 01_Rising Hope_20260420: target_language=zh
[profile] ✅ Loaded profile 'base' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/base.yaml
[phase2] 🌐 02_紅蓮華_20260420: target_language=zh
[profile] ✅ Loaded profile 'base' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/base.yaml
[phase2] 🌐 03_only my railgun_20260420: target_language=zh
[phase2] resume -> /usr/bin/python3 /srv/repos/3000music-platform-next/services/music-pipeline/scripts/pipeline.py /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/_manifest.json --resume /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809 --profile base --skip-feishu
[phase2] group 2/2 -> all songs already handled, skipping
[22:53:14] 🌐 [01_Rising Hope_20260420] Step 2: target_language=zh → lang_mode=ZH
[22:53:14] 🤖 [01_Rising Hope_20260420] Step 2 API: 28204 chars ≈ 7051 tokens → claude-sonnet-4-6
[22:53:14] 🌐 [02_紅蓮華_20260420] Step 2: target_language=zh → lang_mode=ZH
[22:53:14] 🤖 [02_紅蓮華_20260420] Step 2 API: 26978 chars ≈ 6744 tokens → claude-sonnet-4-6
[22:53:14] 🌐 [03_only my railgun_20260420] Step 2: target_language=zh → lang_mode=ZH
[22:53:14] 🤖 [03_only my railgun_20260420] Step 2 API: 27580 chars ≈ 6895 tokens → claude-sonnet-4-6
[22:53:49] ⚠️  Step 2 title library fetch failed: Server disconnected
[22:53:49] ✅ [03_only my railgun_20260420] Step 2 API: 《共振弦》 | 34.8s | in=15000 out=2180 | ~$0.078
[22:53:59] ✅ [02_紅蓮華_20260420] Step 2 API: 《刃上行》 | 44.7s | in=14774 out=2005 | ~$0.074
[22:54:02] ✅ [01_Rising Hope_20260420] Step 2 API: 《骨裂之前》 | 47.5s | in=15317 out=2460 | ~$0.083
{"timestamp": "2026-04-20T22:53:14.430561+08:00", "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809", "profile": "base", "concurrency": 3, "resume_mode": "each", "pending_song_count": 5, "groups": [{"group_index": 1, "songs": ["/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/01_Rising Hope_20260420", "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/02_紅蓮華_20260420", "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/03_only my railgun_20260420"], "success_count": 3, "failed_count": 0, "results": [{"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/01_Rising Hope_20260420", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/01_Rising Hope_20260420/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-20260420-224904-dbc809/01_Rising Hope_20260420", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/01_Rising Hope_20260420/step2_json_b.json", "agent_summary": "API direct: 骨裂之前", "returncode": 0, "stderr": "", "attempt": 1}]}, {"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/02_紅蓮華_20260420", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/02_紅蓮華_20260420/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-20260420-224904-dbc809/02_紅蓮華_20260420", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/02_紅蓮華_20260420/step2_json_b.json", "agent_summary": "API direct: 刃上行", "returncode": 0, "stderr": "", "attempt": 1}]}, {"status": "success", "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/03_only my railgun_20260420", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/03_only my railgun_20260420/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-20260420-224904-dbc809/03_only my railgun_20260420", "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/03_only my railgun_20260420/step2_json_b.json", "agent_summary": "API direct: 共振弦", "returncode": 0, "stderr": "", "attempt": 1}]}]}], "resume": {"status": "success", "returncode": 0, "stdout_tail": ": originality 74%\n[22:55:42] 🔄 [05_God knows..._20260420] Step 2 API: originality retry 2/3...\n  🎵 b9e29a8b... → complete\n  🎵 75583b2a... → complete\n  🎵 20a61e16... → complete\n  🎵 ed0729af... → complete\n[22:56:15]    🎧 [01_Rising Hope_20260420] Song 1: https://cdn1.suno.ai/ed0729af-a505-4d1c-9181-51bf3adea145.mp3\n[22:56:15]    🎧 [01_Rising Hope_20260420] Song 2: https://cdn1.suno.ai/b9e29a8b-6c25-46c9-9465-c8b9db06eb8d.mp3\n[22:56:15] 🎛️ [01_Rising Hope_20260420] Step 3.5: 混音...\n  ✅ submitted: ['8e44a2f0', 'a394da2f']\n[22:56:41]    🎚️ [01_Rising Hope_20260420] Song 1: rock | 低59/中32/高9%\n  ⏱  poll timeout, retry...\n[22:56:41] ⚠️  [05_God knows..._20260420] Step 2 API retry 2: originality 74%\n[22:56:41] 🔄 [05_God knows..._20260420] Step 2 API: originality retry 3/3...\n  🎵 a5d40c97... → complete\n[22:56:42]    🎧 [02_紅蓮華_20260420] Song 1: https://cdn1.suno.ai/75583b2a-dc04-4b77-ad7a-c33849852ac8.mp3\n[22:56:42]    🎧 [02_紅蓮華_20260420] Song 2: https://cdn1.suno.ai/a5d40c97-1f6f-479b-a385-b8639c3f2d54.mp3\n[22:56:42] 🎛️ [02_紅蓮華_20260420] Step 3.5: 混音...\n[22:57:00]    🎚️ [01_Rising Hope_20260420] Song 2: rock | 低44/中47/高9%\n[22:57:00] ✅ [01_Rising Hope_20260420] Step 3.5: 45.1s | 2 songs mixed\n  🎵 8e44a2f0... → queued\n  🎵 a394da2f... → streaming\n[22:57:20]    🎚️ [02_紅蓮華_20260420] Song 1: edm | 低42/中49/高9%\n[22:57:40]    🎚️ [02_紅蓮華_20260420] Song 2: hip_hop | 低30/中59/高11%\n[22:57:40] ✅ [02_紅蓮華_20260420] Step 3.5: 58.0s | 2 songs mixed\n[22:57:40] ⚠️  [01_Rising Hope_20260420] Cover download failed: \n[22:57:40] ✅ [01_Rising Hope_20260420] Step 4: 18.5s | https://platform.cdn.acedata.cloud/seedream/d83e8814-9e99-4208-9a31-7f97fb64fc03.jpg\n[22:57:40] ⚠️  [05_God knows..._20260420] Step 2 API originality retry 3 failed: Expecting value: line 1 column 1 (char 0)\n[22:57:40] ⚠️  [05_God knows..._20260420] Step 2 API: best originality 74% after 3 retries\n[22:57:42] ✅ [02_紅蓮華_20260420] Step 4: 17.9s | /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/02_紅蓮華_20260420/cover_seedream.jpg\n[22:57:45] ✅ [05_God knows..._20260420] Step 2 API: 《硝子の牙》 | 155.9s | in=51555 out=6368 | ~$0.250\n[22:57:45] ⚠️  [05_God knows..._20260420] Step 2.5: originality 74% < 75% | 0 copied phrases\n[22:57:45] ⏳ [05_God knows..._20260420] Step 2: 原创度不足，等待人审豁免或重试\n  🎵 2e57d429... → complete\n[22:58:17]    🎧 [03_only my railgun_20260420] Song 1: https://cdn1.suno.ai/20a61e16-8226-4547-829a-e13d1b1b95d3.mp3\n[22:58:17]    🎧 [03_only my railgun_20260420] Song 2: https://cdn1.suno.ai/2e57d429-7bd2-4d79-b5a8-4c32b316eb8d.mp3\n[22:58:17] 🎛️ [03_only my railgun_20260420] Step 3.5: 混音...\n  🎵 a394da2f... → complete\n[22:58:40]    🎚️ [03_only my railgun_20260420] Song 1: edm | 低43/中44/高13%\n  🎵 8e44a2f0... → streaming\n[22:59:23]    🎚️ [03_only my railgun_20260420] Song 2: edm | 低62/中29/高10%\n[22:59:23] ✅ [03_only my railgun_20260420] Step 3.5: 65.4s | 2 songs mixed\n  🎵 8e44a2f0... → complete\n[22:59:23]    🎧 [04_unravel_蜕皮_20260420] Song 1: https://cdn1.suno.ai/8e44a2f0-d8bd-448d-9b41-16cb5cadc488.mp3\n[22:59:23]    🎧 [04_unravel_蜕皮_20260420] Song 2: https://cdn1.suno.ai/a394da2f-c98d-4ead-b485-063d7475aabc.mp3\n[22:59:23] 🎛️ [04_unravel_蜕皮_20260420] Step 3.5: 混音...\n[22:59:45]    🎚️ [04_unravel_蜕皮_20260420] Song 1: edm | 低57/中38/高5%\n[22:59:45] ✅ [03_only my railgun_20260420] Step 4: 15.7s | /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/03_only my railgun_20260420/cover_seedream.jpg\n[23:00:04]    🎚️ [04_unravel_蜕皮_20260420] Song 2: edm | 低50/中41/高9%\n[23:00:04] ✅ [04_unravel_蜕皮_20260420] Step 3.5: 40.4s | 2 songs mixed\n[23:00:06] ✅ [04_unravel_蜕皮_20260420] Step 4: 16.3s | /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809/04_unravel_蜕皮_20260420/cover_seedream.jpg\n\n======================================================================\nSUMMARY | 361s (6.0min)\n======================================================================\n✅ Done: 4 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260420-224904-dbc809 → +4 新增, ~0 更新 | 总计 561 首\n", "stderr_tail": "[profile] ✅ Loaded profile 'base' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/base.yaml\n", "summary": {"timestamp": "2026-04-20T23:00:06.870788+08:00", "wall_clock": 361.5, "total": 5, "success": 4, "awaiting_step2": 0, "failed": 0}}, "status": "success"}
[exit 0]

=== 2026-04-20 23:00: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-20260420-224904-dbc809 ===
[Feishu] ✅ Exported 4 songs to: https://ccnu62373cgc.feishu.cn/sheets/KgqKsrHCGhhepTtqB5lcrZdYnAd
[Feishu] 📐 Expanded master sheet from 498 to 602 rows
[Feishu] ✅ Appended 4 new songs to master sheet (rows 499-502)
[MasterDB] ✅ 批次 batch-20260420-224904-dbc809 → +4 新增, ~0 更新 | 总计 502 首
[Feishu IM] ✅ Text sent: 📊 本批次结果表格：https://ccnu62373cgc.feishu.cn/sheets/KgqKsrHCGhhe
[23:00:16] 📨 Step 5: Sending files to Feishu IM...
[Feishu IM] ✅ [骨裂之前] topic head sent (message_id=om_x100b5157b6c5893cb3b3a0b99a289db)
[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 IM] ✅ [刃上行] topic head sent (message_id=om_x100b5157b7e840a8b3979fe349f80fd)
[Feishu IM] ✅ [刃上行] cover replied
[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 IM] ✅ [共振弦] topic head sent (message_id=om_x100b5157b4a460acb10f508e8c75fe3)
[Feishu IM] ✅ [共振弦] cover replied
[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 IM] ✅ [蜕皮] topic head sent (message_id=om_x100b5157b2fde4a8b485473dfdd7dc3)
[Feishu IM] ✅ [蜕皮] cover replied
[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 IM] ✅ [硝子の牙] topic head sent (message_id=om_x100b5157b3e6753cb2962894960132f)
[Feishu IM] ⚠️  [硝子の牙] 硝子の牙_V1_raw.mp3 not found, skipping
[Feishu IM] ⚠️  [硝子の牙] 硝子の牙_V1_mixed.mp3 not found, skipping
[Feishu IM] ⚠️  [硝子の牙] 硝子の牙_V2_raw.mp3 not found, skipping
[Feishu IM] ⚠️  [硝子の牙] 硝子の牙_V2_mixed.mp3 not found, skipping
[Feishu] ✅ Already on file server: /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809
[Feishu] ✅ Archived to GDrive: /mnt/gdrive/music-pipeline/batch-20260420-224904-dbc809
[Feishu] 📦 Local files kept at: /srv/music-files-platform-next/pipeline/batch-20260420-224904-dbc809

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