Panduan Developer

TikTok LIVE API untuk Node.js

Bikin asisten, overlay, dan dasbor TikTok LIVE dengan JavaScript. npm install, tersambung dalam 3 baris, terima event real-time. SDK gratis, open-source, lisensi MIT.

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

Atau dengan package manager lain:

# Yarn
yarn add @tiktool/live

# pnpm
pnpm add @tiktool/live

# Bun
bun add @tiktool/live

Mulai 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.mjs

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

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