Guia

TikTok LIVE API WebSocket

Conecte em qualquer live do TikTok via WebSocket. Receba mensagens de chat, presentes, número de espectadores, batalhas e dados de engajamento em tempo real, com latência abaixo de 50ms. Funciona com qualquer linguagem de programação.

Como funciona o WebSocket do TikTok LIVE

O TikTool oferece um endpoint WebSocket gerenciado em wss://api.tik.tools que transmite eventos em tempo real de qualquer live do TikTok. Você conecta com sua chave de API e um usuário do TikTok - o servidor cuida de toda a negociação de protocolo, autenticação e lógica de reconexão.

Diferente de conexões diretas ao protocolo da infraestrutura de transmissão do TikTok (que quebram com frequência), a API WebSocket do TikTool é um relay estável, pronto para produção.

Início rápido - Conecte em 3 linhas

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

Ou conecte direto com WebSocket nativo (sem precisar de 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", {}))

Qualquer linguagem

Qualquer linguagem com suporte a WebSocket funciona - Go, Rust, Java, C#, Ruby, PHP. É só conectar em:

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

Parâmetros de conexão do WebSocket

ParâmetroObrigatórioDescrição
uniqueId✓Usuário do TikTok (sem @) do streamer
apiKey✓Sua chave de API do TikTool
jwtKeyAutenticação por JWT (alternativa ao apiKey para clientes de navegador com token)

Tipos de evento

Toda mensagem do WebSocket é um objeto JSON com os campos event e data. Estes são os eventos que você vai receber:

chat

Nova mensagem de chat de um espectador. Inclui info do usuário, texto da mensagem e badges.

gift

Presente virtual enviado por um espectador. Inclui nome do presente, valor em diamantes e contagem de repetição.

like

Um espectador curtiu a live. Inclui o total de curtidas.

member

Um espectador entrou na live. Dispara quando usuários entram na sala.

social

Seguir / compartilhar / favoritar. O campo data.action diz qual foi (follow, share, favourite).

roomUserSeq

Atualização do número de espectadores. Inclui o viewerCount atual e os topViewers.

subscribe

Um espectador se inscreveu no streamer.

battle

Evento de batalha LinkMic. Inclui status da batalha, placar, duração e participantes.

battleArmies

Atualização dos times da batalha. Placar dos times e ranking dos participantes.

linkMic

Atualização do layout de convidados do LinkMic. Inclui IDs de slot/convidado em lives com vários apresentadores.

roomPin

O streamer fixou uma mensagem do chat.

liveIntro

Atualização da introdução da live. Inclui título e descrição da live.

emoteChat

Emote personalizado enviado no chat. Inclui o ID do emote e a URL da imagem.

envelope

Evento de baú do tesouro / envelope vermelho na live.

question

Pergunta de Q&A enviada por um espectador.

rankUpdate

Atualização do ranking do streamer por região.

barrage

Mensagem de destaque/anúncio no topo da tela.

superFan

Um espectador virou Super Fã ou subiu de nível. Inclui o novo nível.

superFanJoin

Um Super Fã entrou na sala.

superFanBox

Evento de caixa / recompensa de Super Fã.

control

Controle do ciclo de vida da live (pausa, fim etc.).

Limites de conexão por plano

PlanoConexõesPreço
Sandbox (grátis)15Plano Sandbox
Pro50a partir de $15/semana
Ultra250a partir de $45/semana
Agency500 + Firehosea partir de $119/semana

Tratamento de erros e reconexão

O WebSocket fecha com códigos de fechamento padrão. Seu cliente precisa tratar a reconexão:

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

Perguntas frequentes

Como conecto em uma live do TikTok via WebSocket?

Quais linguagens de programação funcionam com o WebSocket do TikTok LIVE?

A API WebSocket do TikTok LIVE é grátis?

Qual a diferença para as bibliotecas open source de live?

Qual é a latência da conexão WebSocket?