{
  "timestamp": "2026-07-16T16:54:49.444263+08:00",
  "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f",
  "profile": "__runtime_batch-20260716-165311-87b60f",
  "concurrency": 3,
  "resume_mode": "end",
  "pending_song_count": 2,
  "groups": [
    {
      "group_index": 1,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f/01_套马杆_20260716",
        "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f/02_西海情歌_20260716"
      ],
      "success_count": 2,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f/01_套马杆_20260716",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f/01_套马杆_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-165311-87b60f/01_套马杆_20260716",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f/01_套马杆_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-165311-87b60f/02_西海情歌_20260716",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f/02_西海情歌_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-165311-87b60f/02_西海情歌_20260716",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f/02_西海情歌_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 | 3 songs\n======================================================================\nGemini concurrency: 2 | Suno concurrency: 3\nOutput: /srv/music-files-platform-next/pipeline/batch-20260716-165311-87b60f\nSkip Suno: False | Step1 only: False | Version: v4\n======================================================================\n\n[16:58:16] 🏥 Health check...\n[16:58:18] ✅ qishui: OK\n[16:58:18] ✅ netease: OK\n[16:58:18] ✅ qq: OK\n\n[16:58:18] 🔍 [03_吹吹山顶的风_20260716] Step 0: Fetching...\n  📝 [01_套马杆_20260716] lyrics stripped: 2598c → 2593c\n[16:58:18] 🎵 [01_套马杆_20260716] Step 3: Suno generation (weirdness=50, style_influence=50)...\n  📝 [02_西海情歌_20260716] lyrics stripped: 3491c → 3485c\n[16:58:18] 🎵 [02_西海情歌_20260716] Step 3: Suno generation (weirdness=50, style_influence=50)...\n[16:58:20] 🔄 [03_吹吹山顶的风_20260716] Step 0: retry 1/2 in 5s...\n[16:58:27] 🔄 [03_吹吹山顶的风_20260716] Step 0: retry 2/2 in 10s...\n[16:58:39] ❌ [03_吹吹山顶的风_20260716] Step 0: No audio URL\n  ✅ submitted: ['67afa053', 'b078b870']\n  🎵 67afa053... → submitted\n  🎵 b078b870... → submitted\n  🎵 67afa053... → queued\n  🎵 b078b870... → queued\n  🎵 67afa053... → streaming\n  🎵 b078b870... → streaming\n  ✅ submitted: ['9db8495e', '14897c81']\n  🎵 9db8495e... → submitted\n  🎵 14897c81... → submitted\n  🎵 9db8495e... → queued\n  🎵 14897c81... → queued\n  🎵 9db8495e... → streaming\n  🎵 14897c81... → streaming\n  🎵 67afa053... → complete\n  🎵 b078b870... → complete\n[17:02:45]    🎧 [02_西海情歌_20260716] Song 1: https://cdn1.suno.ai/67afa053-e694-4c34-8fe4-5ca7cd13b0a3.mp3\n[17:02:45]    🎧 [02_西海情歌_20260716] Song 2: https://cdn1.suno.ai/b078b870-fdfd-42b9-9f4a-a2c76999cb83.mp3\n[17:02:45] 🎛️ [02_西海情歌_20260716] Step 3.5: 混音...\n[17:03:11]    🎚️ [02_西海情歌_20260716] Song 1: pop | 低35/中62/高4%\n  🎵 9db8495e... → complete\n[17:03:30]    🎚️ [02_西海情歌_20260716] Song 2: hip_hop | 低45/中49/高6%\n[17:03:30] ✅ [02_西海情歌_20260716] Step 3.5: 44.8s | 2 songs mixed\n  🎵 14897c81... → complete\n[17:03:30]    🎧 [01_套马杆_20260716] Song 1: https://cdn1.suno.ai/9db8495e-bec2-4b93-9233-5e59d69e7faf.mp3\n[17:03:30]    🎧 [01_套马杆_20260716] Song 2: https://cdn1.suno.ai/14897c81-1a8f-45e0-bfef-498937d5cd89.mp3\n[17:03:30] 🎛️ [01_套马杆_20260716] Step 3.5: 混音...\n[17:03:48]    🎚️ [01_套马杆_20260716] Song 1: pop | 低54/中41/高5%\n[17:04:08]    🎚️ [01_套马杆_20260716] Song 2: pop | 低51/中44/高4%\n[17:04:08] ✅ [01_套马杆_20260716] Step 3.5: 37.8s | 2 songs mixed\n\n======================================================================\nSUMMARY | 350s (5.8min)\n======================================================================\n✅ Done: 2 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 1\n[MasterDB] ✅ 批次 batch-20260716-165311-87b60f → +2 新增, ~0 更新 | 总计 813 首\n",
    "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260716-165311-87b60f' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260716-165311-87b60f.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:04:08.761058+08:00",
      "wall_clock": 350.2,
      "total": 3,
      "success": 2,
      "awaiting_step2": 0,
      "failed": 1
    }
  },
  "status": "success"
}