{
  "timestamp": "2026-04-18T16:23:20.448664+08:00",
  "batch_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab",
  "agent": "v3",
  "profile": "grammy",
  "thinking": "low",
  "timeout": 600,
  "concurrency": 3,
  "resume_mode": "each",
  "pending_song_count": 4,
  "groups": [
    {
      "group_index": 1,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/01_High School In Jakarta_20260418",
        "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/02_What Was That_20260418",
        "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/03_Young And Beautiful_20260418"
      ],
      "success_count": 3,
      "failed_count": 0,
      "results": [
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/01_High School In Jakarta_20260418",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/01_High School In Jakarta_20260418/step2_json_b.json",
          "run_id": null,
          "agent_summary": "API direct: 便利贴存档",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/01_High School In Jakarta_20260418",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/01_High School In Jakarta_20260418/step2_json_b.json",
              "run_id": null,
              "agent_summary": "API direct: 便利贴存档",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/02_What Was That_20260418",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/02_What Was That_20260418/step2_json_b.json",
          "run_id": null,
          "agent_summary": "API direct: 便利贴",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/02_What Was That_20260418",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/02_What Was That_20260418/step2_json_b.json",
              "run_id": null,
              "agent_summary": "API direct: 便利贴",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        },
        {
          "status": "success",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/03_Young And Beautiful_20260418",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/03_Young And Beautiful_20260418/step2_json_b.json",
          "run_id": null,
          "agent_summary": "API direct: 尘封的胶卷",
          "returncode": 0,
          "stderr": "",
          "attempt": 1,
          "attempts": [
            {
              "status": "success",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/03_Young And Beautiful_20260418",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/03_Young And Beautiful_20260418/step2_json_b.json",
              "run_id": null,
              "agent_summary": "API direct: 尘封的胶卷",
              "returncode": 0,
              "stderr": "",
              "attempt": 1
            }
          ]
        }
      ]
    },
    {
      "group_index": 2,
      "songs": [
        "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_20260418"
      ],
      "success_count": 0,
      "failed_count": 1,
      "results": [
        {
          "status": "error",
          "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_20260418",
          "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_20260418/step2_json_b.json",
          "error_type": "api_error",
          "error": "step1_json_a.json not found",
          "run_id": null,
          "agent_summary": null,
          "returncode": 1,
          "stderr": "step1_json_a.json not found",
          "attempt": 2,
          "attempts": [
            {
              "status": "error",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_20260418",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_20260418/step2_json_b.json",
              "error_type": "api_error",
              "error": "step1_json_a.json not found",
              "run_id": null,
              "agent_summary": null,
              "returncode": 1,
              "stderr": "step1_json_a.json not found",
              "attempt": 1
            },
            {
              "status": "error",
              "song_dir": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_20260418",
              "step2_file": "/srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_20260418/step2_json_b.json",
              "error_type": "api_error",
              "error": "step1_json_a.json not found",
              "run_id": null,
              "agent_summary": null,
              "returncode": 1,
              "stderr": "step1_json_a.json not found",
              "attempt": 2
            }
          ]
        }
      ]
    }
  ],
  "resume": {
    "status": "success",
    "returncode": 0,
    "stdout_tail": "rv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/01_High School In Jakarta_20260418/cover_seedream.jpg\n[16:27:01] 🎤 [01_High School In Jakarta_20260418] Step 3.6: Lyrics alignment (faster-whisper)...\n  🎵 346a4e0b... → streaming\n  🎵 0509b3f3... → streaming\n[16:27:19]    🎚️ [02_What Was That_20260418] Song 2: edm | 低53/中42/高4%\n[16:27:19] ✅ [02_What Was That_20260418] Step 3.5: 35.8s | 2 songs mixed\n  🎵 22a33602... → complete\n[16:27:20] ✅ [02_What Was That_20260418] Step 4: 15.8s | /srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/02_What Was That_20260418/cover_seedream.jpg\n[16:27:20] 🎤 [02_What Was That_20260418] Step 3.6: Lyrics alignment (faster-whisper)...\n  🎵 00f4dc22... → complete\n[16:28:03]    🎧 [03_Young And Beautiful_20260418] Song 1: https://cdn1.suno.ai/22a33602-6455-405d-821a-f9200e2a3d45.mp3\n[16:28:03]    🎧 [03_Young And Beautiful_20260418] Song 2: https://cdn1.suno.ai/00f4dc22-dcb7-445c-b76d-5f65bb65c747.mp3\n[16:28:03] 🎛️ [03_Young And Beautiful_20260418] Step 3.5: 混音...\n[16:28:30]    🎚️ [03_Young And Beautiful_20260418] Song 1: pop | 低51/中44/高5%\n[16:28:56]    🎚️ [03_Young And Beautiful_20260418] Song 2: pop | 低47/中48/高4%\n[16:28:56] ✅ [03_Young And Beautiful_20260418] Step 3.5: 53.7s | 2 songs mixed\n  🎵 346a4e0b... → complete\n  🎵 0509b3f3... → complete\n[16:28:57]    🎧 [04_Summertime Sadness_Paper_Meridian_20260418] Song 1: https://cdn1.suno.ai/346a4e0b-f734-45b9-8dab-0ca832f08f0e.mp3\n[16:28:57]    🎧 [04_Summertime Sadness_Paper_Meridian_20260418] Song 2: https://cdn1.suno.ai/0509b3f3-a132-479b-9c7a-73d531dba637.mp3\n[16:28:57] 🎛️ [04_Summertime Sadness_Paper_Meridian_20260418] Step 3.5: 混音...\n[16:29:22]    🎚️ [04_Summertime Sadness_Paper_Meridian_20260418] Song 1: pop | 低50/中45/高5%\n[16:29:22] ✅ [01_High School In Jakarta_20260418] Step 3.6: confidence=1.0 | 40/40 lines | 133.5s\n[16:29:22] 📊 [01_High School In Jakarta_20260418] Step 3.8: Auto scoring (+ Gemini aesthetic)...\n[16:29:22] ✅ [03_Young And Beautiful_20260418] Step 4: 21.6s | /srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/03_Young And Beautiful_20260418/cover_seedream.jpg\n[16:29:22] 🎤 [03_Young And Beautiful_20260418] Step 3.6: Lyrics alignment (faster-whisper)...\n[16:29:45]    🎚️ [04_Summertime Sadness_Paper_Meridian_20260418] Song 2: pop | 低52/中40/高8%\n[16:29:45] ✅ [04_Summertime Sadness_Paper_Meridian_20260418] Step 3.5: 47.8s | 2 songs mixed\n[16:29:45] ✅ [01_High School In Jakarta_20260418] Step 3.8: A (8.28/10) | aesthetic=8.47 | flags=[]\n[16:29:46] ✅ [04_Summertime Sadness_Paper_Meridian_20260418] Step 4: 32.9s | /srv/music-files-platform-next/pipeline/batch-20260418-162012-16e0ab/04_Summertime Sadness_Paper_Meridian_20260418/cover_seedream.jpg\n[16:29:46] 🎤 [04_Summertime Sadness_Paper_Meridian_20260418] Step 3.6: Lyrics alignment (faster-whisper)...\n[16:33:39] ✅ [02_What Was That_20260418] Step 3.6: confidence=1.0 | 46/46 lines | 257.0s\n[16:33:39] 📊 [02_What Was That_20260418] Step 3.8: Auto scoring (+ Gemini aesthetic)...\n[16:34:00] ✅ [02_What Was That_20260418] Step 3.8: A (8.0/10) | aesthetic=8.54 | flags=[]\n[16:35:50] ✅ [03_Young And Beautiful_20260418] Step 3.6: confidence=1.0 | 36/36 lines | 130.5s\n[16:35:50] 📊 [03_Young And Beautiful_20260418] Step 3.8: Auto scoring (+ Gemini aesthetic)...\n[16:35:56] ✅ [03_Young And Beautiful_20260418] Step 3.8: A (8.2/10) | aesthetic=8.47 | flags=[]\n[16:39:33] ✅ [04_Summertime Sadness_Paper_Meridian_20260418] Step 3.6: confidence=1.0 | 38/38 lines | 223.5s\n[16:39:33] 📊 [04_Summertime Sadness_Paper_Meridian_20260418] Step 3.8: Auto scoring (+ Gemini aesthetic)...\n[16:39:51] ✅ [04_Summertime Sadness_Paper_Meridian_20260418] Step 3.8: S (8.95/10) | aesthetic=9.36 | flags=[]\n\n======================================================================\nSUMMARY | 904s (15.1min)\n======================================================================\n✅ Done: 4 | ⏳ Awaiting Step 2: 0 | ❌ Failed: 0\n[MasterDB] ✅ 批次 batch-20260418-162012-16e0ab → +4 新增, ~0 更新 | 总计 444 首\n",
    "stderr_tail": "[profile] ✅ Loaded profile 'grammy' from /srv/repos/3000music-platform-next/services/music-pipeline/scripts/profiles/grammy.yaml\n",
    "summary": {
      "timestamp": "2026-04-18T16:39:51.485092+08:00",
      "wall_clock": 904.3,
      "total": 4,
      "success": 4,
      "awaiting_step2": 0,
      "failed": 0
    }
  },
  "status": "partial_failure"
}