Πώς δουλεύει το 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 σου στο TikTooljwtKeyAuthentication με JWT (εναλλακτική του apiKey για browser clients με token)Τύποι events
Κάθε μήνυμα WebSocket είναι ένα αντικείμενο JSON με πεδία event και data. Αυτά είναι τα events που θα λαμβάνεις:
chatΝέο μήνυμα chat από θεατή. Περιέχει στοιχεία χρήστη, κείμενο μηνύματος και badges.
giftΕικονικό δώρο από θεατή. Περιέχει όνομα δώρου, αξία σε διαμάντια και αριθμό επαναλήψεων.
likeΈνας θεατής έκανε like στο stream. Περιέχει το σύνολο των likes.
memberΈνας θεατής μπήκε στο stream. Ενεργοποιείται όταν χρήστες μπαίνουν στο live room.
socialFollow / share / αγαπημένο. Το πεδίο data.action σού λέει ποιο από τα τρία (follow, share, favourite).
roomUserSeqΕνημέρωση αριθμού θεατών. Περιέχει το τρέχον viewerCount και τους topViewers.
subscribeΈνας θεατής έκανε συνδρομή στον streamer.
battleEvent battle LinkMic. Περιέχει κατάσταση battle, σκορ, διάρκεια και συμμετέχοντες.
battleArmiesΕνημέρωση battle armies. Σκορ ομάδων και κατάταξη συμμετεχόντων.
linkMicΕνημέρωση διάταξης guests στο LinkMic. Περιέχει user IDs των θέσεων/guests για streams με πολλούς hosts.
roomPinΟ streamer καρφίτσωσε ένα μήνυμα chat.
liveIntroΕνημέρωση περιγραφής stream. Περιέχει τίτλο και περιγραφή του stream.
emoteChatCustom emote στο chat. Περιέχει ID του emote και URL εικόνας.
envelopeEvent σεντουκιού θησαυρού / κόκκινου φακέλου στο stream.
questionΕρώτηση Q&A από θεατή.
rankUpdateΑνανέωση κατάταξης του streamer ανά περιοχή.
barrageΜήνυμα barrage/ανακοίνωσης στο πάνω μέρος της οθόνης.
superFanΈνας θεατής έγινε Super Fan ή ανέβηκε επίπεδο. Περιέχει το νέο επίπεδο.
superFanJoinΈνας Super Fan μπήκε στο room.
superFanBoxEvent κουτιού / ανταμοιβής Super Fan.
controlΈλεγχος κύκλου ζωής του stream (παύση, λήξη κ.λπ.).
Όρια συνδέσεων ανά πακέτο
Χειρισμός σφαλμάτων και επανασύνδεση
Το 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()