拆抖音對標
把公開帳號採集、數據聚合和 HTML 渲染交給腳本;由 agent 基於 report_data.json 撰寫有證據邊界的 Markdown 報告。
遵守邊界
- 只採集網頁公開可見數據;不破解簽名、不繞過驗證碼或訪問控制。
- 只使用
~/.douyin-benchmark/chrome-profile專用登入態。不要讀取、複製或直接指向用戶日常 Chrome 用戶目錄,不輸出 Cookie 值。 - 缺失值保持缺失,不改寫為
0。點讚只能作為公開熱度代理,不能稱為播放表現、互動率或轉粉效果。 - 普通登入框、真實安全驗證、頁面服務異常分別判斷。遇到安全驗證、頁面服務異常或空回應軟攔截後停止;不要循環重試、自動換 IP、自動建立延時任務或承諾稍後完成。
首次準備
在本 Skill 目錄執行:
npm ci
node scripts/login.js
login.js 打開專用瀏覽器,驗證到真實帳號入口後自動儲存並關閉。檢查已有登入態時執行 node scripts/login.js --check。
一鍵執行
優先讓用戶提供抖音 App 的「分享主頁」短鏈。數字抖音號不是 sec_uid;直接拼 /user/<數字> 可能靜默回到資訊流。
OUT="$HOME/douyin-benchmark-output/<帳號標識>"
node scripts/run_benchmark.js "<主頁分享連結/sec_uid/抖音號/暱稱>" "$OUT" \
--expected-id "<抖音號,可省略>"
預設使用有頭 Chrome,提高可觀察性並匹配真實瀏覽器 UA。無圖形環境才顯式加 --headless。腳本依序執行:
- 解析短鏈或
sec_uid;只有暱稱/抖音號時才使用站內搜尋。 - 採集資料、作品、合集並寫入
account_full_raw.json。 - 有作品時產生
report_data.json與調研報告.html。 - 全程更新
run_status.json,不在失敗後繼續分析。
先讀狀態,再寫結論
讀取 run_status.json 與 account_full_raw.json.capture:
complete:介面返回has_more=0。可以寫帳號級報告;仍核對主頁作品數與採集數差異。partial:只寫「已採集樣本報告」,在標題附近標出樣本量、主頁總量和覆蓋率;不要使用「全量」「帳號最高」等字眼。blocked_empty_body:作品介面 HTTP 200 但空主體。停止請求,只交付資料快照和診斷;稍後重試必須由用戶決定,且最多一次。challenge:讓用戶在專用瀏覽器完成驗證後再試一次,不嘗試繞過。login_required:頁面是普通登入框,並非安全驗證。執行登入腳本,成功後只重試一次。page_service_error:作品區明確顯示「服務異常,重新重新整理拉取數據」。停止重新整理;確認登入態後最多重試一次。no_post_response:可能是輸入錯誤或頁面/API 變化。先檢查sec_uid與有頭頁面,不盲目加滾動次數。endpoint_error:作品介面返回 HTTP/API 錯誤或非 JSON 內容。保留診斷並停止分析,先檢查頁面/API 變化。
撰寫 Markdown
僅在 report_data.json 存在且含可分析作品時,完整讀取 references/report-template.md,按九段結構寫 $OUT/調研報告.md。
把內容分成三類並明確措辭:
- 事實:JSON 中的公開欄位和計算結果。
- 觀察:標題、簡介、合集名、封面或實際打開過的影片呈現。
- 推斷:人設、變現路徑、內容公式;寫出證據和信心水準,不當成事實。
沒有評論正文就不寫「熱評情感」;沒有觀看影片就不聲稱鏡頭、口播、劇情或表演細節。用戶指定自身賽道時,再把可複製清單定向遷移。
驗收
account_full_raw.json、run_status.json、report_data.json、調研報告.html、調研報告.md狀態一致。- HTML 和 Markdown 都顯示實際採集樣本、主頁作品數、覆蓋率與
capture_status。 - 阻塞時檢查
capture.diagnostics.page:只記錄標題、路徑、登入/挑戰/服務異常布爾訊號與影片連結數,不儲存正文或 Cookie。 - 數字逐項對照
report_data.json;缺失值顯示—/未知。 - HTML 可離線打開,外部文字已跳脫;封面失敗不影響正文。
- HTML 不出現整頁橫向溢出;最新作品標題可讀。發布節奏按發布條數展示最近 12 個月,只有完整採集才把缺月補為 0。
- Markdown 九段齊全,含數據口徑、證據邊界、可複製清單和不可照搬項。
配置
DOUYIN_PROFILE_DIR:專用登入態目錄;預設~/.douyin-benchmark/chrome-profile。DOUYIN_BROWSER_CHANNEL:預設chrome;設chromium時先安裝 Playwright Chromium。DOUYIN_HEADLESS=true:顯式啟用無頭模式;預設有頭。DOUYIN_SCROLL_WAIT_MS:滾動間隔下限,預設 1600ms;不要用它做高頻採集。