Guida

TikTok LIVE API WebSocket

Collegati a qualsiasi LIVE di TikTok via WebSocket. Ricevi in tempo reale messaggi in chat, regali, numero di spettatori, sfide e dati di engagement con latenza sotto i 50ms. Funziona con qualsiasi linguaggio di programmazione.

Come funziona il WebSocket di TikTok LIVE

TikTool offre un endpoint WebSocket gestito su wss://api.tik.tools che trasmette eventi in tempo reale da qualsiasi LIVE di TikTok. Ti colleghi con la tua chiave API e uno username TikTok: il server si occupa di negoziazione del protocollo, autenticazione e riconnessione.

A differenza delle connessioni dirette al protocollo dell'infrastruttura di trasmissione di TikTok (che si rompono spesso), l'API WebSocket di TikTool è un relay stabile, pronto per la produzione.

Avvio rapido - Collegati in 3 righe

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

Oppure collegati direttamente con il WebSocket nativo (senza 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", {}))

Qualsiasi linguaggio

Va bene qualsiasi linguaggio che supporti WebSocket: Go, Rust, Java, C#, Ruby, PHP. Basta collegarsi a:

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

Parametri della connessione WebSocket

ParametroObbligatorioDescrizione
uniqueId✓Username TikTok (senza @) dello streamer
apiKey✓La tua chiave API TikTool
jwtKeyAutenticazione JWT (alternativa ad apiKey per client browser con token)

Tipi di evento

Ogni messaggio WebSocket è un oggetto JSON con i campi event e data. Ecco gli eventi che riceverai:

chat

Nuovo messaggio in chat da uno spettatore. Include dati dell'utente, testo del messaggio e badge.

gift

Regalo virtuale inviato da uno spettatore. Include nome del regalo, valore in diamanti e numero di ripetizioni.

like

Uno spettatore ha messo like alla diretta. Include il totale dei like.

member

Uno spettatore è entrato nella diretta. Scatta quando un utente entra nella stanza LIVE.

social

Follow / condivisione / preferito. Il campo data.action ti dice quale (follow, share, favourite).

roomUserSeq

Aggiornamento del numero di spettatori. Include viewerCount attuale e topViewers.

subscribe

Uno spettatore si è abbonato allo streamer.

battle

Evento di sfida LinkMic. Include stato della sfida, punteggi, durata e partecipanti.

battleArmies

Aggiornamento delle squadre della sfida. Punteggi dei team e classifica dei partecipanti.

linkMic

Aggiornamento del layout ospiti LinkMic. Include gli ID utente di slot e ospiti per le dirette multi-host.

roomPin

Lo streamer ha fissato un messaggio della chat.

liveIntro

Aggiornamento della presentazione della diretta. Include titolo e descrizione.

emoteChat

Emote personalizzata inviata in chat. Include ID dell'emote e URL dell'immagine.

envelope

Evento forziere / busta rossa nella diretta.

question

Domanda Q&A inviata da uno spettatore.

rankUpdate

Aggiornamento della posizione in classifica dello streamer per regione.

barrage

Messaggio di annuncio in cima allo schermo.

superFan

Uno spettatore è diventato Super Fan o è salito di livello. Include il nuovo livello.

superFanJoin

Un Super Fan è entrato nella stanza.

superFanBox

Evento box / ricompensa Super Fan.

control

Controllo del ciclo di vita della diretta (pausa, fine, ecc.).

Limiti di connessione per piano

PianoConnessioniPrezzo
Sandbox (gratis)15Piano Sandbox
Pro50da $15/sett.
Ultra250da $45/sett.
Agency500 + Firehoseda $119/sett.

Gestione errori e riconnessione

Il WebSocket si chiude con i codici di chiusura standard. Il tuo client deve gestire la riconnessione:

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

Domande frequenti

Come mi collego a una LIVE di TikTok via WebSocket?

Quali linguaggi di programmazione funzionano con il WebSocket di TikTok LIVE?

L'API WebSocket di TikTok LIVE è gratuita?

In cosa è diverso dalle librerie open source per le dirette?

Qual è la latenza della connessione WebSocket?