REFERINȚĂ EVENIMENTE · FIREHOSE LIVE · ÎN DIRECT ACUM

Vocabularul complet de evenimente TikTok LIVE

Chat. Cadouri. Like-uri. Intrări. Urmăriri. Meciuri LIVE. Abonamente. Fiecare eveniment din LIVE-urile TikTok vine printr-un singur WebSocket, cu metadate bogate. Fluxul de mai jos este firehose-ul public real, chiar acum - nu o machetă.

Flux de evenimente LIVE

Evenimente în buffer: 0 · LIVE public real

Așteptăm următorul eveniment LIVE...

În firehose-ul public, identitățile sunt ascunse, dar fiecare eveniment este un push real dintr-o cameră LIVE TikTok reală. Conectează-te cu propria cheie ca să primești payload-ul complet, fără mascare (nume de utilizator reale, avatare reale, număr real de Diamante) - singurul lucru care diferă între planuri este limita de conexiuni simultane.

Abonează-te la firehose din stack-ul tău

Alege limbajul. Copiază. Rulează. Cheia sandbox o iei de la /pricing.

import { TiktokLiveClient } from '@tiktool/live'

const client = new TiktokLiveClient({
  apiKey: process.env.TIKTOOL_API_KEY,
  uniqueId: 'tiktok_handle_here',
})

client.on('gift', (e) => {
  console.log(`${e.user.uniqueId} sent ${e.giftName} (${e.diamondCount} diamonds)`)
})

client.on('chat', (e) => console.log(`${e.user.uniqueId}: ${e.comment}`))
client.on('member', (e) => console.log(`+ join ${e.user.uniqueId}`))
client.on('like', (e) => console.log(`+ ${e.likeCount} likes`))
client.on('linkMicBattle', (e) => console.log('battle update', e.battleUsers))

await client.connect()

Fiecare eveniment, ce îl declanșează și ce conține payload-ul

Toate evenimentele au același format { event: string, data: object }. Mai jos: fiecare tip de eveniment și datele pe care le conține.

chatFoarte frecvent

Se declanșează când un spectator trimite un mesaj în chat. Cel mai frecvent eveniment.

userObjectuniqueId, nickname, profilePictureUrl, badges
commentStringTextul mesajului
userIdStringID-ul numeric al utilizatorului TikTok
{
  "event": "chat",
  "data": {
    "user": {
      "uniqueId": "viewer42",
      "nickname": "Viewer 42"
    },
    "comment": "Hello!",
    "userId": "7123456789"
  }
}

giftModerat

Se declanșează când un spectator trimite un cadou virtual. Include numele cadoului, valoarea în Diamante și datele seriei.

userObjectExpeditorul
giftNameStringde ex. "Rose", "Galaxy"
giftIdNumberID-ul numeric al cadoului
diamondCountNumberValoarea în Diamante
repeatCountNumberNumărul din serie
repeatEndBooleanTrue când seria se încheie
{
  "event": "gift",
  "data": {
    "user": {
      "uniqueId": "big_fan"
    },
    "giftName": "Rose",
    "giftId": 5655,
    "diamondCount": 1,
    "repeatCount": 5,
    "repeatEnd": true
  }
}

likeFoarte frecvent

Se declanșează când un spectator apasă butonul de like. Include totalul de like-uri acumulate.

userObjectCel care a dat like
likeCountNumberNumărul din acest eveniment
totalLikeCountNumberTotalul LIVE-ului
{
  "event": "like",
  "data": {
    "user": {
      "uniqueId": "liker1"
    },
    "likeCount": 15,
    "totalLikeCount": 12500
  }
}

memberModerat

Se declanșează când un spectator intră în camera LIVE.

userObjectUtilizatorul care intră
{
  "event": "member",
  "data": {
    "user": {
      "uniqueId": "new_viewer",
      "nickname": "New Viewer"
    }
  }
}

followRar

Se declanșează când un spectator începe să urmărească creatorul în timpul LIVE-ului.

