TikTok LIVE APIとは?
TikTokは、チャット、ギフト、視聴者数といったLIVE配信データ向けの公開APIを提供していません。TikTok Business APIが対象とするのは広告とショップの分析だけです。リアルタイムのLIVEデータを扱うために、開発者はサードパーティのAPIを利用しています。
オープンソースライブラリのtiktok-live-connector(Node.js)とTikTokLive(Python)はMITライセンスで、無料で利用できます。これらはTikTokの署名処理をバックエンドに任せる設計で、従来のデフォルトの一つは、同じライブラリを開発しているチームによる有料の署名サービスです。
TikToolは独自の署名インフラを持つ独立した代替サービスです。フルマネージドのAPIなので、接続の維持と認証はすべてこちら側で処理します。一つのWebSocket接続で90+種類のイベントを受信できます。チャット、ギフト、いいね、フォロー、視聴者、バトルなどです。Node.jsとPythonの公式SDKを用意。Sandboxプランはクレジットカード不要です。
TikTok LIVE APIの仕組み
TikToolは、あなたのアプリケーションとTikTokのLIVE配信インフラの間に入ります。構成は次のとおりです。
アプリが接続
アプリがTikTokのユーザー名とAPIキーを使ってwss://api.tik.toolsへのWebSocketを開きます。
TikToolがルームを特定
TikToolがルームIDを特定し、認証とチャレンジを処理して、LIVE配信に参加します。
イベントを配信
リアルタイムのイベント(チャット、ギフト、視聴者など)が、解析・構造化・型付け済みのクリーンなJSONとしてアプリに届きます。
TikTokのプロトコルを直接扱う必要はありません。TikTokが内部システムを変更しても(頻繁に起こります)、TikToolが対応するため、あなたのコードは変更なしで動き続けます。
クイックスタート - Node.js / TypeScript
npmから公式SDKをインストールします。
npm install @tiktool/liveLIVE配信に接続してイベントを受信します。
import { TikTokLive } from '@tiktool/live';
const client = new TikTokLive({
uniqueId: 'streamer_username',
apiKey: 'YOUR_API_KEY' // Get free key → https://tik.tools
});
client.on('chat', (event) => {
console.log(`${event.user.uniqueId}: ${event.comment}`);
});
client.on('gift', (event) => {
console.log(`${event.user.uniqueId} sent ${event.giftName} (${event.diamondCount} diamonds)`);
});
client.on('roomUserSeq', (event) => {
console.log(`${event.viewerCount} viewers watching`);
});
client.connect();TypeScriptに完全対応。すべてのイベントの種類、フィールド、パラメーターに型が付いており、IDEで補完が効きます。Node.jsガイドを読む →
クイックスタート - Python
PyPIからインストールします。
pip install tiktok-live-apiSDKで接続し、デコレーターでハンドラーを登録します。
from tiktok_live_api import TikTokLive
client = TikTokLive("streamer_username", api_key="YOUR_API_KEY") # Get free key at https://tik.tools
@client.on("chat")
def on_chat(event):
print(f"{event['user']['uniqueId']}: {event['comment']}")
@client.on("gift")
def on_gift(event):
print(f"{event['user']['uniqueId']} sent {event['giftName']} ({event['diamondCount']} diamonds)")
@client.on("roomUserSeq")
def on_viewers(event):
print(f"{event['viewerCount']} viewers watching")
client.run() # blocks; reconnects automaticallyasyncioを使いたい場合は、await client.connect()で同じクライアントを自分のイベントループ内で実行できます。キーは環境変数TIKTOOL_API_KEYから渡すこともできます。
クイックスタート - WebSocket直接接続(全言語対応)
WebSocketに対応した言語なら何でも使えます。Go、Rust、Java、C#、Ruby、PHP、Dart、Kotlin、Swiftなど。接続先は次のとおりです。
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEYすべてのメッセージはeventとdataのフィールドを持つJSONオブジェクトです。構造化されたクリーンなデータなので、バイナリの解析は不要です。WebSocket APIリファレンス →
イベントの種類一覧
TikTok LIVE APIは、どのLIVE配信からも18種類以上のイベントをリアルタイムで配信します。
chat視聴者からのチャットメッセージ。ユーザー情報、コメント本文、エモート、バッジを含みます。
gift視聴者が贈ったギフト。ギフト名、ダイヤモンド価値、連続回数、コンボ状態を含みます。
like視聴者が配信にいいねしました。イベントごとの数と合計いいね数を含みます。
member視聴者がLIVEルームに入室しました。ユーザーが配信に入ると発生します。
follow視聴者がLIVE配信中に配信者をフォローしました。
share視聴者がLIVE配信を友達にシェアしました。
subscribe視聴者が配信者のLIVEサブスクリプションに登録しました。
roomUserSeq視聴者数の更新。現在の視聴者数と上位視聴者のリストです。
battleバトル / LinkMicイベント。バトルの状態、チーム、スコア、参加者。
battleArmiesバトルのチームスコアと参加者ランキングの更新。
roomPin配信者がチャットメッセージをピン留め、またはスター付けしました。
captionTikTokネイティブの配信自動字幕。フレームごとに一つの字幕ウィンドウ。
envelope配信内の宝箱またはエンベロープのイベント。
emote視聴者がチャットで送ったカスタムエモート。
liveIntro配信紹介の更新。タイトルと説明の変更。
streamEndLIVE配信が終了しました。理由コードを含みます。
connectedTikTok LIVE配信への接続に成功しました。
error接続エラーが発生しました。エラーの詳細を含みます。
何が作れる?
チャットアシスタント
視聴者のメッセージ、コマンド、ギフトにリアルタイムで反応する自動チャットアシスタントを作成できます。
分析
複数の配信にわたって、視聴者数、エンゲージメント率、ギフト収益、チャットの活発さを追跡できます。
インタラクティブゲーム
視聴者がギフト、チャットコマンド、いいねでゲームを操作できるようにします。
配信オーバーレイ
チャット、ギフト通知、視聴者の統計を表示するOBS / Streamlabs用オーバーレイを作成できます。
クリエイタースカウト
クリエイターランキング、トップギフター、リーグ順位を追って、才能を発掘・育成できます。
モバイルアプリ
TikTok LIVE配信を監視し、連携するモバイルアプリを作成できます。
TikTool vs Euler Stream vs tiktok-live-connector
オープンソースのtiktok-live-connector(Node.js)とTikTokLive(Python)は、Euler Streamを運営するチームがメンテナンスしています。MITライセンスのクライアントとマネージド署名バックエンドからなる、サポートの充実したエコシステムです。TikToolは独自の署名インフラを持つ独立したマネージド型の代替サービスで、機能の重点が異なります。
eulerstream料金と無料プラン
TikTok LIVE APIを無料で使い始められます。クレジットカードは不要です。