ガイド

TikTok LIVE WebSocket API

WebSocketでどのTikTok LIVE配信にも接続。チャットメッセージ、ギフト、視聴者数、バトル、エンゲージメントのデータを50ms未満のレイテンシでリアルタイムに受信できます。どのプログラミング言語でも使えます。

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_KEY

WebSocket接続のパラメーター

パラメーター必須説明
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

視聴者が配信者をサブスクしました。

battle

LinkMicのバトルイベント。バトルの状態、スコア、時間、参加者を含みます。

battleArmies

バトルのアーミー更新。チームのスコアと参加者の順位。

linkMic

LinkMicのゲストレイアウト更新。マルチホスト配信のスロット/ゲストのユーザーIDを含みます。

roomPin

配信者がチャットメッセージをピン留めしました。

liveIntro

配信紹介の更新。配信タイトルと説明を含みます。

emoteChat

チャットで送られたカスタムスタンプ。スタンプIDと画像URLを含みます。

envelope

配信内の宝箱 / お年玉イベント。

question

視聴者が投稿したQ&Aの質問。

rankUpdate

配信者の地域別順位の更新。

barrage

画面上部の弾幕/お知らせメッセージ。

superFan

視聴者がスーパーファンになったか、レベルアップしました。新しいレベルを含みます。

superFanJoin

スーパーファンがルームに入室しました。

superFanBox

スーパーファンのボックス / 報酬イベント。

control

配信のライフサイクル制御(一時停止、終了など)。

プラン別の接続上限

プラン接続数料金
Sandbox(無料)15Sandboxプラン
Pro50$15/週から
Ultra250$45/週から
Agency500 + 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接続のレイテンシはどのくらいですか?