TikTok LIVEチャットボットを作る
どのTikTok LIVE配信からも、チャット、ギフト、入室のイベントをすべて読み取り、自分のアプリでコマンドに反応できます。Node.jsかPythonで、60行未満のコードで動きます。
SDKをインストール
パッケージは一つだけ。ビルド不要。Node 18+かPython 3.9+の環境ならどこでも動きます。
npm install @tiktool/live認証情報を設定
必要なものは一つだけです:
- APIキー - ダッシュボードから取得。配信一つなら無料プランで十分です。
export TIKTOOL_API_KEY="tk_yourkey"
export TIKTOK_USERNAME="target_streamer"ボットを書く
チャット、ギフト、入室、いいねを受け取ります。!helloと!pingのコマンドには、オーバーレイ、サウンド、Webhookなど自分で決めたアクションで反応します。
// bot.mjs
import { TikTokLive } from '@tiktool/live'
const USERNAME = process.env.TIKTOK_USERNAME
const API_KEY = process.env.TIKTOOL_API_KEY
// Your reaction to a command: trigger an overlay, play a sound, call a webhook.
function onCommand(name, user) {
console.log(`command ${name} from @${user}`)
}
const client = new TikTokLive({ uniqueId: USERNAME, apiKey: API_KEY })
client.on('connected', e => console.log(`connected to room ${e.roomId}`))
client.on('chat', e => {
console.log(`@${e.user.uniqueId}: ${e.comment}`)
if (e.comment.toLowerCase() === '!hello') onCommand('hello', e.user.uniqueId)
if (e.comment.toLowerCase() === '!ping') onCommand('ping', e.user.uniqueId)
})
client.on('gift', e => console.log(`gift: ${e.user.uniqueId} → ${e.giftName} (${e.diamondCount}💎)`))
client.connect()実行
ボットは止めるまで接続し続けます。再接続の処理はSDKに組み込まれています。
node bot.mjsどのTikTokアカウントからでも、配信者のチャットに!helloか!pingと入力すると、ボットがあなたのアカウントとして返信します。
あらかじめ考慮すべき制限
以下はすべてTikTokがアカウント/IPに対して課している制限で、tik.toolsが解除できるものではありません。これらを踏まえてボットのロジックを組んでください。
配信ごとの毎分のイベント数
大物クリエイター(視聴者1M+)の配信では、毎分数万件のイベントが流れます。ボットは余裕を持って処理する必要があり、チャットのたびにイベントループを止めてはいけません。重い処理は捨てるかキューに入れてください。
LIVEが終わるとセッションも終了
配信者がLIVEを終了するとWebSocketが閉じ、SDKがdisconnectedを発火します。配信者が再び配信を始めたら再接続してください。tik.tools/api/live/check-liveをポーリングするか、Webhookを使います。
TikTokの公認ではありません
これは非公式の連携です。ボットには専用のTikTokアカウントを使い、メインアカウントと混ぜないでください。クリエイターになりすますのも禁止です。ボットがスパムのように見えると、TikTokがアカウントを停止することがあります。