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/liveYa da diğer paket yöneticileriyle:
# Yarn
yarn add @tiktool/live
# pnpm
pnpm add @tiktool/live
# Bun
bun add @tiktool/liveHı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.mjsBirkaç 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 streamTypeScript 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.