Kenapa Node.js?
Node.js adalah runtime paling populer untuk integrasi TikTok LIVE. SDK resmi @tiktool/live ditulis dengan TypeScript, dipublikasikan di npm, dan langsung dilengkapi definisi tipe lengkap. Yang kamu dapatkan:
- Type safety - definisi TypeScript lengkap untuk setiap event dan method
- Reconnect otomatis - SDK otomatis menangani koneksi yang terputus
- Berbasis event - pola
.on('event', handler)yang sudah familiar - Jalan di mana saja - Node.js 18+, Bun, Deno
Instal SDK
npm install @tiktool/liveAtau dengan package manager lain:
# Yarn
yarn add @tiktool/live
# pnpm
pnpm add @tiktool/live
# Bun
bun add @tiktool/liveMulai Cepat: 3 Baris ke Data Live
Buat app.mjs lalu tempel:
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()Jalankan:
TIKTOOL_API_KEY=your_api_key node app.mjsDalam hitungan detik, kamu akan melihat pesan chat mengalir di terminal.
Semua Event yang Tersedia
SDK mengirim event terstruktur untuk setiap interaksi di siaran:
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!')Output yang Diharapkan
✅ 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 streamDukungan TypeScript
SDK ini ditulis dengan TypeScript. Tipe sudah otomatis disertakan - tidak perlu paket @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 Langsung (Tanpa SDK)
Lebih suka pakai WebSocket langsung? Bisa dipakai dengan bahasa atau framework apa pun:
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
Apakah TikTok punya API Node.js resmi?
Tidak. TikTok tidak menyediakan API publik untuk data siaran LIVE. API TikTools adalah layanan pihak ketiga terkelola yang memberi akses real-time yang andal ke chat, hadiah, penonton, dan event LIVE lainnya. Paket npm @tiktool/live adalah SDK resmi untuk API ini.
Apakah gratis?
Ya. Paket Sandbox memberi kamu 5.000 request/hari dan 3 koneksi WebSocket bersamaan - gratis, khusus evaluasi, tanpa kartu kredit. Daftar di sini.
Bisakah dipakai dengan Express, Fastify, atau Next.js?
Bisa. SDK ini jalan di environment Node.js apa pun. Pakai di route handler Express, plugin Fastify, API route Next.js, atau skrip mandiri.
Apakah bisa dipakai di Bun dan Deno?
Bisa. SDK ini kompatibel dengan Bun dan Deno. Instal lewat bun add @tiktool/live atau import dari npm di Deno.