指南

TikTok LIVE WebSocket API

通过 WebSocket 连接任意 TikTok 直播间。实时接收弹幕、礼物、观众数、PK 和互动数据。支持任意编程语言。

TikTok LIVE WebSocket 如何工作

TikTool 在 wss://api.tik.tools 提供托管 WebSocket 端点,实时推送任意 TikTok 直播间的事件。你只需用 API Key 和 TikTok 用户名连接,协议协商、鉴权和重连逻辑全部由服务器处理。

直接用协议连接 TikTok 直播基础设施的方式经常失效,而 TikTool 的 WebSocket API 是稳定的生产级中继服务。

快速开始:3 行代码完成连接

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

也可以直接用原生 WebSocket 连接(无需 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", {}))

任意语言

任何支持 WebSocket 的语言都可以,包括 Go、Rust、Java、C#、Ruby、PHP。只需连接:

wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEY

WebSocket 连接参数

参数必填说明
uniqueId✓主播的 TikTok 用户名(不含 @)
apiKey✓你的 TikTool API Key
jwtKey基于 JWT 的鉴权(令牌化浏览器客户端可用来替代 apiKey)

事件类型

每条 WebSocket 消息都是包含 event 和 data 字段的 JSON 对象。你会收到以下事件:

chat

观众发送的新弹幕,包含用户信息、消息内容和徽章。

gift

观众赠送的虚拟礼物,包含礼物名称、钻石价值和连送次数。

like

观众为直播点赞,包含累计点赞数。

member

观众进入直播间,在用户进入时触发。

social

关注 / 分享 / 收藏。data.action 字段会告诉你是哪一种(follow、share、favourite)。

roomUserSeq

观众数更新,包含当前 viewerCount 和 topViewers。

subscribe

观众订阅了主播。

battle

连线 PK 事件,包含 PK 状态、比分、时长和参与者。

battleArmies

PK 阵营更新,包含队伍比分和参与者排名。

linkMic

连线嘉宾布局更新,包含多人连线直播中的席位/嘉宾用户 ID。

roomPin

主播置顶了一条弹幕。

liveIntro

直播简介更新,包含直播标题和描述。

emoteChat

弹幕中发送的自定义表情,包含表情 ID 和图片 URL。

envelope

直播间内的宝箱 / 红包事件。

question

观众提交的问答问题。

rankUpdate

主播的分地区排名刷新。

barrage

屏幕顶部的横幅/公告消息。

superFan

观众成为超级粉丝或升级,包含新等级。

superFanJoin

超级粉丝进入了直播间。

superFanBox

超级粉丝宝箱 / 奖励事件。

control

直播生命周期控制(暂停、结束等)。

各套餐连接上限

套餐连接数价格
Sandbox(7 天评估)3Sandbox 套餐
Pro50$15/周起
Ultra250$45/周起
Agency Global500 + Firehose$119/周起

错误处理与重连

WebSocket 会以标准关闭码关闭连接,你的客户端需要处理重连:

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

常见问题

如何通过 WebSocket 连接 TikTok 直播间?

哪些编程语言可以使用 TikTok LIVE WebSocket?

TikTok LIVE WebSocket API 免费吗?

这和开源直播库有什么不同?

WebSocket 连接的延迟是多少?