Cum funcționează TikTok LIVE WebSocket
TikTool oferă un endpoint WebSocket administrat la wss://api.tik.tools, care transmite evenimente în timp real din orice LIVE TikTok. Te conectezi cu cheia ta API și un nume de utilizator TikTok - serverul se ocupă de negocierea protocolului, autentificare și reconectare.
Spre deosebire de conexiunile directe la infrastructura de transmisie TikTok (care se strică des), API-ul WebSocket TikTool este un releu stabil, pregătit pentru producție.
Start rapid - conectare în 3 linii
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()Sau conectează-te direct cu WebSocket nativ (fără 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", {}))Orice limbaj
Funcționează orice limbaj cu suport WebSocket - Go, Rust, Java, C#, Ruby, PHP. Conectează-te pur și simplu la:
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEYParametrii conexiunii WebSocket
uniqueId✓Numele de utilizator TikTok (fără @) al creatoruluiapiKey✓Cheia ta API TikTooljwtKeyAutentificare bazată pe JWT (alternativă la apiKey pentru clienți de browser cu token)Tipuri de evenimente
Fiecare mesaj WebSocket este un obiect JSON cu câmpurile event și data. Iată evenimentele pe care le vei primi:
chatMesaj nou în chat de la un spectator. Include informații despre utilizator, textul mesajului și insignele.
giftCadou virtual trimis de un spectator. Include numele cadoului, valoarea în Diamante și numărul de repetări.
likeUn spectator a dat like LIVE-ului. Include numărul total de like-uri.
memberUn spectator a intrat în LIVE. Se declanșează când utilizatorii intră în camera LIVE.
socialUrmărire / distribuire / favorit. Câmpul data.action îți spune care dintre ele (follow, share, favourite).
roomUserSeqActualizare a numărului de spectatori. Include viewerCount curent și topViewers.
subscribeUn spectator s-a abonat la creator.
battleEveniment de Meci LIVE LinkMic. Include starea meciului, scorurile, durata și participanții.
battleArmiesActualizare a echipelor din Meciul LIVE. Scorurile echipelor și clasamentul participanților.
linkMicActualizare a aranjamentului invitaților LinkMic. Include ID-urile de slot/utilizator ale invitaților pentru LIVE-uri cu mai multe gazde.
roomPinCreatorul a fixat un mesaj din chat.
liveIntroActualizare a introducerii LIVE-ului. Include titlul și descrierea LIVE-ului.
emoteChatEmote personalizat trimis în chat. Include ID-ul emote-ului și URL-ul imaginii.
envelopeEveniment de cufăr cu comori / plic roșu în LIVE.
questionÎntrebare de Q&A trimisă de un spectator.
rankUpdateActualizare a clasamentului regional al creatorului.
barrageMesaj de tip barrage/anunț afișat în partea de sus a ecranului.
superFanUn spectator a devenit Super Fan sau a urcat de nivel. Include noul nivel.
superFanJoinUn Super Fan a intrat în cameră.
superFanBoxEveniment de cutie / recompensă Super Fan.
controlControl al ciclului de viață al LIVE-ului (pauză, încheiere etc.).
Limite de conexiuni pe plan
Gestionarea erorilor și reconectarea
WebSocket-ul se va închide cu coduri de închidere standard. Clientul tău ar trebui să gestioneze reconectarea:
// 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()