TikTok LIVE WebSocket Nasıl Çalışır
TikTool, herhangi bir TikTok LIVE yayınındaki anlık olayları akışa alan, wss://api.tik.tools adresinde yönetilen bir WebSocket uç noktası sunar. API anahtarın ve bir TikTok kullanıcı adıyla bağlanırsın; tüm protokol müzakeresini, kimlik doğrulamayı ve yeniden bağlanma mantığını sunucu halleder.
TikTok'un yayın altyapısına doğrudan protokol bağlantılarının (sık sık bozulan) aksine, TikTool'un WebSocket API'si kararlı, üretim seviyesinde bir aktarım katmanıdır.
Hızlı Başlangıç - 3 Satırda Bağlan
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()Ya da doğrudan yerel WebSocket ile bağlan (SDK gerekmez):
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", {}))Her Dil
WebSocket destekleyen her dil çalışır: Go, Rust, Java, C#, Ruby, PHP. Sadece şu adrese bağlan:
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEYWebSocket Bağlantı Parametreleri
uniqueId✓Yayıncının TikTok kullanıcı adı (@ olmadan)apiKey✓TikTool API anahtarınjwtKeyJWT tabanlı kimlik doğrulama (token kullanan tarayıcı istemcileri için apiKey alternatifi)Olay Türleri
Her WebSocket mesajı event ve data alanlarına sahip bir JSON nesnesidir. Alacağın olaylar şunlar:
chatBir izleyiciden yeni sohbet mesajı. Kullanıcı bilgisini, mesaj metnini ve rozetleri içerir.
giftBir izleyicinin gönderdiği sanal hediye. Hediye adını, elmas değerini ve tekrar sayısını içerir.
likeBir izleyici yayını beğendi. Toplam beğeni sayısını içerir.
memberBir izleyici yayına katıldı. Kullanıcılar canlı odaya girdiğinde tetiklenir.
socialTakip / paylaşım / favori. Hangisi olduğunu data.action alanı söyler (follow, share, favourite).
roomUserSeqİzleyici sayısı güncellemesi. Güncel viewerCount ve topViewers değerlerini içerir.
subscribeBir izleyici yayıncıya abone oldu.
battleLinkMic PK olayı. PK durumunu, skorları, süreyi ve katılımcıları içerir.
battleArmiesPK takımları güncellemesi. Takım skorları ve katılımcı sıralamaları.
linkMicLinkMic konuk düzeni güncellemesi. Çok yayıncılı yayınlar için slot/konuk kullanıcı kimliklerini içerir.
roomPinYayıncı bir sohbet mesajını sabitledi.
liveIntroYayın tanıtımı güncellemesi. Yayın başlığını ve açıklamasını içerir.
emoteChatSohbette gönderilen özel emoji. Emoji kimliğini ve görsel URL'sini içerir.
envelopeYayında hazine sandığı / kırmızı zarf olayı.
questionİzleyicinin gönderdiği soru-cevap sorusu.
rankUpdateYayıncı için bölge bazlı sıralama yenilemesi.
barrageEkranın üstünde görünen kayan duyuru mesajı.
superFanBir izleyici Süper Hayran oldu ya da seviye atladı. Yeni seviyeyi içerir.
superFanJoinBir Süper Hayran odaya katıldı.
superFanBoxSüper Hayran kutusu / ödül olayı.
controlYayın yaşam döngüsü kontrolü (duraklatma, bitirme vb.).
Plana Göre Bağlantı Limitleri
Hata Yönetimi ve Yeniden Bağlanma
WebSocket standart kapanış kodlarıyla kapanır. İstemcin yeniden bağlanmayı ele almalı:
// 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()