EVENT-REFERENZ · LIVE-FIREHOSE · JETZT LIVE
Das komplette Event-Vokabular von TikTok LIVE
Chat. Geschenke. Likes. Beitritte. Follows. Battles. Abos. Jedes Event aus TikTok LIVE kommt über einen WebSocket, mit umfangreichen Metadaten. Der Feed unten ist gerade die echte öffentliche Firehose - kein Mockup.
Live-Event-Feed
Warte auf das nächste Live-Event...
Die öffentliche Firehose ist maskiert, aber jedes Event ist ein echter Push aus einem echten TikTok-LIVE-Raum. Verbinde dich mit deinem eigenen Key, um den kompletten unmaskierten Payload zu bekommen (echte Usernamen, echte Profilbilder, echte Diamantenzahlen) - zwischen den Tarifen ändert sich nur das Limit gleichzeitiger Verbindungen.
Abonnier die Firehose in deinem Stack
Sprache wählen. Kopieren. Ausführen. Sandbox-Key gibt's auf /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()Jedes Event: was es auslöst und was im Payload steckt
Alle Events teilen sich den Umschlag { event: string, data: object }. Unten: jeder Eventtyp und die Daten, die er mitbringt.
chatSehr häufig
Wird ausgelöst, wenn ein Zuschauer eine Chatnachricht sendet. Das häufigste Event.
userObjectuniqueId, nickname, profilePictureUrl, badgescommentStringDer NachrichtentextuserIdStringNumerische TikTok-User-ID{
"event": "chat",
"data": {
"user": {
"uniqueId": "viewer42",
"nickname": "Viewer 42"
},
"comment": "Hello!",
"userId": "7123456789"
}
}giftMittel
Wird ausgelöst, wenn ein Zuschauer ein virtuelles Geschenk sendet. Enthält Geschenkname, Diamantenwert und Streak-Daten.
userObjectAbsendergiftNameStringz. B. "Rose", "Galaxy"giftIdNumberNumerische Geschenk-IDdiamondCountNumberDiamantenwertrepeatCountNumberStreak-ZählerrepeatEndBooleanTrue, wenn der Streak endet{
"event": "gift",
"data": {
"user": {
"uniqueId": "big_fan"
},
"giftName": "Rose",
"giftId": 5655,
"diamondCount": 1,
"repeatCount": 5,
"repeatEnd": true
}
}likeSehr häufig
Wird ausgelöst, wenn ein Zuschauer auf den Like-Button tippt. Enthält die gesammelten Likes insgesamt.
userObjectLikerlikeCountNumberAnzahl in diesem EventtotalLikeCountNumberSumme im Stream{
"event": "like",
"data": {
"user": {
"uniqueId": "liker1"
},
"likeCount": 15,
"totalLikeCount": 12500
}
}memberMittel
Wird ausgelöst, wenn ein Zuschauer den Live-Raum betritt.
userObjectBeitretender User{
"event": "member",
"data": {
"user": {
"uniqueId": "new_viewer",
"nickname": "New Viewer"
}
}
}followSelten
Wird ausgelöst, wenn ein Zuschauer dem Streamer während des LIVE folgt.
userObjectFolgender User{
"event": "follow",
"data": {
"user": {
"uniqueId": "new_follower"
}
}
}shareSelten
Wird ausgelöst, wenn ein Zuschauer den Livestream teilt.
userObjectTeilender User{
"event": "share",
"data": {
"user": {
"uniqueId": "sharer"
}
}
}roomUserSeqRegelmäßig
Regelmäßiges Update der Zuschauerzahl. Der wichtigste Weg, Zuschauerzahlen in Echtzeit zu verfolgen. Das SDK sendet es zusätzlich als viewer_count (Alias, gleicher Payload).
viewerCountNumberAktuelle Live-ZuschauertopViewersArrayNach Engagement sortiert{
"event": "roomUserSeq",
"data": {
"viewerCount": 1234,
"topViewers": [
{
"user": {
"uniqueId": "top_fan"
},
"coinCount": 5000
}
]
}
}subscribeSehr selten
Wird ausgelöst, wenn ein Zuschauer den Streamer abonniert.
userObjectAbonnent{
"event": "subscribe",
"data": {
"user": {
"uniqueId": "subscriber1"
}
}
}linkMicBattleWährend Battles
Wird ausgelöst, wenn ein TikTok-LIVE-Battle startet, sich aktualisiert oder endet. Enthält Punktestände + Teilnehmer.
battleUsersArrayTeilnehmer mit PunkteständentypeNumber1=Start, 2=Update, 3=Ende{
"event": "linkMicBattle",
"data": {
"type": 1,
"battleUsers": [
{
"uniqueId": "streamer1"
},
{
"uniqueId": "streamer2"
}
]
}
}roomPinSehr selten
Wird ausgelöst, wenn der Streamer eine Chatnachricht anpinnt.
pinnedMessageObjectNachrichteninhalt + Absender{
"event": "roomPin",
"data": {
"pinnedMessage": {
"text": "Welcome!",
"user": {
"uniqueId": "streamer"
}
}
}
}Häufige Fragen
Brauche ich einen bezahlten Tarif, um Events zu empfangen?
Nein. Der Sandbox-Tarif ist kostenlos und liefert den kompletten echten Event-Payload (echte Usernamen, echte Diamanten usw.) - dein Client signiert den Upstream-WebSocket mit seinem eigenen TikTok-Cookie. Die einzigen festen Limits sind 3 gleichzeitige WebSocket-Verbindungen und 5.000 REST-Anfragen/Tag. Basic für $7/Wo. hebt das Limit auf 20 gleichzeitige WS + 10.000 Anfragen/Tag.
Welches Event kommt in einem vollen Stream am häufigsten?
`like` und `chat` liegen bei der Häufigkeit vorn. `gift` ist pro Event das wertvollste Signal.
Kann ich mehrere TikTok-Creator gleichzeitig abonnieren?
Ja. Öffne einen WebSocket pro uniqueId. Der Pro-Tarif erlaubt 50 gleichzeitige WS, Ultra 250.
Wie erkenne ich, wann ein Geschenk-Streak endet?
Nur streakfähige Geschenke (`giftType` 1) laufen als Streak: Achte auf `repeatEnd === true` oder schließ den Streak selbst ab, wenn ein paar Sekunden lang kein neuer Frame kommt, und nimm den höchsten `repeatCount`. Andere Geschenke senden nie einen End-Frame: Ein Mengen-Geschenk wie 8x ist ein einzelner Frame mit `repeatCount` 8, zähl es also direkt beim Eintreffen. So oder so gilt: Diamanten gesamt = `diamondCount * repeatCount`.
Wie hoch ist die Latenz im Vergleich zum eigentlichen Stream?
Events kommen ~150-400 ms an, nachdem sie auf TikTok ausgelöst wurden. Auf den meisten CDNs schneller als der Videostream selbst.
Werden Battles für beide Creator ausgelöst?
Ja. Verbinde dich mit einem der beiden Creator im Battle - beide bekommen dasselbe `linkMicBattle`-Event, bei dem `battleUsers` für beide befüllt ist.