Οδηγός για developers

TikTok LIVE API για Node.js

Φτιάξε assistants, overlays και dashboards για TikTok LIVE σε JavaScript. npm install, σύνδεση με 3 γραμμές, events σε πραγματικό χρόνο. Δωρεάν SDK, open source, άδεια MIT.

Γιατί 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.