發布短影片
分兩段:先寫文案,再填表單。文案寫進該期目錄的 post.md(結構見 references/post-template.md),填表單時照著它填。平台規則和依據見 references/platform-rules.md,發布前以投稿頁為準。
一、寫文案
文案按搜尋意圖寫:先確認觀眾真的這樣問、用的是哪個稱呼,再讓標題、封面字和描述第一句對著同一個問題。在抖音和影片號上,大部分流量來自推薦而不是搜尋,這些詞的主要作用是讓系統把影片推給對的人。
先查聯想詞
- 列出這條影片能回答的問題。每個問題對應一類意圖:認識主角("X 是什麼""X 好用嗎")、選工具("X 對比""哪個好")、概念("某術語是什麼")、怎麼做("X 怎麼用")。
- 讀聯想詞,確認觀眾真的這樣搜、用哪個稱呼。聯想詞沒有搜尋量,只說明有人搜。發布當天重讀一遍,不要沿用幾天前存下的結果。
- 抖音:接上使用者已登入的 Chrome(見下面"接上瀏覽器"),開一個
www.douyin.com標籤頁並切過去,改scripts/douyin-suggest.js的SEEDS,再playwright-cli -s=chrome --raw run-code --filename=scripts/douyin-suggest.js。 - 小紅書:開一個
www.xiaohongshu.com/explore標籤頁,改scripts/xhs-suggest.js的SEEDS後執行。每個詞重載一次頁面,約 6 秒一個,一次別超過 25 個詞。 - Google:
node scripts/google-suggest.mjs '[["種子詞","zh-CN"],["seed","en"]]',不用瀏覽器。 - 這三個腳本都只讀。用完只關自己開的標籤頁。
- 抖音:接上使用者已登入的 Chrome(見下面"接上瀏覽器"),開一個
- 原始結果按日期存成 JSON,文案裡引用檔名。
- 主打和內容完全對口的那一類意圖,寫進標題、封面和描述第一句。只能部分回答的意圖(例如只比了兩款,卻去接"哪個最好")只放進話題,否則點進來的人會劃走。聯想詞裡反覆出現、影片沒回答的問題不硬接,記成新選題。
幾條反覆驗證過的經驗:
- 英文術語單獨當主詞經常搜不到對口內容。封面主詞用中文的問法,英文放進描述和話題。
- 影片裡的稱呼和觀眾的稱呼不一樣時,標題、封面和旁白都跟觀眾(例如觀眾搜"上下文腐爛",不搜"上下文腐化")。
- 兩個平台的稱呼常常不同,標題用兩邊都出現的那個。
怎麼寫
- 標題:觀眾會問的那個問題,加一個具體結論。用他們搜的稱呼。沒人搜的術語不進標題。標題、封面字和第一句旁白說同一件事。
- 描述:第一句重複標題的問題並給結論和數字;再列影片講的幾件事,帶上影片裡出現過的實體詞和數字;最後寫資料來源的限定條件;用了 AI 時寫上 AI 聲明(例如"配音為 AI 合成")。寫給觀眾看,不寫製作過程。
- 話題標籤:主角的準確稱呼、影片裡比過的對象、品類詞、一個受眾對口的大詞。只用影片裡真的講到的詞。填表時在發布頁輸入
#詞讀瀏覽量,幾百億瀏覽的泛詞(例如 #AI)當場換掉。抖音網頁端最多 5 個,系列名交給合集,不佔話題位置;影片號可以多帶一兩個,帶上系列名。 - 置頂評論:一個觀眾憑自身經驗就能回答的問題,和影片結尾的問句呼應。
- 封面字:兩行以內的標題加一句帶數字或結論的鉤子,主詞用中文問法。
- 文案、封面、口播和畫面裡都不出現網址和站外帳號,不說"去某網站看""搜尋某某"。可以引導評論、關注、看合集。
- 用了 AI 配音、AI 畫面或數位人,就做 AI 聲明;code-video 的配音是 AI 合成的,用它做的影片都要聲明。各平台的選項名見
references/platform-rules.md。
二、填表單
各平台的選擇器、坑和做法:
- 抖音創作者中心:
references/douyin.md - 影片號助手:
references/weixin.md - 小紅書創作服務平台:
references/xiaohongshu.md
規矩
- 不替使用者發布。 填完停在發布按鈕前,等使用者檢查。只有使用者對這一條明確說"發布"之後才點;對上一條的授權不延續到下一條。
- 點了發布之後,核對作品列表裡出現了新作品、合集集數和期號對得上,再把發布時間記進
post.md。 - 不修改、不刪除平台上已經發布的內容,除非使用者要求。
- 位置、合集、活動這類每次都可能變的項,沒有定論就問使用者。
- 只關自己開的標籤頁。標籤頁裡有還沒發布的表單時,不重載、不在這個標籤頁上跑別的腳本。
接上瀏覽器
需要 playwright-cli 和它配套的 Chrome 擴充,使用者在 Chrome 裡已登入各平台的創作者後台。
playwright-cli -s=chrome attach --extension=chrome # 使用者在擴充彈出的頁面上點允許
playwright-cli -s=chrome tab-new <發布頁網址>
playwright-cli -s=chrome tab-list
playwright-cli -s=chrome tab-select <序號> # tab-new 不會切換 run-code 的目標頁
playwright-cli -s=chrome --raw run-code --filename=<腳本.js>
playwright-cli -s=chrome screenshot --filename=<圖.png>
run-code 的腳本是一個 async page => { … } 表達式,回傳值會列印出來。連線斷開後重新 attach,之前開的標籤頁會一起消失,表單要從頭填。
通用做法
- 每個腳本開頭先
await page.bringToFront()。 使用者同時在用 Chrome 時,發布頁常被切到背景,拖放和點擊會一直等到超時;超時前排隊的鍵盤輸入會在頁面回到前景後補打進去,把描述弄亂。出過超時就先清空描述框再重填。 - 一步一個腳本,做完就核對。 每步結束讀一下相關區域的
innerText或截一張圖,確認值真的變了,再做下一步。 - 上傳影片:先試
playwright-cli -s=chrome drop "<上傳區選擇器>" --path=<mp4>。拖放不觸發上傳的平台,用scripts/裡的注入腳本:它把檔案轉成 base64 寫進一段run-code腳本,用DataTransfer放進 file input 並派發change。擴充模式下setInputFiles和檔案選擇框都用不了。 - 上傳封面:先打開封面彈窗,再執行注入腳本。三個平台都要兩張:4:3 橫封面和 3:4 豎封面。直接用 16:9 封面會被裁掉標題。
- 下拉框和搜尋框:很多輸入框只在下拉展開時可見。
fill和click報"element is not visible"時,先點顯示當前值的那個框(必要時用boundingBox或在evaluate裡取座標再page.mouse.click),等輸入框出現再輸入。需要觸發搜尋的框要逐字keyboard.type,fill不觸發。 - 選下拉項要精確:用完整文字匹配,或在
evaluate裡找innerText完全相等、且在下拉區域內可見的元素再點座標。按部分文字過濾容易點到外層容器,選中別的項。選完讀一遍當前值。 - 只在懸停時出現的按鈕:先
page.mouse.move到卡片上,等半秒,再點按鈕的位置。 - 英文選項:有的平台選項顯示成英文(影片號的影片標註),按頁面上實際顯示的文字選。
發布後
在抖音資料中心看"搜尋詞"和流量來源裡的搜尋佔比,對照這次選的詞。改過寫法的影片要記下來,下次比較時才分得清是哪一處起了作用。每天的資料可以用 video-data skill 採集。
交付時要說明的
- 文案主打的意圖、用了哪些聯想詞、哪些詞沒接以及原因。
- 每個平台填了什麼:標題、話題個數、封面、合集和集數、位置、聲明、熱點或活動。
- 停在了哪一步,哪些項沒填或和文案不一致,原因是什麼。
- 如果點了發布:發布時間、作品列表核對結果、合集集數。