[2026-05-05 14:03:53] Start batch run
[2026-05-05 14:03:53] Batch config: clicks=5, model=Sway v5.0, smart_wait=True, auto_export=False, auto_publish=False
[2026-05-05 14:03:55] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:03:57] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:03:57] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 14:04:00] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 14:04:07] API GET /studio_api/authority failed: Page.evaluate: Target page, context or browser has been closed
[2026-05-05 14:04:07] open_studio: WARNING authority check failed: None
[2026-05-05 14:04:07] Batch run failed: BrowserContext.storage_state: Target page, context or browser has been closed
[2026-05-05 14:19:58] [SMS] received id=4 code=2026 phone=19999999999 src=unknown
[2026-05-05 14:23:09] [SMS] ignored (no digits): src=unknown body=验证码055469
[2026-05-05 14:23:11] [SMS] ignored (no digits): src=unknown body=验证码055469
[2026-05-05 14:23:37] [SMS] received id=5 code=055469 phone=12345 src=unknown
[2026-05-05 14:26:32] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:26:33] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:26:33] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 14:26:36] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 14:26:36] open_studio: WARNING authority check failed: {'baseResp': {'errorCode': -1002, 'errorMsg': '未登录'}, 'data': None}
[2026-05-05 14:26:41] open_studio: WARNING API still not working: {'baseResp': {'errorCode': -1002, 'errorMsg': '未登录'}, 'data': None}
[2026-05-05 14:27:08] [BATCH 21] ==================== BATCH START ====================
[2026-05-05 14:27:08] [BATCH 21] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\chinese_style.json, model=gemini-3f, total=1, lang=中文, auto_compose=True, compose_model=7, auto_publish=True, auth_type=exclusive
[2026-05-05 14:27:09] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:27:20] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:27:20] [P1] ========== PHASE 1 START: generating 1 lyrics ==========
[2026-05-05 14:27:20] [P1] --- Lyrics 1/1 ---
[2026-05-05 14:27:20] [P1] Prompt: 你是一位精通古典诗词与现代流行音乐的顶级词人。请为女声创作一首中文古风歌词,主题为「剑客临终回忆一生」,曲风为戏腔流行,情绪为壮志未酬,时代质感偏近代民国的古今交融。要求:1)前4句必须出现hook,...
[2026-05-05 14:27:20] Current URL: https://music.douyin.com/studio
[2026-05-05 14:27:42] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-05 14:27:49] WARNING: could not extract userID
[2026-05-05 14:27:49] [P1] Lyrics 1/1: FAILED (took 29s)
[2026-05-05 14:27:49] [P1] ========== PHASE 1 DONE: 0 ok, 1 failed, total time=29s ==========
[2026-05-05 14:27:49] [BATCH 21] auto_compose enabled but 0 lyrics completed, skipping phase 2
[2026-05-05 14:27:49] [BATCH 21] auto_publish enabled but 0 exports, skipping phase 3
[2026-05-05 14:27:49] [BATCH 21] ==================== BATCH END (total 41s) ====================
[2026-05-05 14:28:19] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:28:20] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:29:21] [BATCH 22] ==================== BATCH START ====================
[2026-05-05 14:29:21] [BATCH 22] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\chinese_style.json, model=gemini-3f, total=2, lang=中文, auto_compose=True, compose_model=7, auto_publish=True, auth_type=exclusive
[2026-05-05 14:29:22] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:29:23] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:29:23] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-05 14:29:23] [P1] --- Lyrics 1/2 ---
[2026-05-05 14:29:23] [P1] Prompt: 你是一位精通古典诗词与现代流行音乐的顶级词人。请为女声创作一首中文古风歌词,主题为「将军百战归来与妻重逢」,曲风为笛箫ambient,情绪为快意恩仇,时代质感偏汉朝边塞的苍凉辽阔。要求:1)前4句必须...
[2026-05-05 14:29:23] Current URL: https://music.douyin.com/studio
[2026-05-05 14:29:26] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-05 14:29:26] Extracted userID from profile API: 104709151573
[2026-05-05 14:29:27] Got conversationId: 7626633213754638378
[2026-05-05 14:29:27] Sending lyrics request: model=gemini-3f, prompt=你是一位精通古典诗词与现代流行音乐的顶级词人。请为女声创作一首中文古风歌词,主题为「将军百战归来与妻...
[2026-05-05 14:30:05] Lyrics received: 625 chars
[2026-05-05 14:30:05] [P1] Lyrics 1/2: OK (took 43s)
[2026-05-05 14:30:08] [P1] --- Lyrics 2/2 ---
[2026-05-05 14:30:08] [P1] Prompt: 你是一位精通古典诗词与现代流行音乐的顶级词人。请为男声创作一首中文古风歌词,主题为「书生与知己的知音之交」,曲风为中国风R&B,情绪为壮志未酬,时代质感偏唐朝盛世的恢弘大气。要求:1)前4句必须出现h...
[2026-05-05 14:30:08] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-05 14:30:11] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-05 14:30:12] Extracted userID from profile API: 104709151573
[2026-05-05 14:30:13] Got conversationId: 7626633213754638378
[2026-05-05 14:30:13] Sending lyrics request: model=gemini-3f, prompt=你是一位精通古典诗词与现代流行音乐的顶级词人。请为男声创作一首中文古风歌词,主题为「书生与知己的知音...
[2026-05-05 14:30:49] Lyrics received: 618 chars
[2026-05-05 14:30:49] [P1] Lyrics 2/2: OK (took 41s)
[2026-05-05 14:30:49] [P1] ========== PHASE 1 DONE: 2 ok, 0 failed, total time=86s ==========
[2026-05-05 14:30:49] [BATCH 22] Transitioning to Phase 2: compose + export...
[2026-05-05 14:30:49] [BATCH 22] Navigating from lyrics page to studio page...
[2026-05-05 14:30:49] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-05 14:30:56] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 14:30:56] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 14:30:56] [BATCH 22] Studio page ready, starting composition pipeline
[2026-05-05 14:30:56] [P2] ========== PHASE 2 START: compose+export for batch 22 ==========
[2026-05-05 14:30:56] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-05 14:30:57] can_create: True (used=0/2, total=142/1000)
[2026-05-05 14:30:57] [P2] Quota check: can=True, used=0/2, total=142/1000
[2026-05-05 14:30:57] [P2] --- Song 1/2: '管他什么天下' (lyrics_id=40) ---
[2026-05-05 14:30:57] [P2] Style desc: 一首融合了氛围音乐(Ambient)元素的中文古风歌曲。以悠远空灵的笛子和箫作为主奏乐器,营造出苍凉辽阔的汉代边塞质感。配器以飘渺的合成器垫音和稀疏的打击乐为基...
[2026-05-05 14:30:57] [P2] Lyrics length: 327 chars, first line: [intro]
[2026-05-05 14:30:57] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-05 14:30:57] create_advanced_task: model=7, prompt=一首融合了氛围音乐(Ambient)元素的中文古风歌曲。以悠远空灵的笛子和箫作为主奏乐器,营造出苍凉辽阔的汉代边塞质感。..., lyrics=327 chars
[2026-05-05 14:30:57] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636291348140018467', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 14:30:57] create_advanced_task: ok=True, TaskID=7636291348140018467, errCode=0
[2026-05-05 14:30:57] [P2] Step 1 result: ok=True, task_id=7636291348140018467, error=, took 0.3s
[2026-05-05 14:30:57] [P2] Step 2: Waiting for TaskID=7636291348140018467 to complete...
[2026-05-05 14:30:57] wait_for_task: TaskID=7636291348140018467, expected=2, timeout=480s
[2026-05-05 14:31:07] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-05 14:31:22] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-05 14:31:37] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-05 14:31:53] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-05 14:32:08] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-05 14:32:23] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-05 14:32:38] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-05 14:32:53] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-05 14:33:08] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-05 14:33:23] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-05 14:33:39] wait_for_task: 150s, 1/2 completed (expected=2)
[2026-05-05 14:33:54] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-05 14:34:09] wait_for_task: 180s, 2/2 completed (expected=2)
[2026-05-05 14:34:09] wait_for_task: done! 2 works stable after 180s: ['7636291384299031336', '7636291384299047720']
[2026-05-05 14:34:09] [P2] Step 2 done: 2 works generated in 192s, WorkIDs=['7636291384299031336', '7636291384299047720']
[2026-05-05 14:34:09] [P2] Step 3: Exporting WorkID=7636291384299031336 (1/2) title='管他什么天下'...
[2026-05-05 14:34:10] export(7636291384299031336): VID=v02003g10004d7sougaljht0o5lgr6dg, Title=管他什么天下, Duration=204960ms
[2026-05-05 14:34:11] _create_project: ProjectID=7636292164674325283
[2026-05-05 14:34:11] export(7636291384299031336): human pause 9.2s between save-project and export
[2026-05-05 14:34:20] export(7636291384299031336): CreateStudioTask ProjectID=7636292164674325283, VID=v02003g10004d7sougaljht0o5lgr6dg
[2026-05-05 14:34:22] export(7636291384299031336): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636292195913583375', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 14:34:22] export(7636291384299031336): ok=True, TaskID=7636292195913583375, errCode=0, biz=
[2026-05-05 14:34:22] [P2] Export OK: WorkID=7636291384299031336, TaskID=7636292195913583375, took 12.5s
[2026-05-05 14:34:22] [P2] Human pause 14.9s before next export...
[2026-05-05 14:34:36] [P2] Step 3: Exporting WorkID=7636291384299047720 (2/2) title='管他什么天下'...
[2026-05-05 14:34:37] export(7636291384299047720): VID=v03003g10004d7souiiljhtaa0lick90, Title=管他什么天下, Duration=197280ms
[2026-05-05 14:34:39] _create_project: ProjectID=7636292275169446708
[2026-05-05 14:34:39] export(7636291384299047720): human pause 12.5s between save-project and export
[2026-05-05 14:34:51] export(7636291384299047720): CreateStudioTask ProjectID=7636292275169446708, VID=v03003g10004d7souiiljhtaa0lick90
[2026-05-05 14:34:52] export(7636291384299047720): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636292354722532131', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 14:34:52] export(7636291384299047720): ok=True, TaskID=7636292354722532131, errCode=0, biz=
[2026-05-05 14:34:52] [P2] Export OK: WorkID=7636291384299047720, TaskID=7636292354722532131, took 16.0s
[2026-05-05 14:34:52] [P2] Waiting 5s before next composition...
[2026-05-05 14:34:57] [P2] --- Song 2/2: '敬我' (lyrics_id=41) ---
[2026-05-05 14:34:57] [P2] Style desc: 一首为男声打造的中国风R&B歌曲,BPM设定在90左右。编曲以慵懒而清晰的鼓机节拍与醇厚的贝斯线条构筑R&B的律动基底。主歌部分,用电钢琴的迷离和弦铺垫氛围,添...
[2026-05-05 14:34:57] [P2] Lyrics length: 353 chars, first line: [intro]
[2026-05-05 14:34:57] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-05 14:34:57] create_advanced_task: model=7, prompt=一首为男声打造的中国风R&B歌曲,BPM设定在90左右。编曲以慵懒而清晰的鼓机节拍与醇厚的贝斯线条构筑R&B的律动基底。..., lyrics=353 chars
[2026-05-05 14:34:58] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636292393163377448', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 14:34:58] create_advanced_task: ok=True, TaskID=7636292393163377448, errCode=0
[2026-05-05 14:34:58] [P2] Step 1 result: ok=True, task_id=7636292393163377448, error=, took 0.3s
[2026-05-05 14:34:58] [P2] Step 2: Waiting for TaskID=7636292393163377448 to complete...
[2026-05-05 14:34:58] wait_for_task: TaskID=7636292393163377448, expected=2, timeout=480s
[2026-05-05 14:35:08] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-05 14:35:23] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-05 14:35:38] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-05 14:35:53] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-05 14:36:09] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-05 14:36:24] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-05 14:36:39] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-05 14:36:54] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-05 14:37:09] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-05 14:37:25] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-05 14:37:40] wait_for_task: 150s, 2/2 completed (expected=2)
[2026-05-05 14:37:55] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-05 14:37:55] wait_for_task: done! 2 works stable after 165s: ['7636292346954648355', '7636292313928452905']
[2026-05-05 14:37:55] [P2] Step 2 done: 2 works generated in 177s, WorkIDs=['7636292346954648355', '7636292313928452905']
[2026-05-05 14:37:55] [P2] Step 3: Exporting WorkID=7636292346954648355 (1/2) title='敬我'...
[2026-05-05 14:37:56] export(7636292346954648355): VID=v0d003g10004d7sp0a2ljht6pbgs3bf0, Title=敬我, Duration=209640ms
[2026-05-05 14:37:56] _create_project: ProjectID=7636293178077088527
[2026-05-05 14:37:56] export(7636292346954648355): human pause 7.7s between save-project and export
[2026-05-05 14:38:04] export(7636292346954648355): CreateStudioTask ProjectID=7636293178077088527, VID=v0d003g10004d7sp0a2ljht6pbgs3bf0
[2026-05-05 14:38:04] export(7636292346954648355): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636293203762793256', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 14:38:04] export(7636292346954648355): ok=True, TaskID=7636293203762793256, errCode=0, biz=
[2026-05-05 14:38:04] [P2] Export OK: WorkID=7636292346954648355, TaskID=7636293203762793256, took 9.2s
[2026-05-05 14:38:04] [P2] Human pause 11.9s before next export...
[2026-05-05 14:38:16] [P2] Step 3: Exporting WorkID=7636292313928452905 (2/2) title='敬我'...
[2026-05-05 14:38:17] export(7636292313928452905): VID=v02003g10004d7sp0ailjht36m3m0pv0, Title=敬我, Duration=207000ms
[2026-05-05 14:38:17] _create_project: ProjectID=7636293254228560674
[2026-05-05 14:38:17] export(7636292313928452905): human pause 10.0s between save-project and export
[2026-05-05 14:38:27] export(7636292313928452905): CreateStudioTask ProjectID=7636293254228560674, VID=v02003g10004d7sp0ailjht36m3m0pv0
[2026-05-05 14:38:28] export(7636292313928452905): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636293248990071586', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 14:38:28] export(7636292313928452905): ok=True, TaskID=7636293248990071586, errCode=0, biz=
[2026-05-05 14:38:28] [P2] Export OK: WorkID=7636292313928452905, TaskID=7636293248990071586, took 11.4s
[2026-05-05 14:38:28] [P2] ========== PHASE 2 DONE: composed=2, exported=4, total time=451s ==========
[2026-05-05 14:38:28] [BATCH 22] Transitioning to Phase 3: auto-publish...
[2026-05-05 14:38:28] [P3] ========== PHASE 3 START: auto-publish for batch 22 ==========
[2026-05-05 14:38:28] [P3] Batch titles to match: {'敬我', '管他什么天下'}
[2026-05-05 14:38:28] [P3] Waiting 30s for server to process exports...
[2026-05-05 14:38:58] [P3] Attempt 1: found 4 releasable works (total works=50)
[2026-05-05 14:38:58] [P3] --- Publish 1/4: '敬我' issue_id=7636293248990071586 ---
[2026-05-05 14:38:58] [P3] Created publish_job #27, starting publish...
[2026-05-05 14:38:58] [PUB job=27] ==== START issue_id=7636293248990071586 ====
[2026-05-05 14:38:58] [PUB job=27] FAILED: Error: It looks like you are using Playwright Sync API inside the asyncio loop.
Please use the Async API instead.
[2026-05-05 14:38:58] [P3] Publish #27 ended with status=failed
[2026-05-05 14:38:58] [P3] --- Publish 2/4: '敬我' issue_id=7636293203762793256 ---
[2026-05-05 14:38:58] [P3] Created publish_job #28, starting publish...
[2026-05-05 14:38:58] [PUB job=28] ==== START issue_id=7636293203762793256 ====
[2026-05-05 14:38:58] [PUB job=28] FAILED: Error: It looks like you are using Playwright Sync API inside the asyncio loop.
Please use the Async API instead.
[2026-05-05 14:38:58] [P3] Publish #28 ended with status=failed
[2026-05-05 14:38:58] [P3] --- Publish 3/4: '管他什么天下' issue_id=7636292354722532131 ---
[2026-05-05 14:38:58] [P3] Created publish_job #29, starting publish...
[2026-05-05 14:38:58] [PUB job=29] ==== START issue_id=7636292354722532131 ====
[2026-05-05 14:38:58] [PUB job=29] FAILED: Error: It looks like you are using Playwright Sync API inside the asyncio loop.
Please use the Async API instead.
[2026-05-05 14:38:59] [P3] Publish #29 ended with status=failed
[2026-05-05 14:38:59] [P3] --- Publish 4/4: '管他什么天下' issue_id=7636292195913583375 ---
[2026-05-05 14:38:59] [P3] Created publish_job #30, starting publish...
[2026-05-05 14:38:59] [PUB job=30] ==== START issue_id=7636292195913583375 ====
[2026-05-05 14:38:59] [PUB job=30] FAILED: Error: It looks like you are using Playwright Sync API inside the asyncio loop.
Please use the Async API instead.
[2026-05-05 14:38:59] [P3] Publish #30 ended with status=failed
[2026-05-05 14:38:59] [P3] ========== PHASE 3 DONE: published=0/4, total time=31s ==========
[2026-05-05 14:38:59] [BATCH 22] ==================== BATCH END (total 578s) ====================
[2026-05-05 14:43:21] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:43:22] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:43:22] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 14:43:25] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 14:43:25] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 14:43:44] [PUB job=31] ==== START issue_id=7636292354722532131 ====
[2026-05-05 14:43:45] [PUB job=31] phase -> open
[2026-05-05 14:43:45] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131
[2026-05-05 14:43:56] [PUB] page loaded, artist_profile=yes
[2026-05-05 14:43:56] [PUB job=31] phase -> artist
[2026-05-05 14:43:56] [PUB] artist: 0527 id=None
[2026-05-05 14:43:56] [PUB job=31] phase -> metadata
[2026-05-05 14:43:57] [PUB] human pause 2.1s
[2026-05-05 14:43:59] [PUB job=31] phase -> contract
[2026-05-05 14:43:59] [PUB] form: step 1 → 2
[2026-05-05 14:44:03] [PUB] form: step 2 → 3
[2026-05-05 14:44:07] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 14:44:08] [PUB] selected '无主页链接'
[2026-05-05 14:44:09] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 14:44:10] [PUB] captured certify: phone=132****3383
[2026-05-05 14:44:11] [PUB] captured contract_package: id=7636294555336935460
[2026-05-05 14:44:14] [PUB] captured signing contract: id=7636294555336968228
[2026-05-05 14:44:14] [PUB job=31] phase -> letsign_init
[2026-05-05 14:44:14] [PUB] signing params: batch=batch-5912146ed57e4b85ad6fbbe6... signCode=... contract=7636294555336968228 itemToken=NO
[2026-05-05 14:44:15] [PUB] letsign batch/sign/info: {"code": 0, "description": "success", "data": {"items": [{"signCode": "c104e4a80ffc4261a48769ffbbbda148", "token": "QDNseWY1LzA4TWtaeThtQVNCZ3gvYzI4R2dkMk5adU5PZHd0QkUxbWdBM2dEaEs5RVZIbmdiYVdwckE3N0RraDBEbXE3bzlSc3Y1RVFNNDVzb08rbG9kakp5QjJkWTlMMUh6Y3l5a1BPOHNTem5YcWlTbzV2c0VMbG4zU3JNaUhmRXNXR3VIaVV6
[2026-05-05 14:44:15] [PUB] from batch_info: signCode=c104e4a80ffc4261a487... itemToken=yes
[2026-05-05 14:44:15] [PUB] letsign contract/current: {"code": 0, "description": "success", "data": {"statusDesc": "未归档", "contractStatus": 203, "contractCanRefuse": 0, "contractCanRevoke": false, "signType": 0, "signDomainName": "黄真鸣", "signDomainMobile": "132******83", "returnUrl": "https://music.douyin.com/console/contract/result?contractId=7636294555336968228", "signStatus": 0, "signStatusDesc": "待签署", "signCoordinates": [{"pdfPage": "3", "vertical": "724", "horizontal": "522", "widgetType": 3, "dateSealFormat": 0, "documentOrder": 1, "height":
[2026-05-05 14:44:16] [PUB] got signatureId=7326823802902608649 on attempt 0
[2026-05-05 14:44:16] [PUB] human pause 2.3s
[2026-05-05 14:44:18] [PUB job=31] phase -> otp_sent
[2026-05-05 14:44:18] [PUB] letsign sms/sendCode batch=batch-5912146ed57e4b85ad6fbbe6c4c68197...
[2026-05-05 14:44:18] [PUB] serialNumber from sendCode: 7636293924243620635
[2026-05-05 14:44:18] [PUB] serialNumber from sendCode: 7636293924243620635
[2026-05-05 14:44:18] [PUB job=31] phase -> otp_wait
[2026-05-05 14:44:18] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-05 14:44:29] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 14:44:39] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-05 14:44:49] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-05 14:44:59] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-05 14:45:09] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-05 14:45:19] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-05 14:45:23] [SMS] received id=6 code=769960 phone=123456 src=unknown
[2026-05-05 14:45:29] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-05 14:45:39] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-05 14:45:49] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-05 14:45:59] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-05 14:46:09] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-05 14:46:19] [SMS] wait_for_otp TIMEOUT after 120000ms (mask=132****3383)
[2026-05-05 14:46:19] [PUB job=31] FAILED: PublishError: SMS OTP timeout after 120000ms
[2026-05-05 14:46:43] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:46:44] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:46:44] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 14:46:47] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 14:46:47] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 14:46:54] [PUB job=32] ==== START issue_id=7636292354722532131 ====
[2026-05-05 14:46:55] [PUB job=32] phase -> open
[2026-05-05 14:46:55] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131
[2026-05-05 14:47:06] [PUB] page loaded, artist_profile=yes
[2026-05-05 14:47:06] [PUB job=32] phase -> artist
[2026-05-05 14:47:06] [PUB] artist: 0527 id=None
[2026-05-05 14:47:06] [PUB job=32] phase -> metadata
[2026-05-05 14:47:06] [PUB] human pause 5.0s
[2026-05-05 14:47:11] [PUB job=32] phase -> contract
[2026-05-05 14:47:11] [PUB] form: step 1 → 2
[2026-05-05 14:47:15] [PUB] form: step 2 → 3
[2026-05-05 14:47:20] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 14:47:21] [PUB] selected '无主页链接'
[2026-05-05 14:47:22] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 14:47:23] [PUB] captured certify: phone=132****3383
[2026-05-05 14:47:25] [PUB] captured contract_package: id=7636295464254146603
[2026-05-05 14:47:28] [PUB] captured signing contract: id=7636295464254179371
[2026-05-05 14:47:29] [PUB job=32] phase -> letsign_init
[2026-05-05 14:47:29] [PUB] signing params: batch=batch-ed86212d467d4ba3b25fc6cb... signCode=... contract=7636295464254179371 itemToken=NO
[2026-05-05 14:47:30] [PUB] letsign batch/sign/info: {"code": 0, "description": "success", "data": {"items": [{"signCode": "d1d32a54bbc2437090a3e45c09cec783", "token": "QDNseWY1LzA4TWtaeThtQVNCZ3gvYzI4R2dkMk5adU5PZHd0QkUxbWdBM2dEaEs5RVZIbmdiYVdwckE3NUhXVmhEVkM3b2RSU29Nb0ZNSWt6dHNHOXJzN254QnlmQmRYbkh6Y1loVUxlK3Nlem1uMnpYZFp3b2tMMXRtVy9JUnpPRVBPR3VIaVV6
[2026-05-05 14:47:30] [PUB] from batch_info: signCode=d1d32a54bbc2437090a3... itemToken=yes
[2026-05-05 14:47:31] [PUB] letsign contract/current: {"code": 0, "description": "success", "data": {"statusDesc": "未归档", "contractStatus": 203, "contractCanRefuse": 0, "contractCanRevoke": false, "signType": 0, "signDomainName": "黄真鸣", "signDomainMobile": "132******83", "returnUrl": "https://music.douyin.com/console/contract/result?contractId=7636295464254179371", "signStatus": 0, "signStatusDesc": "待签署", "signCoordinates": [{"pdfPage": "3", "vertical": "724", "horizontal": "522", "widgetType": 3, "dateSealFormat": 0, "documentOrder": 1, "height":
[2026-05-05 14:47:31] [PUB] got signatureId=7326823802902608649 on attempt 0
[2026-05-05 14:47:31] [PUB] human pause 3.5s
[2026-05-05 14:47:34] [PUB job=32] phase -> otp_sent
[2026-05-05 14:47:34] [PUB] letsign sms/sendCode batch=batch-ed86212d467d4ba3b25fc6cb5ec8a32c...
[2026-05-05 14:47:35] [PUB] serialNumber from sendCode: 7636294977672479514
[2026-05-05 14:47:35] [PUB] serialNumber from sendCode: 7636294977672479514
[2026-05-05 14:47:35] [PUB job=32] phase -> otp_wait
[2026-05-05 14:47:35] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-05 14:47:45] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 14:47:55] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-05 14:48:05] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-05 14:48:15] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-05 14:48:25] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-05 14:48:35] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-05 14:48:45] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-05 14:48:55] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-05 14:49:05] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-05 14:49:12] [SMS] received id=7 code=496324 phone=12345 src=unknown
[2026-05-05 14:49:15] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-05 14:49:25] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-05 14:49:36] [SMS] wait_for_otp TIMEOUT after 120000ms (mask=132****3383)
[2026-05-05 14:49:36] [PUB job=32] FAILED: PublishError: SMS OTP timeout after 120000ms
[2026-05-05 14:55:41] Open studio page: https://music.douyin.com/studio
[2026-05-05 14:55:42] Current URL after open: https://music.douyin.com/studio
[2026-05-05 14:55:42] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 14:55:45] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 14:55:45] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 14:55:52] [PUB job=33] ==== START issue_id=7636292354722532131 ====
[2026-05-05 14:55:53] [PUB job=33] phase -> open
[2026-05-05 14:55:53] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131
[2026-05-05 14:56:04] [PUB] page loaded, artist_profile=yes
[2026-05-05 14:56:04] [PUB job=33] phase -> artist
[2026-05-05 14:56:04] [PUB] artist: 0527 id=None
[2026-05-05 14:56:04] [PUB job=33] phase -> metadata
[2026-05-05 14:56:04] [PUB] human pause 3.6s
[2026-05-05 14:56:08] [PUB job=33] phase -> contract
[2026-05-05 14:56:08] [PUB] form: step 1 → 2
[2026-05-05 14:56:12] [PUB] form: step 2 → 3
[2026-05-05 14:56:16] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 14:56:17] [PUB] selected '无主页链接'
[2026-05-05 14:56:18] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 14:56:19] [PUB] captured certify: phone=132****3383
[2026-05-05 14:56:19] [PUB] captured contract_package: id=7636297497720670214
[2026-05-05 14:56:22] [PUB] captured signing contract: id=7636297497720702982
[2026-05-05 14:56:22] [PUB job=33] phase -> letsign_init
[2026-05-05 14:56:22] [PUB] signing params: batch=batch-694da0cbbc764afaa4573784... signCode=... contract=7636297497720702982 itemToken=NO
[2026-05-05 14:56:23] [PUB] letsign batch/sign/info: {"code": 0, "description": "success", "data": {"items": [{"signCode": "f6b1764ce97747c594f4477ca50f6583", "token": "QDNseWY1LzA4TWtaeThtQVNCZ3gvYzI4R2dkMk5adU5PZHd0QkUxbWdBM2dEaEs5RVZIbmdiYVdwckE3dERrZGlEbm1GbzhOcnY1RVFJNlJ0dGUrWXU5clp6MEdjWU1iekN6QUwyMVM0ME1lbnduNmlTb2xvNkVMbGx6NjhEQVRBRU5XR3VIaVV6
[2026-05-05 14:56:23] [PUB] from batch_info: signCode=f6b1764ce97747c594f4... itemToken=yes
[2026-05-05 14:56:25] [PUB] letsign contract/current: {"code": 0, "description": "success", "data": {"statusDesc": "未归档", "contractStatus": 203, "contractCanRefuse": 0, "contractCanRevoke": false, "signType": 0, "signDomainName": "黄真鸣", "signDomainMobile": "132******83", "returnUrl": "https://music.douyin.com/console/contract/result?contractId=7636297497720702982", "signStatus": 0, "signStatusDesc": "待签署", "signCoordinates": [{"pdfPage": "3", "vertical": "724", "horizontal": "522", "widgetType": 3, "dateSealFormat": 0, "documentOrder": 1, "height":
[2026-05-05 14:56:25] [PUB] got signatureId=7326823802902608649 on attempt 0
[2026-05-05 14:56:25] [PUB] human pause 2.6s
[2026-05-05 14:56:27] [PUB job=33] phase -> otp_sent
[2026-05-05 14:56:27] [PUB] letsign sms/sendCode batch=batch-694da0cbbc764afaa45737848a8b3139...
[2026-05-05 14:56:28] [PUB] serialNumber from sendCode: 7636296889729827636
[2026-05-05 14:56:28] [PUB] serialNumber from sendCode: 7636296889729827636
[2026-05-05 14:56:28] [PUB job=33] phase -> otp_wait
[2026-05-05 14:56:28] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-05 14:56:38] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 14:56:48] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-05 14:56:58] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-05 14:57:08] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-05 14:57:12] [SMS] received id=8 code=755073 phone=12345 src=unknown
[2026-05-05 14:57:12] [SMS] wait_for_otp matched: id=8 code=755073
[2026-05-05 14:57:12] [PUB] received OTP code=755073 (sms_id=8)
[2026-05-05 14:57:13] [PUB job=33] phase -> verify
[2026-05-05 14:57:13] [PUB] human pause 2.8s
[2026-05-05 14:57:15] [PUB] letsign batch/sign/sign code=755073
[2026-05-05 14:57:16] [SMS] consumed id=8 by job=33
[2026-05-05 14:57:16] [PUB job=33] phase -> contract_sync
[2026-05-05 14:57:17] [PUB] letsign status -> 1
[2026-05-05 14:57:19] [PUB] letsign status -> 2
[2026-05-05 14:59:19] [PUB] contract status timeout — proceeding anyway
[2026-05-05 14:59:19] [PUB job=33] phase -> submit
[2026-05-05 14:59:19] [PUB] human pause 5.0s
[2026-05-05 14:59:39] [PUB] no create_with_album captured — checking page state
[2026-05-05 14:59:39] [PUB job=33] FAILED: PublishError: Final submit not captured. Page: https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131&publish_timestamp=1777964156244
[2026-05-05 15:08:53] Open studio page: https://music.douyin.com/studio
[2026-05-05 15:08:54] Current URL after open: https://music.douyin.com/studio
[2026-05-05 15:08:54] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 15:08:57] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 15:08:57] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 15:09:01] [PUB job=34] ==== START issue_id=7636292354722532131 ====
[2026-05-05 15:09:02] [PUB job=34] phase -> open
[2026-05-05 15:09:02] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131
[2026-05-05 15:09:12] [PUB] page loaded, artist_profile=yes
[2026-05-05 15:09:12] [PUB job=34] phase -> artist
[2026-05-05 15:09:12] [PUB] artist: 0527 id=None
[2026-05-05 15:09:12] [PUB job=34] phase -> metadata
[2026-05-05 15:09:13] [PUB] human pause 3.7s
[2026-05-05 15:09:16] [PUB job=34] phase -> contract
[2026-05-05 15:09:16] [PUB] form: step 1 → 2
[2026-05-05 15:09:21] [PUB] form: step 2 → 3
[2026-05-05 15:09:25] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 15:09:25] [PUB] selected '无主页链接'
[2026-05-05 15:09:26] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 15:09:27] [PUB] captured certify: phone=132****3383
[2026-05-05 15:09:28] [PUB] captured contract_package: id=7636301220260923411
[2026-05-05 15:09:31] [PUB] captured signing contract: id=7636301220260956179
[2026-05-05 15:09:31] [PUB job=34] phase -> letsign_init
[2026-05-05 15:09:31] [PUB] signing params: batch=batch-892d448fe27147c1a24bbb86... signCode=... contract=7636301220260956179 itemToken=NO
[2026-05-05 15:09:32] [PUB] letsign batch/sign/info: {"code": 0, "description": "success", "data": {"items": [{"signCode": "02fd28dda9de4e2e950c1f81bcd04a2f", "token": "QDNseWY1LzA4TWtaeThtQVNCZ3gvYzI4R2dkMk5adU5PZHd0QkUxbWdBM2dEaEs5RVZIbmdiYVdwckE3dU0xUnhHbXEzNk5kcnBJNEZHb0Uzb2Z5eXZOckp3QnlMVGMza0h3a1lnVUxlOVp5a3dtV3pYWWx3NjFiMW56KzhIQWZlQjlXR3VIaVV6
[2026-05-05 15:09:32] [PUB] from batch_info: signCode=02fd28dda9de4e2e950c... itemToken=yes
[2026-05-05 15:09:33] [PUB] letsign contract/current: {"code": 0, "description": "success", "data": {"statusDesc": "未归档", "contractStatus": 203, "contractCanRefuse": 0, "contractCanRevoke": false, "signType": 0, "signDomainName": "黄真鸣", "signDomainMobile": "132******83", "returnUrl": "https://music.douyin.com/console/contract/result?contractId=7636301220260956179", "signStatus": 0, "signStatusDesc": "待签署", "signCoordinates": [{"pdfPage": "3", "vertical": "724", "horizontal": "522", "widgetType": 3, "dateSealFormat": 0, "documentOrder": 1, "height":
[2026-05-05 15:09:33] [PUB] got signatureId=7326823802902608649 on attempt 0
[2026-05-05 15:09:33] [PUB] human pause 3.7s
[2026-05-05 15:09:37] [PUB job=34] phase -> otp_sent
[2026-05-05 15:09:37] [PUB] letsign sms/sendCode batch=batch-892d448fe27147c1a24bbb867e8325d8...
[2026-05-05 15:09:37] [PUB] serialNumber from sendCode: 7636300874743694116
[2026-05-05 15:09:37] [PUB] serialNumber from sendCode: 7636300874743694116
[2026-05-05 15:09:38] [PUB job=34] phase -> otp_wait
[2026-05-05 15:09:38] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 15:09:48] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 15:09:58] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-05 15:10:08] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-05 15:10:18] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-05 15:10:28] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-05 15:10:38] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-05 15:10:48] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-05 15:10:58] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-05 15:11:08] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-05 15:11:18] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-05 15:11:28] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-05 15:11:31] [SMS] received id=9 code=773888 phone=12345 src=unknown
[2026-05-05 15:11:32] [SMS] wait_for_otp matched: id=9 code=773888
[2026-05-05 15:11:32] [PUB] received OTP code=773888 (sms_id=9)
[2026-05-05 15:11:32] [PUB job=34] phase -> verify
[2026-05-05 15:11:32] [PUB] human pause 2.6s
[2026-05-05 15:11:35] [PUB] letsign batch/sign/sign code=773888
[2026-05-05 15:11:36] [SMS] consumed id=9 by job=34
[2026-05-05 15:11:36] [PUB job=34] phase -> contract_sync
[2026-05-05 15:11:36] [PUB] letsign status -> 1
[2026-05-05 15:11:39] [PUB] letsign status -> 2
[2026-05-05 15:14:39] [PUB] contract status timeout — proceeding anyway
[2026-05-05 15:14:39] [PUB job=34] phase -> submit
[2026-05-05 15:14:39] [PUB] human pause 5.0s
[2026-05-05 15:14:54] [PUB] submit poll: waiting for completion... 114s remaining
[2026-05-05 15:14:59] [PUB] submit poll: waiting for completion... 109s remaining
[2026-05-05 15:15:04] [PUB] submit poll: waiting for completion... 104s remaining
[2026-05-05 15:15:09] [PUB] submit poll: waiting for completion... 99s remaining
[2026-05-05 15:15:14] [PUB] submit poll: waiting for completion... 94s remaining
[2026-05-05 15:15:19] [PUB] submit poll: waiting for completion... 89s remaining
[2026-05-05 15:15:24] [PUB] submit poll: waiting for completion... 84s remaining
[2026-05-05 15:15:29] [PUB] submit poll: waiting for completion... 79s remaining
[2026-05-05 15:15:34] [PUB] submit poll: waiting for completion... 74s remaining
[2026-05-05 15:15:39] [PUB] submit poll: waiting for completion... 69s remaining
[2026-05-05 15:15:44] [PUB] submit poll: waiting for completion... 64s remaining
[2026-05-05 15:15:50] [PUB] submit poll: waiting for completion... 59s remaining
[2026-05-05 15:15:55] [PUB] submit poll: waiting for completion... 54s remaining
[2026-05-05 15:16:00] [PUB] submit poll: waiting for completion... 49s remaining
[2026-05-05 15:16:05] [PUB] submit poll: waiting for completion... 44s remaining
[2026-05-05 15:16:10] [PUB] submit poll: waiting for completion... 39s remaining
[2026-05-05 15:16:15] [PUB] submit poll: waiting for completion... 34s remaining
[2026-05-05 15:16:20] [PUB] submit poll: waiting for completion... 29s remaining
[2026-05-05 15:16:25] [PUB] submit poll: waiting for completion... 24s remaining
[2026-05-05 15:16:30] [PUB] submit poll: waiting for completion... 19s remaining
[2026-05-05 15:16:35] [PUB] submit poll: waiting for completion... 14s remaining
[2026-05-05 15:16:40] [PUB] submit poll: waiting for completion... 9s remaining
[2026-05-05 15:16:45] [PUB] submit poll: waiting for completion... 4s remaining
[2026-05-05 15:16:50] [PUB] submit poll: waiting for completion... 0s remaining
[2026-05-05 15:16:50] [PUB] no create_with_album captured — checking page state
[2026-05-05 15:16:50] [PUB job=34] FAILED: PublishError: Final submit not captured. Page: https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131&publish_timestamp=1777964944517
[2026-05-05 15:35:43] [SMS] ignored (no digits): src=unknown body=电子牵471179
[2026-05-05 15:36:18] [SMS] received id=10 code=471179 phone=12345 src=unknown
[2026-05-05 20:36:54] Open studio page: https://music.douyin.com/studio
[2026-05-05 20:36:55] Current URL after open: https://music.douyin.com/studio
[2026-05-05 20:36:55] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 20:36:58] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 20:36:58] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 20:39:11] [PUB job=35] ==== START issue_id=7636292354722532131 ====
[2026-05-05 20:39:12] [PUB job=35] phase -> open
[2026-05-05 20:39:12] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131
[2026-05-05 20:39:23] [PUB] page loaded, artist_profile=yes
[2026-05-05 20:39:23] [PUB job=35] phase -> artist
[2026-05-05 20:39:23] [PUB] artist: 0527 id=None
[2026-05-05 20:39:23] [PUB job=35] phase -> metadata
[2026-05-05 20:39:24] [PUB] human pause 3.3s
[2026-05-05 20:39:27] [PUB job=35] phase -> contract
[2026-05-05 20:39:27] [PUB] form: step 1 → 2
[2026-05-05 20:39:31] [PUB] form: step 2 → 3
[2026-05-05 20:39:35] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 20:39:36] [PUB] selected '无主页链接'
[2026-05-05 20:39:37] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 20:39:38] [PUB] captured certify: phone=132****3383
[2026-05-05 20:39:38] [PUB] captured contract_package: id=7636386275590899748
[2026-05-05 20:39:41] [PUB] captured signing contract: id=7636386275590932516
[2026-05-05 20:39:43] [PUB job=35] phase -> letsign_init
[2026-05-05 20:39:43] [PUB] human pause 5.4s
[2026-05-05 20:39:49] [PUB] looking for letsign iframe...
[2026-05-05 20:39:49] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 20:39:49] [PUB job=35] phase -> otp_sent
[2026-05-05 20:39:52] [PUB] batch sign clicked, OTP should be sent
[2026-05-05 20:39:52] [PUB job=35] phase -> otp_wait
[2026-05-05 20:39:52] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 20:40:02] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 20:40:12] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-05 20:40:22] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-05 20:40:32] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-05 20:40:42] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-05 20:40:52] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-05 20:41:02] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-05 20:41:12] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-05 20:41:22] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-05 20:41:32] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-05 20:41:42] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-05 20:41:52] [SMS] wait_for_otp TIMEOUT after 120000ms (mask=132****3383)
[2026-05-05 20:41:53] [PUB job=35] FAILED: PublishError: SMS OTP timeout after 120000ms
[2026-05-05 20:54:46] Open studio page: https://music.douyin.com/studio
[2026-05-05 20:54:47] Current URL after open: https://music.douyin.com/studio
[2026-05-05 20:54:47] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 20:54:50] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 20:54:50] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 20:54:53] [PUB job=36] ==== START issue_id=7636292354722532131 ====
[2026-05-05 20:54:55] [PUB job=36] phase -> open
[2026-05-05 20:54:55] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131
[2026-05-05 20:55:05] [PUB] page loaded, artist_profile=yes
[2026-05-05 20:55:05] [PUB job=36] phase -> artist
[2026-05-05 20:55:06] [PUB] artist: 0527 id=None
[2026-05-05 20:55:06] [PUB job=36] phase -> metadata
[2026-05-05 20:55:06] [PUB] human pause 2.2s
[2026-05-05 20:55:09] [PUB job=36] phase -> contract
[2026-05-05 20:55:09] [PUB] form: step 1 → 2
[2026-05-05 20:55:13] [PUB] form: step 2 → 3
[2026-05-05 20:55:17] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 20:55:18] [PUB] selected '无主页链接'
[2026-05-05 20:55:19] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 20:55:20] [PUB] captured certify: phone=132****3383
[2026-05-05 20:55:21] [PUB] captured contract_package: id=7636389955971778614
[2026-05-05 20:55:23] [PUB] captured signing contract: id=7636389955971811382
[2026-05-05 20:55:23] [PUB job=36] phase -> letsign_init
[2026-05-05 20:55:23] [PUB] human pause 5.6s
[2026-05-05 20:55:29] [PUB] looking for letsign iframe...
[2026-05-05 20:55:29] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 20:55:31] [PUB] batch sign clicked, dialog should appear
[2026-05-05 20:55:31] [PUB] human pause 1.6s
[2026-05-05 20:55:33] [PUB] clicked '获取验证码' — SMS should be sent now
[2026-05-05 20:55:33] [PUB job=36] phase -> otp_sent
[2026-05-05 20:55:36] [PUB] OTP send triggered, waiting for SMS...
[2026-05-05 20:55:36] [PUB job=36] phase -> otp_wait
[2026-05-05 20:55:36] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 20:55:46] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 20:55:56] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-05 20:56:06] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-05 20:56:16] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-05 20:56:26] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-05 20:56:36] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-05 20:56:46] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-05 20:56:56] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-05 20:57:06] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-05 20:57:16] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-05 20:57:26] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-05 20:57:36] [SMS] wait_for_otp TIMEOUT after 120000ms (mask=132****3383)
[2026-05-05 20:57:36] [PUB job=36] FAILED: PublishError: SMS OTP timeout after 120000ms
[2026-05-05 20:57:41] [SMS] ignored (no digits): src=unknown body=电子牵验证码604053
[2026-05-05 21:41:47] [SMS] ignored (no digits): src=unknown body=推送通知: 短信
[2026-05-05 21:42:18] [SMS] ignored (no digits): src=unknown body=推送通知: 短信
[2026-05-05 21:44:20] Open studio page: https://music.douyin.com/studio
[2026-05-05 21:44:21] Current URL after open: https://music.douyin.com/studio
[2026-05-05 21:44:21] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 21:44:24] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 21:44:24] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 21:44:35] [PUB job=37] ==== START issue_id=7636292354722532131 ====
[2026-05-05 21:44:36] [PUB job=37] phase -> open
[2026-05-05 21:44:36] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636292354722532131
[2026-05-05 21:44:47] [PUB] page loaded, artist_profile=yes
[2026-05-05 21:44:47] [PUB job=37] phase -> artist
[2026-05-05 21:44:47] [PUB] artist: 0527 id=None
[2026-05-05 21:44:47] [PUB job=37] phase -> metadata
[2026-05-05 21:44:47] [PUB] human pause 3.9s
[2026-05-05 21:44:51] [PUB job=37] phase -> contract
[2026-05-05 21:44:51] [PUB] waiting for audio recognition to finish...
[2026-05-05 21:44:54] [PUB] no loading indicator, proceeding
[2026-05-05 21:44:54] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 21:44:55] [PUB] form: step 1 → 2
[2026-05-05 21:44:59] [PUB] form: step 2 → 3
[2026-05-05 21:45:03] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 21:45:04] [PUB] selected '无主页链接'
[2026-05-05 21:45:05] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 21:45:06] [PUB] captured certify: phone=132****3383
[2026-05-05 21:45:06] [PUB] captured contract_package: id=7636403053201442870
[2026-05-05 21:45:09] [PUB] captured signing contract: id=7636403053201475638
[2026-05-05 21:45:11] [PUB job=37] phase -> letsign_init
[2026-05-05 21:45:11] [PUB] human pause 4.7s
[2026-05-05 21:45:16] [PUB] looking for letsign iframe...
[2026-05-05 21:45:16] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 21:45:19] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 21:45:19] [PUB] 意愿认证 modal visible
[2026-05-05 21:45:19] [PUB] human pause 0.7s
[2026-05-05 21:45:20] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 21:45:20] [PUB job=37] phase -> otp_sent
[2026-05-05 21:45:22] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 21:45:22] [PUB job=37] phase -> otp_wait
[2026-05-05 21:45:22] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-05 21:45:25] [SMS] received id=11 code=537141 phone=10690433842000291031 src=unknown
[2026-05-05 21:45:26] [SMS] wait_for_otp matched: id=11 code=537141
[2026-05-05 21:45:26] [PUB] received OTP code=537141 (sms_id=11)
[2026-05-05 21:45:26] [PUB job=37] phase -> verify
[2026-05-05 21:45:26] [PUB] human pause 1.2s
[2026-05-05 21:45:27] [PUB] filling OTP code=537141 into iframe input...
[2026-05-05 21:45:27] [PUB] human pause 1.7s
[2026-05-05 21:45:29] [PUB] clicking confirm in iframe...
[2026-05-05 21:45:29] [PUB] clicked '确定' in iframe
[2026-05-05 21:45:29] [SMS] consumed id=11 by job=37
[2026-05-05 21:45:29] [PUB job=37] phase -> contract_sync
[2026-05-05 21:45:29] [PUB] waiting for page to transition after signing...
[2026-05-05 21:45:29] [PUB] waiting for page transition... 180s remaining, btns=['我知道了', '我要咨询']
[2026-05-05 21:45:41] [PUB] waiting for page transition... 167s remaining, btns=['我知道了', '我要咨询']
[2026-05-05 21:45:47] [PUB] page shows review/completion text — publish done!
[2026-05-05 21:45:47] [PUB job=37] phase -> submit
[2026-05-05 21:45:47] [PUB] human pause 3.4s
[2026-05-05 21:45:56] [PUB] detected completion text on page during submit poll
[2026-05-05 21:45:56] [PUB job=37] ==== DONE albumId=auto (81s) ====
[2026-05-05 21:48:19] Open studio page: https://music.douyin.com/studio
[2026-05-05 21:48:20] Current URL after open: https://music.douyin.com/studio
[2026-05-05 21:48:20] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 21:48:23] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 21:48:24] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 21:48:30] [PUB job=38] ==== START issue_id=7636293248990071586 ====
[2026-05-05 21:48:31] [PUB job=38] phase -> open
[2026-05-05 21:48:31] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636293248990071586
[2026-05-05 21:48:42] [PUB] page loaded, artist_profile=yes
[2026-05-05 21:48:42] [PUB job=38] phase -> artist
[2026-05-05 21:48:42] [PUB] artist: 0527 id=None
[2026-05-05 21:48:42] [PUB job=38] phase -> metadata
[2026-05-05 21:48:42] [PUB] human pause 2.0s
[2026-05-05 21:48:44] [PUB job=38] phase -> contract
[2026-05-05 21:48:44] [PUB] waiting for audio recognition to finish...
[2026-05-05 21:48:47] [PUB] no loading indicator, proceeding
[2026-05-05 21:48:47] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 21:48:48] [PUB] form: step 1 → 2
[2026-05-05 21:48:52] [PUB] form: step 2 → 3
[2026-05-05 21:48:57] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 21:48:57] [PUB] selected '无主页链接'
[2026-05-05 21:48:58] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 21:48:59] [PUB] captured certify: phone=132****3383
[2026-05-05 21:49:00] [PUB] captured contract_package: id=7636403978714056767
[2026-05-05 21:49:03] [PUB] captured signing contract: id=7636403978714089535
[2026-05-05 21:49:03] [PUB job=38] phase -> letsign_init
[2026-05-05 21:49:03] [PUB] human pause 3.8s
[2026-05-05 21:49:06] [PUB] looking for letsign iframe...
[2026-05-05 21:49:06] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 21:49:11] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 21:49:11] [PUB] 意愿认证 modal visible
[2026-05-05 21:49:11] [PUB] human pause 1.4s
[2026-05-05 21:49:12] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 21:49:12] [PUB job=38] phase -> otp_sent
[2026-05-05 21:49:14] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 21:49:14] [PUB job=38] phase -> otp_wait
[2026-05-05 21:49:14] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-05 21:49:17] [SMS] received id=12 code=056076 phone=10655007150009149945 src=unknown
[2026-05-05 21:49:18] [SMS] wait_for_otp matched: id=12 code=056076
[2026-05-05 21:49:18] [PUB] received OTP code=056076 (sms_id=12)
[2026-05-05 21:49:19] [PUB job=38] phase -> verify
[2026-05-05 21:49:19] [PUB] human pause 2.6s
[2026-05-05 21:49:21] [PUB] filling OTP code=056076 into iframe input...
[2026-05-05 21:49:21] [PUB] human pause 1.8s
[2026-05-05 21:49:23] [PUB] clicking confirm in iframe...
[2026-05-05 21:49:23] [PUB] clicked '确定' in iframe
[2026-05-05 21:49:23] [SMS] consumed id=12 by job=38
[2026-05-05 21:49:23] [PUB job=38] phase -> contract_sync
[2026-05-05 21:49:23] [PUB] waiting for page to transition after signing...
[2026-05-05 21:49:23] [PUB] waiting for page transition... 180s remaining, btns=['我知道了', '我要咨询']
[2026-05-05 21:49:35] [PUB] waiting for page transition... 167s remaining, btns=['我知道了', '我要咨询']
[2026-05-05 21:49:38] [PUB] page shows review/completion text — publish done!
[2026-05-05 21:49:38] [PUB job=38] phase -> submit
[2026-05-05 21:49:38] [PUB] human pause 2.4s
[2026-05-05 21:49:45] [PUB] detected completion text on page during submit poll
[2026-05-05 21:49:45] [PUB job=38] ==== DONE albumId=auto (75s) ====
[2026-05-05 22:24:26] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:24:27] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:24:27] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:24:30] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:24:30] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:25:27] [BATCH 23] ==================== BATCH START ====================
[2026-05-05 22:26:32] [BATCH 24] ==================== BATCH START ====================
[2026-05-05 22:27:44] [BATCH 25] ==================== BATCH START ====================
[2026-05-05 22:27:49] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:27:50] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:27:50] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:27:53] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:27:53] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:28:08] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:28:09] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:28:09] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:28:12] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:28:12] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:32:11] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:32:12] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:32:12] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:32:15] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:32:15] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:32:21] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:32:22] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:32:22] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:32:25] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:32:25] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:35:23] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:35:24] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:35:24] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:35:27] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:35:28] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:36:14] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:36:14] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:36:14] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:36:17] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:36:18] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:39:24] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:39:25] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:39:25] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:39:28] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:39:28] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:46:16] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:46:17] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:46:17] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:46:20] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:46:20] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 22:46:28] [BATCH 21] ==================== BATCH START ====================
[2026-05-05 22:59:34] Open studio page: https://music.douyin.com/studio
[2026-05-05 22:59:35] Current URL after open: https://music.douyin.com/studio
[2026-05-05 22:59:36] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 22:59:39] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 22:59:39] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:01:55] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:01:56] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:02:01] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:02:02] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:02:02] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:02:09] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:02:09] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:02:10] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:02:10] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:02:11] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:02:11] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:02:12] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:02:13] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:02:13] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:02:13] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:02:14] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:02:14] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:18:41] [BATCH 22] ==================== BATCH START ====================
[2026-05-05 23:18:41] [BATCH 22] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\sweet_romance.json, model=gemini-3f, total=2, lang=中文, auto_compose=True, compose_model=7, auto_publish=True, auth_type=exclusive, auth_region=1
[2026-05-05 23:18:42] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:18:43] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:18:43] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-05 23:18:43] [P1] --- Lyrics 1/2 ---
[2026-05-05 23:18:43] [P1] Prompt: 为女声写一首中文日系甜曲恋爱歌词,主题"收到TA回复消息心跳加速的等待",瞬间:梦到TA醒来嘴角还是翘的,氛围:便利店暖黄灯光下的两个人。要求:①Hook在前4行,要像TA靠近时脑子里的甜蜜短路,5-...
[2026-05-05 23:18:43] Current URL: https://music.douyin.com/studio
[2026-05-05 23:18:47] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:18:47] Extracted userID from profile API: 104709151573
[2026-05-05 23:18:48] Got conversationId: 7626633213754638378
[2026-05-05 23:18:48] Sending lyrics request: model=gemini-3f, prompt=为女声写一首中文日系甜曲恋爱歌词,主题"收到TA回复消息心跳加速的等待",瞬间:梦到TA醒来嘴角还是...
[2026-05-05 23:19:22] Lyrics received: 622 chars
[2026-05-05 23:19:22] [P1] Lyrics 1/2: OK (took 39s)
[2026-05-05 23:19:25] [P1] --- Lyrics 2/2 ---
[2026-05-05 23:19:25] [P1] Prompt: 为男女对唱写一首中文轻快弹唱恋爱歌词,主题"在TA手机备注里看到我的专属称呼",瞬间:忍不住傻笑被朋友发现的窘迫,氛围:春天阳光下的微风和粉色。要求:①Hook在前4行,要像被表白那一刻的幸福眩晕,5...
[2026-05-05 23:19:25] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:19:28] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:19:29] Extracted userID from profile API: 104709151573
[2026-05-05 23:19:30] Got conversationId: 7626633213754638378
[2026-05-05 23:19:30] Sending lyrics request: model=gemini-3f, prompt=为男女对唱写一首中文轻快弹唱恋爱歌词,主题"在TA手机备注里看到我的专属称呼",瞬间:忍不住傻笑被朋...
[2026-05-05 23:20:06] Lyrics received: 727 chars
[2026-05-05 23:20:06] [P1] Lyrics 2/2: OK (took 40s)
[2026-05-05 23:20:06] [P1] ========== PHASE 1 DONE: 2 ok, 0 failed, total time=82s ==========
[2026-05-05 23:20:06] [BATCH 22] Transitioning to Phase 2: compose + export...
[2026-05-05 23:20:06] [BATCH 22] Navigating from lyrics page to studio page...
[2026-05-05 23:20:06] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:20:11] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:20:12] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:20:12] [BATCH 22] Studio page ready, starting composition pipeline
[2026-05-05 23:20:12] [P2] ========== PHASE 2 START: compose+export for batch 22 ==========
[2026-05-05 23:20:12] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-05 23:20:12] can_create: True (used=0/2, total=170/1000)
[2026-05-05 23:20:12] [P2] Quota check: can=True, used=0/2, total=170/1000
[2026-05-05 23:20:12] [P2] --- Song 1/2: '心动便利店' (lyrics_id=39) ---
[2026-05-05 23:20:12] [P2] Style desc: 一首为女声打造的,充满空气感和甜蜜氛围的日系City Pop。BPM稳定在115左右,以清脆明快的鼓机节拍和富有旋律感的贝斯线条构建出轻盈的律动。编曲核心是闪亮...
[2026-05-05 23:20:12] [P2] Lyrics length: 382 chars, first line: [intro]
[2026-05-05 23:20:12] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-05 23:20:12] create_advanced_task: model=7, prompt=一首为女声打造的,充满空气感和甜蜜氛围的日系City Pop。BPM稳定在115左右,以清脆明快的鼓机节拍和富有旋律感的..., lyrics=382 chars
[2026-05-05 23:20:12] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636427693810043691', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:20:12] create_advanced_task: ok=True, TaskID=7636427693810043691, errCode=0
[2026-05-05 23:20:12] [P2] Step 1 result: ok=True, task_id=7636427693810043691, error=, took 0.3s
[2026-05-05 23:20:12] [P2] Step 2: Waiting for TaskID=7636427693810043691 to complete...
[2026-05-05 23:20:12] wait_for_task: TaskID=7636427693810043691, expected=2, timeout=480s
[2026-05-05 23:20:22] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-05 23:20:37] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-05 23:20:53] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-05 23:21:08] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-05 23:21:23] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-05 23:21:38] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-05 23:21:53] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-05 23:22:08] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-05 23:22:23] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-05 23:22:38] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-05 23:22:54] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-05 23:23:09] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-05 23:23:24] wait_for_task: 180s, 2/2 completed (expected=2)
[2026-05-05 23:23:24] wait_for_task: done! 2 works stable after 180s: ['7636427627441228571', '7636427677020441350']
[2026-05-05 23:23:24] [P2] Step 2 done: 2 works generated in 192s, WorkIDs=['7636427627441228571', '7636427677020441350']
[2026-05-05 23:23:24] [P2] Step 3: Exporting WorkID=7636427627441228571 (1/2) title='心动便利店'...
[2026-05-05 23:23:25] export(7636427627441228571): VID=v02003g10004d7t0mmiljhtaqn1d01og, Title=心动便利店, Duration=194880ms
[2026-05-05 23:23:26] _create_project: ProjectID=7636428491055106870
[2026-05-05 23:23:26] export(7636427627441228571): human pause 10.4s between save-project and export
[2026-05-05 23:23:38] export(7636427627441228571): CreateStudioTask ProjectID=7636428491055106870, VID=v02003g10004d7t0mmiljhtaqn1d01og
[2026-05-05 23:23:39] export(7636427627441228571): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636428590904855338', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:23:39] export(7636427627441228571): ok=True, TaskID=7636428590904855338, errCode=0, biz=
[2026-05-05 23:23:39] [P2] Export OK: WorkID=7636427627441228571, TaskID=7636428590904855338, took 15.0s
[2026-05-05 23:23:39] [P2] Human pause 10.2s before next export...
[2026-05-05 23:23:41] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:23:49] [P2] Step 3: Exporting WorkID=7636427677020441350 (2/2) title='心动便利店'...
[2026-05-05 23:23:49] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:23:49] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:23:50] export(7636427677020441350): VID=v02003g10004d7t0mmaljht90e3i3kt0, Title=心动便利店, Duration=172240ms
[2026-05-05 23:23:51] _create_project: ProjectID=7636428659326225215
[2026-05-05 23:23:51] export(7636427677020441350): human pause 11.4s between save-project and export
[2026-05-05 23:23:52] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:23:53] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:24:03] export(7636427677020441350): CreateStudioTask ProjectID=7636428659326225215, VID=v02003g10004d7t0mmaljht90e3i3kt0
[2026-05-05 23:24:04] export(7636427677020441350): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636428722127637302', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:24:04] export(7636427677020441350): ok=True, TaskID=7636428722127637302, errCode=0, biz=
[2026-05-05 23:24:04] [P2] Export OK: WorkID=7636427677020441350, TaskID=7636428722127637302, took 14.9s
[2026-05-05 23:24:04] [P2] Waiting 5s before next composition...
[2026-05-05 23:24:09] [P2] --- Song 2/2: '我的专属备注' (lyrics_id=40) ---
[2026-05-05 23:24:09] [P2] Style desc: 一首为男女对唱打造的,轻快甜蜜的民谣弹唱(Acoustic Pop)。BPM设定在120左右。以一把清脆的原声木吉他分解和弦作为贯穿全曲的核心,添入小巧的沙锤和...
[2026-05-05 23:24:09] [P2] Lyrics length: 528 chars, first line: [intro]
[2026-05-05 23:24:09] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-05 23:24:09] create_advanced_task: model=7, prompt=一首为男女对唱打造的,轻快甜蜜的民谣弹唱(Acoustic Pop)。BPM设定在120左右。以一把清脆的原声木吉他分解..., lyrics=528 chars
[2026-05-05 23:24:10] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '0', 'BizCode': '-1008', 'BizMessage': '无法根据该描述生成,请修改后重试'}}
[2026-05-05 23:24:10] create_advanced_task: ok=False, TaskID=0, errCode=0
[2026-05-05 23:24:10] [P2] Step 1 result: ok=False, task_id=0, error=无法根据该描述生成,请修改后重试, took 0.2s
[2026-05-05 23:24:10] [P2] FAILED to submit '我的专属备注': 无法根据该描述生成,请修改后重试
[2026-05-05 23:24:10] [P2] ========== PHASE 2 DONE: composed=1, exported=2, total time=238s ==========
[2026-05-05 23:24:10] [BATCH 22] Transitioning to Phase 3a: collecting publish targets...
[2026-05-05 23:24:10] [P3] ========== PHASE 3 START: collecting publish targets for batch 22 ==========
[2026-05-05 23:24:10] [P3] Batch titles to match: {'我的专属备注', '心动便利店'}
[2026-05-05 23:24:10] [P3] Waiting 30s for server to process exports...
[2026-05-05 23:24:40] [P3] Attempt 1: found 2 releasable works (total works=50)
[2026-05-05 23:24:40] [P3] Creating publish_job 1/2: '心动便利店' issue_id=7636428722127637302
[2026-05-05 23:24:40] [P3] Creating publish_job 2/2: '心动便利店' issue_id=7636428590904855338
[2026-05-05 23:24:40] [P3] Created 2 publish jobs: [30, 31]
[2026-05-05 23:24:40] [BATCH 22] Phase 3b: executing 2 publish jobs...
[2026-05-05 23:24:40] [P3] ========== PHASE 3 EXECUTE: 2 publish jobs ==========
[2026-05-05 23:24:40] [P3] --- Running publish_job #30 (1/2) ---
[2026-05-05 23:24:40] [PUB job=30] ==== START issue_id=7636428722127637302 ====
[2026-05-05 23:24:41] [PUB job=30] phase -> open
[2026-05-05 23:24:41] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636428722127637302
[2026-05-05 23:24:52] [PUB] page loaded, artist_profile=yes
[2026-05-05 23:24:52] [PUB job=30] phase -> artist
[2026-05-05 23:24:52] [PUB] artist: 0527 id=None
[2026-05-05 23:24:52] [PUB job=30] phase -> metadata
[2026-05-05 23:24:53] [PUB] human pause 4.6s
[2026-05-05 23:24:57] [PUB job=30] phase -> contract
[2026-05-05 23:24:57] [PUB] waiting for audio recognition to finish...
[2026-05-05 23:25:01] [PUB] no loading indicator, proceeding
[2026-05-05 23:25:01] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 23:25:02] [PUB] form: step 1 → 2
[2026-05-05 23:25:06] [PUB] form: step 2 → 3
[2026-05-05 23:25:10] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 23:25:11] [PUB] selected '无主页链接'
[2026-05-05 23:25:12] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 23:25:15] [PUB] captured certify: phone=132****3383
[2026-05-05 23:25:16] [PUB] captured contract_package: id=7636428402958436406
[2026-05-05 23:25:19] [PUB] captured signing contract: id=7636428402958469174
[2026-05-05 23:25:20] [PUB job=30] phase -> letsign_init
[2026-05-05 23:25:20] [PUB] human pause 5.7s
[2026-05-05 23:25:26] [PUB] looking for letsign iframe...
[2026-05-05 23:25:26] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 23:25:30] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 23:25:30] [PUB] 意愿认证 modal visible
[2026-05-05 23:25:30] [PUB] human pause 0.5s
[2026-05-05 23:25:31] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 23:25:31] [PUB job=30] phase -> otp_sent
[2026-05-05 23:25:33] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 23:25:33] [PUB job=30] phase -> otp_wait
[2026-05-05 23:25:33] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 23:25:38] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:25:40] [SMS] received id=4 code=952597 phone=10684465130011163554 src=unknown
[2026-05-05 23:25:41] [SMS] wait_for_otp matched: id=4 code=952597
[2026-05-05 23:25:41] [PUB] received OTP code=952597 (sms_id=4)
[2026-05-05 23:25:41] [PUB job=30] phase -> verify
[2026-05-05 23:25:41] [PUB] human pause 1.7s
[2026-05-05 23:25:43] [PUB] filling OTP code=952597 into iframe input...
[2026-05-05 23:25:43] [PUB] human pause 1.5s
[2026-05-05 23:25:44] [PUB] clicking confirm in iframe...
[2026-05-05 23:25:44] [PUB] clicked '确定' in iframe
[2026-05-05 23:25:44] [SMS] consumed id=4 by job=30
[2026-05-05 23:25:44] [PUB job=30] phase -> contract_sync
[2026-05-05 23:25:44] [PUB] waiting for page to transition after signing...
[2026-05-05 23:25:46] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:25:47] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:25:50] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:25:50] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:26:40] [PUB] dismissed popup during poll
[2026-05-05 23:26:41] [PUB] page shows review/completion text — publish done!
[2026-05-05 23:26:42] [PUB job=30] phase -> submit
[2026-05-05 23:26:42] [PUB] human pause 3.0s
[2026-05-05 23:26:50] [PUB] detected completion text on page during submit poll
[2026-05-05 23:26:50] [PUB job=30] ==== DONE albumId=auto (129s) ====
[2026-05-05 23:26:50] [P3] Publish #30 completed successfully
[2026-05-05 23:26:50] [P3] --- Running publish_job #31 (2/2) ---
[2026-05-05 23:26:50] [PUB job=31] ==== START issue_id=7636428590904855338 ====
[2026-05-05 23:26:51] [PUB job=31] phase -> open
[2026-05-05 23:26:51] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636428590904855338
[2026-05-05 23:27:01] [PUB] page loaded, artist_profile=yes
[2026-05-05 23:27:01] [PUB job=31] phase -> artist
[2026-05-05 23:27:01] [PUB] artist: 0527 id=None
[2026-05-05 23:27:01] [PUB job=31] phase -> metadata
[2026-05-05 23:27:03] [PUB] human pause 4.0s
[2026-05-05 23:27:07] [PUB job=31] phase -> contract
[2026-05-05 23:27:07] [PUB] waiting for audio recognition to finish...
[2026-05-05 23:27:10] [PUB] no loading indicator, proceeding
[2026-05-05 23:27:10] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 23:27:11] [PUB] form: step 1 → 2
[2026-05-05 23:27:15] [PUB] form: step 2 → 3
[2026-05-05 23:27:20] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 23:27:20] [PUB] selected '无主页链接'
[2026-05-05 23:27:21] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 23:27:23] [PUB] captured certify: phone=132****3383
[2026-05-05 23:27:23] [PUB] captured contract_package: id=7636429353107752979
[2026-05-05 23:27:27] [PUB] captured signing contract: id=7636429353107785747
[2026-05-05 23:27:28] [PUB job=31] phase -> letsign_init
[2026-05-05 23:27:28] [PUB] human pause 4.9s
[2026-05-05 23:27:33] [PUB] looking for letsign iframe...
[2026-05-05 23:27:33] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 23:27:37] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 23:27:37] [PUB] 意愿认证 modal visible
[2026-05-05 23:27:37] [PUB] human pause 1.3s
[2026-05-05 23:27:39] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 23:27:39] [PUB job=31] phase -> otp_sent
[2026-05-05 23:27:41] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 23:27:41] [PUB job=31] phase -> otp_wait
[2026-05-05 23:27:41] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 23:27:43] [SMS] received id=5 code=211309 phone=10690433842000291031 src=unknown
[2026-05-05 23:27:43] [SMS] wait_for_otp matched: id=5 code=211309
[2026-05-05 23:27:43] [PUB] received OTP code=211309 (sms_id=5)
[2026-05-05 23:27:43] [PUB job=31] phase -> verify
[2026-05-05 23:27:43] [PUB] human pause 1.6s
[2026-05-05 23:27:44] [PUB] filling OTP code=211309 into iframe input...
[2026-05-05 23:27:44] [PUB] human pause 1.0s
[2026-05-05 23:27:45] [PUB] clicking confirm in iframe...
[2026-05-05 23:27:45] [PUB] clicked '确定' in iframe
[2026-05-05 23:27:45] [SMS] consumed id=5 by job=31
[2026-05-05 23:27:46] [PUB job=31] phase -> contract_sync
[2026-05-05 23:27:46] [PUB] waiting for page to transition after signing...
[2026-05-05 23:27:48] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-05 23:28:00] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-05 23:28:15] [PUB] waiting for page transition... 152s remaining, btns=[]
[2026-05-05 23:28:30] [PUB] waiting for page transition... 137s remaining, btns=[]
[2026-05-05 23:28:45] [PUB] waiting for page transition... 122s remaining, btns=[]
[2026-05-05 23:29:00] [PUB] waiting for page transition... 107s remaining, btns=[]
[2026-05-05 23:29:15] [PUB] waiting for page transition... 92s remaining, btns=[]
[2026-05-05 23:29:27] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:29:30] [PUB] waiting for page transition... 77s remaining, btns=[]
[2026-05-05 23:29:35] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:29:35] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:29:38] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:29:38] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:29:45] [PUB] waiting for page transition... 62s remaining, btns=[]
[2026-05-05 23:30:00] [PUB] waiting for page transition... 47s remaining, btns=[]
[2026-05-05 23:30:09] [PUB] page shows review/completion text — publish done!
[2026-05-05 23:30:09] [PUB job=31] phase -> submit
[2026-05-05 23:30:09] [PUB] human pause 2.5s
[2026-05-05 23:30:17] [PUB] detected completion text on page during submit poll
[2026-05-05 23:30:17] [PUB job=31] ==== DONE albumId=auto (207s) ====
[2026-05-05 23:30:17] [P3] Publish #31 completed successfully
[2026-05-05 23:30:17] [P3] ========== PHASE 3 DONE: published=2/2, total time=337s ==========
[2026-05-05 23:30:17] [BATCH 22] ==================== BATCH END (total 696s) ====================
[2026-05-05 23:33:06] [BATCH 23] ==================== BATCH START ====================
[2026-05-05 23:33:06] [BATCH 23] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\emotional_tearjerker.json, model=gemini-3f, total=2, lang=英语, auto_compose=True, compose_model=7, auto_publish=True, auth_type=exclusive_agent, auth_region=1
[2026-05-05 23:33:07] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:33:08] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:33:08] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-05 23:33:08] [P1] --- Lyrics 1/2 ---
[2026-05-05 23:33:08] [P1] Prompt: 为男声写一首英语钢琴抒情催泪情歌,主题"路过TA家楼下习惯性抬头看灯",情感:假装没事但夜晚崩溃的落差,氛围:表面平静内心翻涌。要求:①Hook前4行出现,要像忍了很久终于流下的眼泪,5-7字开口元音...
[2026-05-05 23:33:08] Current URL: https://music.douyin.com/studio
[2026-05-05 23:33:11] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:33:11] Extracted userID from profile API: 104709151573
[2026-05-05 23:33:13] Got conversationId: 7626633213754638378
[2026-05-05 23:33:13] Sending lyrics request: model=gemini-3f, prompt=为男声写一首英语钢琴抒情催泪情歌,主题"路过TA家楼下习惯性抬头看灯",情感:假装没事但夜晚崩溃的落...
[2026-05-05 23:33:44] Lyrics received: 1525 chars
[2026-05-05 23:33:44] [P1] Lyrics 1/2: OK (took 37s)
[2026-05-05 23:33:47] [P1] --- Lyrics 2/2 ---
[2026-05-05 23:33:47] [P1] Prompt: 为女声写一首英语钢琴抒情催泪情歌,主题"分手后路过曾经一起吃饭的餐厅",情感:想念却不能联系的克制与煎熬,氛围:凌晨三点的失眠循环。要求:①Hook前4行出现,要像笑着说没事但声音在发抖,5-7字开口...
[2026-05-05 23:33:48] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:33:51] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:33:51] Extracted userID from profile API: 104709151573
[2026-05-05 23:33:52] Got conversationId: 7626633213754638378
[2026-05-05 23:33:52] Sending lyrics request: model=gemini-3f, prompt=为女声写一首英语钢琴抒情催泪情歌,主题"分手后路过曾经一起吃饭的餐厅",情感:想念却不能联系的克制与...
[2026-05-05 23:34:21] Lyrics received: 1517 chars
[2026-05-05 23:34:21] [P1] Lyrics 2/2: OK (took 34s)
[2026-05-05 23:34:21] [P1] ========== PHASE 1 DONE: 2 ok, 0 failed, total time=74s ==========
[2026-05-05 23:34:21] [BATCH 23] Transitioning to Phase 2: compose + export...
[2026-05-05 23:34:21] [BATCH 23] Navigating from lyrics page to studio page...
[2026-05-05 23:34:21] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-05 23:34:27] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:34:28] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:34:28] [BATCH 23] Studio page ready, starting composition pipeline
[2026-05-05 23:34:28] [P2] ========== PHASE 2 START: compose+export for batch 23 ==========
[2026-05-05 23:34:28] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-05 23:34:28] can_create: True (used=1/2, total=166/1000)
[2026-05-05 23:34:28] [P2] Quota check: can=True, used=1/2, total=166/1000
[2026-05-05 23:34:28] [P2] --- Song 1/2: 'Your Light' (lyrics_id=41) ---
[2026-05-05 23:34:28] [P2] Style desc: A heartbreaking piano ballad for a male vocalist, built around a slow, melanchol...
[2026-05-05 23:34:28] [P2] Lyrics length: 977 chars, first line: [intro]
[2026-05-05 23:34:28] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-05 23:34:28] create_advanced_task: model=7, prompt=A heartbreaking piano ballad for a male vocalist, built arou..., lyrics=977 chars
[2026-05-05 23:34:29] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636431351721560847', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:34:29] create_advanced_task: ok=True, TaskID=7636431351721560847, errCode=0
[2026-05-05 23:34:29] [P2] Step 1 result: ok=True, task_id=7636431351721560847, error=, took 1.3s
[2026-05-05 23:34:29] [P2] Step 2: Waiting for TaskID=7636431351721560847 to complete...
[2026-05-05 23:34:29] wait_for_task: TaskID=7636431351721560847, expected=2, timeout=480s
[2026-05-05 23:34:39] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-05 23:34:54] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-05 23:35:09] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-05 23:35:25] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-05 23:35:40] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-05 23:35:55] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-05 23:36:10] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-05 23:36:25] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-05 23:36:40] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-05 23:36:56] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-05 23:37:11] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-05 23:37:26] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-05 23:37:41] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-05 23:37:56] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-05 23:38:11] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-05 23:38:27] wait_for_task: 225s, 0/2 completed (expected=2)
[2026-05-05 23:38:42] wait_for_task: 240s, 0/2 completed (expected=2)
[2026-05-05 23:38:57] wait_for_task: 255s, 0/2 completed (expected=2)
[2026-05-05 23:39:12] wait_for_task: 270s, 2/2 completed (expected=2)
[2026-05-05 23:39:27] wait_for_task: 285s, 2/2 completed (expected=2)
[2026-05-05 23:39:28] wait_for_task: done! 2 works stable after 285s: ['7636431304116112174', '7636431345316629258']
[2026-05-05 23:39:28] [P2] Step 2 done: 2 works generated in 299s, WorkIDs=['7636431304116112174', '7636431345316629258']
[2026-05-05 23:39:29] [P2] Step 3: Exporting WorkID=7636431304116112174 (1/2) title='Your Light'...
[2026-05-05 23:39:30] export(7636431304116112174): VID=v02003g10004d7t0u52ljht1ghd4bktg, Title=Your Light, Duration=232240ms
[2026-05-05 23:39:30] _create_project: ProjectID=7636432725490338594
[2026-05-05 23:39:30] export(7636431304116112174): human pause 10.9s between save-project and export
[2026-05-05 23:39:42] export(7636431304116112174): CreateStudioTask ProjectID=7636432725490338594, VID=v02003g10004d7t0u52ljht1ghd4bktg
[2026-05-05 23:39:42] export(7636431304116112174): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636432733062515490', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:39:42] export(7636431304116112174): ok=True, TaskID=7636432733062515490, errCode=0, biz=
[2026-05-05 23:39:42] [P2] Export OK: WorkID=7636431304116112174, TaskID=7636432733062515490, took 13.1s
[2026-05-05 23:39:44] [P2] Human pause 9.7s before next export...
[2026-05-05 23:39:54] [P2] Step 3: Exporting WorkID=7636431345316629258 (2/2) title='Your Light'...
[2026-05-05 23:39:54] export(7636431345316629258): VID=v03003g10004d7t0u4qljhtauosievvg, Title=Your Light, Duration=209800ms
[2026-05-05 23:39:55] _create_project: ProjectID=7636432811058268943
[2026-05-05 23:39:55] export(7636431345316629258): human pause 12.8s between save-project and export
[2026-05-05 23:40:08] export(7636431345316629258): CreateStudioTask ProjectID=7636432811058268943, VID=v03003g10004d7t0u4qljhtauosievvg
[2026-05-05 23:40:09] export(7636431345316629258): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636432834210794275', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:40:09] export(7636431345316629258): ok=True, TaskID=7636432834210794275, errCode=0, biz=
[2026-05-05 23:40:09] [P2] Export OK: WorkID=7636431345316629258, TaskID=7636432834210794275, took 15.4s
[2026-05-05 23:40:11] [P2] Waiting 5s before next composition...
[2026-05-05 23:40:16] [P2] --- Song 2/2: 'Our Corner Table' (lyrics_id=42) ---
[2026-05-05 23:40:16] [P2] Style desc: A deeply emotional piano ballad for a female vocalist, set at a slow, somber tem...
[2026-05-05 23:40:16] [P2] Lyrics length: 985 chars, first line: [intro]
[2026-05-05 23:40:17] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-05 23:40:17] create_advanced_task: model=7, prompt=A deeply emotional piano ballad for a female vocalist, set a..., lyrics=985 chars
[2026-05-05 23:40:19] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636432871661751055', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:40:19] create_advanced_task: ok=True, TaskID=7636432871661751055, errCode=0
[2026-05-05 23:40:19] [P2] Step 1 result: ok=True, task_id=7636432871661751055, error=, took 2.4s
[2026-05-05 23:40:19] [P2] Step 2: Waiting for TaskID=7636432871661751055 to complete...
[2026-05-05 23:40:19] wait_for_task: TaskID=7636432871661751055, expected=2, timeout=480s
[2026-05-05 23:40:29] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-05 23:40:45] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-05 23:41:00] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-05 23:41:15] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-05 23:41:30] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-05 23:41:46] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-05 23:42:01] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-05 23:42:16] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-05 23:42:31] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-05 23:42:46] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-05 23:43:01] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-05 23:43:17] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-05 23:43:32] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-05 23:43:47] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-05 23:44:02] wait_for_task: 210s, 1/2 completed (expected=2)
[2026-05-05 23:44:17] wait_for_task: 225s, 2/2 completed (expected=2)
[2026-05-05 23:44:32] wait_for_task: 240s, 2/2 completed (expected=2)
[2026-05-05 23:44:32] wait_for_task: done! 2 works stable after 240s: ['7636432860953479986', '7636432832096652038']
[2026-05-05 23:44:32] [P2] Step 2 done: 2 works generated in 253s, WorkIDs=['7636432860953479986', '7636432832096652038']
[2026-05-05 23:44:33] [P2] Step 3: Exporting WorkID=7636432860953479986 (1/2) title='Our Corner Table'...
[2026-05-05 23:44:33] export(7636432860953479986): VID=v02003g10004d7t10galjhtati5t3oa0, Title=Our Corner Table, Duration=197720ms
[2026-05-05 23:44:33] _create_project: ProjectID=7636433979717061428
[2026-05-05 23:44:33] export(7636432860953479986): human pause 10.0s between save-project and export
[2026-05-05 23:44:44] export(7636432860953479986): CreateStudioTask ProjectID=7636433979717061428, VID=v02003g10004d7t10galjhtati5t3oa0
[2026-05-05 23:44:44] export(7636432860953479986): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636434013443885839', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:44:44] export(7636432860953479986): ok=True, TaskID=7636434013443885839, errCode=0, biz=
[2026-05-05 23:44:44] [P2] Export OK: WorkID=7636432860953479986, TaskID=7636434013443885839, took 11.4s
[2026-05-05 23:44:44] [P2] Human pause 9.1s before next export...
[2026-05-05 23:44:53] [P2] Step 3: Exporting WorkID=7636432832096652038 (2/2) title='Our Corner Table'...
[2026-05-05 23:44:54] export(7636432832096652038): VID=v03003g10004d7t10hiljhta0l9hjg2g, Title=Our Corner Table, Duration=229920ms
[2026-05-05 23:44:54] _create_project: ProjectID=7636434073514167055
[2026-05-05 23:44:54] export(7636432832096652038): human pause 14.1s between save-project and export
[2026-05-05 23:45:08] export(7636432832096652038): CreateStudioTask ProjectID=7636434073514167055, VID=v03003g10004d7t10hiljhta0l9hjg2g
[2026-05-05 23:45:09] export(7636432832096652038): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636434158503807744', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-05 23:45:09] export(7636432832096652038): ok=True, TaskID=7636434158503807744, errCode=0, biz=
[2026-05-05 23:45:09] [P2] Export OK: WorkID=7636432832096652038, TaskID=7636434158503807744, took 15.4s
[2026-05-05 23:45:09] [P2] ========== PHASE 2 DONE: composed=2, exported=4, total time=641s ==========
[2026-05-05 23:45:09] [BATCH 23] Transitioning to Phase 3a: collecting publish targets...
[2026-05-05 23:45:09] [P3] ========== PHASE 3 START: collecting publish targets for batch 23 ==========
[2026-05-05 23:45:09] [P3] Batch titles to match: {'Your Light', 'Our Corner Table'}
[2026-05-05 23:45:09] [P3] Waiting 30s for server to process exports...
[2026-05-05 23:45:12] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:45:20] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:45:20] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:45:23] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:45:23] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:45:39] [P3] Attempt 1: found 4 releasable works (total works=50)
[2026-05-05 23:45:39] [P3] Creating publish_job 1/4: 'Our Corner Table' issue_id=7636434158503807744
[2026-05-05 23:45:39] [P3] Creating publish_job 2/4: 'Our Corner Table' issue_id=7636434013443885839
[2026-05-05 23:45:39] [P3] Creating publish_job 3/4: 'Your Light' issue_id=7636432834210794275
[2026-05-05 23:45:39] [P3] Creating publish_job 4/4: 'Your Light' issue_id=7636432733062515490
[2026-05-05 23:45:39] [P3] Created 4 publish jobs: [32, 33, 34, 35]
[2026-05-05 23:45:39] [BATCH 23] Phase 3b: executing 4 publish jobs...
[2026-05-05 23:45:39] [P3] ========== PHASE 3 EXECUTE: 4 publish jobs ==========
[2026-05-05 23:45:39] [P3] --- Running publish_job #32 (1/4) ---
[2026-05-05 23:45:39] [PUB job=32] ==== START issue_id=7636434158503807744 ====
[2026-05-05 23:45:40] [PUB job=32] phase -> open
[2026-05-05 23:45:40] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636434158503807744
[2026-05-05 23:45:51] [PUB] page loaded, artist_profile=yes
[2026-05-05 23:45:51] [PUB job=32] phase -> artist
[2026-05-05 23:45:51] [PUB] artist: 0527 id=None
[2026-05-05 23:45:51] [PUB job=32] phase -> metadata
[2026-05-05 23:45:51] [PUB] human pause 3.5s
[2026-05-05 23:45:55] [PUB job=32] phase -> contract
[2026-05-05 23:45:55] [PUB] waiting for audio recognition to finish...
[2026-05-05 23:45:58] [PUB] no loading indicator, proceeding
[2026-05-05 23:45:58] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 23:45:59] [PUB] form: step 1 → 2
[2026-05-05 23:46:03] [PUB] selecting auth type: 独家代理授权
[2026-05-05 23:46:03] [PUB] WARN: auth type control not found for '独家代理授权', using default
[2026-05-05 23:46:03] [PUB] selecting auth region: 全球 (type=1)
[2026-05-05 23:46:03] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-05 23:46:03] [PUB] form: step 2 → 3
[2026-05-05 23:46:07] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 23:46:08] [PUB] selected '无主页链接'
[2026-05-05 23:46:09] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 23:46:11] [PUB] captured certify: phone=132****3383
[2026-05-05 23:46:11] [PUB] captured contract_package: id=7636434143647549440
[2026-05-05 23:46:15] [PUB] captured signing contract: id=7636434143647582208
[2026-05-05 23:46:16] [PUB job=32] phase -> letsign_init
[2026-05-05 23:46:16] [PUB] human pause 5.6s
[2026-05-05 23:46:22] [PUB] looking for letsign iframe...
[2026-05-05 23:46:22] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 23:46:25] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 23:46:25] [PUB] 意愿认证 modal visible
[2026-05-05 23:46:25] [PUB] human pause 1.4s
[2026-05-05 23:46:26] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 23:46:26] [PUB job=32] phase -> otp_sent
[2026-05-05 23:46:28] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 23:46:28] [PUB job=32] phase -> otp_wait
[2026-05-05 23:46:28] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 23:46:38] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 23:46:46] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:46:49] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-05 23:46:54] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:46:54] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:46:57] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:46:57] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:46:59] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-05 23:47:09] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-05 23:47:14] [PUB job=36] ==== START issue_id=7636434465987906338 ====
[2026-05-05 23:47:15] [PUB job=36] phase -> open
[2026-05-05 23:47:15] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636434465987906338
[2026-05-05 23:47:19] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-05 23:47:29] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-05 23:47:33] [PUB] page loaded, artist_profile=yes
[2026-05-05 23:47:33] [PUB job=36] phase -> artist
[2026-05-05 23:47:33] [PUB] artist: 0527 id=None
[2026-05-05 23:47:33] [PUB job=36] phase -> metadata
[2026-05-05 23:47:34] [PUB] human pause 4.9s
[2026-05-05 23:47:39] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-05 23:47:39] [PUB job=36] phase -> contract
[2026-05-05 23:47:39] [PUB] waiting for audio recognition to finish...
[2026-05-05 23:47:42] [PUB] no loading indicator, proceeding
[2026-05-05 23:47:42] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 23:47:43] [PUB] form: step 1 → 2
[2026-05-05 23:47:44] [SMS] received id=6 code=183397 phone=10684465130011163554 src=unknown
[2026-05-05 23:47:45] [SMS] wait_for_otp matched: id=6 code=183397
[2026-05-05 23:47:45] [PUB] received OTP code=183397 (sms_id=6)
[2026-05-05 23:47:45] [PUB job=32] phase -> verify
[2026-05-05 23:47:45] [PUB] human pause 2.6s
[2026-05-05 23:47:47] [PUB] filling OTP code=183397 into iframe input...
[2026-05-05 23:47:47] [PUB] human pause 1.3s
[2026-05-05 23:47:48] [PUB] form: step 2 → 3
[2026-05-05 23:47:49] [PUB] clicking confirm in iframe...
[2026-05-05 23:47:49] [PUB] clicked '确定' in iframe
[2026-05-05 23:47:49] [SMS] consumed id=6 by job=32
[2026-05-05 23:47:49] [PUB job=32] phase -> contract_sync
[2026-05-05 23:47:49] [PUB] waiting for page to transition after signing...
[2026-05-05 23:47:52] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 23:47:52] [PUB] selected '无主页链接'
[2026-05-05 23:47:53] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 23:47:55] [PUB] captured certify: phone=132****3383
[2026-05-05 23:47:56] [PUB] captured contract_package: id=7636434815491295232
[2026-05-05 23:48:00] [PUB] captured signing contract: id=7636434815491328000
[2026-05-05 23:48:01] [PUB job=36] phase -> letsign_init
[2026-05-05 23:48:01] [PUB] human pause 3.5s
[2026-05-05 23:48:03] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-05 23:48:04] [PUB] looking for letsign iframe...
[2026-05-05 23:48:04] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 23:48:06] [PUB] page shows review/completion text — publish done!
[2026-05-05 23:48:06] [PUB job=32] phase -> submit
[2026-05-05 23:48:06] [PUB] human pause 2.5s
[2026-05-05 23:48:14] [PUB] detected completion text on page during submit poll
[2026-05-05 23:48:14] [PUB job=32] ==== DONE albumId=auto (155s) ====
[2026-05-05 23:48:14] [P3] Publish #32 completed successfully
[2026-05-05 23:48:14] [P3] --- Running publish_job #33 (2/4) ---
[2026-05-05 23:48:14] [PUB job=33] ==== START issue_id=7636434013443885839 ====
[2026-05-05 23:48:15] [PUB job=33] phase -> open
[2026-05-05 23:48:15] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636434013443885839
[2026-05-05 23:48:25] [PUB job=36] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-05 23:48:26] [PUB] page loaded, artist_profile=yes
[2026-05-05 23:48:26] [PUB job=33] phase -> artist
[2026-05-05 23:48:26] [PUB] artist: 0527 id=None
[2026-05-05 23:48:26] [PUB job=33] phase -> metadata
[2026-05-05 23:48:26] [PUB] human pause 2.7s
[2026-05-05 23:48:29] [PUB job=33] phase -> contract
[2026-05-05 23:48:29] [PUB] waiting for audio recognition to finish...
[2026-05-05 23:48:32] [PUB] no loading indicator, proceeding
[2026-05-05 23:48:32] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 23:48:33] [PUB] form: step 1 → 2
[2026-05-05 23:48:37] [PUB] selecting auth type: 独家代理授权
[2026-05-05 23:48:37] [PUB] WARN: auth type control not found for '独家代理授权', using default
[2026-05-05 23:48:37] [PUB] selecting auth region: 全球 (type=1)
[2026-05-05 23:48:37] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-05 23:48:37] [PUB] form: step 2 → 3
[2026-05-05 23:48:41] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 23:48:42] [PUB] selected '无主页链接'
[2026-05-05 23:48:43] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 23:48:45] [PUB] captured certify: phone=132****3383
[2026-05-05 23:48:45] [PUB] captured contract_package: id=7636434430190127138
[2026-05-05 23:48:48] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:48:49] [PUB] captured signing contract: id=7636434430190159906
[2026-05-05 23:48:50] [PUB job=33] phase -> letsign_init
[2026-05-05 23:48:50] [PUB] human pause 5.8s
[2026-05-05 23:48:56] [PUB] looking for letsign iframe...
[2026-05-05 23:48:56] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 23:48:56] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:48:56] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:48:59] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 23:48:59] [PUB] 意愿认证 modal visible
[2026-05-05 23:48:59] [PUB] human pause 1.4s
[2026-05-05 23:48:59] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:49:00] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:49:01] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 23:49:01] [PUB job=33] phase -> otp_sent
[2026-05-05 23:49:03] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 23:49:03] [PUB job=33] phase -> otp_wait
[2026-05-05 23:49:03] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-05 23:49:06] [SMS] received id=7 code=660805 phone=10684465130011163554 src=unknown
[2026-05-05 23:49:07] [SMS] wait_for_otp matched: id=7 code=660805
[2026-05-05 23:49:07] [PUB] received OTP code=660805 (sms_id=7)
[2026-05-05 23:49:07] [PUB job=33] phase -> verify
[2026-05-05 23:49:07] [PUB] human pause 2.6s
[2026-05-05 23:49:09] [PUB] filling OTP code=660805 into iframe input...
[2026-05-05 23:49:09] [PUB] human pause 1.9s
[2026-05-05 23:49:11] [PUB] clicking confirm in iframe...
[2026-05-05 23:49:11] [PUB] clicked '确定' in iframe
[2026-05-05 23:49:11] [SMS] consumed id=7 by job=33
[2026-05-05 23:49:12] [PUB job=33] phase -> contract_sync
[2026-05-05 23:49:12] [PUB] waiting for page to transition after signing...
[2026-05-05 23:49:14] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-05 23:49:26] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-05 23:49:34] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:49:35] [PUB] page shows review/completion text — publish done!
[2026-05-05 23:49:35] [PUB job=33] phase -> submit
[2026-05-05 23:49:35] [PUB] human pause 2.6s
[2026-05-05 23:49:42] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:49:42] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:49:43] [PUB] detected completion text on page during submit poll
[2026-05-05 23:49:43] [PUB job=33] ==== DONE albumId=auto (88s) ====
[2026-05-05 23:49:43] [P3] Publish #33 completed successfully
[2026-05-05 23:49:43] [P3] --- Running publish_job #34 (3/4) ---
[2026-05-05 23:49:43] [PUB job=34] ==== START issue_id=7636432834210794275 ====
[2026-05-05 23:49:44] [PUB job=34] phase -> open
[2026-05-05 23:49:44] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636432834210794275
[2026-05-05 23:49:45] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:49:45] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:49:49] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:49:55] [PUB] page loaded, artist_profile=yes
[2026-05-05 23:49:55] [PUB job=34] phase -> artist
[2026-05-05 23:49:55] [PUB] artist: 0527 id=None
[2026-05-05 23:49:55] [PUB job=34] phase -> metadata
[2026-05-05 23:49:55] [PUB] human pause 2.0s
[2026-05-05 23:49:57] [PUB job=34] phase -> contract
[2026-05-05 23:49:57] [PUB] waiting for audio recognition to finish...
[2026-05-05 23:49:57] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:49:57] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:50:00] [PUB] no loading indicator, proceeding
[2026-05-05 23:50:00] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 23:50:00] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:50:01] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:50:01] [PUB] form: step 1 → 2
[2026-05-05 23:50:05] [PUB] selecting auth type: 独家代理授权
[2026-05-05 23:50:06] [PUB] WARN: auth type control not found for '独家代理授权', using default
[2026-05-05 23:50:06] [PUB] selecting auth region: 全球 (type=1)
[2026-05-05 23:50:06] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-05 23:50:06] [PUB] form: step 2 → 3
[2026-05-05 23:50:10] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 23:50:11] [PUB] selected '无主页链接'
[2026-05-05 23:50:12] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 23:50:13] [PUB] captured certify: phone=132****3383
[2026-05-05 23:50:14] [PUB] captured contract_package: id=7636435277661276160
[2026-05-05 23:50:18] [PUB] captured signing contract: id=7636435277661308928
[2026-05-05 23:50:19] [PUB job=34] phase -> letsign_init
[2026-05-05 23:50:19] [PUB] human pause 5.8s
[2026-05-05 23:50:24] [PUB] looking for letsign iframe...
[2026-05-05 23:50:24] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 23:50:28] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 23:50:28] [PUB] 意愿认证 modal visible
[2026-05-05 23:50:28] [PUB] human pause 1.2s
[2026-05-05 23:50:29] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 23:50:29] [PUB job=34] phase -> otp_sent
[2026-05-05 23:50:31] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 23:50:31] [PUB job=34] phase -> otp_wait
[2026-05-05 23:50:31] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 23:50:41] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-05 23:50:47] [SMS] received id=8 code=153882 phone=10655007150009149945 src=unknown
[2026-05-05 23:50:49] [SMS] wait_for_otp matched: id=8 code=153882
[2026-05-05 23:50:49] [PUB] received OTP code=153882 (sms_id=8)
[2026-05-05 23:50:49] [PUB job=34] phase -> verify
[2026-05-05 23:50:49] [PUB] human pause 1.8s
[2026-05-05 23:50:51] [PUB] filling OTP code=153882 into iframe input...
[2026-05-05 23:50:51] [PUB] human pause 2.0s
[2026-05-05 23:50:53] [PUB] clicking confirm in iframe...
[2026-05-05 23:50:53] [PUB] clicked '确定' in iframe
[2026-05-05 23:50:53] [SMS] consumed id=8 by job=34
[2026-05-05 23:50:53] [PUB job=34] phase -> contract_sync
[2026-05-05 23:50:53] [PUB] waiting for page to transition after signing...
[2026-05-05 23:50:55] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-05 23:51:07] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-05 23:51:10] [PUB] page shows review/completion text — publish done!
[2026-05-05 23:51:10] [PUB job=34] phase -> submit
[2026-05-05 23:51:10] [PUB] human pause 3.8s
[2026-05-05 23:51:19] [PUB] detected completion text on page during submit poll
[2026-05-05 23:51:19] [PUB job=34] ==== DONE albumId=auto (96s) ====
[2026-05-05 23:51:19] [P3] Publish #34 completed successfully
[2026-05-05 23:51:19] [P3] --- Running publish_job #35 (4/4) ---
[2026-05-05 23:51:19] [PUB job=35] ==== START issue_id=7636432733062515490 ====
[2026-05-05 23:51:20] [PUB job=35] phase -> open
[2026-05-05 23:51:20] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636432733062515490
[2026-05-05 23:51:31] [PUB] page loaded, artist_profile=yes
[2026-05-05 23:51:31] [PUB job=35] phase -> artist
[2026-05-05 23:51:31] [PUB] artist: 0527 id=None
[2026-05-05 23:51:31] [PUB job=35] phase -> metadata
[2026-05-05 23:51:31] [PUB] human pause 2.1s
[2026-05-05 23:51:33] [PUB job=35] phase -> contract
[2026-05-05 23:51:33] [PUB] waiting for audio recognition to finish...
[2026-05-05 23:51:36] [PUB] no loading indicator, proceeding
[2026-05-05 23:51:36] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-05 23:51:37] [PUB] form: step 1 → 2
[2026-05-05 23:51:41] [PUB] selecting auth type: 独家代理授权
[2026-05-05 23:51:41] [PUB] WARN: auth type control not found for '独家代理授权', using default
[2026-05-05 23:51:41] [PUB] selecting auth region: 全球 (type=1)
[2026-05-05 23:51:41] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-05 23:51:41] [PUB] form: step 2 → 3
[2026-05-05 23:51:46] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-05 23:51:46] [PUB] selected '无主页链接'
[2026-05-05 23:51:47] [PUB] form: submitting (step 3 → contract creation)
[2026-05-05 23:51:49] [PUB] captured certify: phone=132****3383
[2026-05-05 23:51:50] [PUB] captured contract_package: id=7636435444857899060
[2026-05-05 23:51:53] [PUB] captured signing contract: id=7636435444857931828
[2026-05-05 23:51:55] [PUB job=35] phase -> letsign_init
[2026-05-05 23:51:55] [PUB] human pause 3.6s
[2026-05-05 23:51:58] [PUB] looking for letsign iframe...
[2026-05-05 23:51:58] [PUB] found letsign iframe, clicking batch sign...
[2026-05-05 23:52:02] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-05 23:52:02] [PUB] 意愿认证 modal visible
[2026-05-05 23:52:02] [PUB] human pause 0.9s
[2026-05-05 23:52:03] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-05 23:52:03] [PUB job=35] phase -> otp_sent
[2026-05-05 23:52:05] [PUB] SMS send triggered via '获取验证码'
[2026-05-05 23:52:05] [PUB job=35] phase -> otp_wait
[2026-05-05 23:52:05] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-05 23:52:09] [SMS] received id=9 code=831061 phone=10690433842000291031 src=unknown
[2026-05-05 23:52:09] [SMS] wait_for_otp matched: id=9 code=831061
[2026-05-05 23:52:09] [PUB] received OTP code=831061 (sms_id=9)
[2026-05-05 23:52:09] [PUB job=35] phase -> verify
[2026-05-05 23:52:09] [PUB] human pause 2.0s
[2026-05-05 23:52:11] [PUB] filling OTP code=831061 into iframe input...
[2026-05-05 23:52:11] [PUB] human pause 1.5s
[2026-05-05 23:52:13] [PUB] clicking confirm in iframe...
[2026-05-05 23:52:13] [PUB] clicked '确定' in iframe
[2026-05-05 23:52:13] [SMS] consumed id=9 by job=35
[2026-05-05 23:52:13] [PUB job=35] phase -> contract_sync
[2026-05-05 23:52:13] [PUB] waiting for page to transition after signing...
[2026-05-05 23:52:15] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-05 23:52:27] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-05 23:52:42] [PUB] waiting for page transition... 152s remaining, btns=[]
[2026-05-05 23:52:57] [PUB] waiting for page transition... 137s remaining, btns=[]
[2026-05-05 23:53:12] [PUB] waiting for page transition... 122s remaining, btns=[]
[2026-05-05 23:53:27] [PUB] waiting for page transition... 107s remaining, btns=[]
[2026-05-05 23:53:43] [PUB] waiting for page transition... 92s remaining, btns=[]
[2026-05-05 23:53:58] [PUB] page shows review/completion text — publish done!
[2026-05-05 23:53:58] [PUB job=35] phase -> submit
[2026-05-05 23:53:58] [PUB] human pause 4.8s
[2026-05-05 23:54:08] [PUB] detected completion text on page during submit poll
[2026-05-05 23:54:08] [PUB job=35] ==== DONE albumId=auto (168s) ====
[2026-05-05 23:54:08] [P3] Publish #35 completed successfully
[2026-05-05 23:54:08] [P3] ========== PHASE 3 DONE: published=4/4, total time=509s ==========
[2026-05-05 23:54:08] [BATCH 23] ==================== BATCH END (total 1262s) ====================
[2026-05-05 23:54:23] [SMS] received id=10 code=694884 phone=10655007150009149945 src=unknown
[2026-05-05 23:54:59] Open studio page: https://music.douyin.com/studio
[2026-05-05 23:54:59] Current URL after open: https://music.douyin.com/studio
[2026-05-05 23:54:59] open_studio: current URL: https://music.douyin.com/studio
[2026-05-05 23:55:02] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-05 23:55:02] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-05 23:56:40] [SMS] received id=11 code=734016 phone=10684465130011163554 src=unknown
[2026-05-05 23:58:57] [SMS] received id=12 code=223409 phone=10655007150009149945 src=unknown
[2026-05-06 00:03:44] Open studio page: https://music.douyin.com/studio
[2026-05-06 00:03:45] Current URL after open: https://music.douyin.com/studio
[2026-05-06 00:03:45] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 00:03:48] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 00:03:48] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 00:03:54] Open studio page: https://music.douyin.com/studio
[2026-05-06 00:03:55] Current URL after open: https://music.douyin.com/studio
[2026-05-06 00:03:55] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 00:03:58] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 00:03:58] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 10:55:00] Open studio page: https://music.douyin.com/studio
[2026-05-06 10:55:01] Current URL after open: https://music.douyin.com/studio
[2026-05-06 10:55:01] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 10:55:04] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 10:55:04] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 11:05:42] Open studio page: https://music.douyin.com/studio
[2026-05-06 11:05:42] Current URL after open: https://music.douyin.com/studio
[2026-05-06 11:05:42] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 11:05:45] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 11:05:46] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:09:09] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:09:09] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:09:09] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 13:09:12] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:09:13] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:09:44] [BATCH 24] ==================== BATCH START ====================
[2026-05-06 13:09:44] [BATCH 24] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\graduation.json, model=gemini-3f, total=3, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 13:09:45] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:09:46] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:09:46] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-06 13:09:46] [P1] --- Lyrics 1/3 ---
[2026-05-06 13:09:46] [P1] Prompt: 你是写过校园金曲的词人。为男声写一首中文致青春主题歌。切入点:大学最后一晚熬夜聊天。曲风原声吉他流行,节奏稳态铺底,氛围永远十七岁的感动。①Hook前4行出现,5-7字朗朗上口,Hook旋律明亮上扬带...
[2026-05-06 13:09:46] Current URL: https://music.douyin.com/studio
[2026-05-06 13:09:49] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:09:50] Extracted userID from profile API: 104709151573
[2026-05-06 13:09:51] Got conversationId: 7626633213754638378
[2026-05-06 13:09:51] Sending lyrics request: model=gemini-3f, prompt=你是写过校园金曲的词人。为男声写一首中文致青春主题歌。切入点:大学最后一晚熬夜聊天。曲风原声吉他流行...
[2026-05-06 13:10:01] [BATCH 25] ==================== BATCH START ====================
[2026-05-06 13:10:01] [BATCH 25] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\trending_hotspot.json, model=gemini-3f, total=3, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 13:10:02] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:10:10] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:10:10] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-06 13:10:10] [P1] --- Lyrics 1/3 ---
[2026-05-06 13:10:10] [P1] Prompt: 你是一位顶级短视频爆款歌词创作人。请为女声创作一首关于「七夕牛郎织女的浪漫」的中文歌词,曲风为国风流行,整体能量感为忽高忽低情绪过山车,情绪基调是甜蜜心动。要求:1)前4句必须出现hook,hook为...
[2026-05-06 13:10:10] Current URL: https://music.douyin.com/studio
[2026-05-06 13:10:14] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:14] Extracted userID from profile API: 104709151573
[2026-05-06 13:10:16] Got conversationId: 7626633213754638378
[2026-05-06 13:10:16] Sending lyrics request: model=gemini-3f, prompt=你是一位顶级短视频爆款歌词创作人。请为女声创作一首关于「七夕牛郎织女的浪漫」的中文歌词,曲风为国风流...
[2026-05-06 13:10:16] [P1] Lyrics 1/3: FAILED (took 6s)
[2026-05-06 13:10:19] [P1] --- Lyrics 2/3 ---
[2026-05-06 13:10:19] [P1] Prompt: 你是一位顶级短视频爆款歌词创作人。请为男声创作一首关于「清明踏青思故人」的中文歌词,曲风为电子舞曲EDM,整体能量感为始终温暖平稳如炉火,情绪基调是孤独共鸣。要求:1)前4句必须出现hook,hook...
[2026-05-06 13:10:19] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:22] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:23] Extracted userID from profile API: 104709151573
[2026-05-06 13:10:24] Got conversationId: 7626633213754638378
[2026-05-06 13:10:24] Sending lyrics request: model=gemini-3f, prompt=你是一位顶级短视频爆款歌词创作人。请为男声创作一首关于「清明踏青思故人」的中文歌词,曲风为电子舞曲E...
[2026-05-06 13:10:25] [P1] Lyrics 2/3: FAILED (took 6s)
[2026-05-06 13:10:26] Lyrics received: 767 chars
[2026-05-06 13:10:26] [P1] Lyrics 1/3: OK (took 40s)
[2026-05-06 13:10:28] [P1] --- Lyrics 3/3 ---
[2026-05-06 13:10:28] [P1] Prompt: 你是一位顶级短视频爆款歌词创作人。请为女声创作一首关于「母亲节的感恩」的中文歌词,曲风为热带house,整体能量感为忽高忽低情绪过山车,情绪基调是怀旧感伤。要求:1)前4句必须出现hook,hook为...
[2026-05-06 13:10:28] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:29] [P1] --- Lyrics 2/3 ---
[2026-05-06 13:10:29] [P1] Prompt: 你是写过校园金曲的词人。为中年磁性声写一首中文致青春主题歌。切入点:毕业那天空荡荡的教学楼。曲风钢琴抒情,节奏70-80 BPM 抒情,氛围释怀的温暖。①Hook前4行出现,5-7字朗朗上口,Hook...
[2026-05-06 13:10:29] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:31] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:31] Extracted userID from profile API: 104709151573
[2026-05-06 13:10:32] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:32] Extracted userID from profile API: 104709151573
[2026-05-06 13:10:33] Got conversationId: 7626633213754638378
[2026-05-06 13:10:33] Sending lyrics request: model=gemini-3f, prompt=你是一位顶级短视频爆款歌词创作人。请为女声创作一首关于「母亲节的感恩」的中文歌词,曲风为热带hous...
[2026-05-06 13:10:33] [BATCH 26] ==================== BATCH START ====================
[2026-05-06 13:10:33] [BATCH 26] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\folk_acoustic.json, model=gemini-3f, total=5, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 13:10:34] Got conversationId: 7626633213754638378
[2026-05-06 13:10:34] Sending lyrics request: model=gemini-3f, prompt=你是写过校园金曲的词人。为中年磁性声写一首中文致青春主题歌。切入点:毕业那天空荡荡的教学楼。曲风钢琴...
[2026-05-06 13:10:34] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:10:35] [P1] Lyrics 2/3: FAILED (took 6s)
[2026-05-06 13:10:38] [P1] --- Lyrics 3/3 ---
[2026-05-06 13:10:38] [P1] Prompt: 你是写过校园金曲的词人。为少年清亮声写一首中文致青春主题歌。切入点:篮球场上夕阳里的回头一笑。曲风原声吉他流行,节奏75-85 BPM 慢板回忆,氛围笑中带泪。①Hook前4行出现,5-7字朗朗上口,...
[2026-05-06 13:10:38] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:41] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:42] Extracted userID from profile API: 104709151573
[2026-05-06 13:10:42] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:10:42] [P1] ========== PHASE 1 START: generating 5 lyrics ==========
[2026-05-06 13:10:42] [P1] --- Lyrics 1/5 ---
[2026-05-06 13:10:42] [P1] Prompt: 你是写新民谣的词人。为中年磁性声写一首中文民谣弹唱小品。主题:巷口理发店转了三十年的红蓝灯。曲风Bedroom Folk,节奏BPM 75-85 民谣标准,氛围县城巷子里的寻常。①Hook前4行出现,...
[2026-05-06 13:10:42] Current URL: https://music.douyin.com/studio
[2026-05-06 13:10:43] Got conversationId: 7626633213754638378
[2026-05-06 13:10:43] Sending lyrics request: model=gemini-3f, prompt=你是写过校园金曲的词人。为少年清亮声写一首中文致青春主题歌。切入点:篮球场上夕阳里的回头一笑。曲风原...
[2026-05-06 13:10:44] [P1] Lyrics 3/3: FAILED (took 6s)
[2026-05-06 13:10:44] [P1] ========== PHASE 1 DONE: 1 ok, 2 failed, total time=58s ==========
[2026-05-06 13:10:44] [BATCH 24] Transitioning to Phase 2: compose + export...
[2026-05-06 13:10:44] [BATCH 24] Navigating from lyrics page to studio page...
[2026-05-06 13:10:44] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:46] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:46] Extracted userID from profile API: 104709151573
[2026-05-06 13:10:47] Got conversationId: 7626633213754638378
[2026-05-06 13:10:47] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为中年磁性声写一首中文民谣弹唱小品。主题:巷口理发店转了三十年的红蓝灯。曲风Be...
[2026-05-06 13:10:48] [P1] Lyrics 1/5: FAILED (took 6s)
[2026-05-06 13:10:49] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:10:49] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:10:49] [BATCH 24] Studio page ready, starting composition pipeline
[2026-05-06 13:10:49] [P2] ========== PHASE 2 START: compose+export for batch 24 ==========
[2026-05-06 13:10:49] [P2] Found 1 completed lyrics to compose (model=7)
[2026-05-06 13:10:49] can_create: True (used=0/2, total=110/1000)
[2026-05-06 13:10:49] [P2] Quota check: can=True, used=0/2, total=110/1000
[2026-05-06 13:10:49] [P2] --- Song 1/1: '嘿,再聊五分钟' (lyrics_id=43) ---
[2026-05-06 13:10:49] [P2] Style desc: 一首温暖怀旧的校园民谣/原声吉他流行曲。BPM设定在115左右的中速节奏,由一把清脆的原声木吉他分解和弦与扫弦贯穿始终,营造出真诚、朴素的弹唱感。简单的鼓点与沙...
[2026-05-06 13:10:49] [P2] Lyrics length: 542 chars, first line: [intro]
[2026-05-06 13:10:49] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:10:49] create_advanced_task: model=7, prompt=一首温暖怀旧的校园民谣/原声吉他流行曲。BPM设定在115左右的中速节奏,由一把清脆的原声木吉他分解和弦与扫弦贯穿始终,..., lyrics=542 chars
[2026-05-06 13:10:50] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636641721836686116', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:10:50] create_advanced_task: ok=True, TaskID=7636641721836686116, errCode=0
[2026-05-06 13:10:50] [P2] Step 1 result: ok=True, task_id=7636641721836686116, error=, took 0.3s
[2026-05-06 13:10:50] [P2] Step 2: Waiting for TaskID=7636641721836686116 to complete...
[2026-05-06 13:10:50] wait_for_task: TaskID=7636641721836686116, expected=2, timeout=480s
[2026-05-06 13:10:51] [P1] --- Lyrics 2/5 ---
[2026-05-06 13:10:51] [P1] Prompt: 你是写新民谣的词人。为少年清亮声写一首中文民谣弹唱小品。主题:出租屋窗外晾衣绳上飘的衬衫。曲风新民谣,节奏BPM 75-85 民谣标准,氛围文青旅行Vlog。①Hook前4行出现,5-7字适合木吉他扫...
[2026-05-06 13:10:51] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:54] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:10:54] Extracted userID from profile API: 104709151573
[2026-05-06 13:10:56] Got conversationId: 7626633213754638378
[2026-05-06 13:10:56] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为少年清亮声写一首中文民谣弹唱小品。主题:出租屋窗外晾衣绳上飘的衬衫。曲风新民谣...
[2026-05-06 13:10:56] [P1] Lyrics 2/5: FAILED (took 5s)
[2026-05-06 13:10:59] [P1] --- Lyrics 3/5 ---
[2026-05-06 13:10:59] [P1] Prompt: 你是写新民谣的词人。为男声写一首中文民谣弹唱小品。主题:巷口理发店转了三十年的红蓝灯。曲风城市民谣,节奏BPM 85-95 步行节奏,氛围文艺白描。①Hook前4行出现,5-7字适合木吉他扫弦时跟唱,...
[2026-05-06 13:10:59] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:11:00] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:11:02] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:11:03] Extracted userID from profile API: 104709151573
[2026-05-06 13:11:04] Got conversationId: 7626633213754638378
[2026-05-06 13:11:04] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为男声写一首中文民谣弹唱小品。主题:巷口理发店转了三十年的红蓝灯。曲风城市民谣,...
[2026-05-06 13:11:05] [P1] Lyrics 3/5: FAILED (took 6s)
[2026-05-06 13:11:08] [P1] --- Lyrics 4/5 ---
[2026-05-06 13:11:08] [P1] Prompt: 你是写新民谣的词人。为中年磁性声写一首中文民谣弹唱小品。主题:出租屋窗外晾衣绳上飘的衬衫。曲风Acoustic Pop,节奏BPM 85-95 步行节奏,氛围深夜独酌感。①Hook前4行出现,5-7字...
[2026-05-06 13:11:08] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:11:08] Lyrics received: 686 chars
[2026-05-06 13:11:08] [P1] Lyrics 3/3: OK (took 40s)
[2026-05-06 13:11:08] [P1] ========== PHASE 1 DONE: 1 ok, 2 failed, total time=58s ==========
[2026-05-06 13:11:08] [BATCH 25] Transitioning to Phase 2: compose + export...
[2026-05-06 13:11:08] [BATCH 25] Navigating from lyrics page to studio page...
[2026-05-06 13:11:08] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:11:11] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:11:11] Extracted userID from profile API: 104709151573
[2026-05-06 13:11:13] Got conversationId: 7626633213754638378
[2026-05-06 13:11:13] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为中年磁性声写一首中文民谣弹唱小品。主题:出租屋窗外晾衣绳上飘的衬衫。曲风Aco...
[2026-05-06 13:11:15] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:11:15] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:11:16] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:11:16] [BATCH 25] Studio page ready, starting composition pipeline
[2026-05-06 13:11:16] [P2] ========== PHASE 2 START: compose+export for batch 25 ==========
[2026-05-06 13:11:16] [P2] Found 1 completed lyrics to compose (model=7)
[2026-05-06 13:11:16] can_create: True (used=1/2, total=108/1000)
[2026-05-06 13:11:16] [P2] Quota check: can=True, used=1/2, total=108/1000
[2026-05-06 13:11:16] [P2] --- Song 1/1: '月亮都听我说了' (lyrics_id=46) ---
[2026-05-06 13:11:16] [P2] Style desc: 一首融合了热带浩室(Tropical House)与超流行(Hyper Pop)的电子流行曲。BPM设定在120左右,以热带浩室标志性的钢鼓或马林巴音色合成器R...
[2026-05-06 13:11:16] [P2] Lyrics length: 433 chars, first line: [intro]
[2026-05-06 13:11:16] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:11:16] create_advanced_task: model=7, prompt=一首融合了热带浩室(Tropical House)与超流行(Hyper Pop)的电子流行曲。BPM设定在120左右,以..., lyrics=433 chars
[2026-05-06 13:11:16] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636641790015327039', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:11:16] create_advanced_task: ok=True, TaskID=7636641790015327039, errCode=0
[2026-05-06 13:11:16] [P2] Step 1 result: ok=True, task_id=7636641790015327039, error=, took 0.3s
[2026-05-06 13:11:16] [P2] Step 2: Waiting for TaskID=7636641790015327039 to complete...
[2026-05-06 13:11:16] wait_for_task: TaskID=7636641790015327039, expected=2, timeout=480s
[2026-05-06 13:11:26] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:11:30] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:11:41] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:11:45] Lyrics received: 681 chars
[2026-05-06 13:11:45] [P1] Lyrics 4/5: OK (took 37s)
[2026-05-06 13:11:45] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:11:48] [P1] --- Lyrics 5/5 ---
[2026-05-06 13:11:48] [P1] Prompt: 你是写新民谣的词人。为男声写一首中文民谣弹唱小品。主题:便利店凌晨四点关东煮的雾气。曲风Singer-Songwriter,节奏扫弦稳态,氛围怅然若失。①Hook前4行出现,5-7字适合木吉他扫弦时跟...
[2026-05-06 13:11:48] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:11:51] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:11:51] Extracted userID from profile API: 104709151573
[2026-05-06 13:11:53] Got conversationId: 7626633213754638378
[2026-05-06 13:11:53] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为男声写一首中文民谣弹唱小品。主题:便利店凌晨四点关东煮的雾气。曲风Singer...
[2026-05-06 13:11:56] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:12:00] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:12:12] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:12:16] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:12:24] Lyrics received: 578 chars
[2026-05-06 13:12:24] [P1] Lyrics 5/5: OK (took 36s)
[2026-05-06 13:12:24] [P1] ========== PHASE 1 DONE: 2 ok, 3 failed, total time=102s ==========
[2026-05-06 13:12:24] [BATCH 26] Transitioning to Phase 2: compose + export...
[2026-05-06 13:12:24] [BATCH 26] Navigating from lyrics page to studio page...
[2026-05-06 13:12:24] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:12:27] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:12:31] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:12:31] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:12:31] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:12:31] [BATCH 26] Studio page ready, starting composition pipeline
[2026-05-06 13:12:31] [P2] ========== PHASE 2 START: compose+export for batch 26 ==========
[2026-05-06 13:12:31] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-06 13:12:32] can_create: parse error: 'CanCreate', raw={'baseResp': {'errorCode': 0}, 'data': {'MaxCount': None, 'UsedCount': None, 'TotalMaxCount': None, 'TotalUsedCount': None, 'QueueTaskCount': None, 'TaskTimeoutSecond': None, 'BizCode': '-4001', 'BizMessage': '当前提交任务过多,系统正在全力处理中,请稍后再试'}}
[2026-05-06 13:12:32] [P2] Quota check: can=False, used=0/0, total=0/0
[2026-05-06 13:12:32] [P2] --- Song 1/2: '窗外的白衬衫' (lyrics_id=52) ---
[2026-05-06 13:12:32] [P2] Style desc: 一首质朴而充满故事感的城市民谣/原声流行曲。BPM在90左右的步行节奏,以一把颗粒感十足的木吉他分解和弦与扫弦作为绝对主轴,营造出弹唱的现场感。主歌配器稀疏,凸...
[2026-05-06 13:12:32] [P2] Lyrics length: 436 chars, first line: [intro]
[2026-05-06 13:12:32] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:12:32] create_advanced_task: model=7, prompt=一首质朴而充满故事感的城市民谣/原声流行曲。BPM在90左右的步行节奏,以一把颗粒感十足的木吉他分解和弦与扫弦作为绝对主..., lyrics=436 chars
[2026-05-06 13:12:32] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '0', 'BizCode': '-4001', 'BizMessage': '当前提交任务过多,系统正在全力处理中,请稍后再试'}}
[2026-05-06 13:12:32] create_advanced_task: ok=False, TaskID=0, errCode=0
[2026-05-06 13:12:32] [P2] Step 1 result: ok=False, task_id=0, error=当前提交任务过多,系统正在全力处理中,请稍后再试, took 0.1s
[2026-05-06 13:12:32] [P2] FAILED to submit '窗外的白衬衫': 当前提交任务过多,系统正在全力处理中,请稍后再试
[2026-05-06 13:12:32] [P2] --- Song 2/2: '嘿,某某某' (lyrics_id=53) ---
[2026-05-06 13:12:32] [P2] Style desc: 一首唱作人风格的民谣弹唱小品。BPM在90左右的步行节奏,以一把原声木吉他的扫弦和分解和弦为绝对骨架,营造出深夜独自弹唱的氛围。配器极度稀疏,几乎只有一把吉他和...
[2026-05-06 13:12:32] [P2] Lyrics length: 353 chars, first line: [intro]
[2026-05-06 13:12:32] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:12:32] create_advanced_task: model=7, prompt=一首唱作人风格的民谣弹唱小品。BPM在90左右的步行节奏,以一把原声木吉他的扫弦和分解和弦为绝对骨架,营造出深夜独自弹唱..., lyrics=353 chars
[2026-05-06 13:12:32] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '0', 'BizCode': '-4001', 'BizMessage': '当前提交任务过多,系统正在全力处理中,请稍后再试'}}
[2026-05-06 13:12:32] create_advanced_task: ok=False, TaskID=0, errCode=0
[2026-05-06 13:12:32] [P2] Step 1 result: ok=False, task_id=0, error=当前提交任务过多,系统正在全力处理中,请稍后再试, took 0.1s
[2026-05-06 13:12:32] [P2] FAILED to submit '嘿,某某某': 当前提交任务过多,系统正在全力处理中,请稍后再试
[2026-05-06 13:12:32] [P2] ========== PHASE 2 DONE: composed=0, exported=0, total time=0s ==========
[2026-05-06 13:12:32] [BATCH 26] ==================== BATCH END (total 119s) ====================
[2026-05-06 13:12:32] [BATCH 27] ==================== BATCH START ====================
[2026-05-06 13:12:32] [BATCH 27] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\emotional_tearjerker.json, model=gemini-3f, total=3, lang=英语, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 13:12:33] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:12:41] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:12:41] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-06 13:12:41] [P1] --- Lyrics 1/3 ---
[2026-05-06 13:12:41] [P1] Prompt: 为男声写一首英语温柔R&B催泪情歌,主题"分手后路过曾经一起吃饭的餐厅",情感:想念却不能联系的克制与煎熬,氛围:深夜独处的安静崩溃。要求:①Hook前4行出现,要像笑着说没事但声音在发抖,5-7字开...
[2026-05-06 13:12:41] Current URL: https://music.douyin.com/studio
[2026-05-06 13:12:42] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:12:44] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:12:45] Extracted userID from profile API: 104709151573
[2026-05-06 13:12:46] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 13:12:46] Got conversationId: 7626633213754638378
[2026-05-06 13:12:46] Sending lyrics request: model=gemini-3f, prompt=为男声写一首英语温柔R&B催泪情歌,主题"分手后路过曾经一起吃饭的餐厅",情感:想念却不能联系的克制...
[2026-05-06 13:12:57] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:13:01] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 13:13:12] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 13:13:16] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 13:13:27] Lyrics received: 1529 chars
[2026-05-06 13:13:27] [P1] Lyrics 1/3: OK (took 46s)
[2026-05-06 13:13:27] wait_for_task: 120s, 1/2 completed (expected=2)
[2026-05-06 13:13:30] [P1] --- Lyrics 2/3 ---
[2026-05-06 13:13:30] [P1] Prompt: 为男声写一首英语弦乐流行催泪情歌,主题"雨天发现包里还有TA的伞",情感:说了再见却无法真正遗忘的无力,氛围:一个人走夜路的孤独感。要求:①Hook前4行出现,要像对着空气说的最后一句话,5-7字开口...
[2026-05-06 13:13:30] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:13:31] wait_for_task: 150s, 2/2 completed (expected=2)
[2026-05-06 13:13:33] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:13:33] Extracted userID from profile API: 104709151573
[2026-05-06 13:13:35] Got conversationId: 7626633213754638378
[2026-05-06 13:13:35] Sending lyrics request: model=gemini-3f, prompt=为男声写一首英语弦乐流行催泪情歌,主题"雨天发现包里还有TA的伞",情感:说了再见却无法真正遗忘的无...
[2026-05-06 13:13:42] wait_for_task: 135s, 2/2 completed (expected=2)
[2026-05-06 13:13:46] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-06 13:13:46] wait_for_task: done! 2 works stable after 165s: ['7636641711858535177', '7636641710180780838']
[2026-05-06 13:13:46] [P2] Step 2 done: 2 works generated in 177s, WorkIDs=['7636641711858535177', '7636641710180780838']
[2026-05-06 13:13:46] [P2] Step 3: Exporting WorkID=7636641711858535177 (1/2) title='嘿,再聊五分钟'...
[2026-05-06 13:13:47] export(7636641711858535177): VID=v03003g10004d7tcrriljhtdm3gdp5rg, Title=嘿,再聊五分钟, Duration=169280ms
[2026-05-06 13:13:48] _create_project: ProjectID=7636642426112183082
[2026-05-06 13:13:48] export(7636641711858535177): human pause 7.6s between save-project and export
[2026-05-06 13:13:56] export(7636641711858535177): CreateStudioTask ProjectID=7636642426112183082, VID=v03003g10004d7tcrriljhtdm3gdp5rg
[2026-05-06 13:13:57] export(7636641711858535177): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636642487452502847', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:13:57] export(7636641711858535177): ok=True, TaskID=7636642487452502847, errCode=0, biz=
[2026-05-06 13:13:57] [P2] Export OK: WorkID=7636641711858535177, TaskID=7636642487452502847, took 10.5s
[2026-05-06 13:13:57] [P2] Human pause 7.8s before next export...
[2026-05-06 13:13:57] wait_for_task: 150s, 2/2 completed (expected=2)
[2026-05-06 13:13:57] wait_for_task: done! 2 works stable after 150s: ['7636641819241351986', '7636641903320140596']
[2026-05-06 13:13:57] [P2] Step 2 done: 2 works generated in 161s, WorkIDs=['7636641819241351986', '7636641903320140596']
[2026-05-06 13:13:57] [P2] Step 3: Exporting WorkID=7636641819241351986 (1/2) title='月亮都听我说了'...
[2026-05-06 13:13:58] export(7636641819241351986): VID=v02003g10004d7tcrsqljhtd3nes7sjg, Title=月亮都听我说了, Duration=157880ms
[2026-05-06 13:13:59] _create_project: ProjectID=7636642489572117291
[2026-05-06 13:13:59] export(7636641819241351986): human pause 9.7s between save-project and export
[2026-05-06 13:14:00] Lyrics received: 1205 chars
[2026-05-06 13:14:00] [P1] Lyrics 2/3: OK (took 30s)
[2026-05-06 13:14:03] [P1] --- Lyrics 3/3 ---
[2026-05-06 13:14:03] [P1] Prompt: 为男声写一首英语城市流行催泪情歌,主题"梦见TA然后哭着醒来",情感:被辜负后仍然心软的矛盾,氛围:表面平静内心翻涌。要求:①Hook前4行出现,要像梦醒后还想继续的那个梦,5-7字开口元音结尾重复4...
[2026-05-06 13:14:03] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:14:05] [P2] Step 3: Exporting WorkID=7636641710180780838 (2/2) title='嘿,再聊五分钟'...
[2026-05-06 13:14:05] export(7636641710180780838): VID=v0d003g10004d7tcrraljht2hsemeo40, Title=嘿,再聊五分钟, Duration=185080ms
[2026-05-06 13:14:06] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:14:06] Extracted userID from profile API: 104709151573
[2026-05-06 13:14:07] _create_project: ProjectID=7636642548441877311
[2026-05-06 13:14:07] export(7636641710180780838): human pause 8.3s between save-project and export
[2026-05-06 13:14:08] Got conversationId: 7626633213754638378
[2026-05-06 13:14:08] Sending lyrics request: model=gemini-3f, prompt=为男声写一首英语城市流行催泪情歌,主题"梦见TA然后哭着醒来",情感:被辜负后仍然心软的矛盾,氛围:...
[2026-05-06 13:14:08] export(7636641819241351986): CreateStudioTask ProjectID=7636642489572117291, VID=v02003g10004d7tcrsqljhtd3nes7sjg
[2026-05-06 13:14:09] export(7636641819241351986): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636642489572330283', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:14:09] export(7636641819241351986): ok=True, TaskID=7636642489572330283, errCode=0, biz=
[2026-05-06 13:14:09] [P2] Export OK: WorkID=7636641819241351986, TaskID=7636642489572330283, took 11.2s
[2026-05-06 13:14:09] [P2] Human pause 9.2s before next export...
[2026-05-06 13:14:15] export(7636641710180780838): CreateStudioTask ProjectID=7636642548441877311, VID=v0d003g10004d7tcrraljht2hsemeo40
[2026-05-06 13:14:16] export(7636641710180780838): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636642609502604073', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:14:16] export(7636641710180780838): ok=True, TaskID=7636642609502604073, errCode=0, biz=
[2026-05-06 13:14:16] [P2] Export OK: WorkID=7636641710180780838, TaskID=7636642609502604073, took 11.8s
[2026-05-06 13:14:17] [P2] ========== PHASE 2 DONE: composed=1, exported=2, total time=207s ==========
[2026-05-06 13:14:17] [BATCH 24] ==================== BATCH END (total 272s) ====================
[2026-05-06 13:14:17] [BATCH 28] ==================== BATCH START ====================
[2026-05-06 13:14:17] [BATCH 28] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\catchy_earworm.json, model=gemini-3f, total=2, lang=韩语, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 13:14:17] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:14:18] [P2] Step 3: Exporting WorkID=7636641903320140596 (2/2) title='月亮都听我说了'...
[2026-05-06 13:14:18] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:14:18] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-06 13:14:18] [P1] --- Lyrics 1/2 ---
[2026-05-06 13:14:18] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首韩语魔性洗脑歌词,主题方向:对象已读不回的抓狂。风格硬核电子,氛围集体high翻,能量级别前面慢慢上头副歌直接爆炸。核心...
[2026-05-06 13:14:18] Current URL: https://music.douyin.com/studio
[2026-05-06 13:14:19] export(7636641903320140596): VID=v03003g10004d7tcru2ljht4d9eoo2j0, Title=月亮都听我说了, Duration=142240ms
[2026-05-06 13:14:19] _create_project: ProjectID=7636642528095423286
[2026-05-06 13:14:19] export(7636641903320140596): human pause 10.8s between save-project and export
[2026-05-06 13:14:22] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:14:22] Extracted userID from profile API: 104709151573
[2026-05-06 13:14:23] Got conversationId: 7626633213754638378
[2026-05-06 13:14:23] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首韩语魔性洗脑歌词,主...
[2026-05-06 13:14:25] [P1] Lyrics 1/2: FAILED (took 7s)
[2026-05-06 13:14:28] [P1] --- Lyrics 2/2 ---
[2026-05-06 13:14:28] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首韩语魔性洗脑歌词,主题方向:干饭人干饭魂。风格tropical house,氛围贱兮兮的得意,能量级别持续中高能量稳定输出。...
[2026-05-06 13:14:28] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:14:30] export(7636641903320140596): CreateStudioTask ProjectID=7636642528095423286, VID=v03003g10004d7tcru2ljht4d9eoo2j0
[2026-05-06 13:14:30] export(7636641903320140596): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636642631518391094', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:14:30] export(7636641903320140596): ok=True, TaskID=7636642631518391094, errCode=0, biz=
[2026-05-06 13:14:30] [P2] Export OK: WorkID=7636641903320140596, TaskID=7636642631518391094, took 12.0s
[2026-05-06 13:14:30] [P2] ========== PHASE 2 DONE: composed=1, exported=2, total time=194s ==========
[2026-05-06 13:14:30] [BATCH 25] ==================== BATCH END (total 269s) ====================
[2026-05-06 13:14:30] [BATCH 29] ==================== BATCH START ====================
[2026-05-06 13:14:30] [BATCH 29] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\catchy_earworm.json, model=gemini-3f, total=2, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 13:14:31] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:14:31] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:14:31] Extracted userID from profile API: 104709151573
[2026-05-06 13:14:33] Got conversationId: 7626633213754638378
[2026-05-06 13:14:33] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首韩语魔性洗脑歌词,主题方...
[2026-05-06 13:14:34] [P1] Lyrics 2/2: FAILED (took 6s)
[2026-05-06 13:14:34] [P1] ========== PHASE 1 DONE: 0 ok, 2 failed, total time=16s ==========
[2026-05-06 13:14:34] [BATCH 28] auto_compose enabled but 0 lyrics completed, skipping phase 2
[2026-05-06 13:14:34] [BATCH 28] ==================== BATCH END (total 18s) ====================
[2026-05-06 13:14:38] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:14:38] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-06 13:14:38] [P1] --- Lyrics 1/2 ---
[2026-05-06 13:14:38] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首中文魔性洗脑歌词,主题方向:堵车时疯狂按喇叭。风格8-bit电子,氛围魔性循环停不下来,能量级别开头就拉满全程不降。核心要求...
[2026-05-06 13:14:38] Current URL: https://music.douyin.com/studio
[2026-05-06 13:14:38] Lyrics received: 1197 chars
[2026-05-06 13:14:38] [P1] Lyrics 3/3: OK (took 35s)
[2026-05-06 13:14:38] [P1] ========== PHASE 1 DONE: 3 ok, 0 failed, total time=117s ==========
[2026-05-06 13:14:38] [BATCH 27] Transitioning to Phase 2: compose + export...
[2026-05-06 13:14:38] [BATCH 27] Navigating from lyrics page to studio page...
[2026-05-06 13:14:38] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:14:42] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:14:42] Extracted userID from profile API: 104709151573
[2026-05-06 13:14:43] Got conversationId: 7626633213754638378
[2026-05-06 13:14:43] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首中文魔性洗脑歌词,主题方...
[2026-05-06 13:14:45] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:14:45] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:14:45] [BATCH 27] Studio page ready, starting composition pipeline
[2026-05-06 13:14:45] [P2] ========== PHASE 2 START: compose+export for batch 27 ==========
[2026-05-06 13:14:45] [P2] Found 3 completed lyrics to compose (model=7)
[2026-05-06 13:14:45] can_create: True (used=0/2, total=108/1000)
[2026-05-06 13:14:45] [P2] Quota check: can=True, used=0/2, total=108/1000
[2026-05-06 13:14:45] [P2] --- Song 1/3: 'Memory Now' (lyrics_id=54) ---
[2026-05-06 13:14:45] [P2] Style desc: A lush, atmospheric R&B ballad with a slow tempo of 65-75 BPM. The song is built...
[2026-05-06 13:14:45] [P2] Lyrics length: 985 chars, first line: [intro]
[2026-05-06 13:14:45] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:14:45] create_advanced_task: model=7, prompt=A lush, atmospheric R&B ballad with a slow tempo of 65-75 BP..., lyrics=985 chars
[2026-05-06 13:14:47] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636642705157851947', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:14:47] create_advanced_task: ok=True, TaskID=7636642705157851947, errCode=0
[2026-05-06 13:14:47] [P2] Step 1 result: ok=True, task_id=7636642705157851947, error=, took 1.9s
[2026-05-06 13:14:47] [P2] Step 2: Waiting for TaskID=7636642705157851947 to complete...
[2026-05-06 13:14:47] wait_for_task: TaskID=7636642705157851947, expected=2, timeout=480s
[2026-05-06 13:14:57] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:15:12] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:15:23] Lyrics received: 633 chars
[2026-05-06 13:15:23] restructure: section 'bridge' not found, skipping
[2026-05-06 13:15:23] [P1] Lyrics 1/2: OK (took 44s)
[2026-05-06 13:15:26] [P1] --- Lyrics 2/2 ---
[2026-05-06 13:15:26] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方向:空调WiFi西瓜夏天三件套。风格bassline,氛围无脑快乐,能量级别欲扬先抑副歌核弹级爆发。...
[2026-05-06 13:15:26] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:15:27] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:15:29] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:15:29] Extracted userID from profile API: 104709151573
[2026-05-06 13:15:30] Got conversationId: 7626633213754638378
[2026-05-06 13:15:30] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方...
[2026-05-06 13:15:42] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:15:58] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:16:06] Lyrics received: 778 chars
[2026-05-06 13:16:06] restructure: section 'bridge' not found, skipping
[2026-05-06 13:16:06] [P1] Lyrics 2/2: OK (took 40s)
[2026-05-06 13:16:06] [P1] ========== PHASE 1 DONE: 2 ok, 0 failed, total time=88s ==========
[2026-05-06 13:16:06] [BATCH 29] Transitioning to Phase 2: compose + export...
[2026-05-06 13:16:06] [BATCH 29] Navigating from lyrics page to studio page...
[2026-05-06 13:16:06] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:16:13] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:16:13] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:16:13] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:16:13] [BATCH 29] Studio page ready, starting composition pipeline
[2026-05-06 13:16:13] [P2] ========== PHASE 2 START: compose+export for batch 29 ==========
[2026-05-06 13:16:13] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-06 13:16:13] can_create: True (used=1/2, total=111/1000)
[2026-05-06 13:16:13] [P2] Quota check: can=True, used=1/2, total=111/1000
[2026-05-06 13:16:13] [P2] --- Song 1/2: '滴滴哒哒' (lyrics_id=59) ---
[2026-05-06 13:16:13] [P2] Style desc: 一首BPM在125-135之间的高速8-bit电子舞曲。以强劲的House鼓机节拍和复古游戏感的合成器Riff贯穿全曲,能量从头拉满。电Bass线条俏皮而富有弹...
[2026-05-06 13:16:13] [P2] Lyrics length: 308 chars, first line: [intro]
[2026-05-06 13:16:13] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:16:13] create_advanced_task: model=7, prompt=一首BPM在125-135之间的高速8-bit电子舞曲。以强劲的House鼓机节拍和复古游戏感的合成器Riff贯穿全曲,..., lyrics=308 chars
[2026-05-06 13:16:14] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636643110953257771', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:16:14] create_advanced_task: ok=True, TaskID=7636643110953257771, errCode=0
[2026-05-06 13:16:14] [P2] Step 1 result: ok=True, task_id=7636643110953257771, error=, took 0.3s
[2026-05-06 13:16:14] [P2] Step 2: Waiting for TaskID=7636643110953257771 to complete...
[2026-05-06 13:16:14] wait_for_task: TaskID=7636643110953257771, expected=2, timeout=480s
[2026-05-06 13:16:24] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:16:28] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:16:39] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:16:43] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 13:16:54] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:16:58] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 13:17:09] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:17:13] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 13:17:24] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:17:28] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-06 13:17:40] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:17:43] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-06 13:17:55] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:17:59] wait_for_task: 180s, 2/2 completed (expected=2)
[2026-05-06 13:17:59] wait_for_task: done! 2 works stable after 180s: ['7636642732026415926', '7636642760237861632']
[2026-05-06 13:17:59] [P2] Step 2 done: 2 works generated in 192s, WorkIDs=['7636642732026415926', '7636642760237861632']
[2026-05-06 13:17:59] [P2] Step 3: Exporting WorkID=7636642732026415926 (1/2) title='Memory Now'...
[2026-05-06 13:17:59] export(7636642732026415926): VID=v02003g10004d7tctqiljhtdcg6sooa0, Title=Memory Now, Duration=229840ms
[2026-05-06 13:17:59] _create_project: ProjectID=7636643523135458054
[2026-05-06 13:17:59] export(7636642732026415926): human pause 12.4s between save-project and export
[2026-05-06 13:18:10] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 13:18:12] export(7636642732026415926): CreateStudioTask ProjectID=7636643523135458054, VID=v02003g10004d7tctqiljhtdcg6sooa0
[2026-05-06 13:18:12] export(7636642732026415926): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636643605897120531', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:18:12] export(7636642732026415926): ok=True, TaskID=7636643605897120531, errCode=0, biz=
[2026-05-06 13:18:12] [P2] Export OK: WorkID=7636642732026415926, TaskID=7636643605897120531, took 13.6s
[2026-05-06 13:18:12] [P2] Human pause 12.4s before next export...
[2026-05-06 13:18:25] [P2] Step 3: Exporting WorkID=7636642760237861632 (2/2) title='Memory Now'...
[2026-05-06 13:18:25] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 13:18:25] export(7636642760237861632): VID=v02003g10004d7tctqaljht1vfecrf30, Title=Memory Now, Duration=224400ms
[2026-05-06 13:18:25] _create_project: ProjectID=7636643675547683626
[2026-05-06 13:18:25] export(7636642760237861632): human pause 8.3s between save-project and export
[2026-05-06 13:18:34] export(7636642760237861632): CreateStudioTask ProjectID=7636643675547683626, VID=v02003g10004d7tctqaljht1vfecrf30
[2026-05-06 13:18:34] export(7636642760237861632): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636643715393653546', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:18:34] export(7636642760237861632): ok=True, TaskID=7636643715393653546, errCode=0, biz=
[2026-05-06 13:18:34] [P2] Export OK: WorkID=7636642760237861632, TaskID=7636643715393653546, took 9.5s
[2026-05-06 13:18:34] [P2] Waiting 5s before next composition...
[2026-05-06 13:18:39] [P2] --- Song 2/3: 'Are You Happy Now' (lyrics_id=55) ---
[2026-05-06 13:18:39] [P2] Style desc: 一首宏大而充满电影感的弦乐流行情歌。BPM在65左右的慢板,以一段忧郁的钢琴琶音为开端,贯穿始终。主歌部分,一把音色低沉、充满共鸣的大提琴与人声交织,营造出对话...
[2026-05-06 13:18:39] [P2] Lyrics length: 1087 chars, first line: [intro]
[2026-05-06 13:18:39] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:18:39] create_advanced_task: model=7, prompt=一首宏大而充满电影感的弦乐流行情歌。BPM在65左右的慢板,以一段忧郁的钢琴琶音为开端,贯穿始终。主歌部分,一把音色低沉..., lyrics=1087 chars
[2026-05-06 13:18:39] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636643719415958313', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:18:39] create_advanced_task: ok=True, TaskID=7636643719415958313, errCode=0
[2026-05-06 13:18:39] [P2] Step 1 result: ok=True, task_id=7636643719415958313, error=, took 0.3s
[2026-05-06 13:18:39] [P2] Step 2: Waiting for TaskID=7636643719415958313 to complete...
[2026-05-06 13:18:39] wait_for_task: TaskID=7636643719415958313, expected=2, timeout=480s
[2026-05-06 13:18:40] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 13:18:50] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:18:55] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-06 13:19:05] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:19:10] wait_for_task: 165s, 1/2 completed (expected=2)
[2026-05-06 13:19:20] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:19:25] wait_for_task: 180s, 2/2 completed (expected=2)
[2026-05-06 13:19:35] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:19:41] wait_for_task: 195s, 2/2 completed (expected=2)
[2026-05-06 13:19:41] wait_for_task: done! 2 works stable after 195s: ['7636643057441753897', '7636643062151793462']
[2026-05-06 13:19:41] [P2] Step 2 done: 2 works generated in 207s, WorkIDs=['7636643057441753897', '7636643062151793462']
[2026-05-06 13:19:41] [P2] Step 3: Exporting WorkID=7636643057441753897 (1/2) title='滴滴哒哒'...
[2026-05-06 13:19:41] export(7636643057441753897): VID=v02003g10004d7tcuj2ljht0riu057g0, Title=滴滴哒哒, Duration=119680ms
[2026-05-06 13:19:42] _create_project: ProjectID=7636643998064839478
[2026-05-06 13:19:42] export(7636643057441753897): human pause 14.0s between save-project and export
[2026-05-06 13:19:50] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:19:57] export(7636643057441753897): CreateStudioTask ProjectID=7636643998064839478, VID=v02003g10004d7tcuj2ljht0riu057g0
[2026-05-06 13:19:58] export(7636643057441753897): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644048170044203', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:19:58] export(7636643057441753897): ok=True, TaskID=7636644048170044203, errCode=0, biz=
[2026-05-06 13:19:58] [P2] Export OK: WorkID=7636643057441753897, TaskID=7636644048170044203, took 17.3s
[2026-05-06 13:19:58] [P2] Human pause 9.2s before next export...
[2026-05-06 13:20:05] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:20:07] [P2] Step 3: Exporting WorkID=7636643062151793462 (2/2) title='滴滴哒哒'...
[2026-05-06 13:20:08] export(7636643062151793462): VID=v03003g10004d7tcul2ljhtc1g6dqhc0, Title=滴滴哒哒, Duration=114600ms
[2026-05-06 13:20:09] _create_project: ProjectID=7636644128113199908
[2026-05-06 13:20:09] export(7636643062151793462): human pause 14.4s between save-project and export
[2026-05-06 13:20:20] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:20:23] export(7636643062151793462): CreateStudioTask ProjectID=7636644128113199908, VID=v03003g10004d7tcul2ljhtc1g6dqhc0
[2026-05-06 13:20:24] export(7636643062151793462): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644128641649449', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:20:24] export(7636643062151793462): ok=True, TaskID=7636644128641649449, errCode=0, biz=
[2026-05-06 13:20:24] [P2] Export OK: WorkID=7636643062151793462, TaskID=7636644128641649449, took 17.2s
[2026-05-06 13:20:25] [P2] Waiting 5s before next composition...
[2026-05-06 13:20:30] [P2] --- Song 2/2: '空调WiFi西瓜' (lyrics_id=60) ---
[2026-05-06 13:20:30] [P2] Style desc: 一首节奏粘性极强的Hyper Pop舞曲。BPM设定在105-115之间,创造出一种想不跟着摇摆都难的律动感。主歌部分采用极简编排,仅以闷音的电子鼓点和一条极富...
[2026-05-06 13:20:30] [P2] Lyrics length: 398 chars, first line: [intro]
[2026-05-06 13:20:30] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:20:30] create_advanced_task: model=7, prompt=一首节奏粘性极强的Hyper Pop舞曲。BPM设定在105-115之间,创造出一种想不跟着摇摆都难的律动感。主歌部分采..., lyrics=398 chars
[2026-05-06 13:20:30] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644128641731369', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:20:30] create_advanced_task: ok=True, TaskID=7636644128641731369, errCode=0
[2026-05-06 13:20:30] [P2] Step 1 result: ok=True, task_id=7636644128641731369, error=, took 0.3s
[2026-05-06 13:20:30] [P2] Step 2: Waiting for TaskID=7636644128641731369 to complete...
[2026-05-06 13:20:30] wait_for_task: TaskID=7636644128641731369, expected=2, timeout=480s
[2026-05-06 13:20:35] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 13:20:40] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:20:51] wait_for_task: 120s, 1/2 completed (expected=2)
[2026-05-06 13:20:55] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:21:06] wait_for_task: 135s, 2/2 completed (expected=2)
[2026-05-06 13:21:10] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:21:21] wait_for_task: 150s, 2/2 completed (expected=2)
[2026-05-06 13:21:21] wait_for_task: done! 2 works stable after 150s: ['7636643755243916078', '7636643755977771785']
[2026-05-06 13:21:21] [P2] Step 2 done: 2 works generated in 162s, WorkIDs=['7636643755243916078', '7636643755977771785']
[2026-05-06 13:21:21] [P2] Step 3: Exporting WorkID=7636643755243916078 (1/2) title='Are You Happy Now'...
[2026-05-06 13:21:22] export(7636643755243916078): VID=v02003g10004d7tcvbiljht1bv5euq4g, Title=Are You Happy Now, Duration=173240ms
[2026-05-06 13:21:22] _create_project: ProjectID=7636644412038138643
[2026-05-06 13:21:22] export(7636643755243916078): human pause 9.1s between save-project and export
[2026-05-06 13:21:25] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:21:31] export(7636643755243916078): CreateStudioTask ProjectID=7636644412038138643, VID=v02003g10004d7tcvbiljht1bv5euq4g
[2026-05-06 13:21:31] export(7636643755243916078): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644423203605267', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:21:31] export(7636643755243916078): ok=True, TaskID=7636644423203605267, errCode=0, biz=
[2026-05-06 13:21:31] [P2] Export OK: WorkID=7636643755243916078, TaskID=7636644423203605267, took 10.4s
[2026-05-06 13:21:31] [P2] Human pause 14.5s before next export...
[2026-05-06 13:21:40] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:21:46] [P2] Step 3: Exporting WorkID=7636643755977771785 (2/2) title='Are You Happy Now'...
[2026-05-06 13:21:47] export(7636643755977771785): VID=v02003g10004d7tcvcqljht393svvf8g, Title=Are You Happy Now, Duration=182480ms
[2026-05-06 13:21:47] _create_project: ProjectID=7636644480636193590
[2026-05-06 13:21:47] export(7636643755977771785): human pause 9.1s between save-project and export
[2026-05-06 13:21:55] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:21:56] export(7636643755977771785): CreateStudioTask ProjectID=7636644480636193590, VID=v02003g10004d7tcvcqljht393svvf8g
[2026-05-06 13:21:57] export(7636643755977771785): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644587859282730', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:21:57] export(7636643755977771785): ok=True, TaskID=7636644587859282730, errCode=0, biz=
[2026-05-06 13:21:57] [P2] Export OK: WorkID=7636643755977771785, TaskID=7636644587859282730, took 10.6s
[2026-05-06 13:21:57] [P2] Waiting 5s before next composition...
[2026-05-06 13:22:02] [P2] --- Song 3/3: 'Don't You Fade Away' (lyrics_id=56) ---
[2026-05-06 13:22:02] [P2] Style desc: 一首充满氛围感的城市流行情歌。BPM在60-70之间的慢板,以一段富有空间感、滴水般清脆的钢琴旋律为基底。编曲层次丰富,从主歌的极简钢琴伴奏,逐渐添入深沉而富有...
[2026-05-06 13:22:02] [P2] Lyrics length: 1063 chars, first line: [intro]
[2026-05-06 13:22:02] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:22:02] create_advanced_task: model=7, prompt=一首充满氛围感的城市流行情歌。BPM在60-70之间的慢板,以一段富有空间感、滴水般清脆的钢琴旋律为基底。编曲层次丰富,..., lyrics=1063 chars
[2026-05-06 13:22:02] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644582981225258', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:22:02] create_advanced_task: ok=True, TaskID=7636644582981225258, errCode=0
[2026-05-06 13:22:02] [P2] Step 1 result: ok=True, task_id=7636644582981225258, error=, took 0.4s
[2026-05-06 13:22:02] [P2] Step 2: Waiting for TaskID=7636644582981225258 to complete...
[2026-05-06 13:22:02] wait_for_task: TaskID=7636644582981225258, expected=2, timeout=480s
[2026-05-06 13:22:11] wait_for_task: 90s, 2/2 completed (expected=2)
[2026-05-06 13:22:12] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:22:26] wait_for_task: 105s, 2/2 completed (expected=2)
[2026-05-06 13:22:26] wait_for_task: done! 2 works stable after 105s: ['7636644144907258634', '7636644144907275018']
[2026-05-06 13:22:26] [P2] Step 2 done: 2 works generated in 116s, WorkIDs=['7636644144907258634', '7636644144907275018']
[2026-05-06 13:22:26] [P2] Step 3: Exporting WorkID=7636644144907258634 (1/2) title='空调WiFi西瓜'...
[2026-05-06 13:22:26] export(7636644144907258634): VID=v02003g10004d7tcvvaljht77o3568b0, Title=空调WiFi西瓜, Duration=100920ms
[2026-05-06 13:22:27] _create_project: ProjectID=7636644715873848107
[2026-05-06 13:22:27] export(7636644144907258634): human pause 10.9s between save-project and export
[2026-05-06 13:22:27] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:22:38] export(7636644144907258634): CreateStudioTask ProjectID=7636644715873848107, VID=v02003g10004d7tcvvaljht77o3568b0
[2026-05-06 13:22:38] export(7636644144907258634): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644743087868735', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:22:38] export(7636644144907258634): ok=True, TaskID=7636644743087868735, errCode=0, biz=
[2026-05-06 13:22:38] [P2] Export OK: WorkID=7636644144907258634, TaskID=7636644743087868735, took 12.0s
[2026-05-06 13:22:38] [P2] Human pause 8.5s before next export...
[2026-05-06 13:22:43] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:22:46] [P2] Step 3: Exporting WorkID=7636644144907275018 (2/2) title='空调WiFi西瓜'...
[2026-05-06 13:22:47] export(7636644144907275018): VID=v03003g10004d7td002ljhta0la1kcog, Title=空调WiFi西瓜, Duration=102000ms
[2026-05-06 13:22:47] _create_project: ProjectID=7636644767602084650
[2026-05-06 13:22:47] export(7636644144907275018): human pause 10.5s between save-project and export
[2026-05-06 13:22:58] wait_for_task: 45s, 0/2 completed (expected=2)
ojectID=7636644767602084650, VID=v03003g10004d7td002ljhta0la1kcog
[2026-05-06 13:22:58] export(7636644144907275018): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636644814615923497', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:22:58] export(7636644144907275018): ok=True, TaskID=7636644814615923497, errCode=0, biz=
[2026-05-06 13:22:58] [P2] Export OK: WorkID=7636644144907275018, TaskID=7636644814615923497, took 11.7s
[2026-05-06 13:22:58] [P2] ========== PHASE 2 DONE: composed=2, exported=4, total time=405s ==========
[2026-05-06 13:22:58] [BATCH 29] ==================== BATCH END (total 508s) ====================
[2026-05-06 13:23:13] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:23:28] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:23:43] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:23:58] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 13:24:14] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 13:24:29] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 13:24:44] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-06 13:24:59] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-06 13:25:14] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-06 13:25:29] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-06 13:25:44] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-06 13:25:59] wait_for_task: 225s, 0/2 completed (expected=2)
[2026-05-06 13:26:14] wait_for_task: 240s, 0/2 completed (expected=2)
[2026-05-06 13:26:30] wait_for_task: 255s, 1/2 completed (expected=2)
[2026-05-06 13:26:45] wait_for_task: 270s, 2/2 completed (expected=2)
[2026-05-06 13:27:00] wait_for_task: 285s, 2/2 completed (expected=2)
[2026-05-06 13:27:00] wait_for_task: done! 2 works stable after 285s: ['7636644592237988650', '7636644592237972266']
[2026-05-06 13:27:00] [P2] Step 2 done: 2 works generated in 298s, WorkIDs=['7636644592237988650', '7636644592237972266']
[2026-05-06 13:27:00] [P2] Step 3: Exporting WorkID=7636644592237988650 (1/2) title='Don't You Fade Away'...
[2026-05-06 13:27:01] export(7636644592237988650): VID=v03003g10004d7td22aljht875ugv100, Title=Don't You Fade Away, Duration=241200ms
[2026-05-06 13:27:01] _create_project: ProjectID=7636645855990221574
[2026-05-06 13:27:01] export(7636644592237988650): human pause 7.6s between save-project and export
[2026-05-06 13:27:09] export(7636644592237988650): CreateStudioTask ProjectID=7636645855990221574, VID=v03003g10004d7td22aljht875ugv100
[2026-05-06 13:27:09] export(7636644592237988650): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636645944724835115', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:27:09] export(7636644592237988650): ok=True, TaskID=7636645944724835115, errCode=0, biz=
[2026-05-06 13:27:09] [P2] Export OK: WorkID=7636644592237988650, TaskID=7636645944724835115, took 8.8s
[2026-05-06 13:27:09] [P2] Human pause 9.3s before next export...
[2026-05-06 13:27:18] [P2] Step 3: Exporting WorkID=7636644592237972266 (2/2) title='Don't You Fade Away'...
[2026-05-06 13:27:19] export(7636644592237972266): VID=v02003g10004d7td212ljht9ojp380ig, Title=Don't You Fade Away, Duration=249600ms
[2026-05-06 13:27:19] _create_project: ProjectID=7636645976408787748
[2026-05-06 13:27:19] export(7636644592237972266): human pause 13.3s between save-project and export
[2026-05-06 13:27:32] export(7636644592237972266): CreateStudioTask ProjectID=7636645976408787748, VID=v02003g10004d7td212ljht9ojp380ig
[2026-05-06 13:27:33] export(7636644592237972266): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636645985703381814', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:27:33] export(7636644592237972266): ok=True, TaskID=7636645985703381814, errCode=0, biz=
[2026-05-06 13:27:33] [P2] Export OK: WorkID=7636644592237972266, TaskID=7636645985703381814, took 14.7s
[2026-05-06 13:27:33] [P2] ========== PHASE 2 DONE: composed=3, exported=6, total time=768s ==========
[2026-05-06 13:27:33] [BATCH 27] ==================== BATCH END (total 901s) ====================
[2026-05-06 13:32:19] [BATCH 30] ==================== BATCH START ====================
[2026-05-06 13:32:19] [BATCH 30] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\catchy_earworm.json, model=gemini-3f, total=2, lang=韩语, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 13:32:20] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:32:21] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:32:21] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-06 13:32:21] [P1] --- Lyrics 1/2 ---
[2026-05-06 13:32:21] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首韩语魔性洗脑歌词,主题方向:加班到深夜打车回家突然饿了。风格电子舞曲,氛围沙雕但上头,能量级别一浪比一浪高层层叠加。核心...
[2026-05-06 13:32:21] Current URL: https://music.douyin.com/studio
[2026-05-06 13:32:24] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:32:24] Extracted userID from profile API: 104709151573
[2026-05-06 13:32:26] Got conversationId: 7626633213754638378
[2026-05-06 13:32:26] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首韩语魔性洗脑歌词,主...
[2026-05-06 13:33:04] Lyrics received: 974 chars
[2026-05-06 13:33:04] [P1] Lyrics 1/2: OK (took 43s)
[2026-05-06 13:33:07] [P1] --- Lyrics 2/2 ---
[2026-05-06 13:33:07] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首韩语魔性洗脑歌词,主题方向:快递到了飞奔下楼。风格tropical house,氛围解压发疯,能量级别从头炸到尾不给喘息。核...
[2026-05-06 13:33:07] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:33:10] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:33:11] Extracted userID from profile API: 104709151573
[2026-05-06 13:33:12] Got conversationId: 7626633213754638378
[2026-05-06 13:33:12] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首韩语魔性洗脑歌词,主题方...
[2026-05-06 13:33:44] Lyrics received: 689 chars
[2026-05-06 13:33:44] restructure: section 'bridge' not found, skipping
[2026-05-06 13:33:44] [P1] Lyrics 2/2: OK (took 37s)
[2026-05-06 13:33:44] [P1] ========== PHASE 1 DONE: 2 ok, 0 failed, total time=83s ==========
[2026-05-06 13:33:44] [BATCH 30] Transitioning to Phase 2: compose + export...
[2026-05-06 13:33:44] [BATCH 30] Navigating from lyrics page to studio page...
[2026-05-06 13:33:44] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 13:33:51] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:33:51] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:33:51] [BATCH 30] Studio page ready, starting composition pipeline
[2026-05-06 13:33:51] [P2] ========== PHASE 2 START: compose+export for batch 30 ==========
[2026-05-06 13:33:51] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-06 13:33:51] can_create: True (used=0/2, total=127/1000)
[2026-05-06 13:33:51] [P2] Quota check: can=True, used=0/2, total=127/1000
[2026-05-06 13:33:51] [P2] --- Song 1/2: '꼬르륵 꼬르륵 와 (Rumbling Rumbling Comes)' (lyrics_id=61) ---
[2026-05-06 13:33:51] [P2] Style desc: 一首能量层层递进的韩语电子舞曲(K-Pop, Future Bass)。BPM在130-140之间。编曲采用典型的Drop结构:主歌部分极度稀疏,仅有鼓机和慵懒...
[2026-05-06 13:33:51] [P2] Lyrics length: 580 chars, first line: [intro]
[2026-05-06 13:33:51] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:33:51] create_advanced_task: model=7, prompt=一首能量层层递进的韩语电子舞曲(K-Pop, Future Bass)。BPM在130-140之间。编曲采用典型的Dro..., lyrics=580 chars
[2026-05-06 13:33:51] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636647575499852585', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:33:51] create_advanced_task: ok=True, TaskID=7636647575499852585, errCode=0
[2026-05-06 13:33:51] [P2] Step 1 result: ok=True, task_id=7636647575499852585, error=, took 0.3s
[2026-05-06 13:33:51] [P2] Step 2: Waiting for TaskID=7636647575499852585 to complete...
[2026-05-06 13:33:51] wait_for_task: TaskID=7636647575499852585, expected=2, timeout=480s
[2026-05-06 13:34:01] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:34:10] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:34:17] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:34:19] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:34:19] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 13:34:22] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:34:22] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:34:32] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:34:47] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:35:02] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:35:17] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:35:32] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:35:47] wait_for_task: 105s, 1/2 completed (expected=2)
[2026-05-06 13:36:02] wait_for_task: 120s, 2/2 completed (expected=2)
[2026-05-06 13:36:18] wait_for_task: 135s, 2/2 completed (expected=2)
[2026-05-06 13:36:18] wait_for_task: done! 2 works stable after 135s: ['7636647624149388075', '7636647551988255529']
[2026-05-06 13:36:18] [P2] Step 2 done: 2 works generated in 146s, WorkIDs=['7636647624149388075', '7636647551988255529']
[2026-05-06 13:36:18] [P2] Step 3: Exporting WorkID=7636647624149388075 (1/2) title='꼬르륵 꼬르륵 와 (Rumbling Rumbling Comes)'...
[2026-05-06 13:36:18] export(7636647624149388075): VID=v02003g10004d7td6ciljhte84r5pda0, Title=꼬르륵 꼬르륵 와 (Rumbling Rumbling Comes), Duration=117680ms
[2026-05-06 13:36:18] _create_project: ProjectID=7636648284991900470
[2026-05-06 13:36:18] export(7636647624149388075): human pause 9.6s between save-project and export
[2026-05-06 13:36:28] export(7636647624149388075): CreateStudioTask ProjectID=7636648284991900470, VID=v02003g10004d7td6ciljhte84r5pda0
[2026-05-06 13:36:28] export(7636647624149388075): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636648284992064310', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:36:28] export(7636647624149388075): ok=True, TaskID=7636648284992064310, errCode=0, biz=
[2026-05-06 13:36:28] [P2] Export OK: WorkID=7636647624149388075, TaskID=7636648284992064310, took 10.7s
[2026-05-06 13:36:28] [P2] Human pause 12.8s before next export...
[2026-05-06 13:36:41] [P2] Step 3: Exporting WorkID=7636647551988255529 (2/2) title='꼬르륵 꼬르륵 와 (Rumbling Rumbling Comes)'...
[2026-05-06 13:36:42] export(7636647551988255529): VID=v02003g10004d7td6e2ljhtbcergn50g, Title=꼬르륵 꼬르륵 와 (Rumbling Rumbling Comes), Duration=114920ms
[2026-05-06 13:36:42] _create_project: ProjectID=7636648349986736915
[2026-05-06 13:36:42] export(7636647551988255529): human pause 13.7s between save-project and export
[2026-05-06 13:36:56] export(7636647551988255529): CreateStudioTask ProjectID=7636648349986736915, VID=v02003g10004d7td6e2ljhtbcergn50g
[2026-05-06 13:36:56] export(7636647551988255529): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636648388976659242', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:36:56] export(7636647551988255529): ok=True, TaskID=7636648388976659242, errCode=0, biz=
[2026-05-06 13:36:56] [P2] Export OK: WorkID=7636647551988255529, TaskID=7636648388976659242, took 14.8s
[2026-05-06 13:36:56] [P2] Waiting 5s before next composition...
[2026-05-06 13:37:01] [P2] --- Song 2/2: '택배 왔다 와 (Delivery's Here, Wow)' (lyrics_id=62) ---
[2026-05-06 13:37:01] [P2] Style desc: 一首从头炸到尾的高能韩语Phonk Tropical House舞曲。BPM在125-135之间,创造出无法抗拒的摇摆冲动。标志性的Phonk Cowbell贯...
[2026-05-06 13:37:01] [P2] Lyrics length: 352 chars, first line: [intro]
[2026-05-06 13:37:01] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 13:37:01] create_advanced_task: model=7, prompt=一首从头炸到尾的高能韩语Phonk Tropical House舞曲。BPM在125-135之间,创造出无法抗拒的摇摆冲..., lyrics=352 chars
[2026-05-06 13:37:01] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636648344237738794', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:37:01] create_advanced_task: ok=True, TaskID=7636648344237738794, errCode=0
[2026-05-06 13:37:01] [P2] Step 1 result: ok=True, task_id=7636648344237738794, error=, took 0.3s
[2026-05-06 13:37:01] [P2] Step 2: Waiting for TaskID=7636648344237738794 to complete...
[2026-05-06 13:37:01] wait_for_task: TaskID=7636648344237738794, expected=2, timeout=480s
[2026-05-06 13:37:11] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 13:37:26] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 13:37:42] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 13:37:57] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 13:38:12] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 13:38:27] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 13:38:42] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 13:38:57] wait_for_task: 105s, 2/2 completed (expected=2)
[2026-05-06 13:39:12] wait_for_task: 120s, 2/2 completed (expected=2)
[2026-05-06 13:39:12] wait_for_task: done! 2 works stable after 120s: ['7636648359050382089', '7636648395335109430']
[2026-05-06 13:39:12] [P2] Step 2 done: 2 works generated in 131s, WorkIDs=['7636648359050382089', '7636648395335109430']
[2026-05-06 13:39:12] [P2] Step 3: Exporting WorkID=7636648359050382089 (1/2) title='택배 왔다 와 (Delivery's Here, Wow)'...
[2026-05-06 13:39:13] export(7636648359050382089): VID=v02003g10004d7td7riljhtal71dlq9g, Title=택배 왔다 와 (Delivery's Here, Wow), Duration=100320ms
[2026-05-06 13:39:13] _create_project: ProjectID=7636649015669001014
[2026-05-06 13:39:13] export(7636648359050382089): human pause 9.2s between save-project and export
[2026-05-06 13:39:22] export(7636648359050382089): CreateStudioTask ProjectID=7636649015669001014, VID=v02003g10004d7td7riljhtal71dlq9g
[2026-05-06 13:39:23] export(7636648359050382089): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636648997679811371', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:39:23] export(7636648359050382089): ok=True, TaskID=7636648997679811371, errCode=0, biz=
[2026-05-06 13:39:23] [P2] Export OK: WorkID=7636648359050382089, TaskID=7636648997679811371, took 10.3s
[2026-05-06 13:39:23] [P2] Human pause 7.2s before next export...
[2026-05-06 13:39:30] [P2] Step 3: Exporting WorkID=7636648395335109430 (2/2) title='택배 왔다 와 (Delivery's Here, Wow)'...
[2026-05-06 13:39:30] export(7636648395335109430): VID=v02003g10004d7td7raljht1ghe7uff0, Title=택배 왔다 와 (Delivery's Here, Wow), Duration=130840ms
[2026-05-06 13:39:31] _create_project: ProjectID=7636649094483544868
[2026-05-06 13:39:31] export(7636648395335109430): human pause 13.3s between save-project and export
[2026-05-06 13:39:44] export(7636648395335109430): CreateStudioTask ProjectID=7636649094483544868, VID=v02003g10004d7td7raljht1ghe7uff0
[2026-05-06 13:39:44] export(7636648395335109430): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636649174007565098', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 13:39:44] export(7636648395335109430): ok=True, TaskID=7636649174007565098, errCode=0, biz=
[2026-05-06 13:39:44] [P2] Export OK: WorkID=7636648395335109430, TaskID=7636649174007565098, took 14.4s
[2026-05-06 13:39:44] [P2] ========== PHASE 2 DONE: composed=2, exported=4, total time=353s ==========
[2026-05-06 13:39:44] [BATCH 30] ==================== BATCH END (total 445s) ====================
[2026-05-06 13:43:30] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:43:30] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:43:30] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 13:43:33] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:43:33] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:44:20] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:44:20] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:44:20] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 13:44:23] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:44:23] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:45:15] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:45:16] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:45:16] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 13:45:19] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:45:19] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:50:18] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:50:18] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:50:18] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 13:50:21] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:50:21] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:51:00] [PUB job=37] ==== START issue_id=7636648997679811371 ====
[2026-05-06 13:51:00] [PUB job=38] waiting for account 1 lock ...
[2026-05-06 13:51:00] [PUB job=39] waiting for account 1 lock ...
[2026-05-06 13:51:01] [PUB job=37] phase -> open
[2026-05-06 13:51:01] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636648997679811371
[2026-05-06 13:51:01] Open studio page: https://music.douyin.com/studio
[2026-05-06 13:51:09] Current URL after open: https://music.douyin.com/studio
[2026-05-06 13:51:09] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 13:51:12] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:51:12] [PUB job=37] phase -> artist
[2026-05-06 13:51:12] [PUB] artist: 0527 id=None
[2026-05-06 13:51:12] [PUB job=37] phase -> metadata
[2026-05-06 13:51:12] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 13:51:13] [PUB] human pause 3.0s
[2026-05-06 13:51:13] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 13:51:16] [PUB job=37] phase -> contract
[2026-05-06 13:51:16] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:51:19] [PUB] no loading indicator, proceeding
[2026-05-06 13:51:19] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:51:20] [PUB] form: step 1 → 2
[2026-05-06 13:51:24] [PUB] selecting auth type: 独家代理授权/独家代理发行
[2026-05-06 13:51:24] [PUB] auth type selected via U9Wib: text='独家代理发行(3年)'
[2026-05-06 13:51:25] [PUB] selecting auth region: 全球 (type=1)
[2026-05-06 13:51:25] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-06 13:51:25] [PUB] form: step 2 → 3
[2026-05-06 13:51:29] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:51:30] [PUB] selected '无主页链接'
[2026-05-06 13:51:31] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:51:32] [PUB] captured certify: phone=132****3383
[2026-05-06 13:51:32] [PUB] captured contract_package: id=7636651951858026559
[2026-05-06 13:51:35] [PUB] captured signing contract: id=7636651951858059327
[2026-05-06 13:51:37] [PUB job=37] phase -> letsign_init
[2026-05-06 13:51:37] [PUB] human pause 5.5s
[2026-05-06 13:51:43] [PUB] looking for letsign iframe...
[2026-05-06 13:51:43] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 13:51:46] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 13:51:46] [PUB] 意愿认证 modal visible
[2026-05-06 13:51:46] [PUB] human pause 0.6s
[2026-05-06 13:51:46] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 13:51:46] [PUB job=37] phase -> otp_sent
[2026-05-06 13:51:48] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 13:51:48] [PUB job=37] phase -> otp_wait
[2026-05-06 13:51:48] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-06 13:51:58] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-06 13:52:03] [SMS] received id=13 code=414338 phone=106814949011962 src=unknown
[2026-05-06 13:52:04] [SMS] wait_for_otp matched: id=13 code=414338
[2026-05-06 13:52:04] [PUB] received OTP code=414338 (sms_id=13)
[2026-05-06 13:52:04] [PUB job=37] phase -> verify
[2026-05-06 13:52:04] [PUB] human pause 1.2s
[2026-05-06 13:52:06] [PUB] filling OTP code=414338 into iframe input...
[2026-05-06 13:52:06] [PUB] human pause 1.4s
[2026-05-06 13:52:07] [PUB] clicking confirm in iframe...
[2026-05-06 13:52:07] [PUB] clicked '确定' in iframe
[2026-05-06 13:52:07] [SMS] consumed id=13 by job=37
[2026-05-06 13:52:07] [PUB job=37] phase -> contract_sync
[2026-05-06 13:52:07] [PUB] waiting for page to transition after signing...
[2026-05-06 13:52:21] [PUB] page shows review/completion text — publish done!
[2026-05-06 13:52:21] [PUB job=37] phase -> submit
[2026-05-06 13:52:21] [PUB] human pause 3.7s
[2026-05-06 13:52:30] [PUB] detected completion text on page during submit poll
[2026-05-06 13:52:30] [PUB job=37] ==== DONE albumId=auto (90s) ====
[2026-05-06 13:52:30] [PUB job=40] waiting for account 1 lock ...
[2026-05-06 13:52:30] [PUB job=38] ==== START issue_id=7636648388976659242 ====
[2026-05-06 13:52:31] [PUB job=38] phase -> open
[2026-05-06 13:52:31] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636648388976659242
[2026-05-06 13:52:42] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:52:42] [PUB job=38] phase -> artist
[2026-05-06 13:52:42] [PUB] artist: 0527 id=None
[2026-05-06 13:52:42] [PUB job=38] phase -> metadata
[2026-05-06 13:52:42] [PUB] human pause 4.8s
[2026-05-06 13:52:47] [PUB job=38] phase -> contract
[2026-05-06 13:52:47] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:52:50] [PUB] no loading indicator, proceeding
[2026-05-06 13:52:50] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:52:51] [PUB] form: step 1 → 2
[2026-05-06 13:52:55] [PUB] selecting auth type: 独家代理授权/独家代理发行
[2026-05-06 13:52:55] [PUB] auth type selected via U9Wib: text='独家代理发行(3年)'
[2026-05-06 13:52:56] [PUB] selecting auth region: 全球 (type=1)
[2026-05-06 13:52:56] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-06 13:52:56] [PUB] form: step 2 → 3
[2026-05-06 13:53:00] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:53:01] [PUB] selected '无主页链接'
[2026-05-06 13:53:02] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:53:03] [PUB] captured certify: phone=132****3383
[2026-05-06 13:53:03] [PUB] captured contract_package: id=7636652333816236095
[2026-05-06 13:53:06] [PUB] captured signing contract: id=7636652333816268863
[2026-05-06 13:53:08] [PUB job=38] phase -> letsign_init
[2026-05-06 13:53:08] [PUB] human pause 4.6s
[2026-05-06 13:53:13] [PUB] looking for letsign iframe...
[2026-05-06 13:53:13] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 13:53:16] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 13:53:16] [PUB] 意愿认证 modal visible
[2026-05-06 13:53:16] [PUB] human pause 0.8s
[2026-05-06 13:53:17] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 13:53:17] [PUB job=38] phase -> otp_sent
[2026-05-06 13:53:19] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 13:53:19] [PUB job=38] phase -> otp_wait
[2026-05-06 13:53:19] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-06 13:53:21] [SMS] received id=14 code=792626 phone=106814949011962 src=unknown
[2026-05-06 13:53:23] [SMS] wait_for_otp matched: id=14 code=792626
[2026-05-06 13:53:23] [PUB] received OTP code=792626 (sms_id=14)
[2026-05-06 13:53:23] [PUB job=38] phase -> verify
[2026-05-06 13:53:23] [PUB] human pause 1.1s
[2026-05-06 13:53:24] [PUB] filling OTP code=792626 into iframe input...
[2026-05-06 13:53:24] [PUB] human pause 1.6s
[2026-05-06 13:53:26] [PUB] clicking confirm in iframe...
[2026-05-06 13:53:26] [PUB] clicked '确定' in iframe
[2026-05-06 13:53:26] [SMS] consumed id=14 by job=38
[2026-05-06 13:53:26] [PUB job=38] phase -> contract_sync
[2026-05-06 13:53:26] [PUB] waiting for page to transition after signing...
[2026-05-06 13:53:28] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 13:53:40] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 13:53:43] [PUB] page shows review/completion text — publish done!
[2026-05-06 13:53:43] [PUB job=38] phase -> submit
[2026-05-06 13:53:43] [PUB] human pause 3.2s
[2026-05-06 13:53:51] [PUB] detected completion text on page during submit poll
[2026-05-06 13:53:51] [PUB job=38] ==== DONE albumId=auto (81s) ====
[2026-05-06 13:53:51] [PUB job=41] waiting for account 1 lock ...
[2026-05-06 13:53:51] [PUB job=39] ==== START issue_id=7636645944724835115 ====
[2026-05-06 13:53:52] [PUB job=39] phase -> open
[2026-05-06 13:53:52] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636645944724835115
[2026-05-06 13:54:03] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:54:03] [PUB job=39] phase -> artist
[2026-05-06 13:54:03] [PUB] artist: 0527 id=None
[2026-05-06 13:54:03] [PUB job=39] phase -> metadata
[2026-05-06 13:54:03] [PUB] human pause 3.8s
[2026-05-06 13:54:07] [PUB job=39] phase -> contract
[2026-05-06 13:54:07] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:54:10] [PUB] no loading indicator, proceeding
[2026-05-06 13:54:10] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:54:11] [PUB] form: step 1 → 2
[2026-05-06 13:54:15] [PUB] selecting auth type: 独家代理授权/独家代理发行
[2026-05-06 13:54:15] [PUB] auth type selected via U9Wib: text='独家代理发行(3年)'
[2026-05-06 13:54:16] [PUB] selecting auth region: 全球 (type=1)
[2026-05-06 13:54:16] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-06 13:54:16] [PUB] form: step 2 → 3
[2026-05-06 13:54:20] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:54:21] [PUB] selected '无主页链接'
[2026-05-06 13:54:22] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:54:23] [PUB] captured certify: phone=132****3383
[2026-05-06 13:54:23] [PUB] captured contract_package: id=7636652419002681363
[2026-05-06 13:54:26] [PUB] captured signing contract: id=7636652419002714131
[2026-05-06 13:54:26] [PUB job=39] phase -> letsign_init
[2026-05-06 13:54:26] [PUB] human pause 3.1s
[2026-05-06 13:54:29] [PUB] looking for letsign iframe...
[2026-05-06 13:54:29] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 13:54:32] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 13:54:32] [PUB] 意愿认证 modal visible
[2026-05-06 13:54:32] [PUB] human pause 1.2s
[2026-05-06 13:54:33] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 13:54:34] [PUB job=39] phase -> otp_sent
[2026-05-06 13:54:36] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 13:54:36] [PUB job=39] phase -> otp_wait
[2026-05-06 13:54:36] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-06 13:54:40] [SMS] received id=15 code=975542 phone=10684465130011163554 src=unknown
[2026-05-06 13:54:42] [SMS] wait_for_otp matched: id=15 code=975542
[2026-05-06 13:54:42] [PUB] received OTP code=975542 (sms_id=15)
[2026-05-06 13:54:42] [PUB job=39] phase -> verify
[2026-05-06 13:54:42] [PUB] human pause 2.8s
[2026-05-06 13:54:44] [PUB] filling OTP code=975542 into iframe input...
[2026-05-06 13:54:44] [PUB] human pause 1.8s
[2026-05-06 13:54:46] [PUB] clicking confirm in iframe...
[2026-05-06 13:54:46] [PUB] clicked '确定' in iframe
[2026-05-06 13:54:46] [SMS] consumed id=15 by job=39
[2026-05-06 13:54:46] [PUB job=39] phase -> contract_sync
[2026-05-06 13:54:46] [PUB] waiting for page to transition after signing...
[2026-05-06 13:54:48] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 13:55:00] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 13:55:03] [PUB] page shows review/completion text — publish done!
[2026-05-06 13:55:03] [PUB job=39] phase -> submit
[2026-05-06 13:55:03] [PUB] human pause 2.3s
[2026-05-06 13:55:11] [PUB] detected completion text on page during submit poll
[2026-05-06 13:55:11] [PUB job=39] ==== DONE albumId=auto (80s) ====
[2026-05-06 13:55:11] [PUB job=42] waiting for account 1 lock ...
[2026-05-06 13:55:11] [PUB job=40] ==== START issue_id=7636644743087868735 ====
[2026-05-06 13:55:12] [PUB job=40] phase -> open
[2026-05-06 13:55:12] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644743087868735
[2026-05-06 13:55:22] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:55:22] [PUB job=40] phase -> artist
[2026-05-06 13:55:22] [PUB] artist: 0527 id=None
[2026-05-06 13:55:22] [PUB job=40] phase -> metadata
[2026-05-06 13:55:23] [PUB] human pause 4.5s
[2026-05-06 13:55:28] [PUB job=40] phase -> contract
[2026-05-06 13:55:28] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:55:31] [PUB] no loading indicator, proceeding
[2026-05-06 13:55:31] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:55:32] [PUB] form: step 1 → 2
[2026-05-06 13:55:36] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 13:55:36] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 13:55:37] [PUB] form: step 2 → 3
[2026-05-06 13:55:38] [PUB] captured certify: phone=132****3383
[2026-05-06 13:55:38] [PUB] captured contract_package: id=7636653182060234794
[2026-05-06 13:55:41] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:55:41] [PUB] captured signing contract: id=7636653182060267562
[2026-05-06 13:55:41] [PUB] '有主页链接' dropdown not found (may not be required)
[2026-05-06 13:55:42] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:55:43] [PUB job=40] FAILED: PublishError: Cannot find 下一步 button on step 3
[2026-05-06 13:55:43] [PUB job=43] waiting for account 1 lock ...
[2026-05-06 13:55:43] [PUB job=41] ==== START issue_id=7636644587859282730 ====
[2026-05-06 13:55:44] [PUB job=41] phase -> open
[2026-05-06 13:55:44] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644587859282730
[2026-05-06 13:55:54] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:55:54] [PUB job=41] phase -> artist
[2026-05-06 13:55:54] [PUB] artist: 0527 id=None
[2026-05-06 13:55:54] [PUB job=41] phase -> metadata
[2026-05-06 13:55:54] [PUB] human pause 2.3s
[2026-05-06 13:55:57] [PUB job=41] phase -> contract
[2026-05-06 13:55:57] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:56:00] [PUB] no loading indicator, proceeding
[2026-05-06 13:56:00] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:56:01] [PUB] form: step 1 → 2
[2026-05-06 13:56:05] [PUB] selecting auth type: 独家代理授权/独家代理发行
[2026-05-06 13:56:05] [PUB] auth type selected via U9Wib: text='独家代理发行(3年)'
[2026-05-06 13:56:06] [PUB] selecting auth region: 全球 (type=1)
[2026-05-06 13:56:06] [PUB] WARN: auth region control not found for '全球', using default
[2026-05-06 13:56:06] [PUB] form: step 2 → 3
[2026-05-06 13:56:10] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:56:11] [PUB] selected '无主页链接'
[2026-05-06 13:56:12] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:56:13] [PUB] captured certify: phone=132****3383
[2026-05-06 13:56:13] [PUB] captured contract_package: id=7636653183004493843
[2026-05-06 13:56:16] [PUB] captured signing contract: id=7636653183004526611
[2026-05-06 13:56:18] [PUB job=41] phase -> letsign_init
[2026-05-06 13:56:18] [PUB] human pause 3.5s
[2026-05-06 13:56:22] [PUB] looking for letsign iframe...
[2026-05-06 13:56:22] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 13:56:25] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 13:56:25] [PUB] 意愿认证 modal visible
[2026-05-06 13:56:25] [PUB] human pause 0.6s
[2026-05-06 13:56:25] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 13:56:25] [PUB job=41] phase -> otp_sent
[2026-05-06 13:56:27] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 13:56:27] [PUB job=41] phase -> otp_wait
[2026-05-06 13:56:27] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-06 13:56:29] [SMS] received id=16 code=428876 phone=106814949011962 src=unknown
[2026-05-06 13:56:29] [SMS] wait_for_otp matched: id=16 code=428876
[2026-05-06 13:56:29] [PUB] received OTP code=428876 (sms_id=16)
[2026-05-06 13:56:29] [PUB job=41] phase -> verify
[2026-05-06 13:56:29] [PUB] human pause 1.8s
[2026-05-06 13:56:31] [PUB] filling OTP code=428876 into iframe input...
[2026-05-06 13:56:31] [PUB] human pause 1.1s
[2026-05-06 13:56:32] [PUB] clicking confirm in iframe...
[2026-05-06 13:56:32] [PUB] clicked '确定' in iframe
[2026-05-06 13:56:32] [SMS] consumed id=16 by job=41
[2026-05-06 13:56:32] [PUB job=41] phase -> contract_sync
[2026-05-06 13:56:32] [PUB] waiting for page to transition after signing...
[2026-05-06 13:56:34] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 13:56:46] [PUB] page shows review/completion text — publish done!
[2026-05-06 13:56:46] [PUB job=41] phase -> submit
[2026-05-06 13:56:47] [PUB] human pause 3.6s
[2026-05-06 13:56:55] [PUB] detected completion text on page during submit poll
[2026-05-06 13:56:55] [PUB job=41] ==== DONE albumId=auto (72s) ====
[2026-05-06 13:56:55] [PUB job=42] ==== START issue_id=7636644128641649449 ====
[2026-05-06 13:56:55] [PUB job=44] waiting for account 1 lock ...
[2026-05-06 13:56:56] [PUB job=42] phase -> open
[2026-05-06 13:56:56] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644128641649449
[2026-05-06 13:57:07] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:57:07] [PUB job=42] phase -> artist
[2026-05-06 13:57:07] [PUB] artist: 0527 id=None
[2026-05-06 13:57:07] [PUB job=42] phase -> metadata
[2026-05-06 13:57:07] [PUB] human pause 3.2s
[2026-05-06 13:57:10] [PUB job=42] phase -> contract
[2026-05-06 13:57:10] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:57:13] [PUB] no loading indicator, proceeding
[2026-05-06 13:57:13] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:57:14] [PUB] form: step 1 → 2
[2026-05-06 13:57:18] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 13:57:18] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 13:57:19] [PUB] form: step 2 → 3
[2026-05-06 13:57:20] [PUB] captured certify: phone=132****3383
[2026-05-06 13:57:21] [PUB] captured contract_package: id=7636653388977653802
[2026-05-06 13:57:24] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:57:24] [PUB] captured signing contract: id=7636653388977686570
[2026-05-06 13:57:24] [PUB] '有主页链接' dropdown not found (may not be required)
[2026-05-06 13:57:25] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:57:25] [PUB job=42] FAILED: PublishError: Cannot find 下一步 button on step 3
[2026-05-06 13:57:25] [PUB job=43] ==== START issue_id=7636644048170044203 ====
[2026-05-06 13:57:26] [PUB job=43] phase -> open
[2026-05-06 13:57:26] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644048170044203
[2026-05-06 13:57:37] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:57:37] [PUB job=43] phase -> artist
[2026-05-06 13:57:37] [PUB] artist: 0527 id=None
[2026-05-06 13:57:37] [PUB job=43] phase -> metadata
[2026-05-06 13:57:37] [PUB] human pause 5.0s
[2026-05-06 13:57:42] [PUB job=43] phase -> contract
[2026-05-06 13:57:42] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:57:45] [PUB] no loading indicator, proceeding
[2026-05-06 13:57:45] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:57:46] [PUB] form: step 1 → 2
[2026-05-06 13:57:50] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 13:57:50] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 13:57:51] [PUB] form: step 2 → 3
[2026-05-06 13:57:53] [PUB] captured certify: phone=132****3383
[2026-05-06 13:57:53] [PUB] captured contract_package: id=7636653700526229546
[2026-05-06 13:57:56] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:57:56] [PUB] captured signing contract: id=7636653700526262314
[2026-05-06 13:57:56] [PUB] '有主页链接' dropdown not found (may not be required)
[2026-05-06 13:57:57] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:57:57] [PUB job=43] FAILED: PublishError: Cannot find 下一步 button on step 3
[2026-05-06 13:57:57] [PUB job=44] ==== START issue_id=7636643605897120531 ====
[2026-05-06 13:57:58] [PUB job=44] phase -> open
[2026-05-06 13:57:58] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636643605897120531
[2026-05-06 13:58:08] [PUB] page loaded, artist_profile=yes
[2026-05-06 13:58:09] [PUB job=44] phase -> artist
[2026-05-06 13:58:09] [PUB] artist: 0527 id=None
[2026-05-06 13:58:09] [PUB job=44] phase -> metadata
[2026-05-06 13:58:09] [PUB] human pause 2.4s
[2026-05-06 13:58:11] [PUB job=44] phase -> contract
[2026-05-06 13:58:11] [PUB] waiting for audio recognition to finish...
[2026-05-06 13:58:14] [PUB] no loading indicator, proceeding
[2026-05-06 13:58:14] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 13:58:15] [PUB] form: step 1 → 2
[2026-05-06 13:58:19] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 13:58:20] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 13:58:21] [PUB] form: step 2 → 3
[2026-05-06 13:58:22] [PUB] captured certify: phone=132****3383
[2026-05-06 13:58:22] [PUB] captured contract_package: id=7636653611351033892
[2026-05-06 13:58:25] [PUB] captured signing contract: id=7636653611351066660
[2026-05-06 13:58:25] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 13:58:25] [PUB] '有主页链接' dropdown not found (may not be required)
[2026-05-06 13:58:26] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 13:58:27] [PUB job=44] FAILED: PublishError: Cannot find 下一步 button on step 3
[2026-05-06 14:11:18] Open studio page: https://music.douyin.com/studio
[2026-05-06 14:11:19] Current URL after open: https://music.douyin.com/studio
[2026-05-06 14:11:19] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 14:11:22] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 14:11:22] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 14:42:50] [SMS] ignored (no digits): src=unknown body=【DOU+】订单投放终止,你的DOU+余额已退回DOU+账户。查看订单详情1864148456984666
[2026-05-06 14:50:09] [SMS] ignored (no digits): src=unknown body=【蚂蚁保】全民保·定期寿险将于2026年05月11日,通过支付宝自动扣取分期保费,本期交费100.00元,回复xq关闭通知
[2026-05-06 15:49:14] [SMS] ignored (no digits): src=unknown body=【DOU+】订单投放终止,你的DOU+余额已退回DOU+账户。查看订单详情1864365884818603
[2026-05-06 16:14:59] Open studio page: https://music.douyin.com/studio
[2026-05-06 16:14:59] Current URL after open: https://music.douyin.com/studio
[2026-05-06 16:14:59] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 16:15:02] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 16:15:02] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 16:15:16] [PUB job=45] ==== START issue_id=7636644128641649449 ====
[2026-05-06 16:15:17] Open studio page: https://music.douyin.com/studio
[2026-05-06 16:15:17] [PUB job=45] phase -> open
[2026-05-06 16:15:17] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644128641649449
[2026-05-06 16:15:17] Current URL after open: https://music.douyin.com/studio
[2026-05-06 16:15:17] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 16:15:20] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 16:15:21] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 16:15:34] [PUB] page loaded, artist_profile=yes
[2026-05-06 16:15:34] [PUB job=45] phase -> artist
[2026-05-06 16:15:34] [PUB] artist: 0527 id=None
[2026-05-06 16:15:34] [PUB job=45] phase -> metadata
[2026-05-06 16:15:34] [PUB] human pause 3.3s
[2026-05-06 16:15:38] [PUB job=45] phase -> contract
[2026-05-06 16:15:38] [PUB] waiting for audio recognition to finish...
[2026-05-06 16:15:41] [PUB] no loading indicator, proceeding
[2026-05-06 16:15:41] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 16:15:42] [PUB] form: step 1 → 2
[2026-05-06 16:15:46] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 16:15:46] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 16:15:47] [PUB] form: step 2 → 3
[2026-05-06 16:15:48] [PUB] captured certify: phone=132****3383
[2026-05-06 16:15:48] [PUB] captured contract_package: id=7636689353410545727
[2026-05-06 16:15:51] [PUB] captured signing contract: id=7636689353410578495
[2026-05-06 16:15:51] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 16:15:51] [PUB] '有主页链接' dropdown not switched. Triggers seen (0): []
[2026-05-06 16:15:52] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 16:15:52] [PUB] _click_next: no button matched. Visible buttons: ['我知道了', '我要咨询']
[2026-05-06 16:15:53] [PUB] saved debug_step3_fail.png for inspection
[2026-05-06 16:15:53] [PUB job=45] FAILED: PublishError: Cannot find 下一步 button on step 3
[2026-05-06 17:14:34] Open studio page: https://music.douyin.com/studio
[2026-05-06 17:14:35] Current URL after open: https://music.douyin.com/studio
[2026-05-06 17:14:35] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 17:14:38] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 17:14:39] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 17:14:46] [PUB job=46] ==== START issue_id=7636644128641649449 ====
[2026-05-06 17:14:47] Open studio page: https://music.douyin.com/studio
[2026-05-06 17:14:47] [PUB job=46] phase -> open
[2026-05-06 17:14:47] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644128641649449
[2026-05-06 17:14:53] Current URL after open: https://music.douyin.com/studio
[2026-05-06 17:14:53] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 17:14:56] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 17:14:56] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 17:15:05] [PUB] page loaded, artist_profile=yes
[2026-05-06 17:15:05] [PUB job=46] phase -> artist
[2026-05-06 17:15:05] [PUB] artist: 0527 id=None
[2026-05-06 17:15:05] [PUB job=46] phase -> metadata
[2026-05-06 17:15:05] [PUB] human pause 3.7s
[2026-05-06 17:15:09] [PUB job=46] phase -> contract
[2026-05-06 17:15:09] [PUB] waiting for audio recognition to finish...
[2026-05-06 17:15:12] [PUB] no loading indicator, proceeding
[2026-05-06 17:15:12] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 17:15:13] [PUB] form: step 1 → 2
[2026-05-06 17:15:17] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 17:15:17] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 17:15:18] [PUB] form: step 2 → 3
[2026-05-06 17:15:20] [PUB] captured certify: phone=132****3383
[2026-05-06 17:15:20] [PUB] captured contract_package: id=7636704580390242345
[2026-05-06 17:15:23] [PUB] captured signing contract: id=7636704580390275113
[2026-05-06 17:15:24] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 17:15:24] [PUB job=46] phase -> letsign_init
[2026-05-06 17:15:24] [PUB] human pause 3.2s
[2026-05-06 17:15:27] [PUB] looking for letsign iframe...
[2026-05-06 17:15:27] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 17:15:30] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 17:15:30] [PUB] 意愿认证 modal visible
[2026-05-06 17:15:30] [PUB] human pause 0.6s
[2026-05-06 17:15:30] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 17:15:31] [PUB job=46] phase -> otp_sent
[2026-05-06 17:15:33] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 17:15:33] [PUB job=46] phase -> otp_wait
[2026-05-06 17:15:33] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-06 17:15:35] [SMS] received id=17 code=394150 phone=10684465130011163554 src=unknown
[2026-05-06 17:15:37] [SMS] wait_for_otp matched: id=17 code=394150
[2026-05-06 17:15:37] [PUB] received OTP code=394150 (sms_id=17)
[2026-05-06 17:15:37] [PUB job=46] phase -> verify
[2026-05-06 17:15:37] [PUB] human pause 1.5s
[2026-05-06 17:15:38] [PUB] filling OTP code=394150 into iframe input...
[2026-05-06 17:15:38] [PUB] human pause 1.6s
[2026-05-06 17:15:40] [PUB] clicking confirm in iframe...
[2026-05-06 17:15:40] [PUB] clicked '确定' in iframe
[2026-05-06 17:15:40] [SMS] consumed id=17 by job=46
[2026-05-06 17:15:40] [PUB job=46] phase -> contract_sync
[2026-05-06 17:15:40] [PUB] waiting for page to transition after signing...
[2026-05-06 17:15:42] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 17:15:54] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 17:16:00] [PUB] page shows review/completion text — publish done!
[2026-05-06 17:16:00] [PUB job=46] phase -> submit
[2026-05-06 17:16:00] [PUB] human pause 3.8s
[2026-05-06 17:16:09] [PUB] detected completion text on page during submit poll
[2026-05-06 17:16:09] [PUB job=46] ==== DONE albumId=auto (83s) ====
[2026-05-06 17:20:02] Open studio page: https://music.douyin.com/studio
[2026-05-06 17:20:03] Current URL after open: https://music.douyin.com/studio
[2026-05-06 17:20:03] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 17:20:06] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 17:20:06] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 17:20:48] [PUB job=47] ==== START issue_id=7636644743087868735 ====
[2026-05-06 17:20:48] [PUB job=48] waiting for account 1 lock ...
[2026-05-06 17:20:48] [PUB job=49] waiting for account 1 lock ...
[2026-05-06 17:20:49] Open studio page: https://music.douyin.com/studio
[2026-05-06 17:20:49] [PUB job=47] phase -> open
[2026-05-06 17:20:49] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644743087868735
[2026-05-06 17:20:56] Current URL after open: https://music.douyin.com/studio
[2026-05-06 17:20:56] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 17:20:59] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 17:21:00] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 17:21:00] [PUB] page loaded, artist_profile=yes
[2026-05-06 17:21:00] [PUB job=47] phase -> artist
[2026-05-06 17:21:00] [PUB] artist: 0527 id=None
[2026-05-06 17:21:00] [PUB job=47] phase -> metadata
[2026-05-06 17:21:01] [PUB] human pause 3.6s
[2026-05-06 17:21:04] [PUB job=47] phase -> contract
[2026-05-06 17:21:04] [PUB] waiting for audio recognition to finish...
[2026-05-06 17:21:07] [PUB] no loading indicator, proceeding
[2026-05-06 17:21:07] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 17:21:08] [PUB] form: step 1 → 2
[2026-05-06 17:21:12] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 17:21:13] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 17:21:14] [PUB] form: step 2 → 3
[2026-05-06 17:21:15] [PUB] captured certify: phone=132****3383
[2026-05-06 17:21:15] [PUB] captured contract_package: id=7636706114092828714
[2026-05-06 17:21:18] [PUB] captured signing contract: id=7636706114092861482
[2026-05-06 17:21:19] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 17:21:19] [PUB job=47] phase -> letsign_init
[2026-05-06 17:21:19] [PUB] human pause 4.0s
[2026-05-06 17:21:23] [PUB] looking for letsign iframe...
[2026-05-06 17:21:23] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 17:21:26] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 17:21:26] [PUB] 意愿认证 modal visible
[2026-05-06 17:21:26] [PUB] human pause 0.7s
[2026-05-06 17:21:27] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 17:21:27] [PUB job=47] phase -> otp_sent
[2026-05-06 17:21:29] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 17:21:29] [PUB job=47] phase -> otp_wait
[2026-05-06 17:21:29] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-06 17:21:32] [SMS] received id=18 code=281639 phone=10684465130011163554 src=unknown
[2026-05-06 17:21:33] [SMS] wait_for_otp matched: id=18 code=281639
[2026-05-06 17:21:33] [PUB] received OTP code=281639 (sms_id=18)
[2026-05-06 17:21:33] [PUB job=47] phase -> verify
[2026-05-06 17:21:33] [PUB] human pause 1.7s
[2026-05-06 17:21:35] [PUB] filling OTP code=281639 into iframe input...
[2026-05-06 17:21:35] [PUB] human pause 1.9s
[2026-05-06 17:21:37] [PUB] clicking confirm in iframe...
[2026-05-06 17:21:37] [PUB] clicked '确定' in iframe
[2026-05-06 17:21:37] [SMS] consumed id=18 by job=47
[2026-05-06 17:21:37] [PUB job=47] phase -> contract_sync
[2026-05-06 17:21:37] [PUB] waiting for page to transition after signing...
[2026-05-06 17:21:39] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 17:21:51] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 17:21:57] [PUB] page shows review/completion text — publish done!
[2026-05-06 17:21:57] [PUB job=47] phase -> submit
[2026-05-06 17:21:57] [PUB] human pause 3.4s
[2026-05-06 17:22:05] [PUB] detected completion text on page during submit poll
[2026-05-06 17:22:05] [PUB job=47] ==== DONE albumId=auto (77s) ====
[2026-05-06 17:22:06] [PUB job=48] ==== START issue_id=7636644048170044203 ====
[2026-05-06 17:22:06] [PUB job=48] phase -> open
[2026-05-06 17:22:06] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636644048170044203
[2026-05-06 17:22:17] [PUB] page loaded, artist_profile=yes
[2026-05-06 17:22:17] [PUB job=48] phase -> artist
[2026-05-06 17:22:17] [PUB] artist: 0527 id=None
[2026-05-06 17:22:17] [PUB job=48] phase -> metadata
[2026-05-06 17:22:17] [PUB] human pause 2.9s
[2026-05-06 17:22:20] [PUB job=48] phase -> contract
[2026-05-06 17:22:20] [PUB] waiting for audio recognition to finish...
[2026-05-06 17:22:23] [PUB] no loading indicator, proceeding
[2026-05-06 17:22:23] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 17:22:24] [PUB] form: step 1 → 2
[2026-05-06 17:22:28] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 17:22:28] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 17:22:29] [PUB] form: step 2 → 3
[2026-05-06 17:22:30] [PUB] captured certify: phone=132****3383
[2026-05-06 17:22:31] [PUB] captured contract_package: id=7636706504276707371
[2026-05-06 17:22:34] [PUB] captured signing contract: id=7636706504276740139
[2026-05-06 17:22:34] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 17:22:34] [PUB job=48] phase -> letsign_init
[2026-05-06 17:22:34] [PUB] human pause 3.1s
[2026-05-06 17:22:37] [PUB] looking for letsign iframe...
[2026-05-06 17:22:37] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 17:22:40] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 17:22:40] [PUB] 意愿认证 modal visible
[2026-05-06 17:22:40] [PUB] human pause 1.4s
[2026-05-06 17:22:42] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 17:22:42] [PUB job=48] phase -> otp_sent
[2026-05-06 17:22:44] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 17:22:44] [PUB job=48] phase -> otp_wait
[2026-05-06 17:22:44] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-06 17:22:46] [SMS] received id=19 code=095518 phone=106814949011962 src=unknown
[2026-05-06 17:22:46] [SMS] wait_for_otp matched: id=19 code=095518
[2026-05-06 17:22:46] [PUB] received OTP code=095518 (sms_id=19)
[2026-05-06 17:22:46] [PUB job=48] phase -> verify
[2026-05-06 17:22:46] [PUB] human pause 2.2s
[2026-05-06 17:22:48] [PUB] filling OTP code=095518 into iframe input...
[2026-05-06 17:22:48] [PUB] human pause 1.4s
[2026-05-06 17:22:49] [PUB] clicking confirm in iframe...
[2026-05-06 17:22:49] [PUB] clicked '确定' in iframe
[2026-05-06 17:22:50] [SMS] consumed id=19 by job=48
[2026-05-06 17:22:50] [PUB job=48] phase -> contract_sync
[2026-05-06 17:22:50] [PUB] waiting for page to transition after signing...
[2026-05-06 17:22:52] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 17:23:04] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 17:23:07] [PUB] page shows review/completion text — publish done!
[2026-05-06 17:23:07] [PUB job=48] phase -> submit
[2026-05-06 17:23:07] [PUB] human pause 4.2s
[2026-05-06 17:23:16] [PUB] detected completion text on page during submit poll
[2026-05-06 17:23:16] [PUB job=48] ==== DONE albumId=auto (70s) ====
[2026-05-06 17:23:16] [PUB job=49] ==== START issue_id=7636643605897120531 ====
[2026-05-06 17:23:17] [PUB job=49] phase -> open
[2026-05-06 17:23:17] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636643605897120531
[2026-05-06 17:23:27] [PUB] page loaded, artist_profile=yes
[2026-05-06 17:23:27] [PUB job=49] phase -> artist
[2026-05-06 17:23:27] [PUB] artist: 0527 id=None
[2026-05-06 17:23:27] [PUB job=49] phase -> metadata
[2026-05-06 17:23:28] [PUB] human pause 3.0s
[2026-05-06 17:23:31] [PUB job=49] phase -> contract
[2026-05-06 17:23:31] [PUB] waiting for audio recognition to finish...
[2026-05-06 17:23:34] [PUB] no loading indicator, proceeding
[2026-05-06 17:23:34] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 17:23:35] [PUB] form: step 1 → 2
[2026-05-06 17:23:39] [PUB] selecting auth type: 独家代理授权/独家代理发行
[2026-05-06 17:23:39] [PUB] auth type selected via U9Wib: text='独家代理发行(3年)'
[2026-05-06 17:23:40] [PUB] selecting auth region: 全球 (type=1)
[2026-05-06 17:23:43] [PUB] WARN: failed to open 发行范围 dropdown: Locator.click: Timeout 3000ms exceeded.
Call log:
- waiting for locator(".semi-form-field-label-text:has-text('发行范围')").first.locator("xpath=ancestor::*[contains(@class,'semi-form-field')][1]").locator(".douyin-music-select-selection").first
[2026-05-06 17:23:43] [PUB] form: step 2 → 3
[2026-05-06 17:23:58] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 17:23:59] [PUB] '有主页链接' dropdown not switched. Triggers seen (7): ['中国大陆', '请选择', '录音授权比例 100%', '词授权比例 100%', '曲授权比例 100%', '最多添加10个关联艺人', '有主页链接']
[2026-05-06 17:24:00] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 17:25:31] [PUB job=49] FAILED: PublishError: Contract creation timeout after 90s. certify=NO, pkg_id=NO
[2026-05-06 20:20:22] [BATCH 31] ==================== BATCH START ====================
[2026-05-06 20:20:23] [BATCH 31] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\sino_future.json, model=gemini-3f, total=2, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 20:20:23] Open studio page: https://music.douyin.com/studio
[2026-05-06 20:20:24] Current URL after open: https://music.douyin.com/studio
[2026-05-06 20:20:24] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-06 20:20:24] [P1] --- Lyrics 1/2 ---
[2026-05-06 20:20:24] [P1] Prompt: 你是国潮+电子融合的先锋词人。为少年清亮声写一首中文中国新潮(Sino-Future)歌曲。主题:戏腔遇上Trap鼓的化学反应。古典元素京剧念白,现代元素电子合成Pad铺底。①Hook前4行出现,5-...
[2026-05-06 20:20:24] Current URL: https://music.douyin.com/studio
[2026-05-06 20:20:28] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:20:28] Extracted userID from profile API: 104709151573
[2026-05-06 20:20:29] Got conversationId: 7626633213754638378
[2026-05-06 20:20:29] Sending lyrics request: model=gemini-3f, prompt=你是国潮+电子融合的先锋词人。为少年清亮声写一首中文中国新潮(Sino-Future)歌曲。主题:戏...
[2026-05-06 20:21:02] Lyrics received: 748 chars
[2026-05-06 20:21:02] [P1] Lyrics 1/2: OK (took 38s)
[2026-05-06 20:21:05] [P1] --- Lyrics 2/2 ---
[2026-05-06 20:21:05] [P1] Prompt: 你是国潮+电子融合的先锋词人。为女声写一首中文中国新潮(Sino-Future)歌曲。主题:二十一世纪少年穿越到唐朝。古典元素编钟低鸣,现代元素Drill Sliding 808。①Hook前4行出现...
[2026-05-06 20:21:05] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:21:08] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:21:08] Extracted userID from profile API: 104709151573
[2026-05-06 20:21:09] Got conversationId: 7626633213754638378
[2026-05-06 20:21:09] Sending lyrics request: model=gemini-3f, prompt=你是国潮+电子融合的先锋词人。为女声写一首中文中国新潮(Sino-Future)歌曲。主题:二十一世...
[2026-05-06 20:21:54] Lyrics received: 672 chars
[2026-05-06 20:21:54] [P1] Lyrics 2/2: OK (took 50s)
[2026-05-06 20:21:54] [P1] ========== PHASE 1 DONE: 2 ok, 0 failed, total time=90s ==========
[2026-05-06 20:21:54] [BATCH 31] Transitioning to Phase 2: compose + export...
[2026-05-06 20:21:54] [BATCH 31] Navigating from lyrics page to studio page...
[2026-05-06 20:21:54] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:22:01] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 20:22:01] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 20:22:01] [BATCH 31] Studio page ready, starting composition pipeline
[2026-05-06 20:22:01] [P2] ========== PHASE 2 START: compose+export for batch 31 ==========
[2026-05-06 20:22:01] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-06 20:22:01] can_create: True (used=0/2, total=169/1000)
[2026-05-06 20:22:01] [P2] Quota check: can=True, used=0/2, total=169/1000
[2026-05-06 20:22:01] [P2] --- Song 1/2: '粉墨新章' (lyrics_id=63) ---
[2026-05-06 20:22:01] [P2] Style desc: 一首融合国风与未来的Sino-Future史诗燃曲。以清亮的古筝拨弦和悠远的笛声作为引子,营造出古朴而空灵的意境。主歌部分,少年清亮的声线带着戏腔咬字,在简约的...
[2026-05-06 20:22:01] [P2] Lyrics length: 426 chars, first line: [intro]
[2026-05-06 20:22:01] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 20:22:01] create_advanced_task: model=7, prompt=一首融合国风与未来的Sino-Future史诗燃曲。以清亮的古筝拨弦和悠远的笛声作为引子,营造出古朴而空灵的意境。主歌部..., lyrics=426 chars
[2026-05-06 20:22:02] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636752849606724395', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:22:02] create_advanced_task: ok=True, TaskID=7636752849606724395, errCode=0
[2026-05-06 20:22:02] [P2] Step 1 result: ok=True, task_id=7636752849606724395, error=, took 0.3s
[2026-05-06 20:22:02] [P2] Step 2: Waiting for TaskID=7636752849606724395 to complete...
[2026-05-06 20:22:02] wait_for_task: TaskID=7636752849606724395, expected=2, timeout=480s
[2026-05-06 20:22:12] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 20:22:27] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 20:22:42] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 20:22:57] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 20:23:12] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 20:23:27] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 20:23:42] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 20:23:58] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 20:24:13] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 20:24:28] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 20:24:43] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-06 20:24:58] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-06 20:25:13] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-06 20:25:28] wait_for_task: 195s, 2/2 completed (expected=2)
[2026-05-06 20:25:43] wait_for_task: 210s, 2/2 completed (expected=2)
[2026-05-06 20:25:43] wait_for_task: done! 2 works stable after 210s: ['7636752871094143790', '7636752873979824939']
[2026-05-06 20:25:43] [P2] Step 2 done: 2 works generated in 222s, WorkIDs=['7636752871094143790', '7636752873979824939']
[2026-05-06 20:25:43] [P2] Step 3: Exporting WorkID=7636752871094143790 (1/2) title='粉墨新章'...
[2026-05-06 20:25:44] export(7636752871094143790): VID=v03003g10004d7tj6ciljht2dq8mjsa0, Title=粉墨新章, Duration=234840ms
[2026-05-06 20:25:44] _create_project: ProjectID=7636753809133308726
[2026-05-06 20:25:44] export(7636752871094143790): human pause 10.9s between save-project and export
[2026-05-06 20:25:55] export(7636752871094143790): CreateStudioTask ProjectID=7636753809133308726, VID=v03003g10004d7tj6ciljht2dq8mjsa0
[2026-05-06 20:25:56] export(7636752871094143790): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636753809133570870', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:25:56] export(7636752871094143790): ok=True, TaskID=7636753809133570870, errCode=0, biz=
[2026-05-06 20:25:56] [P2] Export OK: WorkID=7636752871094143790, TaskID=7636753809133570870, took 12.2s
[2026-05-06 20:25:56] [P2] Human pause 9.2s before next export...
[2026-05-06 20:26:05] [P2] Step 3: Exporting WorkID=7636752873979824939 (2/2) title='粉墨新章'...
[2026-05-06 20:26:06] export(7636752873979824939): VID=v03003g10004d7tj6diljht77lm6nr5g, Title=粉墨新章, Duration=171560ms
[2026-05-06 20:26:06] _create_project: ProjectID=7636753911826762502
[2026-05-06 20:26:06] export(7636752873979824939): human pause 7.5s between save-project and export
[2026-05-06 20:26:14] export(7636752873979824939): CreateStudioTask ProjectID=7636753911826762502, VID=v03003g10004d7tj6diljht77lm6nr5g
[2026-05-06 20:26:14] export(7636752873979824939): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636753879304227626', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:26:14] export(7636752873979824939): ok=True, TaskID=7636753879304227626, errCode=0, biz=
[2026-05-06 20:26:14] [P2] Export OK: WorkID=7636752873979824939, TaskID=7636753879304227626, took 9.1s
[2026-05-06 20:26:14] [P2] Waiting 5s before next composition...
[2026-05-06 20:26:19] [P2] --- Song 2/2: '长安Drill' (lyrics_id=64) ---
[2026-05-06 20:26:19] [P2] Style desc: 一首融合国风与未来感的中文新潮(Sino-Future)歌曲。以幽远的编钟低鸣作为序幕,旋即被强劲的Drill Sliding 808贝斯和利落的电子鼓点接管。...
[2026-05-06 20:26:19] [P2] Lyrics length: 390 chars, first line: [intro]
[2026-05-06 20:26:19] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 20:26:19] create_advanced_task: model=7, prompt=一首融合国风与未来感的中文新潮(Sino-Future)歌曲。以幽远的编钟低鸣作为序幕,旋即被强劲的Drill Slid..., lyrics=390 chars
[2026-05-06 20:26:19] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636753946836716324', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:26:19] create_advanced_task: ok=True, TaskID=7636753946836716324, errCode=0
[2026-05-06 20:26:19] [P2] Step 1 result: ok=True, task_id=7636753946836716324, error=, took 0.3s
[2026-05-06 20:26:19] [P2] Step 2: Waiting for TaskID=7636753946836716324 to complete...
[2026-05-06 20:26:19] wait_for_task: TaskID=7636753946836716324, expected=2, timeout=480s
[2026-05-06 20:26:29] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 20:26:45] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 20:27:00] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 20:27:15] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 20:27:30] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 20:27:45] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 20:28:00] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 20:28:16] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 20:28:31] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 20:28:46] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 20:29:01] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-06 20:29:16] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-06 20:29:31] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-06 20:29:46] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-06 20:30:02] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-06 20:30:17] wait_for_task: 225s, 2/2 completed (expected=2)
[2026-05-06 20:30:32] wait_for_task: 240s, 2/2 completed (expected=2)
[2026-05-06 20:30:32] wait_for_task: done! 2 works stable after 240s: ['7636753909419248390', '7636754007609838370']
[2026-05-06 20:30:32] [P2] Step 2 done: 2 works generated in 253s, WorkIDs=['7636753909419248390', '7636754007609838370']
[2026-05-06 20:30:32] [P2] Step 3: Exporting WorkID=7636753909419248390 (1/2) title='长安Drill'...
[2026-05-06 20:30:33] export(7636753909419248390): VID=v03003g10004d7tj8iqljht82e714310, Title=长安Drill, Duration=181600ms
[2026-05-06 20:30:33] _create_project: ProjectID=7636755057673210643
[2026-05-06 20:30:33] export(7636753909419248390): human pause 8.9s between save-project and export
[2026-05-06 20:30:42] export(7636753909419248390): CreateStudioTask ProjectID=7636755057673210643, VID=v03003g10004d7tj8iqljht82e714310
[2026-05-06 20:30:42] export(7636753909419248390): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636755086429096710', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:30:42] export(7636753909419248390): ok=True, TaskID=7636755086429096710, errCode=0, biz=
[2026-05-06 20:30:42] [P2] Export OK: WorkID=7636753909419248390, TaskID=7636755086429096710, took 10.2s
[2026-05-06 20:30:42] [P2] Human pause 11.0s before next export...
[2026-05-06 20:30:53] [P2] Step 3: Exporting WorkID=7636754007609838370 (2/2) title='长安Drill'...
[2026-05-06 20:30:54] export(7636754007609838370): VID=v0d003g10004d7tj8jiljht67d23bnpg, Title=长安Drill, Duration=189880ms
[2026-05-06 20:30:54] _create_project: ProjectID=7636755140720216838
[2026-05-06 20:30:54] export(7636754007609838370): human pause 11.7s between save-project and export
[2026-05-06 20:31:06] export(7636754007609838370): CreateStudioTask ProjectID=7636755140720216838, VID=v0d003g10004d7tj8jiljht67d23bnpg
[2026-05-06 20:31:06] export(7636754007609838370): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636755147118168886', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:31:06] export(7636754007609838370): ok=True, TaskID=7636755147118168886, errCode=0, biz=
[2026-05-06 20:31:06] [P2] Export OK: WorkID=7636754007609838370, TaskID=7636755147118168886, took 12.9s
[2026-05-06 20:31:06] [P2] ========== PHASE 2 DONE: composed=2, exported=4, total time=545s ==========
[2026-05-06 20:31:06] [BATCH 31] ==================== BATCH END (total 644s) ====================
[2026-05-06 20:36:38] [BATCH 32] ==================== BATCH START ====================
[2026-05-06 20:36:38] [BATCH 32] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\sino_future.json, model=gemini-3f, total=2, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-06 20:36:39] Open studio page: https://music.douyin.com/studio
[2026-05-06 20:36:40] Current URL after open: https://music.douyin.com/studio
[2026-05-06 20:36:40] [P1] ========== PHASE 1 START: generating 2 lyrics ==========
[2026-05-06 20:36:40] [P1] --- Lyrics 1/2 ---
[2026-05-06 20:36:40] [P1] Prompt: 你是国潮+电子融合的先锋词人。为女声写一首中文中国新潮(Sino-Future)歌曲。主题:上元灯节遇上电音节。古典元素古筝轮指,现代元素Drill Sliding 808。①Hook前4行出现,5-...
[2026-05-06 20:36:40] Current URL: https://music.douyin.com/studio
[2026-05-06 20:36:43] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:36:44] Extracted userID from profile API: 104709151573
[2026-05-06 20:36:45] Got conversationId: 7626633213754638378
[2026-05-06 20:36:45] Sending lyrics request: model=gemini-3f, prompt=你是国潮+电子融合的先锋词人。为女声写一首中文中国新潮(Sino-Future)歌曲。主题:上元灯节...
[2026-05-06 20:37:19] Lyrics received: 656 chars
[2026-05-06 20:37:19] [P1] Lyrics 1/2: OK (took 39s)
[2026-05-06 20:37:22] [P1] --- Lyrics 2/2 ---
[2026-05-06 20:37:22] [P1] Prompt: 你是国潮+电子融合的先锋词人。为中年磁性声写一首中文中国新潮(Sino-Future)歌曲。主题:水墨画在LED屏上流动。古典元素戏腔咿呀,现代元素Synth Lead尖锐。①Hook前4行出现,5-...
[2026-05-06 20:37:22] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:37:25] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:37:25] Extracted userID from profile API: 104709151573
[2026-05-06 20:37:27] Got conversationId: 7626633213754638378
[2026-05-06 20:37:27] Sending lyrics request: model=gemini-3f, prompt=你是国潮+电子融合的先锋词人。为中年磁性声写一首中文中国新潮(Sino-Future)歌曲。主题:水...
[2026-05-06 20:38:03] Lyrics received: 716 chars
[2026-05-06 20:38:03] [P1] Lyrics 2/2: OK (took 41s)
[2026-05-06 20:38:03] [P1] ========== PHASE 1 DONE: 2 ok, 0 failed, total time=83s ==========
[2026-05-06 20:38:03] [BATCH 32] Transitioning to Phase 2: compose + export...
[2026-05-06 20:38:03] [BATCH 32] Navigating from lyrics page to studio page...
[2026-05-06 20:38:03] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-06 20:38:10] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 20:38:10] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 20:38:10] [BATCH 32] Studio page ready, starting composition pipeline
[2026-05-06 20:38:10] [P2] ========== PHASE 2 START: compose+export for batch 32 ==========
[2026-05-06 20:38:10] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-06 20:38:10] can_create: True (used=0/2, total=210/1000)
[2026-05-06 20:38:10] [P2] Quota check: can=True, used=0/2, total=210/1000
[2026-05-06 20:38:10] [P2] --- Song 1/2: '灯如昼' (lyrics_id=65) ---
[2026-05-06 20:38:10] [P2] Style desc: 一首极简而富有冲击力的中国新潮(Sino-Future)Drill歌曲。编曲极度精炼,仅由三个核心声部构成:清冷而快速轮转的古筝、深沉滑动的Drill Slid...
[2026-05-06 20:38:10] [P2] Lyrics length: 422 chars, first line: [intro]
[2026-05-06 20:38:10] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 20:38:10] create_advanced_task: model=7, prompt=一首极简而富有冲击力的中国新潮(Sino-Future)Drill歌曲。编曲极度精炼,仅由三个核心声部构成:清冷而快速轮..., lyrics=422 chars
[2026-05-06 20:38:11] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636756969298430761', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:38:11] create_advanced_task: ok=True, TaskID=7636756969298430761, errCode=0
[2026-05-06 20:38:11] [P2] Step 1 result: ok=True, task_id=7636756969298430761, error=, took 0.3s
[2026-05-06 20:38:11] [P2] Step 2: Waiting for TaskID=7636756969298430761 to complete...
[2026-05-06 20:38:11] wait_for_task: TaskID=7636756969298430761, expected=2, timeout=480s
[2026-05-06 20:38:21] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 20:38:36] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 20:38:51] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 20:39:07] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 20:39:22] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 20:39:37] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 20:39:52] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 20:40:07] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 20:40:22] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 20:40:38] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 20:40:53] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-06 20:41:08] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-06 20:41:23] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-06 20:41:38] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-06 20:41:54] wait_for_task: 210s, 1/2 completed (expected=2)
[2026-05-06 20:42:09] wait_for_task: 225s, 2/2 completed (expected=2)
[2026-05-06 20:42:24] wait_for_task: 240s, 2/2 completed (expected=2)
[2026-05-06 20:42:24] wait_for_task: done! 2 works stable after 240s: ['7636756974092339995', '7636757017793678107']
[2026-05-06 20:42:24] [P2] Step 2 done: 2 works generated in 253s, WorkIDs=['7636756974092339995', '7636757017793678107']
[2026-05-06 20:42:24] [P2] Step 3: Exporting WorkID=7636756974092339995 (1/2) title='灯如昼'...
[2026-05-06 20:42:25] export(7636756974092339995): VID=v0d003g10004d7tje4aljht78a2s5bhg, Title=灯如昼, Duration=186720ms
[2026-05-06 20:42:25] _create_project: ProjectID=7636758086153751332
[2026-05-06 20:42:25] export(7636756974092339995): human pause 12.3s between save-project and export
[2026-05-06 20:42:37] export(7636756974092339995): CreateStudioTask ProjectID=7636758086153751332, VID=v0d003g10004d7tje4aljht78a2s5bhg
[2026-05-06 20:42:37] export(7636756974092339995): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636758176683445033', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:42:37] export(7636756974092339995): ok=True, TaskID=7636758176683445033, errCode=0, biz=
[2026-05-06 20:42:37] [P2] Export OK: WorkID=7636756974092339995, TaskID=7636758176683445033, took 13.4s
[2026-05-06 20:42:37] [P2] Human pause 14.7s before next export...
[2026-05-06 20:42:52] [P2] Step 3: Exporting WorkID=7636757017793678107 (2/2) title='灯如昼'...
[2026-05-06 20:42:53] export(7636757017793678107): VID=v0d003g10004d7tje42ljht1mot2q220, Title=灯如昼, Duration=205960ms
[2026-05-06 20:42:53] _create_project: ProjectID=7636758259415747391
[2026-05-06 20:42:53] export(7636757017793678107): human pause 11.0s between save-project and export
[2026-05-06 20:43:04] export(7636757017793678107): CreateStudioTask ProjectID=7636758259415747391, VID=v0d003g10004d7tje42ljht1mot2q220
[2026-05-06 20:43:05] export(7636757017793678107): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636758310976359209', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:43:05] export(7636757017793678107): ok=True, TaskID=7636758310976359209, errCode=0, biz=
[2026-05-06 20:43:05] [P2] Export OK: WorkID=7636757017793678107, TaskID=7636758310976359209, took 12.4s
[2026-05-06 20:43:05] [P2] Waiting 5s before next composition...
[2026-05-06 20:43:10] [P2] --- Song 2/2: '数字山水' (lyrics_id=66) ---
[2026-05-06 20:43:10] [P2] Style desc: 一首专为中年磁性嗓音打造的中国新潮(Sino-Future)歌曲。开篇以悠扬的二胡独奏,在空灵的合成器Pad上描绘出水墨晕染的意境。主歌部分编排稀疏,仅有轻柔的...
[2026-05-06 20:43:10] [P2] Lyrics length: 419 chars, first line: [intro]
[2026-05-06 20:43:10] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-06 20:43:10] create_advanced_task: model=7, prompt=一首专为中年磁性嗓音打造的中国新潮(Sino-Future)歌曲。开篇以悠扬的二胡独奏,在空灵的合成器Pad上描绘出水墨..., lyrics=419 chars
[2026-05-06 20:43:10] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636758352181234468', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:43:10] create_advanced_task: ok=True, TaskID=7636758352181234468, errCode=0
[2026-05-06 20:43:10] [P2] Step 1 result: ok=True, task_id=7636758352181234468, error=, took 0.4s
[2026-05-06 20:43:10] [P2] Step 2: Waiting for TaskID=7636758352181234468 to complete...
[2026-05-06 20:43:10] wait_for_task: TaskID=7636758352181234468, expected=2, timeout=480s
[2026-05-06 20:43:20] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-06 20:43:35] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-06 20:43:51] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-06 20:44:06] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-06 20:44:21] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-06 20:44:36] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-06 20:44:51] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-06 20:45:07] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-06 20:45:22] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-06 20:45:37] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-06 20:45:52] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-06 20:46:07] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-06 20:46:23] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-06 20:46:38] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-06 20:46:53] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-06 20:47:08] wait_for_task: 225s, 0/2 completed (expected=2)
[2026-05-06 20:47:23] wait_for_task: 240s, 0/2 completed (expected=2)
[2026-05-06 20:47:39] wait_for_task: 255s, 2/2 completed (expected=2)
[2026-05-06 20:47:54] wait_for_task: 270s, 2/2 completed (expected=2)
[2026-05-06 20:47:54] wait_for_task: done! 2 works stable after 270s: ['7636758352181250852', '7636758326457633579']
[2026-05-06 20:47:54] [P2] Step 2 done: 2 works generated in 284s, WorkIDs=['7636758352181250852', '7636758326457633579']
[2026-05-06 20:47:54] [P2] Step 3: Exporting WorkID=7636758352181250852 (1/2) title='数字山水'...
[2026-05-06 20:47:54] export(7636758352181250852): VID=v03003g10004d7tjgo2ljhtb7taedkj0, Title=数字山水, Duration=206920ms
[2026-05-06 20:47:55] _create_project: ProjectID=7636759531221125894
[2026-05-06 20:47:55] export(7636758352181250852): human pause 10.7s between save-project and export
[2026-05-06 20:48:06] export(7636758352181250852): CreateStudioTask ProjectID=7636759531221125894, VID=v03003g10004d7tjgo2ljhtb7taedkj0
[2026-05-06 20:48:06] export(7636758352181250852): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636759616075975467', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:48:06] export(7636758352181250852): ok=True, TaskID=7636759616075975467, errCode=0, biz=
[2026-05-06 20:48:06] [P2] Export OK: WorkID=7636758352181250852, TaskID=7636759616075975467, took 12.1s
[2026-05-06 20:48:06] [P2] Human pause 11.8s before next export...
[2026-05-06 20:48:18] [P2] Step 3: Exporting WorkID=7636758326457633579 (2/2) title='数字山水'...
[2026-05-06 20:48:18] export(7636758326457633579): VID=v0d003g10004d7tjgmiljhtahrh5lrq0, Title=数字山水, Duration=217080ms
[2026-05-06 20:48:19] _create_project: ProjectID=7636759659986225961
[2026-05-06 20:48:19] export(7636758326457633579): human pause 13.4s between save-project and export
[2026-05-06 20:48:32] export(7636758326457633579): CreateStudioTask ProjectID=7636759659986225961, VID=v0d003g10004d7tjgmiljhtahrh5lrq0
[2026-05-06 20:48:32] export(7636758326457633579): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636759708720237331', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-06 20:48:32] export(7636758326457633579): ok=True, TaskID=7636759708720237331, errCode=0, biz=
[2026-05-06 20:48:32] [P2] Export OK: WorkID=7636758326457633579, TaskID=7636759708720237331, took 14.8s
[2026-05-06 20:48:32] [P2] ========== PHASE 2 DONE: composed=2, exported=4, total time=622s ==========
[2026-05-06 20:48:33] [BATCH 32] ==================== BATCH END (total 714s) ====================
[2026-05-06 22:53:47] [SMS] received id=20 code=12345 phone=None src=ios-shortcut
[2026-05-06 22:54:10] Open studio page: https://music.douyin.com/studio
[2026-05-06 22:54:11] Current URL after open: https://music.douyin.com/studio
[2026-05-06 22:54:11] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 22:54:14] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 22:54:17] open_studio: WARNING authority check failed: {'baseResp': {'errorCode': -1002, 'errorMsg': '未登录'}, 'data': None}
[2026-05-06 22:54:22] open_studio: WARNING API still not working: {'baseResp': {'errorCode': -1002, 'errorMsg': '未登录'}, 'data': None}
[2026-05-06 22:54:28] Open studio page: https://music.douyin.com/studio
[2026-05-06 22:54:30] Current URL after open: https://music.douyin.com/studio
[2026-05-06 22:58:17] Open studio page: https://music.douyin.com/studio
[2026-05-06 22:58:19] Current URL after open: https://music.douyin.com/studio
[2026-05-06 22:58:21] Open studio page: https://music.douyin.com/studio
[2026-05-06 22:58:23] Current URL after open: https://music.douyin.com/studio
[2026-05-06 22:59:23] Open studio page: https://music.douyin.com/studio
[2026-05-06 22:59:24] Current URL after open: https://music.douyin.com/studio
[2026-05-06 22:59:24] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 22:59:26] Open studio page: https://music.douyin.com/studio
[2026-05-06 22:59:27] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 22:59:27] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 22:59:32] Current URL after open: https://music.douyin.com/studio
[2026-05-06 22:59:32] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 22:59:35] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 22:59:35] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 22:59:44] Open studio page: https://music.douyin.com/studio
[2026-05-06 22:59:50] Current URL after open: https://music.douyin.com/studio
[2026-05-06 22:59:50] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 22:59:53] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 22:59:54] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:00:06] [PUB job=52] ==== START issue_id=7635687977817426740 ====
[2026-05-06 23:00:06] [PUB job=50] waiting for account 2 lock ...
[2026-05-06 23:00:06] [PUB job=51] waiting for account 2 lock ...
[2026-05-06 23:00:08] [PUB job=52] phase -> open
[2026-05-06 23:00:08] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635687977817426740
[2026-05-06 23:00:08] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:00:09] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:00:09] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:00:12] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:00:12] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:00:24] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:00:24] [PUB job=52] phase -> artist
[2026-05-06 23:00:24] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:00:25] [PUB job=52] phase -> metadata
[2026-05-06 23:00:25] [PUB] human pause 3.6s
[2026-05-06 23:00:28] [PUB job=52] phase -> contract
[2026-05-06 23:00:28] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:00:31] [PUB] no loading indicator, proceeding
[2026-05-06 23:00:31] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:00:32] [PUB] form: step 1 → 2
[2026-05-06 23:00:36] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:00:37] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:00:37] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:00:38] [PUB] form: step 2 → 3
[2026-05-06 23:00:39] [PUB] captured certify: phone=180****0612
[2026-05-06 23:00:39] [PUB] captured contract_package: id=7636793736798079017
[2026-05-06 23:00:42] [PUB] captured signing contract: id=7636793736798111785
[2026-05-06 23:00:42] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:00:44] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:00:44] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:00:47] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:00:47] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:01:12] [PUB job=52] phase -> letsign_init
[2026-05-06 23:01:12] [PUB] human pause 3.8s
[2026-05-06 23:01:16] [PUB] looking for letsign iframe...
[2026-05-06 23:01:16] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:01:36] [PUB job=52] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:01:36] [PUB job=53] waiting for account 2 lock ...
[2026-05-06 23:01:36] [PUB job=50] ==== START issue_id=7635689086321330979 ====
[2026-05-06 23:01:37] [PUB job=50] phase -> open
[2026-05-06 23:01:37] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635689086321330979
[2026-05-06 23:01:48] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:01:49] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:01:49] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:01:52] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:01:52] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:01:53] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:01:53] [PUB job=50] phase -> artist
[2026-05-06 23:01:53] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:01:53] [PUB job=50] phase -> metadata
[2026-05-06 23:01:54] [PUB] human pause 3.7s
[2026-05-06 23:01:57] [PUB job=50] phase -> contract
[2026-05-06 23:01:57] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:02:00] [PUB] no loading indicator, proceeding
[2026-05-06 23:02:00] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:02:01] [PUB] form: step 1 → 2
[2026-05-06 23:02:06] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:02:06] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:02:07] [PUB] form: step 2 → 3
[2026-05-06 23:02:08] [PUB] captured certify: phone=180****0612
[2026-05-06 23:02:08] [PUB] captured contract_package: id=7636793892558653459
[2026-05-06 23:02:11] [PUB] captured signing contract: id=7636793892558686227
[2026-05-06 23:02:11] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:02:41] [PUB job=50] phase -> letsign_init
[2026-05-06 23:02:41] [PUB] human pause 4.8s
[2026-05-06 23:02:46] [PUB] looking for letsign iframe...
[2026-05-06 23:02:46] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:03:07] [PUB job=50] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:03:07] [PUB job=54] waiting for account 2 lock ...
[2026-05-06 23:03:07] [PUB job=51] ==== START issue_id=7635688987633453824 ====
[2026-05-06 23:03:08] [PUB job=51] phase -> open
[2026-05-06 23:03:08] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635688987633453824
[2026-05-06 23:03:25] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:03:25] [PUB job=51] phase -> artist
[2026-05-06 23:03:25] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:03:25] [PUB job=51] phase -> metadata
[2026-05-06 23:03:25] [PUB] human pause 2.1s
[2026-05-06 23:03:27] [PUB job=51] phase -> contract
[2026-05-06 23:03:27] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:03:30] [PUB] no loading indicator, proceeding
[2026-05-06 23:03:30] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:03:31] [PUB] form: step 1 → 2
[2026-05-06 23:03:35] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:03:36] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:03:37] [PUB] form: step 2 → 3
[2026-05-06 23:03:38] [PUB] captured certify: phone=180****0612
[2026-05-06 23:03:38] [PUB] captured contract_package: id=7636794289184573446
[2026-05-06 23:03:41] [PUB] captured signing contract: id=7636794289184606214
[2026-05-06 23:03:41] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:03:49] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:03:50] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:03:50] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:03:53] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:03:53] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:04:11] [PUB job=51] phase -> letsign_init
[2026-05-06 23:04:11] [PUB] human pause 3.5s
[2026-05-06 23:04:15] [PUB] looking for letsign iframe...
[2026-05-06 23:04:15] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:04:35] [PUB job=51] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:04:35] [PUB job=55] waiting for account 2 lock ...
[2026-05-06 23:04:35] [PUB job=53] ==== START issue_id=7635687920921709327 ====
[2026-05-06 23:04:36] [PUB job=53] phase -> open
[2026-05-06 23:04:36] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635687920921709327
[2026-05-06 23:04:52] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:04:52] [PUB job=53] phase -> artist
[2026-05-06 23:04:52] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:04:52] [PUB job=53] phase -> metadata
[2026-05-06 23:04:52] [PUB] human pause 4.8s
[2026-05-06 23:04:53] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:04:55] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:04:55] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:04:57] [PUB job=53] phase -> contract
[2026-05-06 23:04:57] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:04:58] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:04:58] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:00] [PUB] no loading indicator, proceeding
[2026-05-06 23:05:00] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:05:01] [PUB] form: step 1 → 2
[2026-05-06 23:05:05] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:05:05] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:05:06] [PUB] form: step 2 → 3
[2026-05-06 23:05:08] [PUB] captured certify: phone=180****0612
[2026-05-06 23:05:08] [PUB] captured contract_package: id=7636794796325881919
[2026-05-06 23:05:08] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:09] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:09] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:11] [PUB] captured signing contract: id=7636794796325914687
[2026-05-06 23:05:11] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:05:12] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:12] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:15] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:16] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:16] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:19] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:19] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:22] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:23] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:23] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:26] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:27] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:28] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:29] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:29] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:32] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:32] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:34] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:34] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:34] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:37] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:38] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:39] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:40] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:40] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:42] [PUB job=53] phase -> letsign_init
[2026-05-06 23:05:42] [PUB] human pause 3.5s
[2026-05-06 23:05:43] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:43] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:44] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:45] [PUB] looking for letsign iframe...
[2026-05-06 23:05:45] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:05:45] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:45] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:47] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:05:48] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:48] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:05:53] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:05:53] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:05:56] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:05:56] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:06:04] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:06:05] [PUB job=53] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:06:05] [PUB job=56] waiting for account 2 lock ...
[2026-05-06 23:06:05] [PUB job=54] ==== START issue_id=7635686911553801000 ====
[2026-05-06 23:06:06] [PUB job=54] phase -> open
[2026-05-06 23:06:06] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635686911553801000
[2026-05-06 23:06:11] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:06:11] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:06:12] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:06:13] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:06:13] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:06:14] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:06:14] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:06:16] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:06:16] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:06:23] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:06:23] [PUB job=54] phase -> artist
[2026-05-06 23:06:23] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:06:23] [PUB job=54] phase -> metadata
[2026-05-06 23:06:23] [PUB] human pause 3.5s
[2026-05-06 23:06:27] [PUB job=54] phase -> contract
[2026-05-06 23:06:27] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:06:30] [PUB] no loading indicator, proceeding
[2026-05-06 23:06:30] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:06:31] [PUB] form: step 1 → 2
[2026-05-06 23:06:35] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:06:35] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:06:36] [PUB] form: step 2 → 3
[2026-05-06 23:06:37] [PUB] captured certify: phone=180****0612
[2026-05-06 23:06:38] [PUB] captured contract_package: id=7636795060705953846
[2026-05-06 23:06:40] [PUB] captured signing contract: id=7636795060705986614
[2026-05-06 23:06:41] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:06:43] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:06:44] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:06:44] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:06:47] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:06:47] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:07:11] [PUB job=54] phase -> letsign_init
[2026-05-06 23:07:11] [PUB] human pause 5.6s
[2026-05-06 23:07:16] [PUB] looking for letsign iframe...
[2026-05-06 23:07:16] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:07:37] [PUB job=54] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:07:37] [PUB job=57] waiting for account 2 lock ...
[2026-05-06 23:07:37] [PUB job=55] ==== START issue_id=7635686839575137024 ====
[2026-05-06 23:07:38] [PUB job=55] phase -> open
[2026-05-06 23:07:38] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635686839575137024
[2026-05-06 23:07:53] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:07:54] [PUB job=55] phase -> artist
[2026-05-06 23:07:54] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:07:54] [PUB job=55] phase -> metadata
[2026-05-06 23:07:54] [PUB] human pause 3.3s
[2026-05-06 23:07:57] [PUB job=55] phase -> contract
[2026-05-06 23:07:57] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:08:00] [PUB] no loading indicator, proceeding
[2026-05-06 23:08:00] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:08:00] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:08:01] [PUB] form: step 1 → 2
[2026-05-06 23:08:01] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:08:01] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:08:04] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:08:04] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:08:05] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:08:05] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:08:06] [PUB] form: step 2 → 3
[2026-05-06 23:08:08] [PUB] captured certify: phone=180****0612
[2026-05-06 23:08:08] [PUB] captured contract_package: id=7636795608007936063
[2026-05-06 23:08:11] [PUB] captured signing contract: id=7636795608007968831
[2026-05-06 23:08:11] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:08:11] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:08:12] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:08:12] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:08:15] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:08:15] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:08:41] [PUB job=55] phase -> letsign_init
[2026-05-06 23:08:41] [PUB] human pause 3.1s
[2026-05-06 23:08:44] [PUB] looking for letsign iframe...
[2026-05-06 23:08:44] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:08:48] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:08:49] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:08:49] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:08:52] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:08:52] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:09:04] [PUB job=55] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:09:05] [PUB job=58] waiting for account 2 lock ...
[2026-05-06 23:09:05] [PUB job=56] ==== START issue_id=7635685741993167616 ====
[2026-05-06 23:09:05] [PUB job=56] phase -> open
[2026-05-06 23:09:05] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635685741993167616
[2026-05-06 23:09:22] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:09:22] [PUB job=56] phase -> artist
[2026-05-06 23:09:22] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:09:22] [PUB job=56] phase -> metadata
[2026-05-06 23:09:22] [PUB] human pause 2.4s
[2026-05-06 23:09:25] [PUB job=56] phase -> contract
[2026-05-06 23:09:25] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:09:28] [PUB] no loading indicator, proceeding
[2026-05-06 23:09:28] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:09:29] [PUB] form: step 1 → 2
[2026-05-06 23:09:33] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:09:33] [PUB] WARN: auth type control not found for '独家授权', using default
[2026-05-06 23:09:33] [PUB] form: step 2 → 3
[2026-05-06 23:09:49] [PUB] form: fixing step 3 validation (无主页链接)
[2026-05-06 23:09:49] [PUB] '有主页链接' dropdown not switched. Triggers seen (5): ['剪辑版', '打西瓜', '打西瓜', '打西瓜', '打西瓜']
[2026-05-06 23:09:50] [PUB] form: submitting (step 3 → contract creation)
[2026-05-06 23:11:20] [PUB job=56] FAILED: PublishError: Contract creation timeout after 90s. certify=NO, pkg_id=NO
[2026-05-06 23:11:20] [PUB job=59] waiting for account 2 lock ...
[2026-05-06 23:11:20] [PUB job=57] ==== START issue_id=7635685624393435944 ====
[2026-05-06 23:11:21] [PUB job=57] phase -> open
[2026-05-06 23:11:21] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635685624393435944
[2026-05-06 23:11:30] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:11:31] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:11:31] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:11:34] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:11:34] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:11:38] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:11:38] [PUB job=57] phase -> artist
[2026-05-06 23:11:38] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:11:38] [PUB job=57] phase -> metadata
[2026-05-06 23:11:38] [PUB] human pause 3.2s
[2026-05-06 23:11:41] [PUB job=57] phase -> contract
[2026-05-06 23:11:41] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:11:44] [PUB] no loading indicator, proceeding
[2026-05-06 23:11:44] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:11:45] [PUB] form: step 1 → 2
[2026-05-06 23:11:50] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:11:50] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:11:51] [PUB] form: step 2 → 3
[2026-05-06 23:11:52] [PUB] captured certify: phone=180****0612
[2026-05-06 23:11:52] [PUB] captured contract_package: id=7636796341461469227
[2026-05-06 23:11:55] [PUB] captured signing contract: id=7636796341461501995
[2026-05-06 23:11:56] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:12:26] [PUB job=57] phase -> letsign_init
[2026-05-06 23:12:26] [PUB] human pause 3.3s
[2026-05-06 23:12:29] [PUB] looking for letsign iframe...
[2026-05-06 23:12:29] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:12:49] [PUB job=57] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:12:49] [PUB job=60] waiting for account 2 lock ...
[2026-05-06 23:12:50] [PUB job=58] ==== START issue_id=7635684594624236303 ====
[2026-05-06 23:12:50] [PUB job=58] phase -> open
[2026-05-06 23:12:50] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635684594624236303
[2026-05-06 23:13:07] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:13:07] [PUB job=58] phase -> artist
[2026-05-06 23:13:07] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:13:07] [PUB job=58] phase -> metadata
[2026-05-06 23:13:07] [PUB] human pause 2.0s
[2026-05-06 23:13:09] [PUB job=58] phase -> contract
[2026-05-06 23:13:09] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:13:12] [PUB] no loading indicator, proceeding
[2026-05-06 23:13:12] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:13:14] [PUB] form: step 1 → 2
[2026-05-06 23:13:18] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:13:18] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:13:19] [PUB] form: step 2 → 3
[2026-05-06 23:13:20] [PUB] captured certify: phone=180****0612
[2026-05-06 23:13:20] [PUB] captured contract_package: id=7636796674907670591
[2026-05-06 23:13:23] [PUB] captured signing contract: id=7636796674907703359
[2026-05-06 23:13:23] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:13:53] [PUB job=58] phase -> letsign_init
[2026-05-06 23:13:53] [PUB] human pause 4.9s
[2026-05-06 23:13:58] [PUB] looking for letsign iframe...
[2026-05-06 23:13:58] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:14:19] [PUB job=58] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-06 23:14:19] [PUB job=59] ==== START issue_id=7635684497782246184 ====
[2026-05-06 23:14:19] [PUB job=59] phase -> open
[2026-05-06 23:14:20] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635684497782246184
[2026-05-06 23:14:27] [PUB job=59] FAILED: TargetClosedError: BrowserContext.storage_state: Target page, context or browser has been closed
[2026-05-06 23:14:27] [PUB job=60] ==== START issue_id=7635687977817426740 ====
[2026-05-06 23:14:28] [PUB job=60] phase -> open
[2026-05-06 23:14:28] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635687977817426740
[2026-05-06 23:14:43] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:14:44] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:14:44] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:14:44] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:14:44] [PUB job=60] phase -> artist
[2026-05-06 23:14:44] [PUB] artist: 打西瓜 id=None
[2026-05-06 23:14:44] [PUB job=60] phase -> metadata
[2026-05-06 23:14:45] [PUB] human pause 4.7s
[2026-05-06 23:14:47] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:14:51] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:14:52] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:14:52] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:14:55] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:14:55] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:16:11] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:16:12] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:16:12] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:16:15] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:16:15] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:16:15] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:16:17] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:16:17] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:16:20] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:16:20] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:16:37] [PUB job=63] ==== START issue_id=7636642631518391094 ====
[2026-05-06 23:16:37] [PUB job=61] waiting for account 1 lock ...
[2026-05-06 23:16:37] [PUB job=62] waiting for account 1 lock ...
[2026-05-06 23:16:38] [PUB job=63] phase -> open
[2026-05-06 23:16:38] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636642631518391094
[2026-05-06 23:16:38] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:16:46] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:16:46] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:16:49] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:16:49] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:16:50] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:16:50] [PUB job=63] phase -> artist
[2026-05-06 23:16:50] [PUB] artist: 0527 id=None
[2026-05-06 23:16:50] [PUB job=63] phase -> metadata
[2026-05-06 23:16:50] [PUB] human pause 4.4s
[2026-05-06 23:16:54] [PUB job=63] phase -> contract
[2026-05-06 23:16:54] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:16:57] [PUB] no loading indicator, proceeding
[2026-05-06 23:16:57] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:16:58] [PUB] form: step 1 → 2
[2026-05-06 23:17:03] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:17:03] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:17:04] [PUB] form: step 2 → 3
[2026-05-06 23:17:05] [PUB] captured certify: phone=132****3383
[2026-05-06 23:17:05] [PUB] captured contract_package: id=7636797752711071787
[2026-05-06 23:17:08] [PUB] captured signing contract: id=7636797752711104555
[2026-05-06 23:17:08] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:17:08] [PUB job=63] phase -> letsign_init
[2026-05-06 23:17:08] [PUB] human pause 3.3s
[2026-05-06 23:17:12] [PUB] looking for letsign iframe...
[2026-05-06 23:17:12] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:17:15] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 23:17:15] [PUB] 意愿认证 modal visible
[2026-05-06 23:17:15] [PUB] human pause 1.5s
[2026-05-06 23:17:16] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 23:17:16] [PUB job=63] phase -> otp_sent
[2026-05-06 23:17:18] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 23:17:18] [PUB job=63] phase -> otp_wait
[2026-05-06 23:17:18] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-06 23:17:28] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-06 23:17:38] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-06 23:17:49] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-06 23:17:59] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-06 23:18:09] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-06 23:18:19] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-06 23:18:29] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-06 23:18:35] [SMS] ignored (no digits): src=unknown body=【短信】恭喜您,该发送通道测试成功,请继续添加转发规则!
[2026-05-06 23:18:39] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-06 23:18:49] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-06 23:18:59] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-06 23:19:09] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-06 23:19:19] [SMS] wait_for_otp TIMEOUT after 120000ms (mask=132****3383)
[2026-05-06 23:19:19] [PUB job=63] FAILED: PublishError: SMS OTP timeout after 120000ms
[2026-05-06 23:19:19] [PUB job=61] ==== START issue_id=7636759708720237331 ====
[2026-05-06 23:19:20] [PUB job=61] phase -> open
[2026-05-06 23:19:20] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636759708720237331
[2026-05-06 23:19:31] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:19:31] [PUB job=61] phase -> artist
[2026-05-06 23:19:31] [PUB] artist: 0527 id=None
[2026-05-06 23:19:31] [PUB job=61] phase -> metadata
[2026-05-06 23:19:31] [PUB] human pause 3.0s
[2026-05-06 23:19:34] [PUB job=61] phase -> contract
[2026-05-06 23:19:34] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:19:37] [PUB] no loading indicator, proceeding
[2026-05-06 23:19:37] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:19:38] [PUB] form: step 1 → 2
[2026-05-06 23:19:42] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:19:42] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:19:43] [PUB] form: step 2 → 3
[2026-05-06 23:19:44] [PUB] captured certify: phone=132****3383
[2026-05-06 23:19:45] [PUB] captured contract_package: id=7636798372092692499
[2026-05-06 23:19:48] [PUB] captured signing contract: id=7636798372092725267
[2026-05-06 23:19:48] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:19:48] [PUB job=61] phase -> letsign_init
[2026-05-06 23:19:48] [PUB] human pause 5.8s
[2026-05-06 23:19:54] [PUB] looking for letsign iframe...
[2026-05-06 23:19:54] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:19:57] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 23:19:57] [PUB] 意愿认证 modal visible
[2026-05-06 23:19:57] [PUB] human pause 1.3s
[2026-05-06 23:19:58] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 23:19:58] [PUB job=61] phase -> otp_sent
[2026-05-06 23:20:00] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 23:20:00] [PUB job=61] phase -> otp_wait
[2026-05-06 23:20:00] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-06 23:20:10] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-06 23:20:20] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-06 23:20:30] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-06 23:20:41] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-06 23:20:51] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-06 23:21:01] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-06 23:21:11] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-06 23:21:21] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-06 23:21:31] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-06 23:21:41] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-06 23:21:51] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-06 23:22:01] [SMS] wait_for_otp TIMEOUT after 120000ms (mask=132****3383)
[2026-05-06 23:22:01] [PUB job=61] FAILED: PublishError: SMS OTP timeout after 120000ms
[2026-05-06 23:22:01] [PUB job=62] ==== START issue_id=7636755086429096710 ====
[2026-05-06 23:22:02] [PUB job=62] phase -> open
[2026-05-06 23:22:02] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636755086429096710
[2026-05-06 23:22:13] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:22:13] [PUB job=62] phase -> artist
[2026-05-06 23:22:13] [PUB] artist: 0527 id=None
[2026-05-06 23:22:13] [PUB job=62] phase -> metadata
[2026-05-06 23:22:13] [PUB] human pause 2.5s
[2026-05-06 23:22:16] [PUB job=62] phase -> contract
[2026-05-06 23:22:16] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:22:19] [PUB] no loading indicator, proceeding
[2026-05-06 23:22:19] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:22:20] [PUB] form: step 1 → 2
[2026-05-06 23:22:24] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:22:25] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:22:26] [PUB] form: step 2 → 3
[2026-05-06 23:22:27] [PUB] captured certify: phone=132****3383
[2026-05-06 23:22:28] [PUB] captured contract_package: id=7636799260617001001
[2026-05-06 23:22:32] [PUB] captured signing contract: id=7636799260617033769
[2026-05-06 23:22:32] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:22:32] [PUB job=62] phase -> letsign_init
[2026-05-06 23:22:32] [PUB] human pause 4.1s
[2026-05-06 23:22:36] [PUB] looking for letsign iframe...
[2026-05-06 23:22:36] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:22:39] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 23:22:39] [PUB] 意愿认证 modal visible
[2026-05-06 23:22:39] [PUB] human pause 0.6s
[2026-05-06 23:22:40] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 23:22:40] [PUB job=62] phase -> otp_sent
[2026-05-06 23:22:42] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 23:22:42] [PUB job=62] phase -> otp_wait
[2026-05-06 23:22:42] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-06 23:22:52] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-06 23:23:02] [SMS] wait_for_otp polling... 99s remaining (mask=132****3383)
[2026-05-06 23:23:12] [SMS] wait_for_otp polling... 89s remaining (mask=132****3383)
[2026-05-06 23:23:22] [SMS] wait_for_otp polling... 79s remaining (mask=132****3383)
[2026-05-06 23:23:32] [SMS] wait_for_otp polling... 69s remaining (mask=132****3383)
[2026-05-06 23:23:43] [SMS] wait_for_otp polling... 59s remaining (mask=132****3383)
[2026-05-06 23:23:53] [SMS] wait_for_otp polling... 49s remaining (mask=132****3383)
[2026-05-06 23:24:03] [SMS] wait_for_otp polling... 39s remaining (mask=132****3383)
[2026-05-06 23:24:13] [SMS] wait_for_otp polling... 29s remaining (mask=132****3383)
[2026-05-06 23:24:23] [SMS] wait_for_otp polling... 19s remaining (mask=132****3383)
[2026-05-06 23:24:33] [SMS] wait_for_otp polling... 9s remaining (mask=132****3383)
[2026-05-06 23:24:43] [SMS] wait_for_otp TIMEOUT after 120000ms (mask=132****3383)
[2026-05-06 23:24:43] [PUB job=62] FAILED: PublishError: SMS OTP timeout after 120000ms
[2026-05-06 23:31:38] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:31:40] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:31:40] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:31:43] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:31:43] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:32:02] [PUB job=65] ==== START issue_id=7636755086429096710 ====
[2026-05-06 23:32:02] [PUB job=66] waiting for account 1 lock ...
[2026-05-06 23:32:02] [PUB job=64] waiting for account 1 lock ...
[2026-05-06 23:32:04] Open studio page: https://music.douyin.com/studio
[2026-05-06 23:32:04] [PUB job=65] phase -> open
[2026-05-06 23:32:04] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636755086429096710
[2026-05-06 23:32:13] Current URL after open: https://music.douyin.com/studio
[2026-05-06 23:32:13] open_studio: current URL: https://music.douyin.com/studio
[2026-05-06 23:32:16] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:32:16] [PUB job=65] phase -> artist
[2026-05-06 23:32:16] [PUB] artist: 0527 id=None
[2026-05-06 23:32:16] [PUB job=65] phase -> metadata
[2026-05-06 23:32:16] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-06 23:32:16] [PUB] human pause 3.1s
[2026-05-06 23:32:18] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-06 23:32:19] [PUB job=65] phase -> contract
[2026-05-06 23:32:19] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:32:23] [PUB] no loading indicator, proceeding
[2026-05-06 23:32:23] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:32:24] [PUB] form: step 1 → 2
[2026-05-06 23:32:28] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:32:28] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:32:29] [PUB] form: step 2 → 3
[2026-05-06 23:32:32] [PUB] captured certify: phone=132****3383
[2026-05-06 23:32:32] [PUB] captured contract_package: id=7636801722996262955
[2026-05-06 23:32:36] [PUB] captured signing contract: id=7636801722996295723
[2026-05-06 23:32:36] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:32:36] [PUB job=65] phase -> letsign_init
[2026-05-06 23:32:36] [PUB] human pause 4.8s
[2026-05-06 23:32:41] [PUB] looking for letsign iframe...
[2026-05-06 23:32:41] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:32:44] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 23:32:44] [PUB] 意愿认证 modal visible
[2026-05-06 23:32:44] [PUB] human pause 1.3s
[2026-05-06 23:32:46] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 23:32:46] [PUB job=65] phase -> otp_sent
[2026-05-06 23:32:48] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 23:32:48] [PUB job=65] phase -> otp_wait
[2026-05-06 23:32:48] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-06 23:32:57] [SMS] received id=21 code=079231 phone=10684465130011163554 src=unknown
[2026-05-06 23:32:58] [SMS] wait_for_otp matched: id=21 code=079231
[2026-05-06 23:32:58] [PUB] received OTP code=079231 (sms_id=21)
[2026-05-06 23:32:58] [PUB job=65] phase -> verify
[2026-05-06 23:32:58] [PUB] human pause 2.5s
[2026-05-06 23:33:00] [PUB] filling OTP code=079231 into iframe input...
[2026-05-06 23:33:00] [PUB] human pause 1.4s
[2026-05-06 23:33:02] [PUB] clicking confirm in iframe...
[2026-05-06 23:33:02] [PUB] clicked '确定' in iframe
[2026-05-06 23:33:02] [SMS] consumed id=21 by job=65
[2026-05-06 23:33:02] [PUB job=65] phase -> contract_sync
[2026-05-06 23:33:02] [PUB] waiting for page to transition after signing...
[2026-05-06 23:33:16] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 23:33:19] [PUB] page shows review/completion text — publish done!
[2026-05-06 23:33:19] [PUB job=65] phase -> submit
[2026-05-06 23:33:19] [PUB] human pause 4.9s
[2026-05-06 23:33:29] [PUB] detected completion text on page during submit poll
[2026-05-06 23:33:29] [PUB job=65] ==== DONE albumId=auto (87s) ====
[2026-05-06 23:33:30] [PUB job=66] ==== START issue_id=7636642631518391094 ====
[2026-05-06 23:33:31] [PUB job=66] phase -> open
[2026-05-06 23:33:31] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636642631518391094
[2026-05-06 23:33:41] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:33:42] [PUB job=66] phase -> artist
[2026-05-06 23:33:42] [PUB] artist: 0527 id=None
[2026-05-06 23:33:42] [PUB job=66] phase -> metadata
[2026-05-06 23:33:42] [PUB] human pause 4.1s
[2026-05-06 23:33:46] [PUB job=66] phase -> contract
[2026-05-06 23:33:46] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:33:49] [PUB] no loading indicator, proceeding
[2026-05-06 23:33:49] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:33:50] [PUB] form: step 1 → 2
[2026-05-06 23:33:54] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:33:54] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:33:55] [PUB] form: step 2 → 3
[2026-05-06 23:33:57] [PUB] captured certify: phone=132****3383
[2026-05-06 23:33:57] [PUB] captured contract_package: id=7636802237997746217
[2026-05-06 23:34:00] [PUB] captured signing contract: id=7636802237997778985
[2026-05-06 23:34:00] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:34:00] [PUB job=66] phase -> letsign_init
[2026-05-06 23:34:00] [PUB] human pause 5.1s
[2026-05-06 23:34:05] [PUB] looking for letsign iframe...
[2026-05-06 23:34:05] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:34:08] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 23:34:08] [PUB] 意愿认证 modal visible
[2026-05-06 23:34:08] [PUB] human pause 1.0s
[2026-05-06 23:34:09] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 23:34:09] [PUB job=66] phase -> otp_sent
[2026-05-06 23:34:11] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 23:34:11] [PUB job=66] phase -> otp_wait
[2026-05-06 23:34:11] [SMS] wait_for_otp polling... 120s remaining (mask=132****3383)
[2026-05-06 23:34:22] [SMS] wait_for_otp polling... 109s remaining (mask=132****3383)
[2026-05-06 23:34:22] [SMS] received id=22 code=918345 phone=10690433842000291031 src=unknown
[2026-05-06 23:34:24] [SMS] wait_for_otp matched: id=22 code=918345
[2026-05-06 23:34:24] [PUB] received OTP code=918345 (sms_id=22)
[2026-05-06 23:34:24] [PUB job=66] phase -> verify
[2026-05-06 23:34:24] [PUB] human pause 2.8s
[2026-05-06 23:34:26] [PUB] filling OTP code=918345 into iframe input...
[2026-05-06 23:34:26] [PUB] human pause 1.4s
[2026-05-06 23:34:28] [PUB] clicking confirm in iframe...
[2026-05-06 23:34:28] [PUB] clicked '确定' in iframe
[2026-05-06 23:34:28] [SMS] consumed id=22 by job=66
[2026-05-06 23:34:28] [PUB job=66] phase -> contract_sync
[2026-05-06 23:34:28] [PUB] waiting for page to transition after signing...
[2026-05-06 23:34:30] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 23:34:42] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 23:34:45] [PUB] page shows review/completion text — publish done!
[2026-05-06 23:34:45] [PUB job=66] phase -> submit
[2026-05-06 23:34:45] [PUB] human pause 2.9s
[2026-05-06 23:34:53] [PUB] detected completion text on page during submit poll
[2026-05-06 23:34:53] [PUB job=66] ==== DONE albumId=auto (83s) ====
[2026-05-06 23:34:53] [PUB job=64] ==== START issue_id=7636759708720237331 ====
[2026-05-06 23:34:54] [PUB job=64] phase -> open
[2026-05-06 23:34:54] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7636759708720237331
[2026-05-06 23:35:06] [PUB] page loaded, artist_profile=yes
[2026-05-06 23:35:06] [PUB job=64] phase -> artist
[2026-05-06 23:35:06] [PUB] artist: 0527 id=None
[2026-05-06 23:35:06] [PUB job=64] phase -> metadata
[2026-05-06 23:35:06] [PUB] human pause 4.7s
[2026-05-06 23:35:11] [PUB job=64] phase -> contract
[2026-05-06 23:35:11] [PUB] waiting for audio recognition to finish...
[2026-05-06 23:35:14] [PUB] no loading indicator, proceeding
[2026-05-06 23:35:14] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-06 23:35:15] [PUB] form: step 1 → 2
[2026-05-06 23:35:19] [PUB] selecting auth type: 独家授权(3年)
[2026-05-06 23:35:19] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-06 23:35:20] [PUB] form: step 2 → 3
[2026-05-06 23:35:21] [PUB] captured certify: phone=132****3383
[2026-05-06 23:35:22] [PUB] captured contract_package: id=7636802462401759273
[2026-05-06 23:35:25] [PUB] captured signing contract: id=7636802462401792041
[2026-05-06 23:35:25] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-06 23:35:25] [PUB job=64] phase -> letsign_init
[2026-05-06 23:35:25] [PUB] human pause 3.7s
[2026-05-06 23:35:28] [PUB] looking for letsign iframe...
[2026-05-06 23:35:28] [PUB] found letsign iframe, clicking batch sign...
[2026-05-06 23:35:32] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-06 23:35:32] [PUB] 意愿认证 modal visible
[2026-05-06 23:35:32] [PUB] human pause 1.0s
[2026-05-06 23:35:33] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-06 23:35:34] [PUB job=64] phase -> otp_sent
[2026-05-06 23:35:36] [PUB] SMS send triggered via '获取验证码'
[2026-05-06 23:35:36] [PUB job=64] phase -> otp_wait
[2026-05-06 23:35:36] [SMS] wait_for_otp polling... 119s remaining (mask=132****3383)
[2026-05-06 23:35:41] [SMS] received id=23 code=485599 phone=10684465130011163554 src=unknown
[2026-05-06 23:35:42] [SMS] wait_for_otp matched: id=23 code=485599
[2026-05-06 23:35:42] [PUB] received OTP code=485599 (sms_id=23)
[2026-05-06 23:35:42] [PUB job=64] phase -> verify
[2026-05-06 23:35:42] [PUB] human pause 2.3s
[2026-05-06 23:35:44] [PUB] filling OTP code=485599 into iframe input...
[2026-05-06 23:35:44] [PUB] human pause 1.1s
[2026-05-06 23:35:45] [PUB] clicking confirm in iframe...
[2026-05-06 23:35:45] [PUB] clicked '确定' in iframe
[2026-05-06 23:35:45] [SMS] consumed id=23 by job=64
[2026-05-06 23:35:45] [PUB job=64] phase -> contract_sync
[2026-05-06 23:35:45] [PUB] waiting for page to transition after signing...
[2026-05-06 23:35:47] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-06 23:35:59] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-06 23:36:05] [PUB] page shows review/completion text — publish done!
[2026-05-06 23:36:05] [PUB job=64] phase -> submit
[2026-05-06 23:36:05] [PUB] human pause 4.9s
[2026-05-06 23:36:15] [PUB] detected completion text on page during submit poll
[2026-05-06 23:36:15] [PUB job=64] ==== DONE albumId=auto (82s) ====
[2026-05-07 00:10:12] [BATCH 33] ==================== BATCH START ====================
[2026-05-07 00:10:12] [BATCH 33] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\trending_hotspot.json, model=gemini-3f, total=3, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 00:10:13] Open studio page: https://music.douyin.com/studio
[2026-05-07 00:10:14] Current URL after open: https://music.douyin.com/studio
[2026-05-07 00:10:14] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-07 00:10:14] [P1] --- Lyrics 1/3 ---
[2026-05-07 00:10:14] [P1] Prompt: 你是一位顶级短视频爆款歌词创作人。请为女声创作一首关于「毕业季离别的不舍」的中文歌词,曲风为国风流行,整体能量感为开头炸裂结尾温柔收,情绪基调是孤独共鸣。要求:1)前4句必须出现hook,hook为5...
[2026-05-07 00:10:14] Current URL: https://music.douyin.com/studio
[2026-05-07 00:10:18] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:10:18] Extracted userID from profile API: 104709151573
[2026-05-07 00:10:19] Got conversationId: 7626633213754638378
[2026-05-07 00:10:19] Sending lyrics request: model=gemini-3f, prompt=你是一位顶级短视频爆款歌词创作人。请为女声创作一首关于「毕业季离别的不舍」的中文歌词,曲风为国风流行...
[2026-05-07 00:10:20] Lyrics error response: 针对这个想法我无法为你创作出歌词。换个作词灵感吧~
[2026-05-07 00:10:20] [P1] Lyrics 1/3: FAILED (took 6s)
[2026-05-07 00:10:23] [P1] --- Lyrics 2/3 ---
[2026-05-07 00:10:23] [P1] Prompt: 你是一位顶级短视频爆款歌词创作人。请为男声创作一首关于「母亲节的感恩」的中文歌词,曲风为流行朋克,整体能量感为始终温暖平稳如炉火,情绪基调是期待兴奋。要求:1)前4句必须出现hook,hook为5-7...
[2026-05-07 00:10:23] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:10:26] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:10:27] Extracted userID from profile API: 104709151573
[2026-05-07 00:10:28] Got conversationId: 7626633213754638378
[2026-05-07 00:10:28] Sending lyrics request: model=gemini-3f, prompt=你是一位顶级短视频爆款歌词创作人。请为男声创作一首关于「母亲节的感恩」的中文歌词,曲风为流行朋克,整...
[2026-05-07 00:11:00] Lyrics received: 687 chars
[2026-05-07 00:11:00] [P1] Lyrics 2/3: OK (took 37s)
[2026-05-07 00:11:03] [P1] --- Lyrics 3/3 ---
[2026-05-07 00:11:03] [P1] Prompt: 你是一位顶级短视频爆款歌词创作人。请为男女对唱创作一首关于「世界杯看球的热血激情」的中文歌词,曲风为国风流行,整体能量感为循序渐进层层递进,情绪基调是感动催泪。要求:1)前4句必须出现hook,hoo...
[2026-05-07 00:11:03] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:11:06] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:11:07] Extracted userID from profile API: 104709151573
[2026-05-07 00:11:08] Got conversationId: 7626633213754638378
[2026-05-07 00:11:08] Sending lyrics request: model=gemini-3f, prompt=你是一位顶级短视频爆款歌词创作人。请为男女对唱创作一首关于「世界杯看球的热血激情」的中文歌词,曲风为...
[2026-05-07 00:11:09] Lyrics error response: 针对这个想法我无法为你创作出歌词。换个作词灵感吧~
[2026-05-07 00:11:09] [P1] Lyrics 3/3: FAILED (took 6s)
[2026-05-07 00:11:09] [P1] ========== PHASE 1 DONE: 1 ok, 2 failed, total time=55s ==========
[2026-05-07 00:11:09] [BATCH 33] Transitioning to Phase 2: compose + export...
[2026-05-07 00:11:09] [BATCH 33] Navigating from lyrics page to studio page...
[2026-05-07 00:11:09] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:11:16] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 00:11:16] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 00:11:16] [BATCH 33] Studio page ready, starting composition pipeline
[2026-05-07 00:11:16] [P2] ========== PHASE 2 START: compose+export for batch 33 ==========
[2026-05-07 00:11:16] [P2] Found 1 completed lyrics to compose (model=7)
[2026-05-07 00:11:16] can_create: True (used=0/2, total=136/1000)
[2026-05-07 00:11:16] [P2] Quota check: can=True, used=0/2, total=136/1000
[2026-05-07 00:11:16] [P2] --- Song 1/1: '换你花' (lyrics_id=68) ---
[2026-05-07 00:11:16] [P2] Style desc: 一首融合了流行朋克能量与Funk律动的中文歌曲。以强劲抢耳的Disco贝斯线贯穿始终,搭配节奏感十足的Funk吉他Riff,营造出期待而兴奋的氛围。鼓点采用流行...
[2026-05-07 00:11:16] [P2] Lyrics length: 496 chars, first line: [intro]
[2026-05-07 00:11:16] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 00:11:16] create_advanced_task: model=7, prompt=一首融合了流行朋克能量与Funk律动的中文歌曲。以强劲抢耳的Disco贝斯线贯穿始终,搭配节奏感十足的Funk吉他Rif..., lyrics=496 chars
[2026-05-07 00:11:16] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636811800130112262', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:11:16] create_advanced_task: ok=True, TaskID=7636811800130112262, errCode=0
[2026-05-07 00:11:16] [P2] Step 1 result: ok=True, task_id=7636811800130112262, error=, took 0.3s
[2026-05-07 00:11:16] [P2] Step 2: Waiting for TaskID=7636811800130112262 to complete...
[2026-05-07 00:11:16] wait_for_task: TaskID=7636811800130112262, expected=2, timeout=480s
[2026-05-07 00:11:27] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 00:11:42] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 00:11:57] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 00:12:12] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 00:12:27] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 00:12:42] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 00:12:58] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 00:13:13] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 00:13:28] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 00:13:43] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 00:13:58] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 00:14:13] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 00:14:29] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 00:14:44] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-07 00:14:59] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-07 00:15:14] wait_for_task: 225s, 0/2 completed (expected=2)
[2026-05-07 00:15:29] wait_for_task: 240s, 0/2 completed (expected=2)
[2026-05-07 00:15:44] wait_for_task: 255s, 2/2 completed (expected=2)
[2026-05-07 00:16:00] wait_for_task: 270s, 2/2 completed (expected=2)
[2026-05-07 00:16:00] wait_for_task: done! 2 works stable after 270s: ['7636811896569744166', '7636811950181845794']
[2026-05-07 00:16:00] [P2] Step 2 done: 2 works generated in 283s, WorkIDs=['7636811896569744166', '7636811950181845794']
[2026-05-07 00:16:00] [P2] Step 3: Exporting WorkID=7636811896569744166 (1/2) title='换你花'...
[2026-05-07 00:16:00] export(7636811896569744166): VID=v03003g10004d7tmib2ljht2ph6fote0, Title=换你花, Duration=222920ms
[2026-05-07 00:16:01] _create_project: ProjectID=7636813156865592105
[2026-05-07 00:16:01] export(7636811896569744166): human pause 7.3s between save-project and export
[2026-05-07 00:16:09] export(7636811896569744166): CreateStudioTask ProjectID=7636813156865592105, VID=v03003g10004d7tmib2ljht2ph6fote0
[2026-05-07 00:16:10] export(7636811896569744166): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636813155729050410', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:16:10] export(7636811896569744166): ok=True, TaskID=7636813155729050410, errCode=0, biz=
[2026-05-07 00:16:10] [P2] Export OK: WorkID=7636811896569744166, TaskID=7636813155729050410, took 10.6s
[2026-05-07 00:16:10] [P2] Human pause 7.2s before next export...
[2026-05-07 00:16:17] [P2] Step 3: Exporting WorkID=7636811950181845794 (2/2) title='换你花'...
[2026-05-07 00:16:18] export(7636811950181845794): VID=v02003g10004d7tmi8iljhtdcg0575d0, Title=换你花, Duration=237600ms
[2026-05-07 00:16:19] _create_project: ProjectID=7636813190568643370
[2026-05-07 00:16:19] export(7636811950181845794): human pause 7.8s between save-project and export
[2026-05-07 00:16:27] export(7636811950181845794): CreateStudioTask ProjectID=7636813190568643370, VID=v02003g10004d7tmi8iljhtdcg0575d0
[2026-05-07 00:16:28] export(7636811950181845794): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636813265368075027', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:16:28] export(7636811950181845794): ok=True, TaskID=7636813265368075027, errCode=0, biz=
[2026-05-07 00:16:28] [P2] Export OK: WorkID=7636811950181845794, TaskID=7636813265368075027, took 10.8s
[2026-05-07 00:16:28] [P2] ========== PHASE 2 DONE: composed=1, exported=2, total time=312s ==========
[2026-05-07 00:16:28] [BATCH 33] ==================== BATCH END (total 376s) ====================
[2026-05-07 00:18:48] [BATCH 34] ==================== BATCH START ====================
[2026-05-07 00:18:48] [BATCH 34] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\family_love.json, model=gemini-3f, total=3, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 00:18:49] Open studio page: https://music.douyin.com/studio
[2026-05-07 00:18:50] Current URL after open: https://music.douyin.com/studio
[2026-05-07 00:18:50] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-07 00:18:50] [P1] --- Lyrics 1/3 ---
[2026-05-07 00:18:50] [P1] Prompt: 你是擅长写中国式亲情金曲的词人。请为男女对唱写一首中文父母亲情主题歌曲。切入点:奶奶包的饺子再也吃不到了。曲风古典跨界流行,节奏65-72 BPM 抒情慢板,整体情绪思念中夹着心酸。核心要求:①Hoo...
[2026-05-07 00:18:50] Current URL: https://music.douyin.com/studio
[2026-05-07 00:18:54] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:18:54] Extracted userID from profile API: 104709151573
[2026-05-07 00:18:55] Got conversationId: 7626633213754638378
[2026-05-07 00:18:55] Sending lyrics request: model=gemini-3f, prompt=你是擅长写中国式亲情金曲的词人。请为男女对唱写一首中文父母亲情主题歌曲。切入点:奶奶包的饺子再也吃不...
[2026-05-07 00:19:24] Lyrics received: 708 chars
[2026-05-07 00:19:24] [P1] Lyrics 1/3: OK (took 34s)
[2026-05-07 00:19:27] [P1] --- Lyrics 2/3 ---
[2026-05-07 00:19:27] [P1] Prompt: 你是擅长写中国式亲情金曲的词人。请为女声写一首中文父母亲情主题歌曲。切入点:深夜爸爸还在等我回家的灯。曲风弦乐抒情,节奏渐进式情绪累积,整体情绪温馨里藏着隐忧。核心要求:①Hook前4行出现,5-7字...
[2026-05-07 00:19:27] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:19:30] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:19:31] Extracted userID from profile API: 104709151573
[2026-05-07 00:19:32] Got conversationId: 7626633213754638378
[2026-05-07 00:19:32] Sending lyrics request: model=gemini-3f, prompt=你是擅长写中国式亲情金曲的词人。请为女声写一首中文父母亲情主题歌曲。切入点:深夜爸爸还在等我回家的灯...
[2026-05-07 00:20:17] Lyrics received: 639 chars
[2026-05-07 00:20:17] [P1] Lyrics 2/3: OK (took 50s)
[2026-05-07 00:20:20] [P1] --- Lyrics 3/3 ---
[2026-05-07 00:20:20] [P1] Prompt: 你是擅长写中国式亲情金曲的词人。请为女声写一首中文父母亲情主题歌曲。切入点:母亲节没回家只能打个视频电话。曲风钢琴民谣,节奏60-68 BPM 极慢叙事,整体情绪想拥抱却隔着距离。核心要求:①Hook...
[2026-05-07 00:20:20] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:20:23] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:20:24] Extracted userID from profile API: 104709151573
[2026-05-07 00:20:25] Got conversationId: 7626633213754638378
[2026-05-07 00:20:25] Sending lyrics request: model=gemini-3f, prompt=你是擅长写中国式亲情金曲的词人。请为女声写一首中文父母亲情主题歌曲。切入点:母亲节没回家只能打个视频...
[2026-05-07 00:21:01] Lyrics received: 670 chars
[2026-05-07 00:21:01] [P1] Lyrics 3/3: OK (took 41s)
[2026-05-07 00:21:01] [P1] ========== PHASE 1 DONE: 3 ok, 0 failed, total time=131s ==========
[2026-05-07 00:21:01] [BATCH 34] Transitioning to Phase 2: compose + export...
[2026-05-07 00:21:01] [BATCH 34] Navigating from lyrics page to studio page...
[2026-05-07 00:21:01] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:21:08] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 00:21:08] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 00:21:08] [BATCH 34] Studio page ready, starting composition pipeline
[2026-05-07 00:21:08] [P2] ========== PHASE 2 START: compose+export for batch 34 ==========
[2026-05-07 00:21:08] [P2] Found 3 completed lyrics to compose (model=7)
[2026-05-07 00:21:08] can_create: True (used=0/2, total=140/1000)
[2026-05-07 00:21:08] [P2] Quota check: can=True, used=0/2, total=140/1000
[2026-05-07 00:21:08] [P2] --- Song 1/3: '时间你慢些走吧' (lyrics_id=70) ---
[2026-05-07 00:21:08] [P2] Style desc: 一首史诗感古典跨界流行曲,为男女对唱设计。乐曲以钢琴分解和弦为基底,速度在65-72 BPM的抒情慢板。大提琴的深沉独奏贯穿,诉说悠长的思念。副歌部分,宏大的管...
[2026-05-07 00:21:08] [P2] Lyrics length: 488 chars, first line: [intro]
[2026-05-07 00:21:08] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 00:21:08] create_advanced_task: model=7, prompt=一首史诗感古典跨界流行曲,为男女对唱设计。乐曲以钢琴分解和弦为基底,速度在65-72 BPM的抒情慢板。大提琴的深沉独奏..., lyrics=488 chars
[2026-05-07 00:21:09] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636814278166874921', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:21:09] create_advanced_task: ok=True, TaskID=7636814278166874921, errCode=0
[2026-05-07 00:21:09] [P2] Step 1 result: ok=True, task_id=7636814278166874921, error=, took 0.3s
[2026-05-07 00:21:09] [P2] Step 2: Waiting for TaskID=7636814278166874921 to complete...
[2026-05-07 00:21:09] wait_for_task: TaskID=7636814278166874921, expected=2, timeout=480s
[2026-05-07 00:21:13] [BATCH 35] ==================== BATCH START ====================
[2026-05-07 00:21:14] [BATCH 35] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\folk_acoustic.json, model=gemini-3f, total=3, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 00:21:14] Open studio page: https://music.douyin.com/studio
[2026-05-07 00:21:19] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 00:21:23] Current URL after open: https://music.douyin.com/studio
[2026-05-07 00:21:23] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-07 00:21:23] [P1] --- Lyrics 1/3 ---
[2026-05-07 00:21:23] [P1] Prompt: 你是写新民谣的词人。为女声写一首中文民谣弹唱小品。主题:去年冬天没寄出去的一封信。曲风Anti-Folk,节奏扫弦稳态,氛围深夜独酌感。①Hook前4行出现,5-7字适合木吉他扫弦时跟唱,Hook用昵...
[2026-05-07 00:21:23] Current URL: https://music.douyin.com/studio
[2026-05-07 00:21:26] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:21:26] Extracted userID from profile API: 104709151573
[2026-05-07 00:21:28] Got conversationId: 7626633213754638378
[2026-05-07 00:21:28] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为女声写一首中文民谣弹唱小品。主题:去年冬天没寄出去的一封信。曲风Anti-Fo...
[2026-05-07 00:21:34] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 00:21:49] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 00:22:04] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 00:22:05] Lyrics received: 591 chars
[2026-05-07 00:22:05] [P1] Lyrics 1/3: OK (took 43s)
[2026-05-07 00:22:08] [P1] --- Lyrics 2/3 ---
[2026-05-07 00:22:08] [P1] Prompt: 你是写新民谣的词人。为男声写一首中文民谣弹唱小品。主题:小区里那个总在长椅上下棋的大爷。曲风Country Folk,节奏BPM 95-105 轻快,氛围怅然若失。①Hook前4行出现,5-7字适合木...
[2026-05-07 00:22:08] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:22:11] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:22:12] Extracted userID from profile API: 104709151573
[2026-05-07 00:22:13] Got conversationId: 7626633213754638378
[2026-05-07 00:22:13] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为男声写一首中文民谣弹唱小品。主题:小区里那个总在长椅上下棋的大爷。曲风Coun...
[2026-05-07 00:22:19] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 00:22:34] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 00:22:44] Lyrics received: 623 chars
[2026-05-07 00:22:44] [P1] Lyrics 2/3: OK (took 35s)
[2026-05-07 00:22:47] [P1] --- Lyrics 3/3 ---
[2026-05-07 00:22:47] [P1] Prompt: 你是写新民谣的词人。为男女对唱写一首中文民谣弹唱小品。主题:深夜末班地铁的最后一节车厢。曲风Indie Folk,节奏扫弦稳态,氛围深夜独酌感。①Hook前4行出现,5-7字适合木吉他扫弦时跟唱,Ho...
[2026-05-07 00:22:47] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:22:50] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 00:22:50] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:22:50] Extracted userID from profile API: 104709151573
[2026-05-07 00:22:51] Got conversationId: 7626633213754638378
[2026-05-07 00:22:51] Sending lyrics request: model=gemini-3f, prompt=你是写新民谣的词人。为男女对唱写一首中文民谣弹唱小品。主题:深夜末班地铁的最后一节车厢。曲风Indi...
[2026-05-07 00:22:53] Lyrics error response: 针对这个想法我无法为你创作出歌词。换个作词灵感吧~
[2026-05-07 00:22:53] [P1] Lyrics 3/3: FAILED (took 7s)
[2026-05-07 00:22:53] [P1] ========== PHASE 1 DONE: 2 ok, 1 failed, total time=91s ==========
[2026-05-07 00:22:53] [BATCH 35] Transitioning to Phase 2: compose + export...
[2026-05-07 00:22:53] [BATCH 35] Navigating from lyrics page to studio page...
[2026-05-07 00:22:53] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 00:23:01] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 00:23:01] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 00:23:01] [BATCH 35] Studio page ready, starting composition pipeline
[2026-05-07 00:23:01] [P2] ========== PHASE 2 START: compose+export for batch 35 ==========
[2026-05-07 00:23:01] [P2] Found 2 completed lyrics to compose (model=7)
[2026-05-07 00:23:01] can_create: True (used=1/2, total=142/1000)
[2026-05-07 00:23:01] [P2] Quota check: can=True, used=1/2, total=142/1000
[2026-05-07 00:23:01] [P2] --- Song 1/2: '巷口的先生' (lyrics_id=73) ---
[2026-05-07 00:23:01] [P2] Style desc: 一首中文反民谣(Anti-Folk)弹唱作品,为温柔细腻、如同耳语的女性嗓音打造。音乐以一把民谣吉他稳定的分解和弦与扫弦为核心,配上脚踏鼓提供的极简、稳态的“咚...
[2026-05-07 00:23:01] [P2] Lyrics length: 361 chars, first line: [intro]
[2026-05-07 00:23:01] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 00:23:01] create_advanced_task: model=7, prompt=一首中文反民谣(Anti-Folk)弹唱作品,为温柔细腻、如同耳语的女性嗓音打造。音乐以一把民谣吉他稳定的分解和弦与扫弦..., lyrics=361 chars
[2026-05-07 00:23:02] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636814908159675179', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:23:02] create_advanced_task: ok=True, TaskID=7636814908159675179, errCode=0
[2026-05-07 00:23:02] [P2] Step 1 result: ok=True, task_id=7636814908159675179, error=, took 0.3s
[2026-05-07 00:23:02] [P2] Step 2: Waiting for TaskID=7636814908159675179 to complete...
[2026-05-07 00:23:02] wait_for_task: TaskID=7636814908159675179, expected=2, timeout=480s
[2026-05-07 00:23:05] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 00:23:12] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 00:23:20] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 00:23:27] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 00:23:35] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 00:23:42] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 00:23:50] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 00:23:57] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 00:24:05] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 00:24:12] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 00:24:20] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 00:24:27] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 00:24:35] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-07 00:24:42] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 00:24:51] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-07 00:24:58] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 00:25:06] wait_for_task: 225s, 0/2 completed (expected=2)
[2026-05-07 00:25:13] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 00:25:21] wait_for_task: 240s, 0/2 completed (expected=2)
[2026-05-07 00:25:28] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 00:25:36] wait_for_task: 255s, 2/2 completed (expected=2)
[2026-05-07 00:25:43] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 00:25:51] wait_for_task: 270s, 2/2 completed (expected=2)
[2026-05-07 00:25:51] wait_for_task: done! 2 works stable after 270s: ['7636814373582801683', '7636814462868638464']
[2026-05-07 00:25:51] [P2] Step 2 done: 2 works generated in 283s, WorkIDs=['7636814373582801683', '7636814462868638464']
[2026-05-07 00:25:51] [P2] Step 3: Exporting WorkID=7636814373582801683 (1/2) title='时间你慢些走吧'...
[2026-05-07 00:25:52] export(7636814373582801683): VID=v03003g10004d7tmmsqljht64jkcc1o0, Title=时间你慢些走吧, Duration=257880ms
[2026-05-07 00:25:52] _create_project: ProjectID=7636815726308789035
[2026-05-07 00:25:52] export(7636814373582801683): human pause 11.0s between save-project and export
[2026-05-07 00:25:58] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 00:26:03] export(7636814373582801683): CreateStudioTask ProjectID=7636815726308789035, VID=v03003g10004d7tmmsqljht64jkcc1o0
[2026-05-07 00:26:03] export(7636814373582801683): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636815724429904659', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:26:03] export(7636814373582801683): ok=True, TaskID=7636815724429904659, errCode=0, biz=
[2026-05-07 00:26:03] [P2] Export OK: WorkID=7636814373582801683, TaskID=7636815724429904659, took 12.2s
[2026-05-07 00:26:03] [P2] Human pause 8.4s before next export...
[2026-05-07 00:26:12] [P2] Step 3: Exporting WorkID=7636814462868638464 (2/2) title='时间你慢些走吧'...
[2026-05-07 00:26:12] export(7636814462868638464): VID=v02003g10004d7tmms2ljhtf5j3m6kq0, Title=时间你慢些走吧, Duration=244160ms
[2026-05-07 00:26:13] _create_project: ProjectID=7636815774501587748
[2026-05-07 00:26:13] export(7636814462868638464): human pause 8.8s between save-project and export
[2026-05-07 00:26:13] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 00:26:22] export(7636814462868638464): CreateStudioTask ProjectID=7636815774501587748, VID=v02003g10004d7tmms2ljhtf5j3m6kq0
[2026-05-07 00:26:22] export(7636814462868638464): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636815690951035691', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:26:22] export(7636814462868638464): ok=True, TaskID=7636815690951035691, errCode=0, biz=
[2026-05-07 00:26:22] [P2] Export OK: WorkID=7636814462868638464, TaskID=7636815690951035691, took 9.9s
[2026-05-07 00:26:22] [P2] Waiting 5s before next composition...
[2026-05-07 00:26:27] [P2] --- Song 2/3: '那盏灯还亮着' (lyrics_id=71) ---
[2026-05-07 00:26:27] [P2] Style desc: 一首极简稀疏的弦乐抒情曲,为清亮通透、带有少年感的女声量身定制。全曲以钢琴的温柔和弦与大提琴的深情对话为主轴,仅用非常轻柔的鼓点在副歌处铺垫节奏。编排密度极低,...
[2026-05-07 00:26:27] [P2] Lyrics length: 439 chars, first line: [intro]
[2026-05-07 00:26:27] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 00:26:27] create_advanced_task: model=7, prompt=一首极简稀疏的弦乐抒情曲,为清亮通透、带有少年感的女声量身定制。全曲以钢琴的温柔和弦与大提琴的深情对话为主轴,仅用非常轻..., lyrics=439 chars
[2026-05-07 00:26:27] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636815858116610852', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:26:27] create_advanced_task: ok=True, TaskID=7636815858116610852, errCode=0
[2026-05-07 00:26:27] [P2] Step 1 result: ok=True, task_id=7636815858116610852, error=, took 0.4s
[2026-05-07 00:26:27] [P2] Step 2: Waiting for TaskID=7636815858116610852 to complete...
[2026-05-07 00:26:27] wait_for_task: TaskID=7636815858116610852, expected=2, timeout=480s
[2026-05-07 00:26:28] wait_for_task: 195s, 2/2 completed (expected=2)
[2026-05-07 00:26:37] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 00:26:43] wait_for_task: 210s, 2/2 completed (expected=2)
[2026-05-07 00:26:43] wait_for_task: done! 2 works stable after 210s: ['7636814886701910794', '7636814899984812841']
[2026-05-07 00:26:43] [P2] Step 2 done: 2 works generated in 222s, WorkIDs=['7636814886701910794', '7636814899984812841']
[2026-05-07 00:26:43] [P2] Step 3: Exporting WorkID=7636814886701910794 (1/2) title='巷口的先生'...
[2026-05-07 00:26:44] export(7636814886701910794): VID=v02003g10004d7tmnc2ljhtephtde99g, Title=巷口的先生, Duration=153200ms
[2026-05-07 00:26:44] _create_project: ProjectID=7636815840800836395
[2026-05-07 00:26:44] export(7636814886701910794): human pause 13.8s between save-project and export
[2026-05-07 00:26:53] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 00:26:58] export(7636814886701910794): CreateStudioTask ProjectID=7636815840800836395, VID=v02003g10004d7tmnc2ljhtephtde99g
[2026-05-07 00:26:58] export(7636814886701910794): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636815912712129343', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:26:59] export(7636814886701910794): ok=True, TaskID=7636815912712129343, errCode=0, biz=
[2026-05-07 00:26:59] [P2] Export OK: WorkID=7636814886701910794, TaskID=7636815912712129343, took 15.0s
[2026-05-07 00:26:59] [P2] Human pause 10.7s before next export...
[2026-05-07 00:27:08] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 00:27:09] [P2] Step 3: Exporting WorkID=7636814899984812841 (2/2) title='巷口的先生'...
[2026-05-07 00:27:10] export(7636814899984812841): VID=v02003g10004d7tmnbiljht0riv9bka0, Title=巷口的先生, Duration=144720ms
[2026-05-07 00:27:10] _create_project: ProjectID=7636815971029814079
[2026-05-07 00:27:10] export(7636814899984812841): human pause 9.9s between save-project and export
[2026-05-07 00:27:20] export(7636814899984812841): CreateStudioTask ProjectID=7636815971029814079, VID=v02003g10004d7tmnbiljht0riv9bka0
[2026-05-07 00:27:20] export(7636814899984812841): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636816007478119231', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:27:20] export(7636814899984812841): ok=True, TaskID=7636816007478119231, errCode=0, biz=
[2026-05-07 00:27:20] [P2] Export OK: WorkID=7636814899984812841, TaskID=7636816007478119231, took 11.1s
[2026-05-07 00:27:20] [P2] Waiting 5s before next composition...
[2026-05-07 00:27:23] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 00:27:25] [P2] --- Song 2/2: '长椅上的将军' (lyrics_id=74) ---
[2026-05-07 00:27:25] [P2] Style desc: 一首中文乡村民谣,但编曲具备史诗般的层次感。以民谣吉他明快的扫弦(BPM 95-105)与曼陀林的轻快riff为骨架,并用三角铁进行规律的点缀。乐曲从第二段主歌...
[2026-05-07 00:27:25] [P2] Lyrics length: 361 chars, first line: [intro]
[2026-05-07 00:27:25] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 00:27:25] create_advanced_task: model=7, prompt=一首中文乡村民谣,但编曲具备史诗般的层次感。以民谣吉他明快的扫弦(BPM 95-105)与曼陀林的轻快riff为骨架,并..., lyrics=361 chars
[2026-05-07 00:27:26] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636816008921254710', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:27:26] create_advanced_task: ok=True, TaskID=7636816008921254710, errCode=0
[2026-05-07 00:27:26] [P2] Step 1 result: ok=True, task_id=7636816008921254710, error=, took 0.3s
[2026-05-07 00:27:26] [P2] Step 2: Waiting for TaskID=7636816008921254710 to complete...
[2026-05-07 00:27:26] wait_for_task: TaskID=7636816008921254710, expected=2, timeout=480s
[2026-05-07 00:27:36] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 00:27:38] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 00:27:51] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 00:27:53] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 00:28:06] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 00:28:08] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 00:28:21] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 00:28:23] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 00:28:36] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 00:28:39] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 00:28:52] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 00:28:54] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 00:29:07] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 00:29:09] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 00:29:22] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 00:29:24] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 00:29:37] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 00:29:39] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 00:29:52] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 00:29:54] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-07 00:30:07] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 00:30:10] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-07 00:30:23] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 00:30:25] wait_for_task: 225s, 2/2 completed (expected=2)
[2026-05-07 00:30:38] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 00:30:40] wait_for_task: 240s, 2/2 completed (expected=2)
[2026-05-07 00:30:40] wait_for_task: done! 2 works stable after 240s: ['7636815868835466027', '7636815855569177396']
[2026-05-07 00:30:40] [P2] Step 2 done: 2 works generated in 253s, WorkIDs=['7636815868835466027', '7636815855569177396']
[2026-05-07 00:30:40] [P2] Step 3: Exporting WorkID=7636815868835466027 (1/2) title='那盏灯还亮着'...
[2026-05-07 00:30:40] export(7636815868835466027): VID=v02003g10004d7tmp7iljhtesn9pf3dg, Title=那盏灯还亮着, Duration=204760ms
[2026-05-07 00:30:41] _create_project: ProjectID=7636816822557510443
[2026-05-07 00:30:41] export(7636815868835466027): human pause 13.8s between save-project and export
[2026-05-07 00:30:53] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-07 00:30:55] export(7636815868835466027): CreateStudioTask ProjectID=7636816822557510443, VID=v02003g10004d7tmp7iljhtesn9pf3dg
[2026-05-07 00:30:55] export(7636815868835466027): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636816892212251446', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:30:55] export(7636815868835466027): ok=True, TaskID=7636816892212251446, errCode=0, biz=
[2026-05-07 00:30:55] [P2] Export OK: WorkID=7636815868835466027, TaskID=7636816892212251446, took 14.9s
[2026-05-07 00:30:55] [P2] Human pause 7.2s before next export...
[2026-05-07 00:31:02] [P2] Step 3: Exporting WorkID=7636815855569177396 (2/2) title='那盏灯还亮着'...
[2026-05-07 00:31:03] export(7636815855569177396): VID=v0d003g10004d7tmp7iljht4ba0lsge0, Title=那盏灯还亮着, Duration=207680ms
[2026-05-07 00:31:03] _create_project: ProjectID=7636817007937407763
[2026-05-07 00:31:03] export(7636815855569177396): human pause 13.5s between save-project and export
[2026-05-07 00:31:08] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-07 00:31:17] export(7636815855569177396): CreateStudioTask ProjectID=7636817007937407763, VID=v0d003g10004d7tmp7iljht4ba0lsge0
[2026-05-07 00:31:17] export(7636815855569177396): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636817006854982436', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:31:17] export(7636815855569177396): ok=True, TaskID=7636817006854982436, errCode=0, biz=
[2026-05-07 00:31:17] [P2] Export OK: WorkID=7636815855569177396, TaskID=7636817006854982436, took 14.7s
[2026-05-07 00:31:17] [P2] Waiting 5s before next composition...
[2026-05-07 00:31:22] [P2] --- Song 3/3: '隔着屏幕说回家' (lyrics_id=72) ---
[2026-05-07 00:31:22] [P2] Style desc: 一首极简叙事的中文民谣,为高亢清亮、直击心脏的女声而作。速度维持在60-68 BPM的极慢板,以一把民谣吉他干净的和弦分解贯穿始终,营造日记般的私密感。悠远孤独...
[2026-05-07 00:31:22] [P2] Lyrics length: 459 chars, first line: [intro]
[2026-05-07 00:31:22] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 00:31:22] create_advanced_task: model=7, prompt=一首极简叙事的中文民谣,为高亢清亮、直击心脏的女声而作。速度维持在60-68 BPM的极慢板,以一把民谣吉他干净的和弦分..., lyrics=459 chars
[2026-05-07 00:31:22] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636817024630573867', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:31:22] create_advanced_task: ok=True, TaskID=7636817024630573867, errCode=0
[2026-05-07 00:31:22] [P2] Step 1 result: ok=True, task_id=7636817024630573867, error=, took 0.4s
[2026-05-07 00:31:22] [P2] Step 2: Waiting for TaskID=7636817024630573867 to complete...
[2026-05-07 00:31:22] wait_for_task: TaskID=7636817024630573867, expected=2, timeout=480s
[2026-05-07 00:31:23] wait_for_task: 225s, 2/2 completed (expected=2)
[2026-05-07 00:31:33] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 00:31:38] wait_for_task: 240s, 2/2 completed (expected=2)
[2026-05-07 00:31:38] wait_for_task: done! 2 works stable after 240s: ['7636816056225958666', '7636816006417386281']
[2026-05-07 00:31:38] [P2] Step 2 done: 2 works generated in 252s, WorkIDs=['7636816056225958666', '7636816006417386281']
[2026-05-07 00:31:38] [P2] Step 3: Exporting WorkID=7636816056225958666 (1/2) title='长椅上的将军'...
[2026-05-07 00:31:39] export(7636816056225958666): VID=v03003g10004d7tmpmaljht0mvhgk25g, Title=长椅上的将军, Duration=197920ms
[2026-05-07 00:31:39] _create_project: ProjectID=7636817110227962630
[2026-05-07 00:31:39] export(7636816056225958666): human pause 7.5s between save-project and export
[2026-05-07 00:31:47] export(7636816056225958666): CreateStudioTask ProjectID=7636817110227962630, VID=v03003g10004d7tmpmaljht0mvhgk25g
[2026-05-07 00:31:47] export(7636816056225958666): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636817127391120169', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:31:47] export(7636816056225958666): ok=True, TaskID=7636817127391120169, errCode=0, biz=
[2026-05-07 00:31:47] [P2] Export OK: WorkID=7636816056225958666, TaskID=7636817127391120169, took 8.7s
[2026-05-07 00:31:47] [P2] Human pause 11.1s before next export...
[2026-05-07 00:31:48] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 00:31:58] [P2] Step 3: Exporting WorkID=7636816006417386281 (2/2) title='长椅上的将军'...
[2026-05-07 00:31:59] export(7636816006417386281): VID=v03003g10004d7tmpliljht9145u7a20, Title=长椅上的将军, Duration=198160ms
[2026-05-07 00:31:59] _create_project: ProjectID=7636817188904569606
[2026-05-07 00:31:59] export(7636816006417386281): human pause 13.9s between save-project and export
[2026-05-07 00:32:03] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 00:32:13] export(7636816006417386281): CreateStudioTask ProjectID=7636817188904569606, VID=v03003g10004d7tmpliljht9145u7a20
[2026-05-07 00:32:13] export(7636816006417386281): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636817188904798982', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 00:32:13] export(7636816006417386281): ok=True, TaskID=7636817188904798982, errCode=0, biz=
[2026-05-07 00:32:13] [P2] Export OK: WorkID=7636816006417386281, TaskID=7636817188904798982, took 15.2s
[2026-05-07 00:32:13] [P2] ========== PHASE 2 DONE: composed=2, exported=4, total time=552s ==========
[2026-05-07 00:32:14] [BATCH 35] ==================== BATCH END (total 660s) ====================
[2026-05-07 00:32:18] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 00:32:33] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 00:32:48] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 00:33:04] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 00:33:19] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 00:33:34] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 00:33:49] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 00:34:04] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 00:34:20] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 00:34:35] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 00:34:50] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-07 00:35:05] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-07 00:35:09] [BATCH 34] EXCEPTION: Exception: BrowserContext.storage_state: Connection closed while reading from the driver
[2026-05-07 00:35:09] [BATCH 34] ==================== BATCH END (total 981s) ====================
[2026-05-07 10:03:52] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:03:53] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:03:53] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:03:54] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:03:56] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:03:56] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:03:56] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:03:56] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:03:59] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:03:59] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:04:05] [PUB job=67] ==== START issue_id=7635687977817426740 ====
[2026-05-07 10:04:06] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:04:06] [PUB job=67] phase -> open
[2026-05-07 10:04:06] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635687977817426740
[2026-05-07 10:04:06] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:04:06] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:04:09] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:04:10] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:04:18] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:04:18] [PUB job=67] phase -> artist
[2026-05-07 10:04:18] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:04:18] [PUB job=67] phase -> metadata
[2026-05-07 10:04:18] [PUB] human pause 4.0s
[2026-05-07 10:04:22] [PUB job=67] phase -> contract
[2026-05-07 10:04:22] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:04:25] [PUB] no loading indicator, proceeding
[2026-05-07 10:04:25] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:04:26] [PUB] form: step 1 → 2
[2026-05-07 10:04:30] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:04:30] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:04:31] [PUB] form: step 2 → 3
[2026-05-07 10:04:33] [PUB] captured certify: phone=180****0612
[2026-05-07 10:04:33] [PUB] captured contract_package: id=7636964772629776390
[2026-05-07 10:04:36] [PUB] captured signing contract: id=7636964772629809158
[2026-05-07 10:04:36] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:05:06] [PUB job=67] phase -> letsign_init
[2026-05-07 10:05:06] [PUB] human pause 3.7s
[2026-05-07 10:05:10] [PUB] looking for letsign iframe...
[2026-05-07 10:05:10] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:05:22] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:05:23] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:05:23] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:05:26] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:05:26] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:05:30] [PUB job=67] FAILED: TimeoutError: Frame.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator("button:has-text(\"签署\")")
[2026-05-07 10:07:57] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:07:58] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:07:58] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:08:01] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:08:01] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:08:01] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:08:02] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:12:54] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:12:56] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:13:05] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:13:05] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:13:06] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:13:06] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:13:08] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:13:08] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:13:09] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:13:09] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:13:17] [PUB job=68] ==== START issue_id=7635687977817426740 ====
[2026-05-07 10:13:19] [PUB job=68] phase -> open
[2026-05-07 10:13:19] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635687977817426740
[2026-05-07 10:13:19] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:13:20] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:13:20] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:13:23] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:13:23] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:13:37] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:13:37] [PUB job=68] phase -> artist
[2026-05-07 10:13:37] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:13:37] [PUB job=68] phase -> metadata
[2026-05-07 10:13:37] [PUB] human pause 2.4s
[2026-05-07 10:13:39] [PUB job=68] phase -> contract
[2026-05-07 10:13:39] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:13:42] [PUB] no loading indicator, proceeding
[2026-05-07 10:13:42] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:13:43] [PUB] form: step 1 → 2
[2026-05-07 10:13:48] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:13:48] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:13:49] [PUB] form: step 2 → 3
[2026-05-07 10:13:50] [PUB] captured certify: phone=180****0612
[2026-05-07 10:13:50] [PUB] captured contract_package: id=7636966855102892068
[2026-05-07 10:13:53] [PUB] captured signing contract: id=7636966855102924836
[2026-05-07 10:13:53] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:13:53] [PUB] dismissed '我知道了' popup
[2026-05-07 10:13:53] [PUB job=68] phase -> letsign_init
[2026-05-07 10:13:53] [PUB] human pause 4.7s
[2026-05-07 10:13:58] [PUB] looking for letsign iframe...
[2026-05-07 10:13:58] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:14:01] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:14:01] [PUB] 意愿认证 modal visible
[2026-05-07 10:14:01] [PUB] human pause 1.5s
[2026-05-07 10:14:02] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:14:02] [PUB job=68] phase -> otp_sent
[2026-05-07 10:14:04] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:14:04] [PUB job=68] phase -> otp_wait
[2026-05-07 10:14:04] [SMS] wait_for_otp polling... 119s remaining (mask=180****0612)
[2026-05-07 10:14:14] [SMS] wait_for_otp polling... 109s remaining (mask=180****0612)
[2026-05-07 10:14:17] [SMS] received id=24 code=083695 phone=None src=ios-shortcut
[2026-05-07 10:14:18] [SMS] wait_for_otp matched: id=24 code=083695
[2026-05-07 10:14:18] [PUB] received OTP code=083695 (sms_id=24)
[2026-05-07 10:14:18] [PUB job=68] phase -> verify
[2026-05-07 10:14:18] [PUB] human pause 1.9s
[2026-05-07 10:14:20] [PUB] filling OTP code=083695 into iframe input...
[2026-05-07 10:14:20] [PUB] human pause 1.2s
[2026-05-07 10:14:21] [PUB] clicking confirm in iframe...
[2026-05-07 10:14:21] [PUB] clicked '确定' in iframe
[2026-05-07 10:14:22] [SMS] consumed id=24 by job=68
[2026-05-07 10:14:22] [PUB job=68] phase -> contract_sync
[2026-05-07 10:14:22] [PUB] waiting for page to transition after signing...
[2026-05-07 10:14:24] [PUB] waiting for page transition... 180s remaining, btns=[]
[2026-05-07 10:14:36] [PUB] waiting for page transition... 167s remaining, btns=[]
[2026-05-07 10:14:39] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:14:39] [PUB job=68] phase -> submit
[2026-05-07 10:14:39] [PUB] human pause 2.3s
[2026-05-07 10:14:46] [PUB] detected completion text on page during submit poll
[2026-05-07 10:14:46] [PUB job=68] ==== DONE albumId=auto (89s) ====
[2026-05-07 10:15:05] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:15:14] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:15:14] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:15:17] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:15:17] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:15:41] [PUB job=70] waiting for account 2 lock ...
[2026-05-07 10:15:41] [PUB job=71] waiting for account 2 lock ...
[2026-05-07 10:15:41] [PUB job=69] ==== START issue_id=7635689086321330979 ====
[2026-05-07 10:15:42] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:15:42] [PUB job=69] phase -> open
[2026-05-07 10:15:42] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635689086321330979
[2026-05-07 10:15:43] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:15:43] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:15:46] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:15:46] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:16:01] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:16:01] [PUB job=69] phase -> artist
[2026-05-07 10:16:01] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:16:01] [PUB job=69] phase -> metadata
[2026-05-07 10:16:04] [PUB] human pause 4.4s
[2026-05-07 10:16:09] [PUB job=69] phase -> contract
[2026-05-07 10:16:09] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:16:12] [PUB] no loading indicator, proceeding
[2026-05-07 10:16:12] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:16:13] [PUB] form: step 1 → 2
[2026-05-07 10:16:17] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:16:18] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:16:19] [PUB] form: step 2 → 3
[2026-05-07 10:16:21] [PUB] captured certify: phone=180****0612
[2026-05-07 10:16:22] [PUB] captured contract_package: id=7636967867016022057
[2026-05-07 10:16:25] [PUB] captured signing contract: id=7636967867016054825
[2026-05-07 10:16:26] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:16:57] [PUB job=69] phase -> letsign_init
[2026-05-07 10:16:57] [PUB] human pause 5.1s
[2026-05-07 10:17:02] [PUB] looking for letsign iframe...
[2026-05-07 10:17:02] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:17:05] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:17:05] [PUB] 意愿认证 modal visible
[2026-05-07 10:17:05] [PUB] human pause 0.6s
[2026-05-07 10:17:06] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:17:06] [PUB job=69] phase -> otp_sent
[2026-05-07 10:17:08] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:17:08] [PUB job=69] phase -> otp_wait
[2026-05-07 10:17:08] [SMS] wait_for_otp polling... 119s remaining (mask=180****0612)
[2026-05-07 10:17:18] [SMS] received id=25 code=575134 phone=None src=ios-shortcut
[2026-05-07 10:17:18] [SMS] wait_for_otp matched: id=25 code=575134
[2026-05-07 10:17:18] [PUB] received OTP code=575134 (sms_id=25)
[2026-05-07 10:17:18] [PUB job=69] phase -> verify
[2026-05-07 10:17:18] [PUB] human pause 1.4s
[2026-05-07 10:17:20] [PUB] filling OTP code=575134 into iframe input...
[2026-05-07 10:17:20] [PUB] human pause 1.8s
[2026-05-07 10:17:22] [PUB] clicking confirm in iframe...
[2026-05-07 10:17:22] [PUB] clicked '确定' in iframe
[2026-05-07 10:17:22] [SMS] consumed id=25 by job=69
[2026-05-07 10:17:22] [PUB job=69] phase -> contract_sync
[2026-05-07 10:17:22] [PUB] waiting for page to transition after signing...
[2026-05-07 10:17:36] [PUB] dismissed '我知道了' popup
[2026-05-07 10:17:38] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:17:38] [PUB job=69] phase -> submit
[2026-05-07 10:17:38] [PUB] human pause 4.7s
[2026-05-07 10:17:47] [PUB] detected completion text on page during submit poll
[2026-05-07 10:17:47] [PUB job=69] ==== DONE albumId=auto (126s) ====
[2026-05-07 10:17:48] [PUB job=72] waiting for account 2 lock ...
[2026-05-07 10:17:48] [PUB job=70] ==== START issue_id=7635688987633453824 ====
[2026-05-07 10:17:49] [PUB job=70] phase -> open
[2026-05-07 10:17:49] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635688987633453824
[2026-05-07 10:18:07] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:18:07] [PUB job=70] phase -> artist
[2026-05-07 10:18:07] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:18:07] [PUB job=70] phase -> metadata
[2026-05-07 10:18:07] [PUB] human pause 3.5s
[2026-05-07 10:18:11] [PUB job=70] phase -> contract
[2026-05-07 10:18:11] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:18:14] [PUB] no loading indicator, proceeding
[2026-05-07 10:18:14] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:18:15] [PUB] form: step 1 → 2
[2026-05-07 10:18:19] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:18:19] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:18:20] [PUB] form: step 2 → 3
[2026-05-07 10:18:21] [PUB] captured certify: phone=180****0612
[2026-05-07 10:18:22] [PUB] captured contract_package: id=7636968001853753385
[2026-05-07 10:18:25] [PUB] captured signing contract: id=7636968001853786153
[2026-05-07 10:18:25] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:18:55] [PUB job=70] phase -> letsign_init
[2026-05-07 10:18:55] [PUB] human pause 5.3s
[2026-05-07 10:19:00] [PUB] looking for letsign iframe...
[2026-05-07 10:19:00] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:19:03] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:19:03] [PUB] 意愿认证 modal visible
[2026-05-07 10:19:03] [PUB] human pause 1.3s
[2026-05-07 10:19:05] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:19:05] [PUB job=70] phase -> otp_sent
[2026-05-07 10:19:07] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:19:07] [PUB job=70] phase -> otp_wait
[2026-05-07 10:19:07] [SMS] wait_for_otp polling... 119s remaining (mask=180****0612)
[2026-05-07 10:19:13] [SMS] received id=26 code=150802 phone=None src=ios-shortcut
[2026-05-07 10:19:15] [SMS] wait_for_otp matched: id=26 code=150802
[2026-05-07 10:19:15] [PUB] received OTP code=150802 (sms_id=26)
[2026-05-07 10:19:15] [PUB job=70] phase -> verify
[2026-05-07 10:19:15] [PUB] human pause 1.6s
[2026-05-07 10:19:16] [PUB] filling OTP code=150802 into iframe input...
[2026-05-07 10:19:16] [PUB] human pause 1.8s
[2026-05-07 10:19:18] [PUB] clicking confirm in iframe...
[2026-05-07 10:19:18] [PUB] clicked '确定' in iframe
[2026-05-07 10:19:18] [SMS] consumed id=26 by job=70
[2026-05-07 10:19:18] [PUB job=70] phase -> contract_sync
[2026-05-07 10:19:18] [PUB] waiting for page to transition after signing...
[2026-05-07 10:19:32] [PUB] dismissed '我知道了' popup
[2026-05-07 10:19:34] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:19:34] [PUB job=70] phase -> submit
[2026-05-07 10:19:34] [PUB] human pause 4.5s
[2026-05-07 10:19:43] [PUB] detected completion text on page during submit poll
[2026-05-07 10:19:44] [PUB job=70] ==== DONE albumId=auto (116s) ====
[2026-05-07 10:19:44] [PUB job=71] ==== START issue_id=7635687920921709327 ====
[2026-05-07 10:19:44] [PUB job=73] waiting for account 2 lock ...
[2026-05-07 10:19:45] [PUB job=71] phase -> open
[2026-05-07 10:19:45] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635687920921709327
[2026-05-07 10:20:03] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:20:03] [PUB job=71] phase -> artist
[2026-05-07 10:20:03] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:20:03] [PUB job=71] phase -> metadata
[2026-05-07 10:20:04] [PUB] human pause 2.7s
[2026-05-07 10:20:06] [PUB job=71] phase -> contract
[2026-05-07 10:20:06] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:20:09] [PUB] no loading indicator, proceeding
[2026-05-07 10:20:09] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:20:10] [PUB] form: step 1 → 2
[2026-05-07 10:20:14] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:20:15] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:20:16] [PUB] form: step 2 → 3
[2026-05-07 10:20:17] [PUB] captured certify: phone=180****0612
[2026-05-07 10:20:17] [PUB] captured contract_package: id=7636968657973839926
[2026-05-07 10:20:22] [PUB] captured signing contract: id=7636968657973872694
[2026-05-07 10:20:22] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:20:52] [PUB job=71] phase -> letsign_init
[2026-05-07 10:20:52] [PUB] human pause 5.2s
[2026-05-07 10:20:57] [PUB] looking for letsign iframe...
[2026-05-07 10:20:57] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:21:01] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:21:01] [PUB] 意愿认证 modal visible
[2026-05-07 10:21:01] [PUB] human pause 1.5s
[2026-05-07 10:21:02] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:21:02] [PUB job=71] phase -> otp_sent
[2026-05-07 10:21:04] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:21:04] [PUB job=71] phase -> otp_wait
[2026-05-07 10:21:04] [SMS] wait_for_otp polling... 119s remaining (mask=180****0612)
[2026-05-07 10:21:14] [SMS] received id=27 code=110946 phone=None src=ios-shortcut
[2026-05-07 10:21:14] [SMS] wait_for_otp matched: id=27 code=110946
[2026-05-07 10:21:14] [PUB] received OTP code=110946 (sms_id=27)
[2026-05-07 10:21:14] [PUB job=71] phase -> verify
[2026-05-07 10:21:14] [PUB] human pause 2.9s
[2026-05-07 10:21:17] [PUB] filling OTP code=110946 into iframe input...
[2026-05-07 10:21:17] [PUB] human pause 1.1s
[2026-05-07 10:21:18] [PUB] clicking confirm in iframe...
[2026-05-07 10:21:18] [PUB] clicked '确定' in iframe
[2026-05-07 10:21:18] [SMS] consumed id=27 by job=71
[2026-05-07 10:21:18] [PUB job=71] phase -> contract_sync
[2026-05-07 10:21:18] [PUB] waiting for page to transition after signing...
[2026-05-07 10:21:37] [PUB] dismissed '我知道了' popup
[2026-05-07 10:21:39] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:21:39] [PUB job=71] phase -> submit
[2026-05-07 10:21:39] [PUB] human pause 2.7s
[2026-05-07 10:21:47] [PUB] detected completion text on page during submit poll
[2026-05-07 10:21:47] [PUB job=71] ==== DONE albumId=auto (123s) ====
[2026-05-07 10:21:47] [PUB job=74] waiting for account 2 lock ...
[2026-05-07 10:21:47] [PUB job=72] ==== START issue_id=7635686839575137024 ====
[2026-05-07 10:21:48] [PUB job=72] phase -> open
[2026-05-07 10:21:48] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635686839575137024
[2026-05-07 10:22:07] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:22:07] [PUB job=72] phase -> artist
[2026-05-07 10:22:07] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:22:07] [PUB job=72] phase -> metadata
[2026-05-07 10:22:07] [PUB] human pause 2.2s
[2026-05-07 10:22:09] [PUB job=72] phase -> contract
[2026-05-07 10:22:09] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:22:12] [PUB] no loading indicator, proceeding
[2026-05-07 10:22:12] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:22:13] [PUB] form: step 1 → 2
[2026-05-07 10:22:17] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:22:17] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:22:18] [PUB] form: step 2 → 3
[2026-05-07 10:22:19] [PUB] captured certify: phone=180****0612
[2026-05-07 10:22:20] [PUB] captured contract_package: id=7636969212431484947
[2026-05-07 10:22:23] [PUB] captured signing contract: id=7636969212431517715
[2026-05-07 10:22:23] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:22:53] [PUB job=72] phase -> letsign_init
[2026-05-07 10:22:53] [PUB] human pause 3.8s
[2026-05-07 10:22:57] [PUB] looking for letsign iframe...
[2026-05-07 10:22:57] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:23:00] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:23:00] [PUB] 意愿认证 modal visible
[2026-05-07 10:23:00] [PUB] human pause 1.4s
[2026-05-07 10:23:01] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:23:01] [PUB job=72] phase -> otp_sent
[2026-05-07 10:23:03] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:23:03] [PUB job=72] phase -> otp_wait
[2026-05-07 10:23:03] [SMS] wait_for_otp polling... 119s remaining (mask=180****0612)
[2026-05-07 10:23:10] [SMS] received id=28 code=073272 phone=None src=ios-shortcut
[2026-05-07 10:23:12] [SMS] wait_for_otp matched: id=28 code=073272
[2026-05-07 10:23:12] [PUB] received OTP code=073272 (sms_id=28)
[2026-05-07 10:23:12] [PUB job=72] phase -> verify
[2026-05-07 10:23:12] [PUB] human pause 1.6s
[2026-05-07 10:23:13] [PUB] filling OTP code=073272 into iframe input...
[2026-05-07 10:23:13] [PUB] human pause 1.8s
[2026-05-07 10:23:15] [PUB] clicking confirm in iframe...
[2026-05-07 10:23:15] [PUB] clicked '确定' in iframe
[2026-05-07 10:23:15] [SMS] consumed id=28 by job=72
[2026-05-07 10:23:15] [PUB job=72] phase -> contract_sync
[2026-05-07 10:23:15] [PUB] waiting for page to transition after signing...
[2026-05-07 10:23:33] [PUB] dismissed '我知道了' popup
[2026-05-07 10:23:35] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:23:35] [PUB job=72] phase -> submit
[2026-05-07 10:23:35] [PUB] human pause 3.0s
[2026-05-07 10:23:43] [PUB] detected completion text on page during submit poll
[2026-05-07 10:23:43] [PUB job=72] ==== DONE albumId=auto (116s) ====
[2026-05-07 10:23:43] [PUB job=75] waiting for account 2 lock ...
[2026-05-07 10:23:43] [PUB job=73] ==== START issue_id=7635685624393435944 ====
[2026-05-07 10:23:44] [PUB job=73] phase -> open
[2026-05-07 10:23:44] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635685624393435944
[2026-05-07 10:24:00] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:24:00] [PUB job=73] phase -> artist
[2026-05-07 10:24:00] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:24:00] [PUB job=73] phase -> metadata
[2026-05-07 10:24:01] [PUB] human pause 4.6s
[2026-05-07 10:24:05] [PUB job=73] phase -> contract
[2026-05-07 10:24:05] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:24:08] [PUB] no loading indicator, proceeding
[2026-05-07 10:24:08] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:24:09] [PUB] form: step 1 → 2
[2026-05-07 10:24:13] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:24:14] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:24:15] [PUB] form: step 2 → 3
[2026-05-07 10:24:16] [PUB] captured certify: phone=180****0612
[2026-05-07 10:24:16] [PUB] captured contract_package: id=7636969273501255723
[2026-05-07 10:24:19] [PUB] captured signing contract: id=7636969273501288491
[2026-05-07 10:24:19] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:24:49] [PUB job=73] phase -> letsign_init
[2026-05-07 10:24:49] [PUB] human pause 4.0s
[2026-05-07 10:24:53] [PUB] looking for letsign iframe...
[2026-05-07 10:24:53] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:24:56] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:24:56] [PUB] 意愿认证 modal visible
[2026-05-07 10:24:56] [PUB] human pause 1.3s
[2026-05-07 10:24:58] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:24:58] [PUB job=73] phase -> otp_sent
[2026-05-07 10:25:00] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:25:00] [PUB job=73] phase -> otp_wait
[2026-05-07 10:25:00] [SMS] wait_for_otp polling... 120s remaining (mask=180****0612)
[2026-05-07 10:25:02] [SMS] received id=29 code=769827 phone=None src=ios-shortcut
[2026-05-07 10:25:04] [SMS] wait_for_otp matched: id=29 code=769827
[2026-05-07 10:25:04] [PUB] received OTP code=769827 (sms_id=29)
[2026-05-07 10:25:04] [PUB job=73] phase -> verify
[2026-05-07 10:25:04] [PUB] human pause 2.0s
[2026-05-07 10:25:06] [PUB] filling OTP code=769827 into iframe input...
[2026-05-07 10:25:06] [PUB] human pause 1.2s
[2026-05-07 10:25:07] [PUB] clicking confirm in iframe...
[2026-05-07 10:25:07] [PUB] clicked '确定' in iframe
[2026-05-07 10:25:07] [SMS] consumed id=29 by job=73
[2026-05-07 10:25:07] [PUB job=73] phase -> contract_sync
[2026-05-07 10:25:07] [PUB] waiting for page to transition after signing...
[2026-05-07 10:25:24] [PUB] dismissed '我知道了' popup
[2026-05-07 10:25:26] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:25:26] [PUB job=73] phase -> submit
[2026-05-07 10:25:26] [PUB] human pause 3.5s
[2026-05-07 10:25:35] [PUB] detected completion text on page during submit poll
[2026-05-07 10:25:35] [PUB job=73] ==== DONE albumId=auto (111s) ====
[2026-05-07 10:25:35] [PUB job=74] ==== START issue_id=7635684594624236303 ====
[2026-05-07 10:25:36] [PUB job=74] phase -> open
[2026-05-07 10:25:36] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635684594624236303
[2026-05-07 10:25:54] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:25:54] [PUB job=74] phase -> artist
[2026-05-07 10:25:54] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:25:54] [PUB job=74] phase -> metadata
[2026-05-07 10:25:55] [PUB] human pause 4.5s
[2026-05-07 10:25:59] [PUB job=74] phase -> contract
[2026-05-07 10:25:59] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:26:02] [PUB] no loading indicator, proceeding
[2026-05-07 10:26:02] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:26:03] [PUB] form: step 1 → 2
[2026-05-07 10:26:07] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:26:07] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:26:08] [PUB] form: step 2 → 3
[2026-05-07 10:26:10] [PUB] captured certify: phone=180****0612
[2026-05-07 10:26:10] [PUB] captured contract_package: id=7636970017268385798
[2026-05-07 10:26:13] [PUB] captured signing contract: id=7636970017268418566
[2026-05-07 10:26:14] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:26:44] [PUB job=74] phase -> letsign_init
[2026-05-07 10:26:44] [PUB] human pause 3.5s
[2026-05-07 10:26:47] [PUB] looking for letsign iframe...
[2026-05-07 10:26:47] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:26:50] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:26:50] [PUB] 意愿认证 modal visible
[2026-05-07 10:26:50] [PUB] human pause 1.0s
[2026-05-07 10:26:51] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:26:51] [PUB job=74] phase -> otp_sent
[2026-05-07 10:26:53] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:26:53] [PUB job=74] phase -> otp_wait
[2026-05-07 10:26:53] [SMS] wait_for_otp polling... 120s remaining (mask=180****0612)
[2026-05-07 10:26:56] [SMS] received id=30 code=637462 phone=None src=ios-shortcut
[2026-05-07 10:26:57] [SMS] wait_for_otp matched: id=30 code=637462
[2026-05-07 10:26:57] [PUB] received OTP code=637462 (sms_id=30)
[2026-05-07 10:26:57] [PUB job=74] phase -> verify
[2026-05-07 10:26:57] [PUB] human pause 2.2s
[2026-05-07 10:27:00] [PUB] filling OTP code=637462 into iframe input...
[2026-05-07 10:27:00] [PUB] human pause 1.4s
[2026-05-07 10:27:01] [PUB] clicking confirm in iframe...
[2026-05-07 10:27:01] [PUB] clicked '确定' in iframe
[2026-05-07 10:27:01] [SMS] consumed id=30 by job=74
[2026-05-07 10:27:01] [PUB job=74] phase -> contract_sync
[2026-05-07 10:27:01] [PUB] waiting for page to transition after signing...
[2026-05-07 10:27:18] [PUB] dismissed '我知道了' popup
[2026-05-07 10:27:20] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:27:20] [PUB job=74] phase -> submit
[2026-05-07 10:27:20] [PUB] human pause 3.1s
[2026-05-07 10:27:28] [PUB] detected completion text on page during submit poll
[2026-05-07 10:27:28] [PUB job=74] ==== DONE albumId=auto (114s) ====
[2026-05-07 10:27:29] [PUB job=75] ==== START issue_id=7635684497782246184 ====
[2026-05-07 10:27:30] [PUB job=75] phase -> open
[2026-05-07 10:27:30] [PUB] navigate -> https://music.douyin.com/console/complete-publish?enter_from=astra&issuedId=7635684497782246184
[2026-05-07 10:27:48] [PUB] page loaded, artist_profile=yes
[2026-05-07 10:27:48] [PUB job=75] phase -> artist
[2026-05-07 10:27:48] [PUB] artist: 打西瓜 id=None
[2026-05-07 10:27:48] [PUB job=75] phase -> metadata
[2026-05-07 10:27:49] [PUB] human pause 3.0s
[2026-05-07 10:27:52] [PUB job=75] phase -> contract
[2026-05-07 10:27:52] [PUB] waiting for audio recognition to finish...
[2026-05-07 10:27:55] [PUB] no loading indicator, proceeding
[2026-05-07 10:27:55] [PUB] recognition wait: no API response, checking if page is ready
[2026-05-07 10:27:56] [PUB] form: step 1 → 2
[2026-05-07 10:28:00] [PUB] selecting auth type: 独家授权(3年)
[2026-05-07 10:28:00] [PUB] auth type selected via U9Wib: text='独家授权(3年)'
[2026-05-07 10:28:01] [PUB] form: step 2 → 3
[2026-05-07 10:28:02] [PUB] captured certify: phone=180****0612
[2026-05-07 10:28:03] [PUB] captured contract_package: id=7636970686142302234
[2026-05-07 10:28:06] [PUB] captured signing contract: id=7636970686142335002
[2026-05-07 10:28:06] [PUB] signing contract captured after step 2 — no step 3 needed (独家授权 fast path)
[2026-05-07 10:28:35] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:28:36] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:28:36] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:28:36] [PUB job=75] phase -> letsign_init
[2026-05-07 10:28:36] [PUB] human pause 4.3s
[2026-05-07 10:28:39] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:28:39] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:28:40] [PUB] looking for letsign iframe...
[2026-05-07 10:28:40] [PUB] found letsign iframe, clicking batch sign...
[2026-05-07 10:28:44] [PUB] batch sign clicked, waiting for 意愿认证 dialog...
[2026-05-07 10:28:44] [PUB] 意愿认证 modal visible
[2026-05-07 10:28:44] [PUB] human pause 1.4s
[2026-05-07 10:28:45] [PUB] clicked '获取验证码' (selector: .ds-captcha-next__form-send)
[2026-05-07 10:28:45] [PUB job=75] phase -> otp_sent
[2026-05-07 10:28:47] [PUB] SMS send triggered via '获取验证码'
[2026-05-07 10:28:47] [PUB job=75] phase -> otp_wait
[2026-05-07 10:28:47] [SMS] wait_for_otp polling... 119s remaining (mask=180****0612)
[2026-05-07 10:28:57] [SMS] received id=31 code=431131 phone=None src=ios-shortcut
[2026-05-07 10:28:57] [SMS] wait_for_otp matched: id=31 code=431131
[2026-05-07 10:28:57] [PUB] received OTP code=431131 (sms_id=31)
[2026-05-07 10:28:57] [PUB job=75] phase -> verify
[2026-05-07 10:28:57] [PUB] human pause 1.5s
[2026-05-07 10:28:59] [PUB] filling OTP code=431131 into iframe input...
[2026-05-07 10:28:59] [PUB] human pause 2.0s
[2026-05-07 10:29:01] [PUB] clicking confirm in iframe...
[2026-05-07 10:29:01] [PUB] clicked '确定' in iframe
[2026-05-07 10:29:01] [SMS] consumed id=31 by job=75
[2026-05-07 10:29:01] [PUB job=75] phase -> contract_sync
[2026-05-07 10:29:01] [PUB] waiting for page to transition after signing...
[2026-05-07 10:29:25] [PUB] dismissed '我知道了' popup
[2026-05-07 10:29:27] [PUB] page shows review/completion text — publish done!
[2026-05-07 10:29:27] [PUB job=75] phase -> submit
[2026-05-07 10:29:27] [PUB] human pause 2.8s
[2026-05-07 10:29:35] [PUB] detected completion text on page during submit poll
[2026-05-07 10:29:35] [PUB job=75] ==== DONE albumId=auto (126s) ====
[2026-05-07 10:34:29] [BATCH 36] ==================== BATCH START ====================
[2026-05-07 10:34:29] [BATCH 36] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\catchy_earworm.json, model=gemini-3f, total=3, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 10:34:30] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:34:31] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:34:31] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-07 10:34:31] [P1] --- Lyrics 1/3 ---
[2026-05-07 10:34:31] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方向:空调WiFi西瓜夏天三件套。风格复古迪斯科,氛围沙雕但上头,能量级别持续中高能量稳定输出。核心要...
[2026-05-07 10:34:31] Current URL: https://music.douyin.com/studio
[2026-05-07 10:34:35] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:34:35] Extracted userID from profile API: 104709151573
[2026-05-07 10:34:37] Got conversationId: 7626633213754638378
[2026-05-07 10:34:37] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方...
[2026-05-07 10:34:44] [BATCH 37] ==================== BATCH START ====================
[2026-05-07 10:34:44] [BATCH 37] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\sweet_romance.json, model=gemini-3f, total=3, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 10:34:45] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:34:54] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:34:54] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-07 10:34:54] [P1] --- Lyrics 1/3 ---
[2026-05-07 10:34:54] [P1] Prompt: 为女声写一首中文bubble pop恋爱歌词,主题"发现TA也在偷偷看自己的惊喜",瞬间:第一次TA叫我名字时的触电感,氛围:游乐园摩天轮上的城市夜景。要求:①Hook在前4行,要像偷偷写在日记本里的...
[2026-05-07 10:34:54] Current URL: https://music.douyin.com/studio
[2026-05-07 10:34:57] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:34:58] Extracted userID from profile API: 104709151573
[2026-05-07 10:34:59] Got conversationId: 7626633213754638378
[2026-05-07 10:34:59] Sending lyrics request: model=gemini-3f, prompt=为女声写一首中文bubble pop恋爱歌词,主题"发现TA也在偷偷看自己的惊喜",瞬间:第一次TA...
[2026-05-07 10:35:00] [P1] Lyrics 1/3: FAILED (took 6s)
[2026-05-07 10:35:00] [BATCH 38] ==================== BATCH START ====================
[2026-05-07 10:35:00] [BATCH 38] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\emotional_tearjerker.json, model=gemini-3f, total=3, lang=英语, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 10:35:01] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:35:03] [P1] --- Lyrics 2/3 ---
[2026-05-07 10:35:03] [P1] Prompt: 为男女对唱写一首中文日系甜曲恋爱歌词,主题"一起看日落时TA偷拍我的侧脸",瞬间:忍不住傻笑被朋友发现的窘迫,氛围:便利店暖黄灯光下的两个人。要求:①Hook在前4行,要像和TA四目相对时的无声告白,...
[2026-05-07 10:35:03] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:06] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:07] Extracted userID from profile API: 104709151573
[2026-05-07 10:35:09] Got conversationId: 7626633213754638378
[2026-05-07 10:35:09] Sending lyrics request: model=gemini-3f, prompt=为男女对唱写一首中文日系甜曲恋爱歌词,主题"一起看日落时TA偷拍我的侧脸",瞬间:忍不住傻笑被朋友发...
[2026-05-07 10:35:10] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:35:10] [P1] ========== PHASE 1 START: generating 3 lyrics ==========
[2026-05-07 10:35:10] [P1] --- Lyrics 1/3 ---
[2026-05-07 10:35:10] [P1] Prompt: 为女声写一首英语轻电子抒情催泪情歌,主题"删除所有合照却舍不得最后一张",情感:被辜负后仍然心软的矛盾,氛围:深夜独处的安静崩溃。要求:①Hook前4行出现,要像忍了很久终于流下的眼泪,5-7字开口元...
[2026-05-07 10:35:10] Current URL: https://music.douyin.com/studio
[2026-05-07 10:35:10] [P1] Lyrics 2/3: FAILED (took 7s)
[2026-05-07 10:35:13] [P1] --- Lyrics 3/3 ---
[2026-05-07 10:35:13] [P1] Prompt: 为男女对唱写一首中文bubble pop恋爱歌词,主题"TA把外套披在我身上的那个秋天",瞬间:TA不经意的一个动作就让我脸红,氛围:秋天银杏树下的牵手散步。要求:①Hook在前4行,要像和TA四目相...
[2026-05-07 10:35:13] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:13] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:13] Extracted userID from profile API: 104709151573
[2026-05-07 10:35:14] Lyrics received: 685 chars
[2026-05-07 10:35:14] [P1] Lyrics 1/3: OK (took 42s)
[2026-05-07 10:35:15] Got conversationId: 7626633213754638378
[2026-05-07 10:35:15] Sending lyrics request: model=gemini-3f, prompt=为女声写一首英语轻电子抒情催泪情歌,主题"删除所有合照却舍不得最后一张",情感:被辜负后仍然心软的矛...
[2026-05-07 10:35:16] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:16] Extracted userID from profile API: 104709151573
[2026-05-07 10:35:17] [P1] --- Lyrics 2/3 ---
[2026-05-07 10:35:17] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方向:刷到前任动态假装没看见。风格tropical house,氛围集体high翻,能量级别开头就拉满...
[2026-05-07 10:35:17] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:19] Got conversationId: 7626633213754638378
[2026-05-07 10:35:19] Sending lyrics request: model=gemini-3f, prompt=为男女对唱写一首中文bubble pop恋爱歌词,主题"TA把外套披在我身上的那个秋天",瞬间:TA...
[2026-05-07 10:35:20] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:20] Extracted userID from profile API: 104709151573
[2026-05-07 10:35:21] [P1] Lyrics 3/3: FAILED (took 8s)
[2026-05-07 10:35:21] [P1] ========== PHASE 1 DONE: 0 ok, 3 failed, total time=27s ==========
[2026-05-07 10:35:21] [BATCH 37] auto_compose enabled but 0 lyrics completed, skipping phase 2
[2026-05-07 10:35:21] [BATCH 37] ==================== BATCH END (total 37s) ====================
[2026-05-07 10:35:21] [BATCH 39] ==================== BATCH START ====================
[2026-05-07 10:35:21] [BATCH 39] Config: account=2, template=J:\Project_python\TikTokMusic\lyrics_templates\catchy_earworm.json, model=gemini-3f, total=5, lang=中文, auto_compose=True, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 10:35:22] Got conversationId: 7626633213754638378
[2026-05-07 10:35:22] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方...
[2026-05-07 10:35:22] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:35:24] [P1] Lyrics 2/3: FAILED (took 7s)
[2026-05-07 10:35:27] [P1] --- Lyrics 3/3 ---
[2026-05-07 10:35:27] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方向:加班到深夜打车回家突然饿了。风格bounce,氛围快乐到起飞,能量级别开头就拉满全程不降。核心要...
[2026-05-07 10:35:27] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:30] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:30] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:35:30] [P1] ========== PHASE 1 START: generating 5 lyrics ==========
[2026-05-07 10:35:30] [P1] --- Lyrics 1/5 ---
[2026-05-07 10:35:30] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首中文魔性洗脑歌词,主题方向:排队奶茶终于到手的满足。风格bassline,氛围魔性循环停不下来,能量级别欲扬先抑副歌核弹级爆...
[2026-05-07 10:35:30] Extracted userID from profile API: 104709151573
[2026-05-07 10:35:30] Current URL: https://music.douyin.com/studio
[2026-05-07 10:35:32] Got conversationId: 7626633213754638378
[2026-05-07 10:35:32] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男声创作一首中文魔性洗脑歌词,主题方...
[2026-05-07 10:35:33] [P1] Lyrics 3/3: FAILED (took 6s)
[2026-05-07 10:35:33] [P1] ========== PHASE 1 DONE: 1 ok, 2 failed, total time=61s ==========
[2026-05-07 10:35:33] [BATCH 36] Transitioning to Phase 2: compose + export...
[2026-05-07 10:35:33] [BATCH 36] Navigating from lyrics page to studio page...
[2026-05-07 10:35:33] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:34] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:34] Extracted userID from profile API: 99068608296
[2026-05-07 10:35:35] Got conversationId: 7635682632869756934
[2026-05-07 10:35:35] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首中文魔性洗脑歌词,主题方...
[2026-05-07 10:35:40] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:35:40] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:35:40] [BATCH 36] Studio page ready, starting composition pipeline
[2026-05-07 10:35:40] [P2] ========== PHASE 2 START: compose+export for batch 36 ==========
[2026-05-07 10:35:40] [P2] Found 1 completed lyrics to compose (model=7)
[2026-05-07 10:35:40] can_create: True (used=0/2, total=147/1000)
[2026-05-07 10:35:40] [P2] Quota check: can=True, used=0/2, total=147/1000
[2026-05-07 10:35:40] [P2] --- Song 1/1: '夏天三件宝' (lyrics_id=76) ---
[2026-05-07 10:35:40] [P2] Style desc: 一首能量感十足的复古迪斯科舞曲。以强劲的复古鼓机提供四四拍的经典Disco律动,标志性的合成器铃声(Synth Bell)奏出叮叮当当的洗脑旋律,并穿插大量魔性...
[2026-05-07 10:35:40] [P2] Lyrics length: 342 chars, first line: [intro]
[2026-05-07 10:35:40] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:35:40] create_advanced_task: model=7, prompt=一首能量感十足的复古迪斯科舞曲。以强劲的复古鼓机提供四四拍的经典Disco律动,标志性的合成器铃声(Synth Bell..., lyrics=342 chars
[2026-05-07 10:35:41] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636972818319837993', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:35:41] create_advanced_task: ok=True, TaskID=7636972818319837993, errCode=0
[2026-05-07 10:35:41] [P2] Step 1 result: ok=True, task_id=7636972818319837993, error=, took 0.4s
[2026-05-07 10:35:41] [P2] Step 2: Waiting for TaskID=7636972818319837993 to complete...
[2026-05-07 10:35:41] wait_for_task: TaskID=7636972818319837993, expected=2, timeout=480s
[2026-05-07 10:35:49] Lyrics received: 1025 chars
[2026-05-07 10:35:49] [P1] Lyrics 1/3: OK (took 39s)
[2026-05-07 10:35:51] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:35:52] [P1] --- Lyrics 2/3 ---
[2026-05-07 10:35:52] [P1] Prompt: 为男女对唱写一首英语慢摇滚抒情催泪情歌,主题"分手后路过曾经一起吃饭的餐厅",情感:假装没事但夜晚崩溃的落差,氛围:一个人走夜路的孤独感。要求:①Hook前4行出现,要像笑着说没事但声音在发抖,5-7...
[2026-05-07 10:35:52] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:55] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:35:55] Extracted userID from profile API: 104709151573
[2026-05-07 10:35:57] Got conversationId: 7626633213754638378
[2026-05-07 10:35:57] Sending lyrics request: model=gemini-3f, prompt=为男女对唱写一首英语慢摇滚抒情催泪情歌,主题"分手后路过曾经一起吃饭的餐厅",情感:假装没事但夜晚崩...
[2026-05-07 10:36:01] Lyrics received: 574 chars
[2026-05-07 10:36:01] restructure: section 'bridge' not found, skipping
[2026-05-07 10:36:01] [P1] Lyrics 1/5: OK (took 30s)
[2026-05-07 10:36:04] [P1] --- Lyrics 2/5 ---
[2026-05-07 10:36:04] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首中文魔性洗脑歌词,主题方向:干饭人干饭魂。风格硬核电子,氛围可爱又欠揍,能量级别开头就拉满全程不降。核心要求:Hook必...
[2026-05-07 10:36:04] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:36:06] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:36:07] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:36:07] Extracted userID from profile API: 99068608296
[2026-05-07 10:36:08] Got conversationId: 7635682632869756934
[2026-05-07 10:36:08] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首中文魔性洗脑歌词,主...
[2026-05-07 10:36:21] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:36:28] Lyrics received: 1179 chars
[2026-05-07 10:36:28] [P1] Lyrics 2/3: OK (took 36s)
[2026-05-07 10:36:31] [P1] --- Lyrics 3/3 ---
[2026-05-07 10:36:31] [P1] Prompt: 为男声写一首英语城市流行催泪情歌,主题"换了新手机号却还记得TA的号码",情感:想念却不能联系的克制与煎熬,氛围:雨天窗边的沉默发呆。要求:①Hook前4行出现,要像对着空气说的最后一句话,5-7字开...
[2026-05-07 10:36:31] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:36:34] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:36:34] Extracted userID from profile API: 104709151573
[2026-05-07 10:36:36] Got conversationId: 7626633213754638378
[2026-05-07 10:36:36] Lyrics received: 581 chars
[2026-05-07 10:36:36] Sending lyrics request: model=gemini-3f, prompt=为男声写一首英语城市流行催泪情歌,主题"换了新手机号却还记得TA的号码",情感:想念却不能联系的克制...
[2026-05-07 10:36:36] restructure: section 'bridge' not found, skipping
[2026-05-07 10:36:36] [P1] Lyrics 2/5: OK (took 32s)
[2026-05-07 10:36:37] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:36:39] [P1] --- Lyrics 3/5 ---
[2026-05-07 10:36:39] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首中文魔性洗脑歌词,主题方向:减肥永远从明天开始。风格reggaeton,氛围沙雕但上头,能量级别一浪比一浪高层层叠加。核...
[2026-05-07 10:36:39] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:36:42] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:36:43] Extracted userID from profile API: 99068608296
[2026-05-07 10:36:43] Got conversationId: 7635682632869756934
[2026-05-07 10:36:43] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首中文魔性洗脑歌词,主...
[2026-05-07 10:36:52] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:37:07] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:37:12] Lyrics received: 573 chars
[2026-05-07 10:37:12] restructure: section 'bridge' not found, skipping
[2026-05-07 10:37:12] [P1] Lyrics 3/5: OK (took 33s)
[2026-05-07 10:37:15] [P1] --- Lyrics 4/5 ---
[2026-05-07 10:37:15] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首中文魔性洗脑歌词,主题方向:排队奶茶终于到手的满足。风格复古迪斯科,氛围可爱又欠揍,能量级别开头就拉满全程不降。核心要求...
[2026-05-07 10:37:15] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:37:16] Lyrics received: 1265 chars
[2026-05-07 10:37:16] [P1] Lyrics 3/3: OK (took 45s)
[2026-05-07 10:37:16] [P1] ========== PHASE 1 DONE: 3 ok, 0 failed, total time=127s ==========
[2026-05-07 10:37:16] [BATCH 38] Transitioning to Phase 2: compose + export...
[2026-05-07 10:37:16] [BATCH 38] Navigating from lyrics page to studio page...
[2026-05-07 10:37:16] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:37:18] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:37:18] Extracted userID from profile API: 99068608296
[2026-05-07 10:37:19] Got conversationId: 7635682632869756934
[2026-05-07 10:37:19] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为男女对唱创作一首中文魔性洗脑歌词,主...
[2026-05-07 10:37:22] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:37:31] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:37:31] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:37:31] [BATCH 38] Studio page ready, starting composition pipeline
[2026-05-07 10:37:31] [P2] ========== PHASE 2 START: compose+export for batch 38 ==========
[2026-05-07 10:37:31] [P2] Found 3 completed lyrics to compose (model=7)
[2026-05-07 10:37:32] can_create: True (used=1/2, total=144/1000)
[2026-05-07 10:37:32] [P2] Quota check: can=True, used=1/2, total=144/1000
[2026-05-07 10:37:32] [P2] --- Song 1/3: 'One Last Pixel' (lyrics_id=79) ---
[2026-05-07 10:37:32] [P2] Style desc: 一首带有催泪质感的轻电子抒情流行曲。音乐以一个极简、心跳般的电子鼓点为基础,营造深夜独处的安静氛围。干净清澈、带有混响效果的电吉他分解和弦贯穿始终,模仿古典吉他...
[2026-05-07 10:37:32] [P2] Lyrics length: 897 chars, first line: [intro]
[2026-05-07 10:37:32] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:37:32] create_advanced_task: model=7, prompt=一首带有催泪质感的轻电子抒情流行曲。音乐以一个极简、心跳般的电子鼓点为基础,营造深夜独处的安静氛围。干净清澈、带有混响效..., lyrics=897 chars
[2026-05-07 10:37:32] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636973314330430262', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:37:32] create_advanced_task: ok=True, TaskID=7636973314330430262, errCode=0
[2026-05-07 10:37:32] [P2] Step 1 result: ok=True, task_id=7636973314330430262, error=, took 0.4s
[2026-05-07 10:37:32] [P2] Step 2: Waiting for TaskID=7636973314330430262 to complete...
[2026-05-07 10:37:32] wait_for_task: TaskID=7636973314330430262, expected=2, timeout=480s
[2026-05-07 10:37:37] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:37:42] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:37:46] Lyrics received: 549 chars
[2026-05-07 10:37:46] restructure: section 'bridge' not found, skipping
[2026-05-07 10:37:46] [P1] Lyrics 4/5: OK (took 31s)
[2026-05-07 10:37:49] [P1] --- Lyrics 5/5 ---
[2026-05-07 10:37:49] [P1] Prompt: 你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首中文魔性洗脑歌词,主题方向:摸鱼被老板发现的心跳。风格硬核电子,氛围魔性循环停不下来,能量级别持续中高能量稳定输出。核心要求...
[2026-05-07 10:37:49] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:37:52] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:37:52] Extracted userID from profile API: 99068608296
[2026-05-07 10:37:52] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 10:37:53] Got conversationId: 7635682632869756934
[2026-05-07 10:37:53] Sending lyrics request: model=gemini-3f, prompt=你是一位制造洗脑神曲的天才制作人,你的歌让人听一遍就甩不掉。请为女声创作一首中文魔性洗脑歌词,主题方...
[2026-05-07 10:37:57] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:38:08] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 10:38:13] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:38:23] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 10:38:28] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:38:30] Lyrics received: 534 chars
[2026-05-07 10:38:30] restructure: section 'bridge' not found, skipping
[2026-05-07 10:38:30] [P1] Lyrics 5/5: OK (took 41s)
[2026-05-07 10:38:30] [P1] ========== PHASE 1 DONE: 5 ok, 0 failed, total time=179s ==========
[2026-05-07 10:38:30] [BATCH 39] Transitioning to Phase 2: compose + export...
[2026-05-07 10:38:30] [BATCH 39] Navigating from lyrics page to studio page...
[2026-05-07 10:38:30] open_studio: current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:38:38] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:38:38] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-07 10:38:38] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:38:38] [BATCH 39] Studio page ready, starting composition pipeline
[2026-05-07 10:38:38] [P2] ========== PHASE 2 START: compose+export for batch 39 ==========
[2026-05-07 10:38:38] [P2] Found 5 completed lyrics to compose (model=7)
[2026-05-07 10:38:38] can_create: True (used=0/2, total=152/1000)
[2026-05-07 10:38:38] [P2] Quota check: can=True, used=0/2, total=152/1000
[2026-05-07 10:38:38] [P2] --- Song 1/5: '快乐密码' (lyrics_id=83) ---
[2026-05-07 10:38:38] [P2] Style desc: 一首魔性洗脑的中文EDM舞曲。女声主唱,声线具有成熟质感与岁月沉淀的力量感。以强劲的四四拍EDM鼓点和极具弹性的Funk贝斯线构筑魔性循环的动次打次节奏。主歌部...
[2026-05-07 10:38:38] [P2] Lyrics length: 294 chars, first line: [intro]
[2026-05-07 10:38:38] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:38:38] create_advanced_task: model=7, prompt=一首魔性洗脑的中文EDM舞曲。女声主唱,声线具有成熟质感与岁月沉淀的力量感。以强劲的四四拍EDM鼓点和极具弹性的Funk..., lyrics=294 chars
[2026-05-07 10:38:39] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636973642156477238', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:38:39] create_advanced_task: ok=True, TaskID=7636973642156477238, errCode=0
[2026-05-07 10:38:39] [P2] Step 1 result: ok=True, task_id=7636973642156477238, error=, took 0.4s
[2026-05-07 10:38:39] [P2] Step 2: Waiting for TaskID=7636973642156477238 to complete...
[2026-05-07 10:38:39] wait_for_task: TaskID=7636973642156477238, expected=2, timeout=480s
[2026-05-07 10:38:43] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:38:49] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:38:53] wait_for_task: 180s, 2/2 completed (expected=2)
[2026-05-07 10:38:53] wait_for_task: done! 2 works stable after 180s: ['7636972733955623731', '7636972797960637247']
[2026-05-07 10:38:53] [P2] Step 2 done: 2 works generated in 193s, WorkIDs=['7636972733955623731', '7636972797960637247']
[2026-05-07 10:38:53] [P2] Step 3: Exporting WorkID=7636972733955623731 (1/2) title='夏天三件宝'...
[2026-05-07 10:38:54] export(7636972733955623731): VID=v02003g10004d7tvm7aljht7a63fn9ng, Title=夏天三件宝, Duration=159880ms
[2026-05-07 10:38:55] _create_project: ProjectID=7636973664772098867
[2026-05-07 10:38:55] export(7636972733955623731): human pause 9.6s between save-project and export
[2026-05-07 10:38:58] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:39:04] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:39:05] export(7636972733955623731): CreateStudioTask ProjectID=7636973664772098867, VID=v02003g10004d7tvm7aljht7a63fn9ng
[2026-05-07 10:39:07] export(7636972733955623731): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636973723828144915', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:39:07] export(7636972733955623731): ok=True, TaskID=7636973723828144915, errCode=0, biz=
[2026-05-07 10:39:07] [P2] Export OK: WorkID=7636972733955623731, TaskID=7636973723828144915, took 13.2s
[2026-05-07 10:39:07] [P2] Human pause 11.9s before next export...
[2026-05-07 10:39:13] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:39:19] [P2] Step 3: Exporting WorkID=7636972797960637247 (2/2) title='夏天三件宝'...
[2026-05-07 10:39:19] export(7636972797960637247): VID=v03003g10004d7tvm7iljht0mpkhnm6g, Title=夏天三件宝, Duration=176880ms
[2026-05-07 10:39:19] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:39:20] _create_project: ProjectID=7636973789997189924
[2026-05-07 10:39:20] export(7636972797960637247): human pause 12.3s between save-project and export
[2026-05-07 10:39:28] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:39:33] export(7636972797960637247): CreateStudioTask ProjectID=7636973789997189924, VID=v03003g10004d7tvm7iljht0mpkhnm6g
[2026-05-07 10:39:34] export(7636972797960637247): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636973820120910642', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:39:34] export(7636972797960637247): ok=True, TaskID=7636973820120910642, errCode=0, biz=
[2026-05-07 10:39:34] [P2] Export OK: WorkID=7636972797960637247, TaskID=7636973820120910642, took 15.8s
[2026-05-07 10:39:34] [P2] ========== PHASE 2 DONE: composed=1, exported=2, total time=234s ==========
[2026-05-07 10:39:35] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:39:35] [BATCH 36] ==================== BATCH END (total 305s) ====================
[2026-05-07 10:39:44] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 10:39:50] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:39:59] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 10:40:05] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:40:14] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 10:40:20] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:40:29] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 10:40:35] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:40:45] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 10:40:51] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 10:41:00] wait_for_task: 195s, 2/2 completed (expected=2)
[2026-05-07 10:41:06] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 10:41:15] wait_for_task: 210s, 2/2 completed (expected=2)
[2026-05-07 10:41:15] wait_for_task: done! 2 works stable after 210s: ['7636973322185607962', '7636973312295586569']
[2026-05-07 10:41:15] [P2] Step 2 done: 2 works generated in 223s, WorkIDs=['7636973322185607962', '7636973312295586569']
[2026-05-07 10:41:15] [P2] Step 3: Exporting WorkID=7636973322185607962 (1/2) title='One Last Pixel'...
[2026-05-07 10:41:16] export(7636973322185607962): VID=v02003g10004d7tvnciljhtecvlt259g, Title=One Last Pixel, Duration=191320ms
[2026-05-07 10:41:16] _create_project: ProjectID=7636974333390392127
[2026-05-07 10:41:16] export(7636973322185607962): human pause 9.8s between save-project and export
[2026-05-07 10:41:21] wait_for_task: 150s, 2/2 completed (expected=2)
[2026-05-07 10:41:26] export(7636973322185607962): CreateStudioTask ProjectID=7636974333390392127, VID=v02003g10004d7tvnciljhtecvlt259g
[2026-05-07 10:41:26] export(7636973322185607962): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636974358808005439', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:41:26] export(7636973322185607962): ok=True, TaskID=7636974358808005439, errCode=0, biz=
[2026-05-07 10:41:26] [P2] Export OK: WorkID=7636973322185607962, TaskID=7636974358808005439, took 11.3s
[2026-05-07 10:41:26] [P2] Human pause 7.7s before next export...
[2026-05-07 10:41:34] [P2] Step 3: Exporting WorkID=7636973312295586569 (2/2) title='One Last Pixel'...
[2026-05-07 10:41:35] export(7636973312295586569): VID=v02003g10004d7tvnaqljht247mjthdg, Title=One Last Pixel, Duration=207680ms
[2026-05-07 10:41:35] _create_project: ProjectID=7636974385996827446
[2026-05-07 10:41:35] export(7636973312295586569): human pause 9.7s between save-project and export
[2026-05-07 10:41:36] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-07 10:41:36] wait_for_task: done! 2 works stable after 165s: ['7636973647252458294', '7636973660301380392']
[2026-05-07 10:41:36] [P2] Step 2 done: 2 works generated in 177s, WorkIDs=['7636973647252458294', '7636973660301380392']
[2026-05-07 10:41:36] [P2] Step 3: Exporting WorkID=7636973647252458294 (1/2) title='快乐密码'...
[2026-05-07 10:41:37] export(7636973647252458294): VID=v03003g10004d7tvnjiljht0f5b08560, Title=快乐密码, Duration=145440ms
[2026-05-07 10:41:37] _create_project: ProjectID=7636974332040104710
[2026-05-07 10:41:37] export(7636973647252458294): human pause 9.1s between save-project and export
[2026-05-07 10:41:45] export(7636973312295586569): CreateStudioTask ProjectID=7636974385996827446, VID=v02003g10004d7tvnaqljht247mjthdg
[2026-05-07 10:41:45] export(7636973312295586569): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636974397932735286', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:41:45] export(7636973312295586569): ok=True, TaskID=7636974397932735286, errCode=0, biz=
[2026-05-07 10:41:45] [P2] Export OK: WorkID=7636973312295586569, TaskID=7636974397932735286, took 11.2s
[2026-05-07 10:41:45] [P2] Waiting 5s before next composition...
[2026-05-07 10:41:46] export(7636973647252458294): CreateStudioTask ProjectID=7636974332040104710, VID=v03003g10004d7tvnjiljht0f5b08560
[2026-05-07 10:41:47] export(7636973647252458294): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636974387480578858', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:41:47] export(7636973647252458294): ok=True, TaskID=7636974387480578858, errCode=0, biz=
[2026-05-07 10:41:47] [P2] Export OK: WorkID=7636973647252458294, TaskID=7636974387480578858, took 10.3s
[2026-05-07 10:41:47] [P2] Human pause 13.8s before next export...
[2026-05-07 10:41:50] [P2] --- Song 2/3: 'The Weight of Fine' (lyrics_id=84) ---
[2026-05-07 10:41:50] [P2] Style desc: 一首情感浓郁的慢摇滚抒情对唱。以忧郁的钢琴分解和弦作为开端和贯穿全曲的基底,营造出孤独的夜路氛围。BPM约65-75。男女声线清亮通透,各自演唱主歌,在副歌部分...
[2026-05-07 10:41:50] [P2] Lyrics length: 937 chars, first line: [intro]
[2026-05-07 10:41:50] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:41:50] create_advanced_task: model=7, prompt=一首情感浓郁的慢摇滚抒情对唱。以忧郁的钢琴分解和弦作为开端和贯穿全曲的基底,营造出孤独的夜路氛围。BPM约65-75。男..., lyrics=937 chars
[2026-05-07 10:41:51] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636974441582693126', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:41:51] create_advanced_task: ok=True, TaskID=7636974441582693126, errCode=0
[2026-05-07 10:41:51] [P2] Step 1 result: ok=True, task_id=7636974441582693126, error=, took 0.4s
[2026-05-07 10:41:51] [P2] Step 2: Waiting for TaskID=7636974441582693126 to complete...
[2026-05-07 10:41:51] wait_for_task: TaskID=7636974441582693126, expected=2, timeout=480s
[2026-05-07 10:42:00] [P2] Step 3: Exporting WorkID=7636973660301380392 (2/2) title='快乐密码'...
[2026-05-07 10:42:01] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:42:01] export(7636973660301380392): VID=v0d003g10004d7tvnjiljht963jk0cf0, Title=快乐密码, Duration=148640ms
[2026-05-07 10:42:01] _create_project: ProjectID=7636974441582889734
[2026-05-07 10:42:01] export(7636973660301380392): human pause 7.0s between save-project and export
[2026-05-07 10:42:09] export(7636973660301380392): CreateStudioTask ProjectID=7636974441582889734, VID=v0d003g10004d7tvnjiljht963jk0cf0
[2026-05-07 10:42:10] export(7636973660301380392): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636974526785751871', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:42:10] export(7636973660301380392): ok=True, TaskID=7636974526785751871, errCode=0, biz=
[2026-05-07 10:42:10] [P2] Export OK: WorkID=7636973660301380392, TaskID=7636974526785751871, took 9.6s
[2026-05-07 10:42:12] [P2] Waiting 5s before next composition...
[2026-05-07 10:42:16] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:42:17] [P2] --- Song 2/5: '干饭Disco' (lyrics_id=85) ---
[2026-05-07 10:42:17] [P2] Style desc: 一首中文男女对唱的Hyperpop洗脑舞曲。男女声线均经过大量Auto-Tune处理,慵懒中带着颗粒感,营造出可爱又欠揍的听感。以极具冲击力的硬核电子鼓点和失真...
[2026-05-07 10:42:17] [P2] Lyrics length: 324 chars, first line: [intro]
[2026-05-07 10:42:17] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:42:17] create_advanced_task: model=7, prompt=一首中文男女对唱的Hyperpop洗脑舞曲。男女声线均经过大量Auto-Tune处理,慵懒中带着颗粒感,营造出可爱又欠揍..., lyrics=324 chars
[2026-05-07 10:42:18] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636974512257108790', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:42:18] create_advanced_task: ok=True, TaskID=7636974512257108790, errCode=0
[2026-05-07 10:42:18] [P2] Step 1 result: ok=True, task_id=7636974512257108790, error=, took 0.4s
[2026-05-07 10:42:18] [P2] Step 2: Waiting for TaskID=7636974512257108790 to complete...
[2026-05-07 10:42:18] wait_for_task: TaskID=7636974512257108790, expected=2, timeout=480s
[2026-05-07 10:42:28] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:42:31] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:42:43] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:42:47] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:42:58] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:43:02] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:43:13] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:43:17] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:43:28] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:43:32] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:43:44] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:43:47] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:43:59] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:44:03] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 10:44:14] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:44:18] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 10:44:29] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 10:44:33] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 10:44:45] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 10:44:48] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 10:44:59] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:45:00] wait_for_task: 150s, 1/2 completed (expected=2)
[2026-05-07 10:45:00] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:45:00] open_studio: current URL: https://music.douyin.com/studio
[2026-05-07 10:45:03] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 10:45:03] open_studio: page loaded, URL: https://music.douyin.com/studio
[2026-05-07 10:45:04] open_studio: API interceptors confirmed working (authority check passed)
[2026-05-07 10:45:15] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-07 10:45:19] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-07 10:45:30] wait_for_task: 180s, 2/2 completed (expected=2)
[2026-05-07 10:45:30] wait_for_task: done! 2 works stable after 180s: ['7636974542925630251', '7636974539709877028']
[2026-05-07 10:45:30] [P2] Step 2 done: 2 works generated in 192s, WorkIDs=['7636974542925630251', '7636974539709877028']
[2026-05-07 10:45:30] [P2] Step 3: Exporting WorkID=7636974542925630251 (1/2) title='干饭Disco'...
[2026-05-07 10:45:31] export(7636974542925630251): VID=v03003g10004d7tvpbiljht1frgbf000, Title=干饭Disco, Duration=107440ms
[2026-05-07 10:45:32] _create_project: ProjectID=7636975435288513343
[2026-05-07 10:45:32] export(7636974542925630251): human pause 12.7s between save-project and export
[2026-05-07 10:45:34] wait_for_task: 210s, 0/2 completed (expected=2)
[2026-05-07 10:45:45] export(7636974542925630251): CreateStudioTask ProjectID=7636975435288513343, VID=v03003g10004d7tvpbiljht1frgbf000
[2026-05-07 10:45:46] export(7636974542925630251): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636975467597155099', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:45:46] export(7636974542925630251): ok=True, TaskID=7636975467597155099, errCode=0, biz=
[2026-05-07 10:45:46] [P2] Export OK: WorkID=7636974542925630251, TaskID=7636975467597155099, took 16.2s
[2026-05-07 10:45:46] [P2] Human pause 12.6s before next export...
[2026-05-07 10:45:49] wait_for_task: 225s, 1/2 completed (expected=2)
[2026-05-07 10:45:59] [P2] Step 3: Exporting WorkID=7636974539709877028 (2/2) title='干饭Disco'...
[2026-05-07 10:46:00] export(7636974539709877028): VID=v03003g10004d7tvp9aljht3lhp7grh0, Title=干饭Disco, Duration=115480ms
[2026-05-07 10:46:01] _create_project: ProjectID=7636975537181346579
[2026-05-07 10:46:01] export(7636974539709877028): human pause 9.9s between save-project and export
[2026-05-07 10:46:04] wait_for_task: 240s, 2/2 completed (expected=2)
[2026-05-07 10:46:11] export(7636974539709877028): CreateStudioTask ProjectID=7636975537181346579, VID=v03003g10004d7tvp9aljht3lhp7grh0
[2026-05-07 10:46:13] export(7636974539709877028): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636975570177411846', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:46:13] export(7636974539709877028): ok=True, TaskID=7636975570177411846, errCode=0, biz=
[2026-05-07 10:46:13] [P2] Export OK: WorkID=7636974539709877028, TaskID=7636975570177411846, took 14.1s
[2026-05-07 10:46:13] [P2] Waiting 5s before next composition...
[2026-05-07 10:46:18] [P2] --- Song 3/5: '明天再说吧' (lyrics_id=87) ---
[2026-05-07 10:46:18] [P2] Style desc: 一首中文男女对唱的雷鬼动陷阱(Reggaeton Trap)舞曲。男女声线均采用耳语般的温柔细腻唱腔,与强劲的节奏形成沙雕反差感。以标志性的雷鬼动鼓点融合Tra...
[2026-05-07 10:46:18] [P2] Lyrics length: 307 chars, first line: [intro]
[2026-05-07 10:46:18] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:46:18] create_advanced_task: model=7, prompt=一首中文男女对唱的雷鬼动陷阱(Reggaeton Trap)舞曲。男女声线均采用耳语般的温柔细腻唱腔,与强劲的节奏形成沙..., lyrics=307 chars
[2026-05-07 10:46:19] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636975641694374699', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:46:19] create_advanced_task: ok=True, TaskID=7636975641694374699, errCode=0
[2026-05-07 10:46:19] [P2] Step 1 result: ok=True, task_id=7636975641694374699, error=, took 0.4s
[2026-05-07 10:46:19] [P2] Step 2: Waiting for TaskID=7636975641694374699 to complete...
[2026-05-07 10:46:19] wait_for_task: TaskID=7636975641694374699, expected=2, timeout=480s
[2026-05-07 10:46:19] wait_for_task: 255s, 2/2 completed (expected=2)
[2026-05-07 10:46:19] wait_for_task: done! 2 works stable after 255s: ['7636974405985553161', '7636974431935482666']
[2026-05-07 10:46:19] [P2] Step 2 done: 2 works generated in 269s, WorkIDs=['7636974405985553161', '7636974431935482666']
[2026-05-07 10:46:19] [P2] Step 3: Exporting WorkID=7636974405985553161 (1/2) title='The Weight of Fine'...
[2026-05-07 10:46:20] export(7636974405985553161): VID=v02003g10004d7tvpmqljhtcnubt7eb0, Title=The Weight of Fine, Duration=152880ms
[2026-05-07 10:46:20] _create_project: ProjectID=7636975558309301034
[2026-05-07 10:46:20] export(7636974405985553161): human pause 9.4s between save-project and export
[2026-05-07 10:46:28] [BATCH 40] ==================== BATCH START ====================
[2026-05-07 10:46:28] [BATCH 40] Config: account=1, template=J:\Project_python\TikTokMusic\lyrics_templates\emotional_tearjerker.json, model=gemini-3f, total=5, lang=中文, auto_compose=False, compose_model=7, auto_publish=False, auth_type=exclusive, auth_region=1
[2026-05-07 10:46:29] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:46:29] Open studio page: https://music.douyin.com/studio
[2026-05-07 10:46:30] Current URL after open: https://music.douyin.com/studio
[2026-05-07 10:46:30] [P1] ========== PHASE 1 START: generating 5 lyrics ==========
[2026-05-07 10:46:30] [P1] --- Lyrics 1/5 ---
[2026-05-07 10:46:30] [P1] Prompt: 为男女对唱写一首中文民谣催泪情歌,主题"深夜翻到和TA的旧聊天记录",情感:明知回不去还在原地等的执念,氛围:回忆涌来的恍惚瞬间。要求:①Hook前4行出现,要像删掉又重新打出来的消息,5-7字开口元...
[2026-05-07 10:46:30] export(7636974405985553161): CreateStudioTask ProjectID=7636975558309301034, VID=v02003g10004d7tvpmqljhtcnubt7eb0
[2026-05-07 10:46:30] Current URL: https://music.douyin.com/studio
[2026-05-07 10:46:30] export(7636974405985553161): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636975683767470902', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:46:30] export(7636974405985553161): ok=True, TaskID=7636975683767470902, errCode=0, biz=
[2026-05-07 10:46:30] [P2] Export OK: WorkID=7636974405985553161, TaskID=7636975683767470902, took 10.9s
[2026-05-07 10:46:30] [P2] Human pause 9.7s before next export...
[2026-05-07 10:46:33] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:46:34] Extracted userID from profile API: 104709151573
[2026-05-07 10:46:35] Got conversationId: 7626633213754638378
[2026-05-07 10:46:35] Sending lyrics request: model=gemini-3f, prompt=为男女对唱写一首中文民谣催泪情歌,主题"深夜翻到和TA的旧聊天记录",情感:明知回不去还在原地等的执...
[2026-05-07 10:46:40] [P2] Step 3: Exporting WorkID=7636974431935482666 (2/2) title='The Weight of Fine'...
[2026-05-07 10:46:41] export(7636974431935482666): VID=v03003g10004d7tvpmiljht4q5guhsc0, Title=The Weight of Fine, Duration=208160ms
[2026-05-07 10:46:41] _create_project: ProjectID=7636975681540328246
[2026-05-07 10:46:41] export(7636974431935482666): human pause 7.1s between save-project and export
[2026-05-07 10:46:44] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:46:48] export(7636974431935482666): CreateStudioTask ProjectID=7636975681540328246, VID=v03003g10004d7tvpmiljht4q5guhsc0
[2026-05-07 10:46:49] export(7636974431935482666): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636975726256245558', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:46:49] export(7636974431935482666): ok=True, TaskID=7636975726256245558, errCode=0, biz=
[2026-05-07 10:46:49] [P2] Export OK: WorkID=7636974431935482666, TaskID=7636975726256245558, took 8.7s
[2026-05-07 10:46:49] [P2] Waiting 5s before next composition...
[2026-05-07 10:46:54] [P2] --- Song 3/3: 'Ghost In My Keypad' (lyrics_id=86) ---
[2026-05-07 10:46:54] [P2] Style desc: 一首史诗感编排的城市流行抒情曲。以忧郁的钢琴和弦为基底,营造雨天窗边的孤独氛围。男声清亮通透,带着少年感的脆弱。节奏由轻柔的鼓点推动,BPM约70-80。歌曲从...
[2026-05-07 10:46:54] [P2] Lyrics length: 972 chars, first line: [intro]
[2026-05-07 10:46:54] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:46:54] create_advanced_task: model=7, prompt=一首史诗感编排的城市流行抒情曲。以忧郁的钢琴和弦为基底,营造雨天窗边的孤独氛围。男声清亮通透,带着少年感的脆弱。节奏由轻..., lyrics=972 chars
[2026-05-07 10:46:54] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636975739685931839', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:46:54] create_advanced_task: ok=True, TaskID=7636975739685931839, errCode=0
[2026-05-07 10:46:54] [P2] Step 1 result: ok=True, task_id=7636975739685931839, error=, took 0.4s
[2026-05-07 10:46:54] [P2] Step 2: Waiting for TaskID=7636975739685931839 to complete...
[2026-05-07 10:46:54] wait_for_task: TaskID=7636975739685931839, expected=2, timeout=480s
[2026-05-07 10:46:59] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:47:04] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:47:08] Lyrics received: 610 chars
[2026-05-07 10:47:09] [P1] Lyrics 1/5: OK (took 39s)
[2026-05-07 10:47:12] [P1] --- Lyrics 2/5 ---
[2026-05-07 10:47:12] [P1] Prompt: 为男女对唱写一首中文暗黑抒情催泪情歌,主题"闻到路人身上TA用过的香水味",情感:想念却不能联系的克制与煎熬,氛围:雨天窗边的沉默发呆。要求:①Hook前4行出现,要像故意路过却不敢进去的那条街,5-...
[2026-05-07 10:47:12] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:47:14] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:47:15] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:47:15] Extracted userID from profile API: 104709151573
[2026-05-07 10:47:17] Got conversationId: 7626633213754638378
[2026-05-07 10:47:17] Sending lyrics request: model=gemini-3f, prompt=为男女对唱写一首中文暗黑抒情催泪情歌,主题"闻到路人身上TA用过的香水味",情感:想念却不能联系的克...
[2026-05-07 10:47:20] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:47:29] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:47:35] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:47:45] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:47:48] Lyrics received: 647 chars
[2026-05-07 10:47:48] [P1] Lyrics 2/5: OK (took 36s)
[2026-05-07 10:47:50] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:47:51] [P1] --- Lyrics 3/5 ---
[2026-05-07 10:47:51] [P1] Prompt: 为女声写一首中文慢摇滚抒情催泪情歌,主题"闻到路人身上TA用过的香水味",情感:不甘心但必须放手的撕裂感,氛围:故作坚强的笑中带泪。要求:①Hook前4行出现,要像忍了很久终于流下的眼泪,5-7字开口...
[2026-05-07 10:47:51] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:47:54] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:47:54] Extracted userID from profile API: 104709151573
[2026-05-07 10:47:56] Got conversationId: 7626633213754638378
[2026-05-07 10:47:56] Sending lyrics request: model=gemini-3f, prompt=为女声写一首中文慢摇滚抒情催泪情歌,主题"闻到路人身上TA用过的香水味",情感:不甘心但必须放手的撕...
[2026-05-07 10:48:00] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:48:05] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:48:15] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:48:20] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:48:29] Lyrics received: 600 chars
[2026-05-07 10:48:29] [P1] Lyrics 3/5: OK (took 38s)
[2026-05-07 10:48:30] wait_for_task: 120s, 2/2 completed (expected=2)
[2026-05-07 10:48:32] [P1] --- Lyrics 4/5 ---
[2026-05-07 10:48:32] [P1] Prompt: 为男女对唱写一首中文钢琴抒情催泪情歌,主题"突然在商场听到当初我们的歌",情感:明知回不去还在原地等的执念,氛围:一个人走夜路的孤独感。要求:①Hook前4行出现,要像对着空气说的最后一句话,5-7字...
[2026-05-07 10:48:32] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:48:35] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:48:35] Extracted userID from profile API: 104709151573
[2026-05-07 10:48:36] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:48:37] Got conversationId: 7626633213754638378
[2026-05-07 10:48:37] Sending lyrics request: model=gemini-3f, prompt=为男女对唱写一首中文钢琴抒情催泪情歌,主题"突然在商场听到当初我们的歌",情感:明知回不去还在原地等...
[2026-05-07 10:48:45] wait_for_task: 135s, 2/2 completed (expected=2)
[2026-05-07 10:48:45] wait_for_task: done! 2 works stable after 135s: ['7636975593178975010', '7636975641681759012']
[2026-05-07 10:48:46] [P2] Step 2 done: 2 works generated in 147s, WorkIDs=['7636975593178975010', '7636975641681759012']
[2026-05-07 10:48:46] [P2] Step 3: Exporting WorkID=7636975593178975010 (1/2) title='明天再说吧'...
[2026-05-07 10:48:46] export(7636975593178975010): VID=v03003g10004d7tvqsaljhta0lb6k9gg, Title=明天再说吧, Duration=110680ms
[2026-05-07 10:48:47] _create_project: ProjectID=7636976195959261995
[2026-05-07 10:48:47] export(7636975593178975010): human pause 10.0s between save-project and export
[2026-05-07 10:48:51] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:48:57] export(7636975593178975010): CreateStudioTask ProjectID=7636976195959261995, VID=v03003g10004d7tvqsaljhta0lb6k9gg
[2026-05-07 10:48:59] export(7636975593178975010): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636976243665439507', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:48:59] export(7636975593178975010): ok=True, TaskID=7636976243665439507, errCode=0, biz=
[2026-05-07 10:48:59] [P2] Export OK: WorkID=7636975593178975010, TaskID=7636976243665439507, took 13.0s
[2026-05-07 10:48:59] [P2] Human pause 14.7s before next export...
[2026-05-07 10:49:06] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 10:49:08] Lyrics received: 613 chars
[2026-05-07 10:49:09] [P1] Lyrics 4/5: OK (took 37s)
[2026-05-07 10:49:12] [P1] --- Lyrics 5/5 ---
[2026-05-07 10:49:12] [P1] Prompt: 为男声写一首中文城市流行催泪情歌,主题"共同好友的婚礼上假装不在意",情感:突然被回忆击中的猝不及防,氛围:一个人走夜路的孤独感。要求:①Hook前4行出现,要像梦醒后还想继续的那个梦,5-7字开口元...
[2026-05-07 10:49:12] Current URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:49:13] [P2] Step 3: Exporting WorkID=7636975641681759012 (2/2) title='明天再说吧'...
[2026-05-07 10:49:14] export(7636975641681759012): VID=v03003g10004d7tvqsaljht8keb76fpg, Title=明天再说吧, Duration=99600ms
[2026-05-07 10:49:15] Lyrics page ready. URL: https://music.douyin.com/studio/lyrics
[2026-05-07 10:49:15] Extracted userID from profile API: 104709151573
[2026-05-07 10:49:15] _create_project: ProjectID=7636976362959457043
[2026-05-07 10:49:15] export(7636975641681759012): human pause 14.5s between save-project and export
[2026-05-07 10:49:17] Got conversationId: 7626633213754638378
[2026-05-07 10:49:17] Sending lyrics request: model=gemini-3f, prompt=为男声写一首中文城市流行催泪情歌,主题"共同好友的婚礼上假装不在意",情感:突然被回忆击中的猝不及防...
[2026-05-07 10:49:21] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 10:49:30] export(7636975641681759012): CreateStudioTask ProjectID=7636976362959457043, VID=v03003g10004d7tvqsaljht8keb76fpg
[2026-05-07 10:49:31] export(7636975641681759012): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636976401777969962', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:49:31] export(7636975641681759012): ok=True, TaskID=7636976401777969962, errCode=0, biz=
[2026-05-07 10:49:31] [P2] Export OK: WorkID=7636975641681759012, TaskID=7636976401777969962, took 18.0s
[2026-05-07 10:49:31] [P2] Waiting 5s before next composition...
[2026-05-07 10:49:36] [P2] --- Song 4/5: '非你茉属' (lyrics_id=88) ---
[2026-05-07 10:49:36] [P2] Style desc: 一首中文男女对唱的复古迪斯科舞曲。男女声线均采用耳语般的温柔细腻唱腔,与欢快节奏形成奇妙反差。以标志性的四四拍Disco鼓点和动感十足的Disco贝斯线贯穿全曲...
[2026-05-07 10:49:36] [P2] Lyrics length: 292 chars, first line: [intro]
[2026-05-07 10:49:36] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:49:36] create_advanced_task: model=7, prompt=一首中文男女对唱的复古迪斯科舞曲。男女声线均采用耳语般的温柔细腻唱腔,与欢快节奏形成奇妙反差。以标志性的四四拍Disco..., lyrics=292 chars
[2026-05-07 10:49:36] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 10:49:37] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636976414553705222', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:49:37] create_advanced_task: ok=True, TaskID=7636976414553705222, errCode=0
[2026-05-07 10:49:37] [P2] Step 1 result: ok=True, task_id=7636976414553705222, error=, took 0.5s
[2026-05-07 10:49:37] [P2] Step 2: Waiting for TaskID=7636976414553705222 to complete...
[2026-05-07 10:49:37] wait_for_task: TaskID=7636976414553705222, expected=2, timeout=480s
[2026-05-07 10:49:47] Lyrics received: 637 chars
[2026-05-07 10:49:47] [P1] Lyrics 5/5: OK (took 35s)
[2026-05-07 10:49:47] [P1] ========== PHASE 1 DONE: 5 ok, 0 failed, total time=197s ==========
[2026-05-07 10:49:47] [BATCH 40] auto_compose disabled, skipping phase 2
[2026-05-07 10:49:47] [BATCH 40] ==================== BATCH END (total 199s) ====================
[2026-05-07 10:49:47] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:49:52] wait_for_task: 165s, 0/2 completed (expected=2)
[2026-05-07 10:50:02] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:50:07] wait_for_task: 180s, 0/2 completed (expected=2)
[2026-05-07 10:50:17] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:50:22] wait_for_task: 195s, 0/2 completed (expected=2)
[2026-05-07 10:50:33] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:50:37] wait_for_task: 210s, 2/2 completed (expected=2)
[2026-05-07 10:50:48] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:50:52] wait_for_task: 225s, 2/2 completed (expected=2)
[2026-05-07 10:50:52] wait_for_task: done! 2 works stable after 225s: ['7636975720955480859', '7636975779230173986']
[2026-05-07 10:50:52] [P2] Step 2 done: 2 works generated in 238s, WorkIDs=['7636975720955480859', '7636975779230173986']
[2026-05-07 10:50:52] [P2] Step 3: Exporting WorkID=7636975720955480859 (1/2) title='Ghost In My Keypad'...
[2026-05-07 10:50:53] export(7636975720955480859): VID=v03003g10004d7tvru2ljht0jvgelmbg, Title=Ghost In My Keypad, Duration=228840ms
[2026-05-07 10:50:53] _create_project: ProjectID=7636976694540503827
[2026-05-07 10:50:53] export(7636975720955480859): human pause 8.5s between save-project and export
[2026-05-07 10:51:02] export(7636975720955480859): CreateStudioTask ProjectID=7636976694540503827, VID=v03003g10004d7tvru2ljht0jvgelmbg
[2026-05-07 10:51:02] export(7636975720955480859): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636976750228065087', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:51:02] export(7636975720955480859): ok=True, TaskID=7636976750228065087, errCode=0, biz=
[2026-05-07 10:51:02] [P2] Export OK: WorkID=7636975720955480859, TaskID=7636976750228065087, took 9.9s
[2026-05-07 10:51:02] [P2] Human pause 11.0s before next export...
[2026-05-07 10:51:03] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:51:13] [P2] Step 3: Exporting WorkID=7636975779230173986 (2/2) title='Ghost In My Keypad'...
[2026-05-07 10:51:14] export(7636975779230173986): VID=v02003g10004d7tvruiljhtesnacvogg, Title=Ghost In My Keypad, Duration=204000ms
[2026-05-07 10:51:14] _create_project: ProjectID=7636976851529468726
[2026-05-07 10:51:14] export(7636975779230173986): human pause 8.3s between save-project and export
[2026-05-07 10:51:18] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:51:23] export(7636975779230173986): CreateStudioTask ProjectID=7636976851529468726, VID=v02003g10004d7tvruiljhtesnacvogg
[2026-05-07 10:51:23] export(7636975779230173986): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636976917535066923', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:51:23] export(7636975779230173986): ok=True, TaskID=7636976917535066923, errCode=0, biz=
[2026-05-07 10:51:23] [P2] Export OK: WorkID=7636975779230173986, TaskID=7636976917535066923, took 9.9s
[2026-05-07 10:51:23] [P2] ========== PHASE 2 DONE: composed=3, exported=6, total time=832s ==========
[2026-05-07 10:51:24] [BATCH 38] ==================== BATCH END (total 984s) ====================
[2026-05-07 10:51:33] wait_for_task: 105s, 0/2 completed (expected=2)
[2026-05-07 10:51:49] wait_for_task: 120s, 0/2 completed (expected=2)
[2026-05-07 10:52:04] wait_for_task: 135s, 0/2 completed (expected=2)
[2026-05-07 10:52:19] wait_for_task: 150s, 0/2 completed (expected=2)
[2026-05-07 10:52:34] wait_for_task: 165s, 2/2 completed (expected=2)
[2026-05-07 10:52:49] wait_for_task: 180s, 2/2 completed (expected=2)
[2026-05-07 10:52:49] wait_for_task: done! 2 works stable after 180s: ['7636976414998809353', '7636976431029062450']
[2026-05-07 10:52:49] [P2] Step 2 done: 2 works generated in 193s, WorkIDs=['7636976414998809353', '7636976431029062450']
[2026-05-07 10:52:49] [P2] Step 3: Exporting WorkID=7636976414998809353 (1/2) title='非你茉属'...
[2026-05-07 10:52:50] export(7636976414998809353): VID=v03003g10004d7tvspaljht8keb7aa50, Title=非你茉属, Duration=146520ms
[2026-05-07 10:52:52] _create_project: ProjectID=7636977263161936703
[2026-05-07 10:52:52] export(7636976414998809353): human pause 9.1s between save-project and export
[2026-05-07 10:53:01] export(7636976414998809353): CreateStudioTask ProjectID=7636977263161936703, VID=v03003g10004d7tvspaljht8keb7aa50
[2026-05-07 10:53:03] export(7636976414998809353): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636977346578615081', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:53:03] export(7636976414998809353): ok=True, TaskID=7636977346578615081, errCode=0, biz=
[2026-05-07 10:53:03] [P2] Export OK: WorkID=7636976414998809353, TaskID=7636977346578615081, took 13.2s
[2026-05-07 10:53:03] [P2] Human pause 13.0s before next export...
[2026-05-07 10:53:16] [P2] Step 3: Exporting WorkID=7636976431029062450 (2/2) title='非你茉属'...
[2026-05-07 10:53:16] export(7636976431029062450): VID=v03003g10004d7tvspqljht33sc9jmu0, Title=非你茉属, Duration=139680ms
[2026-05-07 10:53:18] _create_project: ProjectID=7636977371618495295
[2026-05-07 10:53:18] export(7636976431029062450): human pause 7.4s between save-project and export
[2026-05-07 10:53:26] export(7636976431029062450): CreateStudioTask ProjectID=7636977371618495295, VID=v03003g10004d7tvspqljht33sc9jmu0
[2026-05-07 10:53:27] export(7636976431029062450): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636977460814351146', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:53:27] export(7636976431029062450): ok=True, TaskID=7636977460814351146, errCode=0, biz=
[2026-05-07 10:53:27] [P2] Export OK: WorkID=7636976431029062450, TaskID=7636977460814351146, took 11.5s
[2026-05-07 10:53:27] [P2] Waiting 5s before next composition...
[2026-05-07 10:53:32] [P2] --- Song 5/5: '心跳砰砰砰' (lyrics_id=89) ---
[2026-05-07 10:53:32] [P2] Style desc: 一首中文女声演唱的Hyper Pop洗脑神曲。人声以气声呢喃为主,并施以重度Auto-Tune,制造出催眠又魔性的听感。编排极致稀疏,仅由一个尖锐、失真的主奏合...
[2026-05-07 10:53:32] [P2] Lyrics length: 288 chars, first line: [intro]
[2026-05-07 10:53:32] [P2] Step 1: Submitting create_advanced_task (model=7)...
[2026-05-07 10:53:32] create_advanced_task: model=7, prompt=一首中文女声演唱的Hyper Pop洗脑神曲。人声以气声呢喃为主,并施以重度Auto-Tune,制造出催眠又魔性的听感。..., lyrics=288 chars
[2026-05-07 10:53:33] create_advanced_task: raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636977485109480234', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:53:33] create_advanced_task: ok=True, TaskID=7636977485109480234, errCode=0
[2026-05-07 10:53:33] [P2] Step 1 result: ok=True, task_id=7636977485109480234, error=, took 0.3s
[2026-05-07 10:53:33] [P2] Step 2: Waiting for TaskID=7636977485109480234 to complete...
[2026-05-07 10:53:33] wait_for_task: TaskID=7636977485109480234, expected=2, timeout=480s
[2026-05-07 10:53:43] wait_for_task: 0s, 0/2 completed (expected=2)
[2026-05-07 10:53:58] wait_for_task: 15s, 0/2 completed (expected=2)
[2026-05-07 10:54:13] wait_for_task: 30s, 0/2 completed (expected=2)
[2026-05-07 10:54:28] wait_for_task: 45s, 0/2 completed (expected=2)
[2026-05-07 10:54:44] wait_for_task: 60s, 0/2 completed (expected=2)
[2026-05-07 10:54:59] wait_for_task: 75s, 0/2 completed (expected=2)
[2026-05-07 10:55:14] wait_for_task: 90s, 0/2 completed (expected=2)
[2026-05-07 10:55:29] wait_for_task: 105s, 1/2 completed (expected=2)
[2026-05-07 10:55:44] wait_for_task: 120s, 2/2 completed (expected=2)
[2026-05-07 10:55:59] wait_for_task: 135s, 2/2 completed (expected=2)
[2026-05-07 10:55:59] wait_for_task: done! 2 works stable after 135s: ['7636977458197203738', '7636977480552762152']
[2026-05-07 10:55:59] [P2] Step 2 done: 2 works generated in 147s, WorkIDs=['7636977458197203738', '7636977480552762152']
[2026-05-07 10:56:00] [P2] Step 3: Exporting WorkID=7636977458197203738 (1/2) title='心跳砰砰砰'...
[2026-05-07 10:56:00] export(7636977458197203738): VID=v0d003g10004d7tvu7aljht6pbhi8190, Title=心跳砰砰砰, Duration=102120ms
[2026-05-07 10:56:01] _create_project: ProjectID=7636978098356898579
[2026-05-07 10:56:01] export(7636977458197203738): human pause 11.7s between save-project and export
[2026-05-07 10:56:13] export(7636977458197203738): CreateStudioTask ProjectID=7636978098356898579, VID=v0d003g10004d7tvu7aljht6pbhi8190
[2026-05-07 10:56:15] export(7636977458197203738): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636978154313222955', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:56:15] export(7636977458197203738): ok=True, TaskID=7636978154313222955, errCode=0, biz=
[2026-05-07 10:56:15] [P2] Export OK: WorkID=7636977458197203738, TaskID=7636978154313222955, took 15.7s
[2026-05-07 10:56:15] [P2] Human pause 14.4s before next export...
[2026-05-07 10:56:30] [P2] Step 3: Exporting WorkID=7636977480552762152 (2/2) title='心跳砰砰砰'...
[2026-05-07 10:56:31] export(7636977480552762152): VID=v03003g10004d7tvu82ljht8u8a02cr0, Title=心跳砰砰砰, Duration=90120ms
[2026-05-07 10:56:32] _create_project: ProjectID=7636978177310706473
[2026-05-07 10:56:32] export(7636977480552762152): human pause 11.0s between save-project and export
[2026-05-07 10:56:44] export(7636977480552762152): CreateStudioTask ProjectID=7636978177310706473, VID=v03003g10004d7tvu82ljht8u8a02cr0
[2026-05-07 10:56:46] export(7636977480552762152): raw response = {'baseResp': {'errorCode': 0}, 'data': {'TaskID': '7636978257472342820', 'BizCode': '0', 'BizMessage': ''}}
[2026-05-07 10:56:46] export(7636977480552762152): ok=True, TaskID=7636978257472342820, errCode=0, biz=
[2026-05-07 10:56:46] [P2] Export OK: WorkID=7636977480552762152, TaskID=7636978257472342820, took 15.8s
[2026-05-07 10:56:46] [P2] ========== PHASE 2 DONE: composed=5, exported=10, total time=1087s ==========
[2026-05-07 10:56:46] [BATCH 39] ==================== BATCH END (total 1285s) ====================
[2026-05-07 11:00:15] [SMS] ignored (no digits): src=unknown body=【支付宝】深圳惠民保启动参保,政府指导支持医保支付,超400万保障,点击参保 u.alipay.cn/_5.6O3 拒收请回复R