Οδηγός

TikTok LIVE WebSocket API

Συνδέσου σε οποιοδήποτε TikTok LIVE stream μέσω WebSocket. Λάβε μηνύματα chat, δώρα, αριθμό θεατών, battles και δεδομένα engagement σε πραγματικό χρόνο, με καθυστέρηση κάτω από 50ms. Δουλεύει με κάθε γλώσσα προγραμματισμού.

Πώς δουλεύει το TikTok LIVE WebSocket

Το TikTool δίνει ένα managed endpoint WebSocket στο wss://api.tik.tools, που στέλνει events σε πραγματικό χρόνο από οποιοδήποτε TikTok LIVE stream. Συνδέεσαι με το API key σου και ένα username του TikTok - ο server αναλαμβάνει όλο το protocol negotiation, το authentication και τη λογική επανασύνδεσης.

Σε αντίθεση με τις απευθείας συνδέσεις στο πρωτόκολλο της υποδομής μετάδοσης του TikTok (που χαλάνε συχνά), το WebSocket API του TikTool είναι ένα σταθερό relay επιπέδου production.

Γρήγορη εκκίνηση - Σύνδεση με 3 γραμμές

JavaScript / Node.js

import { TikTokLive } from '@tiktool/live'

const client = new TikTokLive({ uniqueId: 'streamer_username', apiKey: 'YOUR_KEY' })
client.on('chat', e => console.log(`${e.user.uniqueId}: ${e.comment}`))
client.connect()

Ή συνδέσου απευθείας με native WebSocket (χωρίς SDK):

const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY')

ws.onmessage = (msg) => {
  const event = JSON.parse(msg.data)
  console.log(event.event, event.data)
}

Python

import asyncio, websockets, json

async def connect():
    uri = "wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY"
    async with websockets.connect(uri) as ws:
        async for message in ws:
            event = json.loads(message)
            print(event["event"], event.get("data", {}))

Κάθε γλώσσα

Δουλεύει κάθε γλώσσα με υποστήριξη WebSocket - Go, Rust, Java, C#, Ruby, PHP. Απλώς συνδέσου στο:

wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEY

Παράμετροι σύνδεσης WebSocket

ΠαράμετροςΥποχρεωτικήΠεριγραφή
uniqueId✓Username του streamer στο TikTok (χωρίς @)
apiKey✓Το API key σου στο TikTool
jwtKeyAuthentication με JWT (εναλλακτική του apiKey για browser clients με token)

Τύποι events

Κάθε μήνυμα WebSocket είναι ένα αντικείμενο JSON με πεδία event και data. Αυτά είναι τα events που θα λαμβάνεις:

chat

Νέο μήνυμα chat από θεατή. Περιέχει στοιχεία χρήστη, κείμενο μηνύματος και badges.

gift

Εικονικό δώρο από θεατή. Περιέχει όνομα δώρου, αξία σε διαμάντια και αριθμό επαναλήψεων.

like

Ένας θεατής έκανε like στο stream. Περιέχει το σύνολο των likes.

member

Ένας θεατής μπήκε στο stream. Ενεργοποιείται όταν χρήστες μπαίνουν στο live room.

social

Follow / share / αγαπημένο. Το πεδίο data.action σού λέει ποιο από τα τρία (follow, share, favourite).

roomUserSeq

Ενημέρωση αριθμού θεατών. Περιέχει το τρέχον viewerCount και τους topViewers.

subscribe

Ένας θεατής έκανε συνδρομή στον streamer.

battle

Event battle LinkMic. Περιέχει κατάσταση battle, σκορ, διάρκεια και συμμετέχοντες.

battleArmies

Ενημέρωση battle armies. Σκορ ομάδων και κατάταξη συμμετεχόντων.

linkMic

Ενημέρωση διάταξης guests στο LinkMic. Περιέχει user IDs των θέσεων/guests για streams με πολλούς hosts.

roomPin

Ο streamer καρφίτσωσε ένα μήνυμα chat.

liveIntro

Ενημέρωση περιγραφής stream. Περιέχει τίτλο και περιγραφή του stream.

emoteChat

Custom emote στο chat. Περιέχει ID του emote και URL εικόνας.

envelope

Event σεντουκιού θησαυρού / κόκκινου φακέλου στο stream.

question

Ερώτηση Q&A από θεατή.

rankUpdate

Ανανέωση κατάταξης του streamer ανά περιοχή.

barrage

Μήνυμα barrage/ανακοίνωσης στο πάνω μέρος της οθόνης.

superFan

Ένας θεατής έγινε Super Fan ή ανέβηκε επίπεδο. Περιέχει το νέο επίπεδο.

superFanJoin

Ένας Super Fan μπήκε στο room.

superFanBox

Event κουτιού / ανταμοιβής Super Fan.

control

Έλεγχος κύκλου ζωής του stream (παύση, λήξη κ.λπ.).

Όρια συνδέσεων ανά πακέτο

ΠακέτοΣυνδέσειςΤιμή
Sandbox (δωρεάν)15Πακέτο Sandbox
Pro50από $15/εβδ.
Ultra250από $45/εβδ.
Agency500 + Firehoseαπό $119/εβδ.

Χειρισμός σφαλμάτων και επανασύνδεση

Το WebSocket κλείνει με τα standard close codes. Ο client σου πρέπει να χειρίζεται την επανασύνδεση:

// Auto-reconnect pattern (Node.js)
function connect() {
  const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=KEY')

  ws.onmessage = (msg) => {
    const event = JSON.parse(msg.data)
    // Process event
  }

  ws.onclose = (e) => {
    console.log(`Disconnected (${e.code}). Reconnecting in 3s...`)
    setTimeout(connect, 3000)
  }

  ws.onerror = (err) => {
    console.error('WebSocket error:', err.message)
    ws.close()
  }
}

connect()

Συχνές ερωτήσεις

Πώς συνδέομαι σε TikTok live stream μέσω WebSocket;

Ποιες γλώσσες προγραμματισμού δουλεύουν με το TikTok LIVE WebSocket;

Είναι δωρεάν το TikTok LIVE WebSocket API;

Σε τι διαφέρει από τις open-source βιβλιοθήκες για live streams;

Πόση καθυστέρηση έχει η σύνδεση WebSocket;