Geliştirici Rehberi

TikTok LIVE API Node.js için

JavaScript ile TikTok LIVE asistanları, overlay'ler ve paneller geliştir. npm install, 3 satırda bağlan, anlık olayları al. Ücretsiz SDK, açık kaynak, MIT lisansı.

Neden Node.js?

Node.js, TikTok LIVE entegrasyonları için en popüler çalışma ortamı. Resmi @tiktool/live SDK'sı TypeScript ile yazılmıştır, npm'de yayınlanır ve kutudan çıktığı gibi tam tip tanımlarıyla gelir. Elde ettiklerin:

  • Tip güvenliği - her olay ve metot için tam TypeScript tanımları
  • Otomatik yeniden bağlanma - SDK kopan bağlantıları otomatik olarak toparlar
  • Olay tabanlı - tanıdık .on('event', handler) kalıbı
  • Her yerde çalışır - Node.js 18+, Bun, Deno

SDK'yı kur

npm install @tiktool/live

Ya da diğer paket yöneticileriyle:

# Yarn
yarn add @tiktool/live

# pnpm
pnpm add @tiktool/live

# Bun
bun add @tiktool/live

Hızlı Başlangıç: 3 Satırda Canlı Veri

app.mjs dosyasını oluştur ve yapıştır:

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()

Çalıştır:

TIKTOOL_API_KEY=your_api_key node app.mjs

Birkaç saniye içinde sohbet mesajlarının terminaline aktığını göreceksin.

Kullanılabilen Tüm Olaylar

SDK, yayındaki her etkileşim için yapılandırılmış olaylar yayar:

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!')

Beklenen Çıktı

✅ 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

TypeScript Desteği

SDK TypeScript ile yazılmıştır. Tipler otomatik olarak gelir, ayrıca @types paketine gerek yok:

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()

Ham WebSocket (SDK'sız)

Ham WebSocket'i doğrudan kullanmayı mı tercih edersin? Her dil ve framework ile çalışır:

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!'))

SSS

TikTok'un resmi bir Node.js API'si var mı?

Hayır. TikTok, LIVE yayın verisi için herkese açık bir API sunmuyor. TikTools API; sohbet, hediye, izleyici ve diğer LIVE olaylarına güvenilir, anlık erişim sağlayan yönetilen bir üçüncü taraf hizmettir. @tiktool/live npm paketi bu API'nin resmi SDK'sıdır.

Ücretsiz mi?

Evet. Sandbox planı günde 5.000 istek ve 3 eşzamanlı WebSocket bağlantısı verir: ücretsiz, yalnızca değerlendirme amaçlı, kredi kartı gerekmez. Buradan kaydol.

Express, Fastify ya da Next.js ile kullanabilir miyim?

Evet. SDK her Node.js ortamında çalışır. Express route handler'larında, Fastify eklentilerinde, Next.js API route'larında ya da bağımsız betiklerde kullanabilirsin.

Bun ve Deno ile çalışır mı?

Evet. SDK, Bun ve Deno ile uyumludur. bun add @tiktool/live ile kur ya da Deno'da npm'den içe aktar.