指南

TikTok LIVE WebSocket API

透過 WebSocket 連上任何 TikTok LIVE 直播。即時接收聊天訊息、禮物、觀看人數、PK 和互動資料。任何程式語言都能用。

TikTok LIVE WebSocket 怎麼運作

TikTool 在 wss://api.tik.tools 提供代管的 WebSocket 端點,串流任何 TikTok LIVE 直播的即時事件。你只要帶 API 金鑰和 TikTok 使用者名稱連線,協定協商、驗證和重新連線的邏輯全部由伺服器處理。

直接用協定連 TikTok 的直播基礎設施常常會壞掉,TikTool 的 WebSocket API 則是穩定、正式環境等級的中繼服務。

快速開始 - 3 行就連上

JavaScript / Node.js

import { TikTokLive } from '@tiktool/live'

const client = new TikTokLive({ uniqueId: 'streamer_username', apiKey: 'YOUR_KEY' })
client.on('chat', e => console.log(`${e.user.uniqueId}: ${e.comment}`))
client.connect()

也可以直接用原生 WebSocket 連線(不需要 SDK):

const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY')

ws.onmessage = (msg) => {
  const event = JSON.parse(msg.data)
  console.log(event.event, event.data)
}

Python

import asyncio, websockets, json

async def connect():
    uri = "wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY"
    async with websockets.connect(uri) as ws:
        async for message in ws:
            event = json.loads(message)
            print(event["event"], event.get("data", {}))

任何語言

任何支援 WebSocket 的語言都行:Go、Rust、Java、C#、Ruby、PHP。只要連到:

wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEY

WebSocket 連線參數

參數必填說明
uniqueId✓直播主的 TikTok 使用者名稱(不含 @)
apiKey✓你的 TikTool API 金鑰
jwtKeyJWT 驗證(給使用權杖的瀏覽器用戶端,可取代 apiKey)

事件類型

每則 WebSocket 訊息都是一個含 event 和 data 欄位的 JSON 物件。以下是你會收到的事件:

chat

觀眾發出新的聊天訊息。包含使用者資訊、訊息內容和徽章。

gift

觀眾送出直播禮物。包含禮物名稱、鑽石價值和連送次數。

like

觀眾按讚直播。包含總按讚數。

member

觀眾加入直播。使用者進入直播間時觸發。

social

追蹤 / 分享 / 收藏。data.action 欄位會告訴你是哪一種(follow、share、favourite)。

roomUserSeq

觀看人數更新。包含目前的 viewerCount 和 topViewers。

subscribe

觀眾訂閱了直播主。

battle

連線 PK 事件。包含 PK 狀態、分數、時長和參與者。

battleArmies

PK 隊伍更新。隊伍分數和參與者排名。

linkMic

連線來賓版面更新。包含多人直播的座位 / 來賓使用者 ID。

roomPin

直播主置頂了一則聊天訊息。

liveIntro

直播簡介更新。包含直播標題和說明。

emoteChat

聊天中送出的自訂表情。包含表情 ID 和圖片網址。

envelope

直播中的寶箱 / 紅包事件。

question

觀眾提出的問答題。

rankUpdate

直播主各地區排名刷新。

barrage

畫面上方的彈幕 / 公告訊息。

superFan

觀眾成為超級粉絲或升級。包含新等級。

superFanJoin

超級粉絲進入直播間。

superFanBox

超級粉絲寶箱 / 獎勵事件。

control

直播生命週期控制(暫停、結束等)。

各方案連線上限

方案連線數價格
Sandbox(7 天評估)3Sandbox 方案
Pro50$15/週起
Ultra250$45/週起
Agency Global500 + Firehose$119/週起

錯誤處理與重新連線

WebSocket 會以標準關閉代碼關閉,你的用戶端應該處理重新連線:

// Auto-reconnect pattern (Node.js)
function connect() {
  const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=KEY')

  ws.onmessage = (msg) => {
    const event = JSON.parse(msg.data)
    // Process event
  }

  ws.onclose = (e) => {
    console.log(`Disconnected (${e.code}). Reconnecting in 3s...`)
    setTimeout(connect, 3000)
  }

  ws.onerror = (err) => {
    console.error('WebSocket error:', err.message)
    ws.close()
  }
}

connect()

常見問題

怎麼透過 WebSocket 連上 TikTok 直播?

哪些程式語言可以用 TikTok LIVE WebSocket?

TikTok LIVE WebSocket API 免費嗎?

這跟開源直播函式庫有什麼不同?

WebSocket 連線的延遲是多少?