Cara Kerja WebSocket TikTok LIVE
TikTool menyediakan endpoint WebSocket terkelola di wss://api.tik.tools yang mengalirkan event real-time dari siaran TikTok LIVE mana pun. Kamu cukup menyambung dengan API key dan username TikTok - server yang mengurus semua negosiasi protokol, autentikasi, dan logika reconnect.
Berbeda dengan koneksi protokol langsung ke infrastruktur siaran TikTok (yang sering putus), API WebSocket TikTool adalah relay yang stabil dan siap produksi.
Mulai Cepat - Tersambung dalam 3 Baris
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()Atau sambungkan langsung dengan WebSocket native (tanpa 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", {}))Bahasa Apa Pun
Bahasa apa pun yang mendukung WebSocket bisa dipakai - Go, Rust, Java, C#, Ruby, PHP. Tinggal sambungkan ke:
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEYParameter Koneksi WebSocket
uniqueId✓Username TikTok streamer (tanpa @)apiKey✓API key TikTool kamujwtKeyAutentikasi berbasis JWT (alternatif apiKey untuk client browser bertoken)Jenis Event
Setiap pesan WebSocket adalah objek JSON dengan field event dan data. Berikut event yang akan kamu terima:
chatPesan chat baru dari penonton. Berisi info pengguna, teks pesan, dan badge.
giftHadiah virtual yang dikirim penonton. Berisi nama hadiah, nilai berlian, dan jumlah pengulangan.
likePenonton menyukai siaran. Berisi total jumlah like.
memberPenonton masuk ke siaran. Terpicu saat pengguna masuk ke room live.
socialFollow / share / favorit. Field data.action memberi tahu jenisnya (follow, share, favourite).
roomUserSeqUpdate jumlah penonton. Berisi viewerCount saat ini dan topViewers.
subscribePenonton berlangganan ke streamer.
battleEvent LIVE match LinkMic. Berisi status match, skor, durasi, dan peserta.
battleArmiesUpdate pasukan LIVE match. Skor tim dan peringkat peserta.
linkMicUpdate tata letak tamu LinkMic. Berisi ID pengguna slot/tamu untuk siaran multi-host.
roomPinStreamer menyematkan pesan chat.
liveIntroUpdate intro siaran. Berisi judul dan deskripsi siaran.
emoteChatEmote kustom yang dikirim di chat. Berisi ID emote dan URL gambar.
envelopeEvent peti harta / angpao di dalam siaran.
questionPertanyaan Q&A yang dikirim penonton.
rankUpdatePembaruan peringkat streamer per wilayah.
barragePesan barrage/pengumuman di bagian atas layar.
superFanPenonton menjadi Super Fan atau naik level. Berisi level barunya.
superFanJoinSuper Fan masuk ke room.
superFanBoxEvent kotak / reward Super Fan.
controlKontrol siklus siaran (jeda, selesai, dll.).
Batas Koneksi per Paket
Penanganan Error & Reconnect
WebSocket akan ditutup dengan close code standar. Client kamu sebaiknya menangani reconnect:
// 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()