Guide développeur

TikTok LIVE API pour Node.js

Crée des assistants, des overlays et des tableaux de bord TikTok LIVE en JavaScript. npm install, connexion en 3 lignes, événements en temps réel. SDK gratuit, open source, licence MIT.

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/live

Ou avec d'autres gestionnaires de paquets :

# Yarn
yarn add @tiktool/live

# pnpm
pnpm add @tiktool/live

# Bun
bun add @tiktool/live

Dé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.mjs

Tu 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 stream

Prise 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.