{
  "timestamp": "2026-07-16T17:00:33.802184+08:00",
  "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7",
  "profile": "__runtime_batch-20260716-165823-93b9a7",
  "concurrency": 3,
  "resume_mode": "end",
  "pending_song_count": 3,
  "groups": [
    {
      "group_index": 1,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/01_Đắm Chìm (沦陷)_20260716",
        "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716",
        "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/03_琵琶曲（东船与西舫）_20260716"
      ],
      "success_count": 3,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/01_Đắm Chìm (沦陷)_20260716",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/01_Đắm Chìm (沦陷)_20260716/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-20260716-165823-93b9a7/01_Đắm Chìm (沦陷)_20260716",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/01_Đắm Chìm (沦陷)_20260716/step2_json_b.json",
              "agent_summary": "API direct: 霓虹体温",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716/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-20260716-165823-93b9a7/02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716/step2_json_b.json",
              "agent_summary": "API direct: 沙漏偏心",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/03_琵琶曲（东船与西舫）_20260716",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/03_琵琶曲（东船与西舫）_20260716/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-20260716-165823-93b9a7/03_琵琶曲（东船与西舫）_20260716",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7/03_琵琶曲（东船与西舫）_20260716/step2_json_b.json",
              "agent_summary": "API direct: 候鸟书",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        }
      ]
    }
  ],
  "resume": {
    "status": "success",
    "returncode": 0,
    "stdout_tail": "\n======================================================================\nmusic-pipeline3000 v2 | 4 songs\n======================================================================\nGemini concurrency: 2 | Suno concurrency: 3\nOutput: /srv/music-files-platform-next/pipeline/batch-20260716-165823-93b9a7\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[17:03:38] 🏥 Health check...\n[17:03:42] ✅ qishui: OK\n[17:03:42] ✅ netease: OK\n[17:03:42] ✅ qq: OK\n\n[17:03:42] 🔍 [04_彩云之南_20260716] Step 0: Fetching...\n  📝 [01_Đắm Chìm (沦陷)_20260716] lyrics stripped: 4198c → 4191c\n[17:03:42] 🎵 [01_Đắm Chìm (沦陷)_20260716] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  📝 [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] lyrics stripped: 3676c → 3671c\n[17:03:42] 🎵 [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  📝 [03_琵琶曲（东船与西舫）_20260716] lyrics stripped: 4279c → 4273c\n[17:03:42] 🎵 [03_琵琶曲（东船与西舫）_20260716] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  ✅ submitted: ['c04654c5', '885d9246']\n  ✅ submitted: ['65d733d4', '9c8e20da']\n  🎵 c04654c5... → submitted\n  🎵 885d9246... → submitted\n  ✅ submitted: ['9e856a98', '5d9bbdea']\n  🎵 65d733d4... → submitted\n  🎵 9c8e20da... → submitted\n  🎵 9e856a98... → submitted\n  🎵 5d9bbdea... → submitted\n[17:03:44] ⚠️  [netease] No audio URL for '彩云之南', likely no license\n[17:03:44] 🔄 [04_彩云之南_20260716] Step 0: retry 1/2 in 5s...\n  🎵 c04654c5... → queued\n  🎵 885d9246... → queued\n  🎵 65d733d4... → queued\n  🎵 9c8e20da... → queued\n[17:03:52] ⚠️  [netease] No audio URL for '彩云之南', likely no license\n[17:03:52] 🔄 [04_彩云之南_20260716] Step 0: retry 2/2 in 10s...\n  🎵 65d733d4... → streaming\n  🎵 9c8e20da... → streaming\n  🎵 9e856a98... → streaming\n  🎵 5d9bbdea... → queued\n  🎵 c04654c5... → streaming\n  🎵 885d9246... → streaming\n  🎵 5d9bbdea... → streaming\n[17:04:05] ⚠️  [netease] No audio URL for '彩云之南', likely no license\n[17:04:05] ❌ [04_彩云之南_20260716] Step 0: No audio URL\n  🎵 9e856a98... → complete\n  🎵 5d9bbdea... → complete\n[17:04:10]    🎧 [03_琵琶曲（东船与西舫）_20260716] Song 1: https://cdn1.suno.ai/9e856a98-1cc6-4dab-b2a0-062adabd8ed7.mp3\n[17:04:10]    🎧 [03_琵琶曲（东船与西舫）_20260716] Song 2: https://cdn1.suno.ai/5d9bbdea-eb17-4186-a0c9-1d8b569f5b88.mp3\n[17:04:10] 🎛️ [03_琵琶曲（东船与西舫）_20260716] Step 3.5: 混音...\n[17:04:31]    🎚️ [03_琵琶曲（东船与西舫）_20260716] Song 1: pop | 低73/中22/高5%\n[17:04:48]    🎚️ [03_琵琶曲（东船与西舫）_20260716] Song 2: pop | 低62/中35/高3%\n[17:04:48] ✅ [03_琵琶曲（东船与西舫）_20260716] Step 3.5: 38.6s | 2 songs mixed\n  🎵 c04654c5... → complete\n  🎵 885d9246... → complete\n[17:05:36]    🎧 [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] Song 1: https://cdn1.suno.ai/c04654c5-1af5-4396-be19-d60b4d320012.mp3\n[17:05:36]    🎧 [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] Song 2: https://cdn1.suno.ai/885d9246-4da6-4571-9bc2-9d2f3232a4db.mp3\n[17:05:36] 🎛️ [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] Step 3.5: 混音...\n[17:05:53]    🎚️ [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] Song 1: edm | 低72/中24/高4%\n  🎵 65d733d4... → complete\n[17:06:09]    🎚️ [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] Song 2: edm | 低77/中20/高3%\n[17:06:09] ✅ [02_青衣 (DJ我为你唱一曲如游丝的气息)_20260716] Step 3.5: 32.9s | 2 songs mixed\n  🎵 9c8e20da... → complete\n[17:06:25]    🎧 [01_Đắm Chìm (沦陷)_20260716] Song 1: https://cdn1.suno.ai/65d733d4-202a-4358-9867-2491511a07d4.mp3\n[17:06:25]    🎧 [01_Đắm Chìm (沦陷)_20260716] Song 2: https://cdn1.suno.ai/9c8e20da-9fd5-4e8f-82b5-37b2de3932d8.mp3\n[17:06:25] 🎛️ [01_Đắm Chìm (沦陷)_20260716] Step 3.5: 混音...\n[17:06:42]    🎚️ [01_Đắm Chìm (沦陷)_20260716] Song 1: edm | 低74/中23/高3%\n[17:07:00]    🎚️ [01_Đắm Chìm (沦陷)_20260716] Song 2: edm | 低75/中21/高4%\n[17:07:00] ✅ [01_Đắm Chìm (沦陷)_20260716] Step 3.5: 35.1s | 2 songs mixed\n\n======================================================================\nSUMMARY | 199s (3.3min)\n======================================================================\n✅ Done: 3 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1\n[MasterDB] ✅ 批次 batch-20260716-165823-93b9a7 → +3 新增, ~0 更新 | 总计 816 首\n",
    "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260716-165823-93b9a7' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260716-165823-93b9a7.yaml\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\nUnclosed connection\nclient_connection: Connection<ConnectionKey(host='localhost', port=12138, is_ssl=False, ssl=True, proxy=None, proxy_auth=None, proxy_headers_hash=None)>\n",
    "summary": {
      "timestamp": "2026-07-16T17:07:00.995951+08:00",
      "wall_clock": 198.8,
      "total": 4,
      "success": 3,
      "awaiting_step2": 0,
      "failed": 1
    }
  },
  "status": "success"
}