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", {}))どの言語でも
Go、Rust、Java、C#、Ruby、PHPなど、WebSocketに対応した言語ならどれでも動きます。接続先はこちら:
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEYWebSocket接続のパラメーター
uniqueId✓配信者のTikTokユーザー名(@なし)apiKey✓TikToolのAPIキーjwtKeyJWTベースの認証(トークン化されたブラウザクライアント向けの、apiKeyの代わり)イベントの種類
WebSocketのメッセージはすべて、eventとdataのフィールドを持つJSONオブジェクトです。受信するイベントは次のとおりです:
chat視聴者からの新しいチャットメッセージ。ユーザー情報、メッセージ本文、バッジを含みます。
gift視聴者が送ったバーチャルギフト。ギフト名、ダイヤモンド価値、連続送信数を含みます。
like視聴者が配信にいいねしました。いいねの総数を含みます。
member視聴者が配信に入室しました。ユーザーがLIVEルームに入ったときに発火します。
socialフォロー / シェア / お気に入り。data.actionフィールドでどれか(follow、share、favourite)が分かります。
roomUserSeq視聴者数の更新。現在のviewerCountとtopViewersを含みます。
subscribe視聴者が配信者をサブスクしました。
battleLinkMicのバトルイベント。バトルの状態、スコア、時間、参加者を含みます。
battleArmiesバトルのアーミー更新。チームのスコアと参加者の順位。
linkMicLinkMicのゲストレイアウト更新。マルチホスト配信のスロット/ゲストのユーザーIDを含みます。
roomPin配信者がチャットメッセージをピン留めしました。
liveIntro配信紹介の更新。配信タイトルと説明を含みます。
emoteChatチャットで送られたカスタムスタンプ。スタンプIDと画像URLを含みます。
envelope配信内の宝箱 / お年玉イベント。
question視聴者が投稿したQ&Aの質問。
rankUpdate配信者の地域別順位の更新。
barrage画面上部の弾幕/お知らせメッセージ。
superFan視聴者がスーパーファンになったか、レベルアップしました。新しいレベルを含みます。
superFanJoinスーパーファンがルームに入室しました。
superFanBoxスーパーファンのボックス / 報酬イベント。
control配信のライフサイクル制御(一時停止、終了など)。
プラン別の接続上限
エラー処理と再接続
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()