採集短影片數據
創作者後台只顯示當前的累計值,看不到昨天是多少。每天在同一時間存一份快照,才能算出每天新增多少、某次改動之後有沒有變化。
採集透過 playwright-cli 接到用戶已登入的 Chrome,打開自己的標籤頁讀後台頁面載入的數據,讀完關掉。唯讀,不點任何按鈕,不改任何設定。
準備
- playwright-cli 和它配套的 Chrome 擴充功能;Chrome 裡已登入要採的平台。定時採集時,Chrome 要開著、電腦不能睡眠。
- 在影片專案的根目錄放一個
video-data.json(照video-data.example.json改):
| 欄位 | 預設 | 說明 |
|---|---|---|
time | "12:10" | 每天採集的時間,HH:MM,依本機時區 |
timezone | 本機時區 | 決定快照檔案用哪一天的日期 |
platforms | 三個都採 | douyin、weixin、xiaohongshu 裡選 |
outDir | data/snapshots | 快照目錄,相對專案根目錄 |
時間選在發佈時間以後、每天固定的一個點。各平台後台的數據有延遲,晚上發的影片,第二天中午採比較穩。
採集
在專案根目錄執行(<skill> 是本 skill 的目錄):
node <skill>/scripts/collect.mjs # 採設定裡的全部平台
node <skill>/scripts/collect.mjs douyin # 只補採一個平台
- 輸出
<outDir>/<日期>.json。同一天重跑會合併:採到的覆蓋舊的,失敗的平台保留當天已有的那份。 - 每採完一個平台就寫一次檔案,中途被打斷也不丟已採到的。
- 有平台失敗時退出碼是 1,終端裡寫著哪個平台、什麼錯。
not_logged_in是登入過期,請使用者在 Chrome 裡重新登入;其他錯誤先手動重跑一次,抖音偶爾會臨時失敗。 - 使用者在 Chrome 裡填著還沒發佈的表單時不要跑:採集會打開新的標籤頁,可能把焦點從表單上搶走。
定時
node <skill>/scripts/schedule.mjs 依 time 印出 cron 表達式和一行 crontab,只印出,不改系統設定。改時間就改 video-data.json,再重建定時任務。二選一:
- agent 自帶的定時任務(推薦):用印出來的 cron 表達式建一個定時任務,提示詞寫"在 <專案路徑> 執行 video-data 採集,失敗的平台重跑一次,報告每個平台的作品數和粉絲數"。agent 能讀報錯、補採。
- 系統 crontab:使用者自己把印出來的那一行加進
crontab -e。日誌寫在快照目錄的collect.log。
建定時任務、改 crontab 前,先把時間和命令給使用者看。
快照裡有什麼
每個平台一段:account(暱稱、粉絲),works[](每條作品的 id、desc、publishedAt、durationSec、metrics),以及 error 或 warning。比例統一是小數(0.55 表示 55%)。
| 平台 | 額外的數據 | 限制 |
|---|---|---|
| 抖音 | 近 30 天作品(最多 12 條)的流量來源、章節點擊率、搜尋詞、留存曲線 | 作品列表最多讀 5 頁 |
| 影片號 | 帳號每日播放、按讚、轉發、關注的趨勢,依來源拆分 | 作品列表只讀第一頁,多於一頁時寫 warning |
| 小紅書 | 曝光、封面點擊率、2 秒跳出、5 秒完播 | 只採近 30 天的影片筆記(最多 12 條);觀看不足 100 時沒有來源分析 |
口徑不同的指標不能直接比:抖音和小紅書的開頭流失是"2 秒跳出率",影片號是"快速滑走率"(fast_flip_rate)。
看數據
node <skill>/scripts/stats.mjs 把所有快照依作品排成表:每天的播放、新增播放、平均播放秒、完播率、開頭流失、互動和漲粉,再附上最新一次的流量來源、搜尋詞和留存曲線。
樣本少的時候,結論標成"樣本不足"。比較兩條影片時,先看發佈後同樣的小時數,再看改了什麼。
交付時要說明的
- 採了哪些平台、每個平台幾條作品、粉絲數,哪個平台失敗了以及原因。
- 快照檔案路徑。
- 設定定時時:cron 表達式、觸發時間對應的時區、用的是哪種定時方式。