TikTok LIVE WebSocket hoạt động thế nào
TikTool cung cấp một endpoint WebSocket được quản lý tại wss://api.tik.tools, truyền sự kiện thời gian thực từ mọi phiên TikTok LIVE. Bạn kết nối bằng API key và một username TikTok - server lo toàn bộ phần thương lượng giao thức, xác thực và tự kết nối lại.
Khác với kết nối giao thức trực tiếp tới hạ tầng phát sóng của TikTok (vốn hay hỏng), WebSocket API của TikTool là một lớp chuyển tiếp ổn định, đạt chuẩn production.
Bắt đầu nhanh - Kết nối chỉ với 3 dòng
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()Hoặc kết nối thẳng bằng WebSocket gốc (không cần 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", {}))Mọi ngôn ngữ
Mọi ngôn ngữ có hỗ trợ WebSocket đều dùng được - Go, Rust, Java, C#, Ruby, PHP. Chỉ cần kết nối tới:
wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEYTham số kết nối WebSocket
uniqueId✓Username TikTok (không có @) của idolapiKey✓API key TikTool của bạnjwtKeyXác thực bằng JWT (thay cho apiKey với client trình duyệt dùng token)Các loại sự kiện
Mỗi tin nhắn WebSocket là một đối tượng JSON có hai trường event và data. Đây là các sự kiện bạn sẽ nhận:
chatTin nhắn chat mới từ người xem. Gồm thông tin người dùng, nội dung tin nhắn và huy hiệu.
giftQuà ảo do người xem tặng. Gồm tên quà, giá trị kim cương và số lần lặp.
likeMột người xem đã thả tim phiên live. Gồm tổng số lượt thích.
memberMột người xem vào phiên live. Kích hoạt khi người dùng vào phòng live.
socialFollow / chia sẻ / yêu thích. Trường data.action cho biết là loại nào (follow, share, favourite).
roomUserSeqCập nhật số người xem. Gồm viewerCount hiện tại và topViewers.
subscribeMột người xem đã đăng ký idol.
battleSự kiện PK LinkMic. Gồm trạng thái PK, điểm số, thời lượng và người tham gia.
battleArmiesCập nhật đội quân PK. Điểm của từng đội và thứ hạng người tham gia.
linkMicCập nhật bố cục khách mời LinkMic. Gồm ID người dùng của từng ô/khách mời cho phiên nhiều chủ phòng.
roomPinIdol đã ghim một tin nhắn chat.
liveIntroCập nhật phần giới thiệu phiên live. Gồm tiêu đề và mô tả.
emoteChatEmote tùy chỉnh được gửi trong chat. Gồm ID emote và URL ảnh.
envelopeSự kiện rương báu / lì xì trong phiên live.
questionCâu hỏi Q&A do người xem gửi.
rankUpdateLàm mới thứ hạng theo khu vực của idol.
barrageThông báo chạy ngang đầu màn hình.
superFanMột người xem trở thành Super Fan hoặc lên cấp. Gồm cấp mới.
superFanJoinMột Super Fan vào phòng.
superFanBoxSự kiện hộp quà / phần thưởng Super Fan.
controlĐiều khiển vòng đời phiên live (tạm dừng, kết thúc, v.v.).
Giới hạn kết nối theo gói
Xử lý lỗi & kết nối lại
WebSocket sẽ đóng với các mã đóng tiêu chuẩn. Client của bạn cần tự xử lý kết nối lại:
// 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()