threads-skills — Threads 平台全自動化套件
基於 Chrome CDP 驅動真實瀏覽器,涵蓋認證、抓取、發布、互動、篩選、批量回覆、運營工作流全套能力。
所有 AI 生成內容一律使用繁體中文,政治相關帖子直接跳過。
前置條件:啟動 Chrome
所有命令依賴 Chrome 調試端口,使用前確認 Chrome 已運行:
python scripts/chrome_launcher.py
一、認證與帳號管理
登錄狀態
python scripts/cli.py check-login
python scripts/cli.py login # 瀏覽器打開登錄頁,手動完成
python scripts/cli.py delete-cookies # 退出 / 切換帳號
多帳號
python scripts/cli.py add-account --name "work" --description "工作號"
python scripts/cli.py list-accounts
python scripts/cli.py set-default-account --name "work"
python scripts/cli.py remove-account --name "work"
python scripts/cli.py --account work check-login # 指定帳號執行任意命令
決策邏輯:
- 其他操作報「未登錄」→ 先
check-login,未登錄則執行login - 用戶說「退出」/「切換帳號」→
delete-cookies後login - 用戶說「換個號操作」→
--account <name>參數,無需重新登錄
二、內容瀏覽與抓取
首頁 Feed
python scripts/cli.py list-feeds
python scripts/cli.py list-feeds --limit 50 # 自動滾動直到湊滿
搜索
python scripts/cli.py search --query "AI"
python scripts/cli.py search --query "Python" --type recent # 最新
python scripts/cli.py search --query "tech" --type profiles # 只搜用戶
python scripts/cli.py search --query "設計" --limit 10
帖子詳情 / 用戶主頁
python scripts/cli.py get-thread --url "https://www.threads.net/@user/post/xxx"
python scripts/cli.py user-profile --username "@someuser" --limit 20
python scripts/cli.py user-replies --username "@someuser" --limit 30
決策邏輯:
- 用戶說「首頁」/「刷一下」→
list-feeds - 用戶提供關鍵詞說「搜索」→
search --query 關鍵詞(最新加--type recent,找人加--type profiles) - 用戶提供 Thread URL →
get-thread --url URL - 用戶提供用戶名 →
user-profile --username 用戶名 - 用戶說「歷史回覆」→
user-replies --username 用戶名
三、發帖
分步發布(推薦,可在瀏覽器預覽後確認)
python scripts/cli.py fill-thread --content "今天天氣真好 ☀️"
python scripts/cli.py fill-thread --content "今天的風景" --images "/path/photo.jpg"
python scripts/cli.py click-publish # 用戶在瀏覽器確認後執行
一步發布
python scripts/cli.py post-thread --content "Hello Threads!"
python scripts/cli.py post-thread --content "今天的照片" --images "/path/photo1.jpg" "/path/photo2.jpg"
規則: 字符上限 500,圖片最多 10 張(JPG/PNG/GIF/WEBP),路徑必須為絕對路徑。
決策邏輯:
- 用戶提供內容 → 默認分步:
fill-thread預覽,詢問確認後click-publish - 用戶說「直接發」→
post-thread,無需再次確認 - 內容超 500 字符 → 提示精簡或拆分
四、社交互動
python scripts/cli.py like-thread --url URL # 點讚(再次調用則取消)
python scripts/cli.py repost-thread --url URL # 轉發
python scripts/cli.py reply-thread --url URL --content "回覆內容"
python scripts/cli.py follow-user --username "@user"
python scripts/cli.py list-replied # 查看已回覆記錄
防重複回覆: 系統自動記錄已回覆帖子(~/.threads/replied_posts.json),對同一帖子不會重複回覆。
批量互動: 每次操作間隔 ≥ 3 秒,單次會話點讚 ≤ 50,關注 ≤ 20。
決策邏輯:
- 遇到政治相關帖子 → 直接跳過,告知用戶
- 所有互動操作直接執行,完成後彙報結果
五、批量回覆助手
需要 tkinter:
brew install python-tk(macOS)
第一步:準備帖子 JSON 文件
import json, tempfile, pathlib
posts = [...] # 從 list-feeds / search 取出的帖子子集
tmp = pathlib.Path(tempfile.mktemp(suffix=".json", prefix="threads_batch_"))
tmp.write_text(json.dumps(posts, ensure_ascii=False), encoding="utf-8")
print(tmp)
第二步:啟動助手
# GUI 彈窗版
uv run python scripts/reply_assistant.py --posts-file /tmp/threads_batch_xxx.json
# 終端交互版(tkinter 不可用時)
uv run python scripts/reply_assistant_cli.py --posts-file /tmp/threads_batch_xxx.json
# 多帳號
uv run python scripts/reply_assistant.py --posts-file /tmp/... --account myaccount
彈窗操作: 發布(Ctrl+Enter)/ 跳過(Esc)/ 結束
第三步:讀取結果
{ "total": 10, "replied": 3, "skipped": 5, "already_replied": 2, "replied_ids": [...] }
六、智能篩選(三維評分)
三源採集(Feed + 關鍵詞 + 對標帳號)→ Python 評分腳本 → 輸出評論候選列表
首次配置
觸發條件:~/.threads-filter-comment.json 不存在,或用戶說「重新配置篩選」
向導步驟:
- 高優先核心詞(韓國、首爾等)+ 一般關鍵詞
- 排除詞庫(競品名稱、廣告詞等)
- AI 配置(api_url / api_key / model,可選)
執行篩選
FILTER_SCRIPT=~/Desktop/threads-filter-comment/filter-comment.py
# 三源模式
python3 "$FILTER_SCRIPT" \
--feed-file /tmp/threads-filter/feed.json \
--keyword-file /tmp/threads-filter/keyword.json \
--benchmark-file /tmp/threads-filter/benchmark.json \
> /tmp/threads-filter/result.json
# 僅 Feed 模式
python3 "$FILTER_SCRIPT" --feed-file /tmp/threads-filter/feed.json > /tmp/threads-filter/result.json
# 關閉 AI 快速模式
python3 "$FILTER_SCRIPT" --no-ai --feed-file ... --keyword-file ... > /tmp/threads-filter/result.json
三維評分(真實 Python 代碼,非估算)
| 維度 | 滿分 | 計算方式 |
|---|---|---|
| 互動分 | 40 | 歸一化(點讚 + 回覆×2 + 轉發×3) |
| 跨源分 | 35 | 三源都出現 35 / Feed+對標 22 / 僅 Feed 10 |
| 時效分 | 25 | 0-6h 滿分 → 48h+ 最低 |
決策邏輯:
- 用戶說「篩選帖子」→ 先採集三源,再呼叫評分腳本,最後呈現候選列表
- 用戶說「不用 AI,只做關鍵詞篩選」→ 加
--no-ai - 篩選完成後 → 結果交給互動命令執行
reply-thread
七、複合運營工作流
推廣型評論(定時任務場景)
# 抓帖
python scripts/cli.py --account account2 list-feeds --limit 15
# 兩層篩選:關鍵詞規則(零延遲)→ 只對命中的 1 條調用 AI 生成評論
# 評論風格:先呼應帖子 1 句,再帶出話題 1 句,50–150 字符,禁止硬廣詞彙
# 發布評論
python scripts/cli.py --account account2 reply-thread --url URL --content "評論內容"
競品分析
python scripts/cli.py user-profile --username "@competitor" --limit 10
# → 提取 likeCount / replyCount / repostCount → 彙總平均互動、最高互動內容、發帖頻率
熱點追蹤
python scripts/cli.py search --query "關鍵詞" --type recent --limit 20
# → 按 likeCount 排序 → 提取熱門內容和話題標籤
運營規範:
| 規則 | 說明 |
|---|---|
| 操作頻率 | 點讚/回覆間隔 ≥ 3 秒,關注間隔 ≥ 5 秒 |
| 批量上限 | 單次點讚 ≤ 50,關注 ≤ 20 |
| 內容長度 | 帖子/回覆 ≤ 500 字符 |
| 發文確認 | 發帖前展示預覽,等待確認;回覆直接執行 |
| 政治內容 | 遇到政治相關帖子直接跳過 |
故障排除
| 錯誤 | 原因 | 處理 |
|---|---|---|
| 連接 Chrome 失敗 | Chrome 未啟動 | python scripts/chrome_launcher.py |
| 未登錄 | Cookie 過期 | python scripts/cli.py login |
| 發布失敗 | 選擇器失效 | python scripts/inspector.py 重新探查 |
| 頻率限制 | 操作過於頻繁 | 等待 5-10 分鐘後重試 |
| tkinter 無法導入 | 缺少依賴 | brew install python-tk |