Hướng dẫn

TikTok LIVE WebSocket API

Kết nối tới mọi phiên TikTok LIVE qua WebSocket. Nhận tin nhắn chat, quà tặng, số người xem, PK và dữ liệu tương tác theo thời gian thực với độ trễ dưới 50ms. Chạy với mọi ngôn ngữ lập trình.

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_KEY

Tham số kết nối WebSocket

Tham sốBắt buộcMô tả
uniqueId✓Username TikTok (không có @) của idol
apiKey✓API key TikTool của bạn
jwtKeyXá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:

chat

Tin 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.

gift

Quà ảo do người xem tặng. Gồm tên quà, giá trị kim cương và số lần lặp.

like

Một người xem đã thả tim phiên live. Gồm tổng số lượt thích.

member

Một người xem vào phiên live. Kích hoạt khi người dùng vào phòng live.

social

Follow / chia sẻ / yêu thích. Trường data.action cho biết là loại nào (follow, share, favourite).

roomUserSeq

Cập nhật số người xem. Gồm viewerCount hiện tại và topViewers.

subscribe

Một người xem đã đăng ký idol.

battle

Sự kiện PK LinkMic. Gồm trạng thái PK, điểm số, thời lượng và người tham gia.

battleArmies

Cập nhật đội quân PK. Điểm của từng đội và thứ hạng người tham gia.

linkMic

Cậ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.

roomPin

Idol đã ghim một tin nhắn chat.

liveIntro

Cập nhật phần giới thiệu phiên live. Gồm tiêu đề và mô tả.

emoteChat

Emote tùy chỉnh được gửi trong chat. Gồm ID emote và URL ảnh.

envelope

Sự kiện rương báu / lì xì trong phiên live.

question

Câu hỏi Q&A do người xem gửi.

rankUpdate

Làm mới thứ hạng theo khu vực của idol.

barrage

Thông báo chạy ngang đầu màn hình.

superFan

Một người xem trở thành Super Fan hoặc lên cấp. Gồm cấp mới.

superFanJoin

Một Super Fan vào phòng.

superFanBox

Sự 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

GóiKết nốiGiá
Sandbox (miễn phí)15Gói Sandbox
Pro50từ $15/tuần
Ultra250từ $45/tuần
Agency500 + Firehosetừ $119/tuần

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()

Câu hỏi thường gặp

Làm sao kết nối tới livestream TikTok qua WebSocket?

Ngôn ngữ lập trình nào dùng được với TikTok LIVE WebSocket?

TikTok LIVE WebSocket API có miễn phí không?

Khác gì so với các thư viện livestream mã nguồn mở?

Độ trễ của kết nối WebSocket là bao nhiêu?