[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