Γιατί Node.js;
Το Node.js είναι το πιο δημοφιλές runtime για integrations με το TikTok LIVE. Το επίσημο SDK @tiktool/live είναι γραμμένο σε TypeScript, δημοσιευμένο στο npm και έρχεται με πλήρη type definitions. Παίρνεις:
- Type safety - πλήρη TypeScript definitions για κάθε event και μέθοδο
- Αυτόματη επανασύνδεση - το SDK χειρίζεται αυτόματα τις συνδέσεις που πέφτουν
- Event-driven - το γνωστό pattern
.on('event', handler) - Δουλεύει παντού - Node.js 18+, Bun, Deno
Εγκατάστησε το SDK
npm install @tiktool/liveΉ με άλλους package managers:
# Yarn
yarn add @tiktool/live
# pnpm
pnpm add @tiktool/live
# Bun
bun add @tiktool/liveΓρήγορη εκκίνηση: 3 γραμμές για live δεδομένα
Δημιούργησε το app.mjs και επικόλλησε:
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()Τρέξ' το:
TIKTOOL_API_KEY=your_api_key node app.mjsΜέσα σε λίγα δευτερόλεπτα θα δεις μηνύματα chat να γεμίζουν το terminal σου.
Όλα τα διαθέσιμα events
Το SDK στέλνει δομημένα events για κάθε αλληλεπίδραση στο stream:
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!')Αναμενόμενη έξοδος
✅ 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
Το SDK είναι γραμμένο σε TypeScript. Τα types περιλαμβάνονται αυτόματα - δεν χρειάζεται πακέτο @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 (χωρίς SDK)
Προτιμάς να χρησιμοποιείς απευθείας το σκέτο WebSocket; Δουλεύει με κάθε γλώσσα ή 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!'))FAQ
Έχει το TikTok επίσημο Node.js API;
Όχι. Το TikTok δεν δίνει δημόσιο API για δεδομένα LIVE streams. Το TikTools API είναι managed υπηρεσία τρίτου που δίνει αξιόπιστη πρόσβαση σε πραγματικό χρόνο σε chat, δώρα, θεατές και άλλα LIVE events. Το πακέτο npm @tiktool/live είναι το επίσημο SDK αυτού του API.
Είναι δωρεάν;
Ναι. Το πακέτο Sandbox σού δίνει 5.000 requests/ημέρα και 3 ταυτόχρονες συνδέσεις WebSocket - δωρεάν, μόνο για αξιολόγηση, χωρίς πιστωτική κάρτα. Κάνε εγγραφή εδώ.
Μπορώ να το χρησιμοποιήσω με Express, Fastify ή Next.js;
Ναι. Το SDK δουλεύει σε κάθε περιβάλλον Node.js. Χρησιμοποίησέ το σε route handlers του Express, plugins του Fastify, API routes του Next.js ή σε αυτόνομα scripts.
Δουλεύει με Bun και Deno;
Ναι. Το SDK είναι συμβατό με Bun και Deno. Εγκατάστησέ το με bun add @tiktool/live ή κάνε import από το npm στο Deno.