{
  "timestamp": "2026-07-03T19:15:17.453962+08:00",
  "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be",
  "profile": "__runtime_batch-20260703-191144-f825be",
  "concurrency": 3,
  "resume_mode": "end",
  "pending_song_count": 5,
  "groups": [
    {
      "group_index": 1,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/01_美丽的草原我的家_20260703",
        "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/02_我和草原有个约定_20260703",
        "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/03_神奇的九寨_20260703"
      ],
      "success_count": 3,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/01_美丽的草原我的家_20260703",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/01_美丽的草原我的家_20260703/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-20260703-191144-f825be/01_美丽的草原我的家_20260703",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/01_美丽的草原我的家_20260703/step2_json_b.json",
              "agent_summary": "API direct: 天边那片金色的光",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/02_我和草原有个约定_20260703",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/02_我和草原有个约定_20260703/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-20260703-191144-f825be/02_我和草原有个约定_20260703",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/02_我和草原有个约定_20260703/step2_json_b.json",
              "agent_summary": "API direct: 奔赴你 像河流奔赴海",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/03_神奇的九寨_20260703",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/03_神奇的九寨_20260703/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-20260703-191144-f825be/03_神奇的九寨_20260703",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/03_神奇的九寨_20260703/step2_json_b.json",
              "agent_summary": "API direct: 礁石之上有人守灯",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        }
      ]
    },
    {
      "group_index": 2,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/05_站在草原望北京(最火版)_20260703",
        "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/08_歌声不断酒不断_20260703"
      ],
      "success_count": 2,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/05_站在草原望北京(最火版)_20260703",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/05_站在草原望北京(最火版)_20260703/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-20260703-191144-f825be/05_站在草原望北京(最火版)_20260703",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/05_站在草原望北京(最火版)_20260703/step2_json_b.json",
              "agent_summary": "API direct: 火把点亮每座山",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/08_歌声不断酒不断_20260703",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/08_歌声不断酒不断_20260703/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-20260703-191144-f825be/08_歌声不断酒不断_20260703",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260703-191144-f825be/08_歌声不断酒不断_20260703/step2_json_b.json",
              "agent_summary": "API direct: 今夜星星都喝多了",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        }
      ]
    }
  ],
  "resume": {
    "status": "success",
    "returncode": 0,
    "stdout_tail": "[19:22:04] ⚠️  [netease] No audio URL for '朋友醉一场 (dj何鹏 2018 Remix)', likely no license\n[19:22:04] ❌ [06_朋友醉一场 (dj何鹏 2018 Remix)_20260703] Step 0: No audio URL\n[19:22:06] ⚠️  [netease] No audio URL for '为内蒙古喝彩', likely no license\n[19:22:06] ❌ [09_为内蒙古喝彩_20260703] Step 0: No audio URL\n  ✅ submitted: ['a7527e07', 'e788cda2']\n  ✅ submitted: ['f2ee45fb', '0f44d151']\n  🎵 a7527e07... → submitted\n  🎵 e788cda2... → submitted\n  🎵 f2ee45fb... → submitted\n  🎵 0f44d151... → submitted\n  ✅ submitted: ['ba9f7081', '3c037f39']\n  🎵 ba9f7081... → submitted\n  🎵 3c037f39... → submitted\n  🎵 a7527e07... → queued\n  🎵 e788cda2... → queued\n  🎵 f2ee45fb... → queued\n  🎵 0f44d151... → queued\n  🎵 ba9f7081... → queued\n  🎵 3c037f39... → queued\n  🎵 a7527e07... → streaming\n  🎵 e788cda2... → streaming\n  🎵 f2ee45fb... → streaming\n  🎵 0f44d151... → streaming\n  🎵 ba9f7081... → streaming\n  🎵 3c037f39... → streaming\n  🎵 e788cda2... → complete\n  🎵 ba9f7081... → complete\n  🎵 3c037f39... → complete\n[19:26:02]    🎧 [02_我和草原有个约定_20260703] Song 1: https://cdn1.suno.ai/ba9f7081-05a6-4541-b942-cd97e15b97f5.mp3\n[19:26:02]    🎧 [02_我和草原有个约定_20260703] Song 2: https://cdn1.suno.ai/3c037f39-b12b-43aa-b5de-533d7df4ff9e.mp3\n[19:26:02] 🎛️ [02_我和草原有个约定_20260703] Step 3.5: 混音...\n  🎵 f2ee45fb... → complete\n[19:26:28]    🎚️ [02_我和草原有个约定_20260703] Song 1: edm | 低45/中48/高7%\n  ✅ submitted: ['ec3c98d4', '845216d3']\n  🎵 ec3c98d4... → streaming\n  🎵 845216d3... → streaming\n[19:26:50]    🎚️ [02_我和草原有个约定_20260703] Song 2: edm | 低45/中50/高5%\n[19:26:50] ✅ [02_我和草原有个约定_20260703] Step 3.5: 47.6s | 2 songs mixed\n  🎵 0f44d151... → complete\n[19:26:56]    🎧 [01_美丽的草原我的家_20260703] Song 1: https://cdn1.suno.ai/f2ee45fb-a512-4341-93a2-4d032cecc572.mp3\n[19:26:56]    🎧 [01_美丽的草原我的家_20260703] Song 2: https://cdn1.suno.ai/0f44d151-43c3-48a4-90ce-64f1cd601e13.mp3\n[19:26:56] 🎛️ [01_美丽的草原我的家_20260703] Step 3.5: 混音...\n[19:27:19]    🎚️ [01_美丽的草原我的家_20260703] Song 1: hip_hop | 低50/中48/高2%\n  ✅ submitted: ['49761d78', '65ad38fb']\n  🎵 49761d78... → streaming\n  🎵 65ad38fb... → streaming\n[19:27:45]    🎚️ [01_美丽的草原我的家_20260703] Song 2: hip_hop | 低37/中60/高4%\n[19:27:45] ✅ [01_美丽的草原我的家_20260703] Step 3.5: 49.2s | 2 songs mixed\n  🎵 845216d3... → complete\n  🎵 ec3c98d4... → complete\n[19:28:22]    🎧 [05_站在草原望北京(最火版)_20260703] Song 1: https://cdn1.suno.ai/ec3c98d4-a249-4e4c-a4e8-ff4f07780c9d.mp3\n[19:28:22]    🎧 [05_站在草原望北京(最火版)_20260703] Song 2: https://cdn1.suno.ai/845216d3-1762-4fca-9399-751365eaf030.mp3\n[19:28:22] 🎛️ [05_站在草原望北京(最火版)_20260703] Step 3.5: 混音...\n[19:28:43]    🎚️ [05_站在草原望北京(最火版)_20260703] Song 1: edm | 低68/中29/高3%\n  🎵 a7527e07... → complete\n[19:28:44]    🎧 [03_神奇的九寨_20260703] Song 1: https://cdn1.suno.ai/a7527e07-f3dc-4c09-a951-640a54efe364.mp3\n[19:28:44]    🎧 [03_神奇的九寨_20260703] Song 2: https://cdn1.suno.ai/e788cda2-db9e-48f5-9e7f-917aa30eefab.mp3\n[19:28:44] 🎛️ [03_神奇的九寨_20260703] Step 3.5: 混音...\n[19:29:00]    🎚️ [05_站在草原望北京(最火版)_20260703] Song 2: edm | 低48/中48/高4%\n[19:29:00] ✅ [05_站在草原望北京(最火版)_20260703] Step 3.5: 38.0s | 2 songs mixed\n[19:29:34]    🎚️ [03_神奇的九寨_20260703] Song 1: pop | 低54/中43/高3%\n  🎵 49761d78... → complete\n  🎵 65ad38fb... → complete\n[19:29:34]    🎧 [08_歌声不断酒不断_20260703] Song 1: https://cdn1.suno.ai/49761d78-44c3-4287-911a-e25c5f542d23.mp3\n[19:29:34]    🎧 [08_歌声不断酒不断_20260703] Song 2: https://cdn1.suno.ai/65ad38fb-bd53-4323-b8c3-90208d2c58a6.mp3\n[19:29:34] 🎛️ [08_歌声不断酒不断_20260703] Step 3.5: 混音...\n[19:29:55]    🎚️ [03_神奇的九寨_20260703] Song 2: pop | 低37/中62/高2%\n[19:29:55] ✅ [03_神奇的九寨_20260703] Step 3.5: 71.8s | 2 songs mixed\n[19:30:13]    🎚️ [08_歌声不断酒不断_20260703] Song 1: pop | 低39/中56/高5%\n[19:30:30]    🎚️ [08_歌声不断酒不断_20260703] Song 2: pop | 低45/中49/高6%\n[19:30:30] ✅ [08_歌声不断酒不断_20260703] Step 3.5: 56.0s | 2 songs mixed\n\n======================================================================\nSUMMARY | 530s (8.8min)\n======================================================================\n✅ Done: 5 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 4\n[MasterDB] ✅ 批次 batch-20260703-191144-f825be → +5 新增, ~0 更新 | 总计 811 首\n",
    "stderr_tail": "[profile] ✅ Loaded profile '__runtime_batch-20260703-191144-f825be' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/__runtime_batch-20260703-191144-f825be.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)>\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)>\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)>\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)>\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-03T19:30:30.750303+08:00",
      "wall_clock": 530.0,
      "total": 9,
      "success": 5,
      "awaiting_step2": 0,
      "failed": 4
    }
  },
  "status": "success"
}