TTWChatMessageServer 是一個聊天室訊息服務器,可對接 TikTok 與 Twitch 的直播聊天室訊息,支援以下功能:
- 即時接收聊天室訊息
- 支援禮物、關注、加入、分享等事件
- 可推送到 Bark 或 Socket
- 可透過簡單 HTTP 接口開關服務
- 可透過簡單 HTTP 接口快速修改BARK/SocketAPI配置
npm install在 TikTok.js 目錄下建立 .env,可參考範例:
或者參考Docs/envExample
# Twitch 設定
CLIENT_ID=你的Twitch Client ID
CLIENT_SECRET=你的Twitch Client Secret
# EulerStream API 簽名API (TikTok用)
SIGN_API=你的簽名API
# TikTok 設定
TIKTOK_NAME=coffeelatte0709
SESSION_ID=你的TikTok sessionid
TT_TARGET_IDC=你的TikTok Target IDC
# 推送設定
BARK_API=https://api.day.app/你的BarkKey
SOCKET_API=http://192.168.0.195:9322用於 Twitch OAuth,初始內容可為:
可參閱Docs/tokens.json
{
"accessToken": "",
"refreshToken": "",
"scope": [
"bits:read",
"channel:read:goals",
"channel:read:redemptions",
"channel:read:subscriptions",
"chat:read",
"clips:edit",
"moderator:read:followers",
"user:read:chat"
],
"expiresIn": 0,
"obtainmentTimestamp": 0
}http://localhost:3332/helphttp://localhost:3332/open?isSocket=1&isTwitch=1&isTK=1&isBark=1參數說明:
| 參數 | 說明 |
|---|---|
| user | TikTok 或 Twitch 用戶名稱,若不設預設使用 .env 的值 |
| isTK=1 | 啟用 TikTok 直播聊天室 |
| isTwitch=1 | 啟用 Twitch 直播聊天室 |
| isBoth=1 | 同時啟用 TikTok + Twitch |
| isBark=1 | 啟用 Bark 推送通知 |
| isSocket=1 | 啟用 Socket 訊息推送 |
| isRepeat=1 | 啟用WebServer重複訊息檢查 |
| isDelay=1 | 啟用等待2秒再檢查後發出 |
| isWeb=1 | 啟用補釘服務器 給UserScript轉接用 |
範例:
http://localhost:3332/open?user=coffeelatte0709&isTK=1&isBark=1http://localhost:3332/close會嘗試優雅關閉子進程,並發送最後一條訊息。
-
一次性狀態查詢
```bash http://localhost:3332/status ``` -
實時 SSE 狀態
```bash http://localhost:3332/status/stream ``` 預設根目錄就是SSE查詢 展示 ```bash http://localhost:3332/ ```
可快速修改 .env 的 BARK_API 與 SOCKET_API:
http://localhost:3332/config表單提交後會立即更新 process.env,下一次 /open 將生效
所有運行日誌會在瀏覽器根目錄 SSE 頁面即時顯示,也會輸出到控制台
-
修改 .env 後,需要重新 /open 才能讓新設定生效
-
本服務適合內網或私人環境使用,未加密認證
-
TikTok session 過期需重新抓取
補釘服務器 是專門用來接收 UserScript 所轉發的直播頁面訊息。
當你透過 Restream / Streamlabs 等工具推流到 TikTok 時
在對應的管理後台中會出現一個 TikTok Live Monitor 入口 之類的。
點擊後會開啟官方的直播監聽頁面, 最終頁面實際運行於:
在這個頁面中,你可以查看:
- 觀眾數
- 直播時長
- 禮物資訊
- 聊天室訊息(最重要)
-
直接監聽 DOM 內聊天室訊息的新增
-
即時抓取頁面上實際渲染出的聊天內容
-
將訊息轉送至補釘服務器(WebSocket.js)
-
再由補釘服務器分發給你的本地應用或推流系統
這種方式從根本上解決了:
第三方 TikTok Live API / Library 可能漏訊息的問題
- 你抓的是「官方頁面實際顯示的內容」
- 只要頁面能看到,腳本就一定能抓到
- 不依賴非官方 WebSocket 協議
- 不會因為封包解析錯誤而漏訊
這是「基於官方直播頁面實際渲染結果」的資料來源 準確度最高,幾乎不會遺漏。
TikTok Live 推流
↓
livecenter.tiktok.com(官方頁面)
↓
UserScript 監聽 DOM 變化
↓
WebSocket.js 補釘服務器
↓
你的本地應用 / PiP 聊天室 / 直播系統目前 UserScript 僅處理聊天室訊息(Chat Messages)
以下事件尚未納入處理範圍:
- 送禮事件(Gift)
- 使用者加入直播間(Join)
- 其他系統事件
現階段,UserScript 的角色是:
作為輔助訊息來源(Fallback / Patch Layer)
主要用來彌補第三方 TikTok Live API 在實際使用中 偶爾出現聊天室訊息遺漏 的問題。
運作方式為:
- 第三方 TikTok Live API → 作為主要資料來源
- UserScript(監聽官方頁面 DOM) → 作為補強與校正來源
後續可考慮:
- 將送禮、加入等事件一併納入監聽
- 逐步完整遷移至「頁面監聽方案」
- 最終降低甚至完全移除對第三方 TikTok Live API 的依賴