¿Por qué Node.js?
Node.js es el runtime más popular para integraciones con TikTok LIVE. El SDK oficial @tiktool/live está escrito en TypeScript, publicado en npm e incluye definiciones de tipos completas de serie. Obtienes:
- Tipado seguro - definiciones de TypeScript completas para cada evento y método
- Reconexión automática - el SDK maneja las conexiones caídas automáticamente
- Basado en eventos - el patrón
.on('event', handler)de siempre - Funciona en todas partes - Node.js 18+, Bun, Deno
Instala el SDK
npm install @tiktool/liveO con otros gestores de paquetes:
# Yarn
yarn add @tiktool/live
# pnpm
pnpm add @tiktool/live
# Bun
bun add @tiktool/liveInicio rápido: 3 líneas para tener datos en vivo
Crea app.mjs y pega:
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()Ejecútalo:
TIKTOOL_API_KEY=your_api_key node app.mjsEn segundos verás los mensajes del chat llegando a tu terminal.
Todos los eventos disponibles
El SDK emite eventos estructurados para cada interacción en la transmisión:
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!')Resultado esperado
✅ 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 streamSoporte de TypeScript
El SDK está escrito en TypeScript. Los tipos vienen incluidos automáticamente, no necesitas el paquete @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 directo (sin SDK)
¿Prefieres usar el WebSocket directamente? Funciona con cualquier lenguaje o 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!'))Preguntas frecuentes
¿TikTok tiene una API oficial de Node.js?
No. TikTok no ofrece una API pública para datos de transmisiones LIVE. La API de TikTools es un servicio gestionado de terceros que da acceso fiable y en tiempo real al chat, los regalos, los espectadores y otros eventos LIVE. El paquete npm @tiktool/live es el SDK oficial de esta API.
¿Es gratis?
Sí. El plan Sandbox te da 5,000 solicitudes/día y 3 conexiones WebSocket simultáneas: gratis, solo para evaluación, sin tarjeta de crédito. Regístrate aquí.
¿Puedo usarlo con Express, Fastify o Next.js?
Sí. El SDK funciona en cualquier entorno Node.js. Úsalo en route handlers de Express, plugins de Fastify, API routes de Next.js o scripts independientes.
¿Funciona con Bun y Deno?
Sí. El SDK es compatible con Bun y Deno. Instálalo con bun add @tiktool/live o impórtalo desde npm en Deno.