Come funziona il WebSocket di TikTok LIVE
TikTool offre un endpoint WebSocket gestito su wss://api.tik.tools che trasmette eventi in tempo reale da qualsiasi LIVE di TikTok. Ti colleghi con la tua chiave API e uno username TikTok: il server si occupa di negoziazione del protocollo, autenticazione e riconnessione.
A differenza delle connessioni dirette al protocollo dell'infrastruttura di trasmissione di TikTok (che si rompono spesso), l'API WebSocket di TikTool è un relay stabile, pronto per la produzione.
Avvio rapido - Collegati in 3 righe
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()Oppure collegati direttamente con il WebSocket nativo (senza 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", {}))Qualsiasi linguaggio
Va bene qualsiasi linguaggio che supporti WebSocket: Go, Rust, Java, C#, Ruby, PHP. Basta collegarsi a:
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEYParametri della connessione WebSocket
uniqueId✓Username TikTok (senza @) dello streamerapiKey✓La tua chiave API TikTooljwtKeyAutenticazione JWT (alternativa ad apiKey per client browser con token)Tipi di evento
Ogni messaggio WebSocket è un oggetto JSON con i campi event e data. Ecco gli eventi che riceverai:
chatNuovo messaggio in chat da uno spettatore. Include dati dell'utente, testo del messaggio e badge.
giftRegalo virtuale inviato da uno spettatore. Include nome del regalo, valore in diamanti e numero di ripetizioni.
likeUno spettatore ha messo like alla diretta. Include il totale dei like.
memberUno spettatore è entrato nella diretta. Scatta quando un utente entra nella stanza LIVE.
socialFollow / condivisione / preferito. Il campo data.action ti dice quale (follow, share, favourite).
roomUserSeqAggiornamento del numero di spettatori. Include viewerCount attuale e topViewers.
subscribeUno spettatore si è abbonato allo streamer.
battleEvento di sfida LinkMic. Include stato della sfida, punteggi, durata e partecipanti.
battleArmiesAggiornamento delle squadre della sfida. Punteggi dei team e classifica dei partecipanti.
linkMicAggiornamento del layout ospiti LinkMic. Include gli ID utente di slot e ospiti per le dirette multi-host.
roomPinLo streamer ha fissato un messaggio della chat.
liveIntroAggiornamento della presentazione della diretta. Include titolo e descrizione.
emoteChatEmote personalizzata inviata in chat. Include ID dell'emote e URL dell'immagine.
envelopeEvento forziere / busta rossa nella diretta.
questionDomanda Q&A inviata da uno spettatore.
rankUpdateAggiornamento della posizione in classifica dello streamer per regione.
barrageMessaggio di annuncio in cima allo schermo.
superFanUno spettatore è diventato Super Fan o è salito di livello. Include il nuovo livello.
superFanJoinUn Super Fan è entrato nella stanza.
superFanBoxEvento box / ricompensa Super Fan.
controlControllo del ciclo di vita della diretta (pausa, fine, ecc.).
Limiti di connessione per piano
Gestione errori e riconnessione
Il WebSocket si chiude con i codici di chiusura standard. Il tuo client deve gestire la riconnessione:
// 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()