Pourquoi Node.js ?
Node.js est le runtime le plus utilisé pour les intégrations TikTok LIVE. Le SDK officiel @tiktool/live est écrit en TypeScript, publié sur npm et inclut les définitions de types complètes dès l'installation. Tu as :
- Typage sûr - définitions TypeScript complètes pour chaque événement et chaque méthode
- Reconnexion automatique - le SDK gère automatiquement les connexions perdues
- Orienté événements - le pattern
.on('event', handler)que tu connais - Fonctionne partout - Node.js 18+, Bun, Deno
Installe le SDK
npm install @tiktool/liveOu avec d'autres gestionnaires de paquets :
# Yarn
yarn add @tiktool/live
# pnpm
pnpm add @tiktool/live
# Bun
bun add @tiktool/liveDémarrage rapide : 3 lignes pour des données live
Crée app.mjs et colle :
import { TikTokLive } from '@tiktool/live'
const client = new TikTokLive({
uniqueId: 'tv_asahi_news', // TikTok username (without @)
apiKey: process.env.TIKTOOL_API_KEY
})
client.on('chat', (event) => {
console.log(`${event.nickname}: ${event.comment}`)
})
await client.connect()Lance-le :
TIKTOOL_API_KEY=your_api_key node app.mjsTu verras les messages du chat défiler dans ton terminal en quelques secondes.
Tous les événements disponibles
Le SDK émet des événements structurés pour chaque interaction sur le stream :
import { TikTokLive } from '@tiktool/live'
const client = new TikTokLive({
uniqueId: 'target_username',
apiKey: process.env.TIKTOOL_API_KEY
})
// Chat messages
client.on('chat', (event) => {
console.log(`[CHAT] ${event.nickname}: ${event.comment}`)
})
// Virtual gifts (Rose, Universe, etc.)
client.on('gift', (event) => {
console.log(`[GIFT] ${event.nickname} sent ${event.giftName} (${event.diamondCount} 💎)`)
})
// New followers
client.on('follow', (event) => {
console.log(`[FOLLOW] ${event.nickname} just followed!`)
})
// Likes
client.on('like', (event) => {
console.log(`[LIKE] ${event.nickname} liked (total: ${event.totalLikeCount})`)
})
// Viewer count changes
client.on('viewer_count', (event) => {
console.log(`[VIEWERS] ${event.viewerCount} watching`)
})
// Member joins (someone enters the stream)
client.on('member', (event) => {
console.log(`[JOIN] ${event.nickname} joined the stream`)
})
// Share events
client.on('share', (event) => {
console.log(`[SHARE] ${event.nickname} shared the stream`)
})
await client.connect()
console.log('✅ Connected and listening!')Sortie attendue
✅ Connected and listening!
[VIEWERS] 3,412 watching
[CHAT] viewer_1: Hello everyone! 👋
[FOLLOW] new_fan just followed!
[GIFT] whale_user sent Universe (34,000 💎)
[LIKE] cool_viewer liked (total: 12,847)
[CHAT] fan_123: Love this stream!
[JOIN] curious_viewer joined the stream
[SHARE] supporter_1 shared the streamPrise en charge de TypeScript
Le SDK est écrit en TypeScript. Les types sont inclus automatiquement - pas besoin de paquet @types :
import { TikTokLive } from '@tiktool/live'
import type { ChatEvent, GiftEvent } from '@tiktool/live'
const client = new TikTokLive({
uniqueId: 'target_username',
apiKey: process.env.TIKTOOL_API_KEY
})
client.on('chat', (event: ChatEvent) => {
// event.comment, event.nickname, event.userId - all typed
console.log(event.nickname, event.comment)
})
client.on('gift', (event: GiftEvent) => {
// event.giftName, event.diamondCount, event.repeatCount - all typed
if (event.diamondCount >= 100) {
console.log(`Big gift from ${event.nickname}!`)
}
})
await client.connect()WebSocket brut (sans SDK)
Tu préfères utiliser directement le WebSocket brut ? Il fonctionne avec n'importe quel langage ou framework :
import WebSocket from 'ws' // npm install ws
const ws = new WebSocket(
'wss://api.tik.tools?uniqueId=tv_asahi_news&apiKey=YOUR_API_KEY'
)
ws.on('message', (raw) => {
const msg = JSON.parse(raw.toString())
switch (msg.event) {
case 'chat':
console.log(`${msg.data.user.nickname}: ${msg.data.comment}`)
break
case 'gift':
console.log(`Gift: ${msg.data.giftName} (${msg.data.diamondCount} 💎)`)
break
case 'viewer_count':
console.log(`Viewers: ${msg.data.viewerCount}`)
break
}
})
ws.on('open', () => console.log('Connected!'))FAQ
TikTok a-t-il une API Node.js officielle ?
Non. TikTok ne propose pas d'API publique pour les données des LIVE. L'API TikTools est un service tiers géré qui donne un accès fiable et en temps réel au chat, aux cadeaux, aux spectateurs et aux autres événements LIVE. Le paquet npm @tiktool/live est le SDK officiel de cette API.
C'est gratuit ?
Oui. L'offre Sandbox te donne 5 000 requêtes/jour et 3 connexions WebSocket simultanées - gratuit, pour évaluation uniquement, sans carte bancaire. Inscris-toi ici.
Puis-je l'utiliser avec Express, Fastify ou Next.js ?
Oui. Le SDK fonctionne dans n'importe quel environnement Node.js. Utilise-le dans des routes Express, des plugins Fastify, des routes API Next.js ou des scripts autonomes.
Ça fonctionne avec Bun et Deno ?
Oui. Le SDK est compatible avec Bun et Deno. Installe-le via bun add @tiktool/live ou importe-le depuis npm dans Deno.