userObjectUtilizatorul care urmărește
{
  "event": "follow",
  "data": {
    "user": {
      "uniqueId": "new_follower"
    }
  }
}

shareRar

Se declanșează când un spectator distribuie LIVE-ul.

userObjectUtilizatorul care distribuie
{
  "event": "share",
  "data": {
    "user": {
      "uniqueId": "sharer"
    }
  }
}

roomUserSeqPeriodic

Actualizare periodică a numărului de spectatori. Principala metodă de a urmări numărul de spectatori în timp real. SDK-ul îl emite și ca viewer_count (alias, același payload).

viewerCountNumberSpectatori LIVE chiar acum
topViewersArrayOrdonați după interacțiune
{
  "event": "roomUserSeq",
  "data": {
    "viewerCount": 1234,
    "topViewers": [
      {
        "user": {
          "uniqueId": "top_fan"
        },
        "coinCount": 5000
      }
    ]
  }
}

subscribeFoarte rar

Se declanșează când un spectator se abonează la creator.

userObjectAbonatul
{
  "event": "subscribe",
  "data": {
    "user": {
      "uniqueId": "subscriber1"
    }
  }
}

linkMicBattleÎn timpul Meciurilor LIVE

Se declanșează când un Meci LIVE TikTok începe, se actualizează sau se încheie. Include scorurile și participanții.

battleUsersArrayParticipanții cu scorurile lor
typeNumber1=început, 2=actualizare, 3=sfârșit
{
  "event": "linkMicBattle",
  "data": {
    "type": 1,
    "battleUsers": [
      {
        "uniqueId": "streamer1"
      },
      {
        "uniqueId": "streamer2"
      }
    ]
  }
}

roomPinFoarte rar

Se declanșează când creatorul fixează un mesaj din chat.

pinnedMessageObjectConținutul mesajului + expeditorul
{
  "event": "roomPin",
  "data": {
    "pinnedMessage": {
      "text": "Welcome!",
      "user": {
        "uniqueId": "streamer"
      }
    }
  }
}

Întrebări frecvente

Am nevoie de un plan plătit ca să primesc evenimente?

Nu. Planul Sandbox este gratuit și livrează payload-ul complet și real al evenimentelor (nume de utilizator reale, Diamante reale etc.) - clientul tău semnează WebSocket-ul upstream cu propriul cookie TikTok. Singurele limite stricte sunt 3 conexiuni WebSocket simultane și 5.000 de cereri REST/zi. Basic, la $7/săpt., ridică limita la 20 de WS simultane + 10.000 de cereri/zi.

Ce eveniment se declanșează cel mai des într-un LIVE aglomerat?

`like` și `chat` domină ca frecvență. `gift` este semnalul cu cea mai mare valoare per eveniment.

Mă pot abona la mai mulți creatori TikTok în același timp?

Da. Deschide câte un WebSocket pentru fiecare uniqueId. Planul Pro permite 50 de WS simultane, Ultra 250.

Cum detectez când se încheie o serie de cadouri?

Doar cadourile care permit serii (`giftType` 1) formează o serie: urmărește `repeatEnd === true` sau închide-o tu când nu mai sosește niciun cadru nou timp de câteva secunde, și ia cea mai mare valoare `repeatCount`. Celelalte cadouri nu trimit niciodată un cadru de final: o trimitere în cantitate, de exemplu 8x, este un singur cadru cu `repeatCount` 8, așa că numără-l imediat ce sosește. În ambele cazuri, totalul de Diamante = `diamondCount * repeatCount`.

Care este latența față de LIVE-ul propriu-zis?

Evenimentele sosesc la ~150-400 ms după ce se declanșează pe TikTok. Mai repede decât fluxul video însuși pe majoritatea CDN-urilor.

Evenimentele de Meci LIVE se declanșează pentru ambii creatori?

Da. Conectează-te la oricare dintre creatorii din meci - amândoi primesc același eveniment `linkMicBattle`, cu ambii `battleUsers` completați.