Guide

TikTok LIVE API WebSocket

Connecte-toi à n'importe quel stream TikTok LIVE en WebSocket. Reçois les messages du chat, les cadeaux, le nombre de spectateurs, les battles et les données d'engagement en temps réel avec une latence sous les 50ms. Compatible avec tous les langages de programmation.

Comment fonctionne le WebSocket TikTok LIVE

TikTool fournit un endpoint WebSocket géré sur wss://api.tik.tools qui diffuse en temps réel les événements de n'importe quel stream TikTok LIVE. Tu te connectes avec ta clé API et un pseudo TikTok - le serveur gère toute la négociation du protocole, l'authentification et la reconnexion.

Contrairement aux connexions directes au protocole de diffusion de TikTok (qui cassent souvent), l'API WebSocket de TikTool est un relais stable, prêt pour la production.

Démarrage rapide - connecte-toi en 3 lignes

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 connecte-toi directement en WebSocket natif (sans 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", {}))

Tous les langages

Tout langage qui gère le WebSocket fonctionne - Go, Rust, Java, C#, Ruby, PHP. Connecte-toi simplement à :

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

Paramètres de connexion WebSocket

ParamètreRequisDescription
uniqueId✓Pseudo TikTok (sans @) du streamer
apiKey✓Ta clé API TikTool
jwtKeyAuthentification par JWT (alternative à apiKey pour les clients navigateur avec jeton)

Types d'événements

Chaque message WebSocket est un objet JSON avec les champs event et data. Voici les événements que tu recevras :

chat

Nouveau message d'un spectateur dans le chat. Inclut les infos de l'utilisateur, le texte et les badges.

gift

Cadeau virtuel envoyé par un spectateur. Inclut le nom du cadeau, sa valeur en diamants et le nombre de répétitions.

like

Un spectateur a liké le stream. Inclut le nombre total de likes.

member

Un spectateur a rejoint le stream. Se déclenche quand un utilisateur entre dans la salle du live.

social

Follow / partage / favori. Le champ data.action indique lequel (follow, share, favourite).

roomUserSeq

Mise à jour du nombre de spectateurs. Inclut le viewerCount actuel et les topViewers.

subscribe

Un spectateur s'est abonné au streamer.

battle

Événement de battle LinkMic. Inclut le statut de la battle, les scores, la durée et les participants.

battleArmies

Mise à jour des équipes de la battle. Scores des équipes et classement des participants.

linkMic

Mise à jour de la disposition des invités LinkMic. Inclut les IDs des emplacements et des invités pour les streams à plusieurs hôtes.

roomPin

Le streamer a épinglé un message du chat.

liveIntro

Mise à jour de la présentation du stream. Inclut le titre et la description.

emoteChat

Emote personnalisée envoyée dans le chat. Inclut l'ID de l'emote et l'URL de l'image.

envelope

Événement coffre au trésor / enveloppe rouge dans le stream.

question

Question Q&R envoyée par un spectateur.

rankUpdate

Actualisation du classement du streamer par région.

barrage

Message d'annonce / barrage en haut de l'écran.

superFan

Un spectateur est devenu Super Fan ou a gagné un niveau. Inclut le nouveau niveau.

superFanJoin

Un Super Fan a rejoint la salle.

superFanBox

Événement coffre / récompense Super Fan.

control

Contrôle du cycle de vie du stream (pause, fin, etc.).

Limites de connexion par offre

OffreConnexionsPrix
Sandbox (gratuit)15Offre Sandbox
Pro50dès $15/semaine
Ultra250dès $45/semaine
Agency500 + Firehosedès $119/semaine

Gestion des erreurs et reconnexion

Le WebSocket se ferme avec des codes de fermeture standard. Ton client doit gérer la reconnexion :

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

Questions fréquentes

Comment se connecter à un live TikTok en WebSocket ?

Quels langages de programmation fonctionnent avec le WebSocket TikTok LIVE ?

L'API WebSocket TikTok LIVE est-elle gratuite ?

Quelle différence avec les bibliothèques open source pour les lives ?

Quelle est la latence de la connexion WebSocket ?