Finden Sie Ereignisnamen, Nutzlastfelder und Erfassungsanforderungen für Ihre Quelle. Eine kurze Übersicht über unterstützte Warnungen finden Sie unter Kompatibilität von Ereignissen und Meldungen.
Aufnahmeeinstellungen, Filter und Nutzlastkonventionen
Wichtig: Ereignisverfügbarkeit hängt von Quelle, Berechtigungen und Erfassungseinstellungen ab. Füge zum Ausblenden ereignismarkierter Zeilen in Dock- oder Featured-Overlays &hideevents oder &hideallevents. Verwende zum Ausblenden ausgewählter Ereignisse &filterevents=subscription_gift,new_follower,gifted. Diese Filter können auch bezahlte Zeilen ausblenden, die ein event; normale Spendenzeilen ohne Ereigniskennzeichen werden von Ereignisfiltern nicht erfasst. Andere Nachrichtenfilter gelten weiterhin.
Erfassungsmethode auswählen: Für YouTube, Twitch und Kick WebSocket-Modus bietet generell größere Ereignisabdeckung. Standard-DOM-Erfassung liest die tatsächlich auf der Seite dargestellten Zeilen und Karten. YouTube Super Chats, Super Stickers und Jewel-Geschenke haben in beiden Modi Erfassungswege; andere Geschenk-, Trinkgeld- und Mitgliedschaftsereignisse hängen von der Quelle ab. Unterstützte Wege und nötige Einstellungen stehen in den Plattformtabellen.
Du baust Automatisierungen? Sieh dir den Event-Flow-Leitfaden um zu erfahren, wie du diese Ereignisnutzdaten in eigenen Auslösern, Meldungen und Workflows verwendest. Der Leitfaden enthält eine Referenz der Vorlagenvariablen zur Textformatierung. Zu Geschenkbeträgen, Serienzählung und anpassbaren Spielbeispielen siehe Spiele und Belohnungen erstellen.
Nutzdatenstruktur: Chatzeilen im Spendenformat sollten hasDonation und optionales donoValue. Setze nicht event: "donation" nur weil eine normale Chat-/Trinkgeldzeile einen Wert hat; verwende spezifische Ereignisnamen nur für tatsächliche Plattformaktionen oder bezahlte Artikeltypen, etwa superchat, supersticker, gift, oder jeweldonation. Verwende meta nur für zusätzliche strukturierte Daten, die Verbraucher tatsächlich benötigen und die bestehende Felder noch nicht abdecken.
Funktionsverfügbarkeit auf einen Blick
Diese Tabelle zeigt, welche Meldungstypen die einzelnen Erfassungsmethoden derzeit liefern. Ausführliche Nutzdatenhinweise folgen unten.
Die eigene Multi-Stream Alert Box gruppiert Live-Ereignisse in sechs zentrale Meldungskategorien: Follow, Subscription/Member, Donation, Bits/Cheers, Raid/Host, und Purchase, sowie zwei ausdrücklich zu aktivierende Kategorien (Auction und Hype Train) per URL-Parameter aktiviert. Es leitet diese Kategorien aus den bestehenden event, membership, subtitle, hasDonation, und meta hier dokumentierten Felder; kein separates Nutzdatenformat ist nötig.
Stream-Status, Belohnungseinlösungen und Profilmetadaten
Facebook Live
-
-
Stars, wenn im DOM sichtbar
Chatzeilen, Stars und Zuschauerzahlabfragen
Rumble – DOM-Erfassung
-
-
Sichtbare Rant-Preise
Chat, eingehende Raids und Zuschauerzahlabfragen
Rumble – WebSocket-/API-URL
Neue und verschenkte Abonnements
Follow-Meldungen + Followergesamtzahl
Rants/Trinkgelder (Betrag + Währung)
Zuschauergesamtzahlen, Abonnentengesamtzahlen, Live-Status und Chatfeed
Streamplace
-
-
-
Zuschauerzahl plus Chatnamen, Farben, Abzeichen, Antworten und Links
WorldsWave
-
-
Spendenbeschriftungen, falls vorhanden
Dargestellter Livechat plus ausdrücklich aktivierte Zuschauerzahlaktualisierungen
CHZZK
-
-
Sichtbare Cheese-Spendenzeilen
Chatzeilen, Abzeichenbilder, Emotes und Zuschauerzahlabfragen
BEAM
-
-
-
Chatzeilen und Zuschauerzahlabfragen, wenn die reine Chatseite einen Zuschauerzähler bereitstellt
Seal Team Sloth
-
-
-
Dargestellte Popout-Chatzeilen plus viewer_update Abfragen bei aktivierten Zuschauerzahlen
Castyr
-
-
-
Dargestellte Popout-Chatzeilen plus ausdrücklich aktivierte Zuschauerzahlaktualisierungen
RPLAY
-
-
-
Angemeldetes /live/chat/box/ Popout: type: "rplay" Chat, Avatare, Stufenabzeichenbilder und Emotes. Münztrinkgelder behalten Betrag/Einheit in hasDonation für die gemeinsame USD-Umrechnung, ohne Spendenereignis. Ausdrücklich aktiviertes viewer_update Abfragen verwenden ganzzahliges meta aus RPLAYs öffentlichem Streamendpunkt. Weitergeleitete Twitch-Zeilen werden ausgeschlossen.
FLEX TV
-
-
-
Dargestellte Chatzeilen mit Namen, Autorenfarben, Abzeichenbildern und Mitgliedsmetadaten
Chat capture and viewer counts on chat and watch pages
*YouTube-Abonnentenmeldungen werden per Polling abgerufen und können verspätet oder unvollständig sein. Die API-Referenz verspricht kein festes Zustellfenster von vier Stunden. Siehe die offizielle Grenzen der Abonnement-API.
Feldübersicht
data bedeutet hier das Nachrichtenobjekt, keine zusätzliche Hülle. Chatzeilen und reine Metadatenereignisse haben unterschiedliche Strukturen: Zähler und Statusmomentaufnahmen können chatname/chatmessage. In Plattformtabellen, Nachricht beschreibt eine normale Chatzeile, kein wörtliches event: "message".
Feld
Struktur
Verwendung
data.type
Zeichenfolge
Quellkennung für Overlays, Filter und Event Flow. Instagram behält Livechat als instagramlive und nicht live stattfindende Kommentare als instagram. Siehe die Quelltypen-Leitfaden zu Varianten, allgemeinen Quellen und ausgehendem Routing.
data.chatname
Zeichenfolge
Source-provided display name used by message processing and non-overlay outputs. A configured user display-name alias may replace this value only in copied dock and overlay transport payloads. The opt-in Show display name (username) setting appends the username when a source supplies both names and they differ, ignoring capitalization, for example 알렌 (allenhklee). These copies retain the source name in meta.sourceDisplayName for moderation matching. Custom aliases take priority; username remains the account login.
data.username
Zeichenfolge
Quellbenutzername, falls verfügbar. Dock- oder Overlay-Nutzdaten mit Alias können dieses Feld ergänzen, um den ursprünglichen chatname für Benutzeraktionen; die kanonische Nachricht bleibt unverändert.
data.userid
Zeichenfolge
Plattformspezifische Benutzerkennung. Benutzeraktionen bevorzugen diesen Wert gegenüber username und chatname.
data.platform
Zeichenfolge (optional)
Manche Integrationen enthalten dies neben type. Viele Quelladapter lassen es weg; verwende type für Quellrouting.
data.id
Zeichenfolge | Zahl (optional)
Nachrichten- oder Ereigniskennung. Ihre Bedeutung hängt von Quelle und Transport ab; gehe nicht davon aus, dass sie immer eine plattformnative Moderations-ID ist. Verwende meta.messageId wenn der Adapter es zur Löschsynchronisierung bereitstellt.
data.donoValue
Zahl (optional)
Von der Quelle geliefertes numerisches USD-Äquivalent einschließlich Schätzungen. Ein gültiger Wert (auch null) hat Vorrang vor der Umrechnung durch currency.js. Fehlt er, schätzen Verbraucher USD anhand von hasDonation und Quellkontext. Ursprüngliche Beträge und Einheiten bleiben in hasDonation und bestehenden Anbietermetadaten.
data.chatbadges
Array | Zeichenfolge (optional)
Abzeichen-Bild-URLs oder Abzeichenobjekte (type: "img" mit src, type: "svg" mit html, oder type: "text" mit text). Das Relay bewahrt die wörtliche Beschriftung eines Textabzeichens im optionalen rawText und erzeugt escaptes text für ältere Overlays. Erzeuge bei späteren Weiterleitungen text aus rawText; escape nicht text erneut. Aktuelle Renderer zeigen rawText wörtlich, wenn vorhanden, und behalte andernfalls die ältere Behandlung kodierten Texts bei. Dies ist ein Darstellungsfeld, keine Erlaubnis zum Rendern von HTML. Ältere Quellen können statt eines Arrays eine einzelne HTML-Zeichenfolge senden. Overlays zur Abzeichendarstellung akzeptieren beide Formate und bereinigen Abzeichen-HTML und URLs lokal, auch bei älteren Erweiterungen als Absender. Ungültige Abzeichen dürfen die Anzeige der Chat- oder Mitgliedschaftsnachricht nicht verhindern.
data.event
Zeichenfolge | boolesch
Kennung für Systemaktivität (zum Beispiel viewer_update, subscription_gift, giftpurchase). Normaler Chat sollte dies leer/false lassen, damit Overlays Systemhinweise von Gesprächsbeiträgen unterscheiden können.
data.chatmessage
Zeichenfolge
Nachrichteninhalt. Darf nur bereinigtes/darstellbares HTML enthalten, wenn data.textonly false ist.
data.textonly
boolesch
Gilt nur für data.chatmessage. true bedeutet, chatmessage als Klartext und bewahre wörtliche Tags und Text, der wie Entitäten aussieht; dekodiere oder HTML-bereinige diesen Inhalt nicht und füge keine Formatierungstags hinzu. Wende den Ereignisstil auf das angezeigte Element an. false bedeutet chatmessage kann bereinigtes/darstellbares HTML enthalten; ältere Nachrichten ohne Kennzeichen behalten dieses HTML-Verhalten. Andere normale Felder sind Klartext, ausgenommen Medienfelder wie chatimg und contentimg. Zeige Klartextfelder mit textContent, oder escape sie einmal beim Erstellen einer HTML-Vorlage; entferne oder dekodiere ihre Inhalte nicht wiederholt.
data.contentimg
Zeichenfolge (optional)
Inhaltsbild oder unterstützte Medien-URL. In Erweiterung und Desktop-App erkennt die ausdrücklich aktivierte allowExternalGifs Einstellung füllt ein leeres Feld aus dem ersten direkten HTTP(S)-GIF-Link im Nachrichtentext oder einem HTML-Link. Der URL-Pfad muss auf .gif (ohne Beachtung der Groß-/Kleinschreibung); Abfrageparameter und Fragmente bleiben erhalten. Benötigt keinen API-Schlüssel, bewahrt chatmessage und bestehende Anhänge und beachtet removeContentImage. Das optionale hideExternalGifUrl Einstellung ergänzt meta.hideExternalGifUrl: true; Dock und Featured-Overlay blenden den passenden GIF-Link erst aus, nachdem ihr Bild geladen wurde, und behalten umgebenden Text und ursprüngliche Nutzdaten. Fehlgeschlagene oder zu lange ladende Bilder klappen ihren Anhangscontainer ein und lassen den Link sichtbar. Das reine GIF-Overlay versucht eine direkte Bildanzeige, wenn der Abruf der Bildbytes scheitert, und verwendet die konfigurierte Anzeigedauer, wenn die Animationsdauer unbekannt ist; bei fehlgeschlagenem oder stockendem Laden geht die Warteschlange weiter. Es fügt kein event oder ändere die Quelle type. Externe Bilder werden nicht inhaltlich gefiltert und laden möglicherweise nicht, wenn der Host Einbettung blockiert.
data.membership
Zeichenfolge
Lesbarer Mitgliedschaftsstatus wie MEMBERSHIP, new_sponsor, gift_recipient. Oberflächen verwenden es für Abzeichen, Filter und Ansagen.
data.subtitle
Zeichenfolge
Ergänzende Beschreibung (Mitgliedschaftsdauer, Stufen-Upgrades, verschenkt von …). Halte sie kurz und als Klartext, damit Overlays sie unter dem Anzeigenamen platzieren können.
data.hasDonation
Zeichenfolge
Geldbetrag oder Wert eines virtuellen Geschenks ($5.00, 500 bits, 300 coins). Auch befüllen, wenn data.event ist leer, damit Spenden-Overlays es erkennen können.
data.meta
Zahl | Objekt | Zeichenfolge (älter)
Verwende einfache Ganzzahlen für einzelne Zähler (Zuschauer, Follower, Abonnenten) und Objekte für umfangreicheren Kontext. Manche älteren Ereignisse wie Twitch-DOM- community_highlight, enthalten eine Zeichenfolge. Prüfe die ereignisspezifische Struktur, bevor du Objekteigenschaften liest; neue strukturierte Details gehören in ein Objekt.
data.firsttime
boolesch
Auf true wenn die Erkennung erstmaliger Chatteilnehmer und die lokale Datenbank aktiviert sind und dies die erste gespeicherte Chatnachricht für diesen Benutzer/diese Quelle ist. Das Dock verwendet dies für die erstmalige Hervorhebung und entsprechende Signaltonfilter; die optionale Erstmalig-Abzeicheneinstellung stellt ein Blattabzeichen vor chatbadges.
data.lastactivity
Zahl
Unix-Zeitstempel in Sekunden für die zuvor gespeicherte Chataktivität dieses Benutzers, wenn Erkennung erstmaliger Chatteilnehmer und lokale Datenbank aktiviert sind. Bei ganz neuen Benutzern weggelassen.
Meta-Konventionen
Overlay-Steuerungstransport ist von erfasstem Chat/Ereignissen getrennt. Aktualisierte Empfänger verwenden einen ssnControl Hülle mit einer Zustellungs- id, hervorheben target, optionaler Antwortkanal und Snapshot-Client-ID. Bestehende Funktionsinhalte bleiben erhalten. Öffentliche Funktionssteuerung verwendet Kanal 7; Actions behält Kanal 6. Poll- und Map-Zustand enthält eine Host- epoch, revision und reset Kennzeichen; Timer, Ticker und Spotify verwenden ssnState mit einer Epoche und Revision. Diese Markierungen beschreiben den Host-Zustand, keinen wiederhergestellten Abstimmungs-/Chatverlauf. Quellen dürfen erfassten Nachrichten keine Steuerungshüllenfelder hinzufügen. Eine Empfangsbestätigung belegt weder Aktionsabschluss noch OBS-Sichtbarkeit. Siehe den Migrationsstatus zu unterstützten Funktionen, Antwortaushandlung und Wiederverbindungsgrenzen.
Phrase Guess verwendet das native {response: text} Anfrage für server2-Chatantworten und {action: "phraseGuessResponse", value: {type: "bot", chatname: name, chatmessage: text}} für Ansagen nur im Dock. Der Host muss eingehende server3-Nachrichten aktivieren; deaktivierte Host-Steuerung blockiert diese Anfragen weiterhin. Dock-Ansagen werden als normale Bot-Chatzeilen weitergeleitet mit textonly: true, ohne sie an Chateingaben der Erfassungsquellen zu senden. Der ältere API-Modus behält sein bestehendes Befehlsformat.
Befolge diese Konventionen beim Erweitern von data.meta:
viewer_update, follower_update, subscriber_update, und likes_update verwenden eine einfache Ganzzahl meta Wert. likes_update ist eine maßgebliche Plattformgesamtzahl: Verbraucher müssen den angezeigten Wert setzen, statt ihn zu addieren. Das Hintergrundskript fasst Zuschauerzahlen in viewer_updates mit einem Objekt mit Schlüsseln nach data.type.
giveaway_state ist eine vom Host erzeugte Momentaufnahme nur mit Metadaten für verwaltete Anzeigen. meta.giveaway Version 2 enthält giveawayId, dauerhaftes roundId/epoch, erhöht generation über neue Runden hinweg, revision innerhalb einer Runde, status, open, draw, keyword, count, ticketCount, eingefrorenes config, bis zu 120 Vorschau- entrants, und die letzten 20 winners. Einträge liefern id, name, platform und tickets; Gewinner ergänzen drawnAt und vergebene points. Coin Flip Pot ergänzt outcome; Number Hunt ergänzt number mit öffentlichem low, high und aktuelle guesses, niemals das Geheimnis. Verbraucher filtern nach Gewinnspiel-ID und verwerfen ältere Generationen/Revisionen. Dies sind Anzeigeauszüge, kein vollständiges Ticketbuch und keine Auszahlungsanweisung. Kontoschlüssel, Guthaben und Reservierungen bleiben außerhalb der Zuschauermomentaufnahmen. Der Host veröffentlicht an giveaway P2P-Label und aktivierte Overlay-WebSocket-Feeds; dies sagt nichts über OBS-Sichtbarkeit aus. Leitfaden.
meta.giveawayControlResult enthält das Ergebnis einer Event-Flow-Gewinnspielaktion (ok, optionales error, giveaway oder simulated). meta.giveawayHandled listet Gewinnspiel-IDs, die bereits durch eine Teilnahme-/Kauf-Flow-Aktion verarbeitet wurden, damit der automatische Chatbefehl nicht erneut abbucht. Der Editor ergänzt meta.economyTest für simulierte Gewinnspielaktionen; es ist weder ein Ereignis der Quellplattform noch ein Autorisierungsnachweis.
video_stats verwendet ein strukturiertes meta Objekt für den Zustand externer Encoder/Server, einschließlich provider, label, online, bitrateKbps, rttMs, bufferMs, Paketverlust-/Verwerfungszähler und optionale Codec-Details.
Ereignisse im Spendenformat können ein beschreibendes Objekt enthalten, zum Beispiel { amount, currency, supporter } für Kick, { bits } für Twitch-Cheers. Mitgliedschaftsereignisse haben eigene quellspezifische Metadaten; sie sind nicht automatisch Geldspenden.
Normalisierte Stripe-, Ko-fi-, Buy-Me-a-Coffee- und Fourthwall-Webhook-Nachrichten enthalten anbieterspezifische meta.webhookId, kopiert aus der stabilen Ereigniskennung des Anbieters, damit nachgelagerte Seiten Duplikate durch Wiederholungen und gemischte Transportwege unterdrücken können.
Twitch-Raids übergeben { fromId, fromLogin, viewers }. Andere Quellen unterscheiden sich: Whatnot verwendet meta.numRaiders, während SharePlay optionales meta.fromLogin/meta.viewers. Prüfe die quellenspezifische Zeile, bevor du Raid-Metadaten liest.
Twitch-EventSub-Belohnungseinlösungen liefern meta.rewardId, cost, rewardTitle, redemptionId, und ein älteres alias zusammen mit der vorbereiteten Nachricht. DOM-Belohnungskarten und andere Quellen können weniger oder andere Felder liefern.
user_banned enthält nur Metadaten für Moderationswidgets. Bewusst weggelassen wird chatname und chatmessage; verwende meta.username, meta.displayName, meta.avatarUrl, und meta.profileUrl.
Chattransporte mit Unterstützung für Löschsynchronisierung der Quellsteuerung sollten die plattformnative Chatkennung als meta.messageId statt sich auf das interne data-mid Wert.
Quelllöschungen verwenden {delete: {type, id}} für eine bekannte Dock-Nachrichten-ID oder {delete: {type, meta: {messageId}}} für eine native Plattform-Nachrichten-ID. Eine bekannte ID entfernt nur passende Nachrichten. Ist nur der Zielbenutzer bekannt, sende {delete: {type, userid}} oder {delete: {type, chatname}} um die Nachrichten dieses Benutzers von dieser Plattform zu entfernen. Ersetze die Identität des Zielbenutzers nie durch die des Moderators. Eingehende Löschungen benötigen die optionale Einstellung zur Dock-zu-Plattform-Moderationssynchronisierung nicht.
SSApp-Quellidentitätsmetadaten können meta.ssnAccountRole, meta.ssnSourceId, und meta.ssnSession wenn einer Quelle eine abweichende Kontorolle zugewiesen wird.
Event Flow kann eine Hervorhebung anfordern, indem es meta.featured = true in den Chatnutzdaten, wodurch die Nachricht in Dock-/Featured-Overlays automatisch hervorgehoben wird.
AI Event Overlay: die Aktion showAiEventOverlay sendet eine Kopie der auslösenden Nachricht an das Label aievent-CONFIGURATION_ID und fügt Folgendes hinzu: meta.aiEventOverlay: {profile: "CONFIGURATION_ID"}. Bestehende Nachrichtenfelder und Metadaten in Objektform bleiben erhalten; skalare Metadaten werden gespeichert als meta.value. Dies ist eine gezielte Zustellung, kein neues Plattformereignis. Die ursprüngliche Nachricht wird nicht verändert. Siehe den Einrichtungsleitfaden.
Optional meta.aiEventOverlay.variation wählt eine exakte, in den gespeicherten Overlay-Einstellungen freigegebene Formulierung aus. Zuschauertext und Metadaten füllen die Vorlagenfelder nach der Generierung.
Anzeigeanfragen für AI Event Overlay benötigen ein Profil und dessen privates Anzeigetoken. Einstellungen und API-Schlüssel werden ausschließlich im lokalen SSN-Popup verwaltet. Antworten verwenden {aiEventResponse: {target, value}} oder {aiEventResponse: {target, error}}. Generierte Ergebnisse enthalten template, duration, warnings, sowie optionale Medien-Daten-URLs in image/audio.
Mit Punkten bezahlte KI-Overlay-Belohnungen verwenden aiEventPresentation (id, profile, expiresAt, result, message) und bestätigen den Empfang mit aiEventDelivered (Zustellungs-ID). Abbuchungsbelege und Erstattungsbeträge verbleiben beim Host.
Event Flow kann Anheften im Dock anfordern, indem es meta.pinned = true; optionales meta.pinnedTarget beschränkt das Anheften auf ein Dock mit passendem label.
Event-Flow-Thermodruck speichert sein Ergebnis unter meta.thermalPrintResult (success und optionales code/error), wobei Chatereignis und andere Metadaten erhalten bleiben. Bei Ereignissen mit numerischen oder anderen nicht objektförmigen Metadaten bleibt die Diagnose im Aktionsergebnis und das Ereignis unverändert.
Ausdrücklich zu aktivierende SSN-Stickerbelohnungen:event: "sticker" wird nur an das stickers Overlay-Label nach Abbuchung von Treuepunkten. Es setzt platform und type auf das type, und bewahrt chatname, mit leerem chatmessage, textonly: true, und contentimg mit einem relativen Pfad zu einem mitgelieferten Bild oder einer vom Host genehmigten HTTPS-Medien-URL. meta.sticker enthält id, pack, name, cost, duration (Sekunden), motion, redemptionId, und expiresAt (Unix-Millisekunden). Dies ist eine SSN-Belohnung, keine Plattformspende und kein natives Kanalpunkteereignis. Siehe den Galerie und Einrichtungsleitfaden.
Der Stickerplayer gibt ein Steuerungspaket zurück {action: "stickerReceipt", meta: {sticker: {redemptionId, success}}} an seinen Absender, wenn das Bild lädt oder fehlschlägt. Nur Empfangsbestätigungen von einem verbundenen stickers Peer eine ausstehende Einlösung abschließt. Fehlgeschlagene oder unbestätigte Zustellung löst eine Erstattung aus; dieses Steuerungspaket ist kein Chatereignis. Eine aktive Stickeranzeige pro Sitzung wird empfohlen.
KI-Bühnen-Overlay-Befehle verwenden { action: "aiOverlay", target, meta } oder vom Dock gesteuerte Co-Host-Wiedergabe verwendet { action: "cohostOverlay", target, meta }; behalte alle Befehlsdetails wie command, text, emotion, avatar, und tts innerhalb meta.
Wenn eine Plattform mehrere Zähler zusammen liefert, bevorzuge ein strukturiertes Objekt mit ausdrücklichen Schlüsseln (meta.viewer_count, meta.follower_count) statt Zeichenfolgen mit mehreren Bedeutungen zu überladen.
Verkaufs-Overlays sollten Momentaufnahmeobjekte unter meta (zum Beispiel auction_update und commerce_update) und vermeide zusätzliche Felder auf oberster Ebene.
Plattformabdeckung
YouTube – Standard-DOM-Erfassung
Implementierung: sources/youtube.js
Lass den Livechat-Tab geöffnet. Die Erfassung liest Mitgliedschafts- und Geschenkkarten, die in dieser Sitzung dargestellt werden; der Zuschauer muss dafür weder Kanalbesitzer noch Moderator sein. Kontozugriff und gewählte Chatansicht können beeinflussen, welche Zeilen sichtbar sind.
Beim Öffnen des Overlays für Zuschauerzahl und Chataktivität mit eingeblendeten Zuschauern werden die Zuschauerzahlen automatisch angefordert. Auch die Einstellungen Zuschauerzahl anzeigen und Aktive Chatteilnehmer erfassen aktivieren die Erfassung.
Für Follower-Meldungen und zusätzliche Ereignisse, aktiviere den WebSocket-Modus in den Erweiterungseinstellungen.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
sponsorship
Willkommensüberschrift einer Mitgliedschaft ohne ausdrücklichen Chattext (neue Mitglieder, eintreffende Geschenkpakete), einschließlich strukturierter Willkommenskarten oder lokalisiertem „Willkommen bei …“-Text.
membership mit übersetztem „MEMBERSHIP“ befüllt; subtitle enthält Serie/Stufe, falls erkannt; nameColor verwendet Mitgliedschaftsgrün, soweit erlaubt.
giftpurchase
Banner für den Kauf eines Geschenkpakets (ytd-sponsorships-live-chat-gift-purchase).
membership wird zu gift_giver; subtitle enthält die Geschenkanzahl, wenn bekannt; kein hasDonation oder donoValue.
giftredemption
Geschenkeinlösungsankündigung für Empfänger.
membership wird zu „MEMBERSHIP“; subtitle enthält „Gifted by …“.
resub
Upgrade-Banner mit „upgraded to …“.
subtitle erfasst die neue Stufenbeschriftung; membership bleibt „MEMBERSHIP“.
membermilestone
Mitgliedschafts-Meilensteinkarten mit Chattext, wenn noch kein anderer Ereignistyp erkannt wurde.
chatmessage enthält die Nachricht des Mitglieds; membership enthält die Mitgliedschaftsbezeichnung und subtitle enthält die erkannte Mitgliedschaftsdauer. Dies kennzeichnet eine Meilensteinnachricht, keinen neuen Mitgliedschaftskauf und kein Geschenk.
superchat, supersticker, jeweldonation
Super Chats, Super Stickers, Spendenankündigungskarten und YouTube Gifts mit Jewels (yt-gift-message-view-model).
hasDonation enthält den Wert; event kennzeichnet den bezahlten YouTube-Artikeltyp. YouTube Gifts verwenden N Jewels falls vorhanden, oder 1 YouTube Gift wenn YouTube die Anzahl verbirgt. Geschenkbilder verwenden contentimg, Geschenkbeschriftungen verwenden subtitle, und minimale Geschenkdetails werden unter meta.youtubeGift.
jeweldonation Geschenkeffekt
YouTube zeigt ein animiertes Jewel-Geschenk über dem Livechat (ytls-gift-overlay-item-view-model).
Direkt an das eigene GIF-/Medienziel gesendet, damit die Animation ohne Verdopplung der normalen Geschenkzeile laufen kann. contentimg enthält die animierte Ressource und meta.youtubeGift.animationUrl/animationDescription bewahren die Effektdetails.
reaction
Eine Zuschauerreaktion erscheint in YouTubes Live-Emoji-Fontäne.
Direkt an das eigene Reaktionsziel gesendet. Anonymes Emoji und Bild-URL bleiben in chatmessage/contentimg und unter meta.reactionType/reactionImage. Bekannte Livevarianten sind ❤, 😄, 🎉, 😳 und 💯.
thankyou
Ersatznachricht, wenn ein Spendenbetrag vorhanden ist, aber kein Chattext geliefert wurde.
Bewahrt hasDonation und fügt für Overlays automatisch „Vielen Dank für deine Spende!“ ein.
redirect
YouTube-Weiterleitungsbanner erscheint im Livechat (die nächste Entsprechung einer Raid-Meldung).
Reine DOM-Erfassung aus yt-live-chat-banner-redirect-renderer. Setzt event auf redirect und verwendet membership als Beschriftung, damit Overlays es wie andere Systemhinweise darstellen.
viewer_update
Abfrage des Social-Stream-Zuschauerendpunkts alle 30 Sekunden (bei Kontingentfehlern Fallback auf Seitenauslesen).
meta ist die ganzzahlige Live-Zuschauerzahl; trägt zur zusammengefassten viewer_updates im Hintergrundskript.
Mitgliedschaftsblöcke setzen außerdem membership für Moderator-/Mitgliederchat, während subtitle enthält entweder Monatsanzahlen oder Stufennamen. sourceName/sourceImg werden befüllt, sobald getChannelInfo erfolgreich ist. Standard-DOM-Chat enthält jetzt meta.messageId wenn YouTube eine native Livechat-Nachrichten-ID liefert, die das Dock für Löschsynchronisierung verwendet.
YouTube – WebSocket-/Data-API-Erfassung
Implementierung: sources/websocket/youtube.html, gemeinsame Hilfsfunktionen unter shared/
Verwendet standardmäßig die OAuth-Berechtigungsbereiche youtube.readonly und youtube.channel-memberships.creator. Optionaler Schreibzugriff ergänzt youtube.force-ssl für Chatsenden, Moderation, Sperren und Streamdetailänderungen; Google kann dies als weitreichende YouTube-Verwaltungsberechtigung darstellen, da YouTube keinen reinen Chat-Schreibbereich bietet.
Kanalstatistiken beachten die jeweiligen Einstellungsschalter (showsubscount, showviewercount).
Die API kann keine eigenen Abzeichenbilder liefern; ersatzweise werden die unten genannten Emoji-Symbole verwendet.
Wenn die API ausdrücklich authorDetails.isChatModerator: true, Chat-, Super-Chat-, Super-Sticker-, YouTube-Gift- und Mitgliedschaftsgeschenk-Nutzdaten enthalten mod: true. Moderatorstatus wird weder abgeleitet noch zwischen Ereignissen zwischengespeichert.
Neue Abonnentenmeldungen verwenden die myRecentSubscribers API (alle 5 Minuten abgefragt). Hinweis: Ergebnisse können verspätet oder unvollständig sein; nur öffentlich sichtbare Abonnements lassen sich identifizieren.
YouTube-Weiterleitungsbanner werden von der Data API nicht bereitgestellt, daher redirect bleibt nur über Standard-DOM-Erfassung verfügbar.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
superchat
Super-Chat-Einträge aus dem Data-API-Verlauf oder Stream-Polling.
hasDonation bewahrt den Website-Betrag (Währung + Wert); event ist superchat. Ältere WebSocket-Builds verwendeten event: "donation" für diese Zeile, sodass Verbraucher dies weiterhin als älteren Alias akzeptieren können.
supersticker
Super Stickers (nur Ersatztext der Nachricht, kein Bild aus der API).
hasDonation enthält den Betrag; chatmessage enthält dekodierten Beschreibungstext.
jeweldonation
YouTube giftEvent Nachrichten, wenn Zuschauer Jewels gegen Gifts einlösen.
hasDonation enthält N Jewels, oder 1 YouTube Gift wenn YouTube die Anzahl verbirgt; contentimg verwendet die Geschenkressourcen-URL, falls verfügbar; subtitle enthält die Geschenkbeschriftung; meta.youtubeGift enthält zusätzliche Geschenkdetails.
sponsorship
Neues Mitglied tritt über newSponsorEvent.
membership wird zu new_sponsor oder new_member; meta enthält originalEventType, Dauerwerte und Stufeninformationen.
resub
Mitgliedschaftsverlängerungen oder Stufen-Upgrades.
membership wird zu renewed_member (Verlängerungen) oder upgraded_member (Upgrades); subtitle zeigt die Stufe.
giftpurchase
Über die API gekaufte Geschenkpakete.
membership gesetzt auf gift_giver; subtitle listet Anzahl/Stufe; kein hasDonation oder donoValue.
giftredemption
Meldungen zu Geschenkeinlösungen.
membershipgift_recipient; Abzeichen sind standardmäßig 🎁; subtitle kennzeichnet die verschenkte Stufe.
membermilestone
Meilenstein-Chatnachrichten (memberMonth oder displayMessage vorhanden).
membershipmember_milestone; subtitle fasst Monate + Stufe zusammen; meta erfasst die rohe Meilensteinzuordnung.
viewer_update
Streaming-Statistiken (gleichzeitige Zuschauer), wenn Zuschauerberichte aktiviert sind.
meta ist eine Ganzzahl; spiegelt die DOM-Skripte wider, damit nachgelagerte Verbraucher beide Wege zusammenführen können. Ein Dock mit &showviewercount fordert die Erfassung von Zuschauerzahlen für 70 Minuten an und erneuert diese stündlich, ohne die globale Einstellung dauerhaft zu ändern.
likes_update
Abfrage offizieller Videostatistik, wenn Gesamtzahlen von Plattform-Likes senden aktiviert ist.
meta ist die aktuelle ganzzahlige Video-Like-Zahl. Wird bei Änderung und regelmäßig auch bei unverändertem Wert gesendet, damit Verbraucher aktuell bleiben. Der globale captureliketotals Einstellung aktiviert dies; älteres captureyoutubelikes bleibt ein Kompatibilitätsalias. Das Aktivieren der Popup-Option pro Dock &showlikecount Option aktiviert diese globalen Erfassungseinstellungen ebenfalls dauerhaft; das manuelle Hinzufügen des URL-Parameters steuert nur die Darstellung. Das Ausschalten der Anzeigeoption deaktiviert die globale Erfassung nicht.
subscriber_update
Abfrage der Kanalstatistik (Abonnenten), wenn showsubscount nicht ausdrücklich deaktiviert.
meta ist die Abonnentengesamtzahl; die Oberfläche aktualisiert Dashboard-Zähler.
view_update
Abfrage der Kanalstatistik (Gesamtaufrufe), wenn showviewercount oder Hype-Modus aktiv ist.
meta ist die ganzzahlige Aufrufzahl.
live_chat_ended
Livechat wird für die zugeordnete Übertragung nicht mehr verfügbar.
meta.streamTitle befüllt, wenn Streammetadaten zwischengespeichert wurden.
user_banned
userBannedEvent aus der Livechat-API oder dem gRPC-Stream.
Ereignis nur mit Metadaten für Moderationswidgets. meta enthält Benutzername/Anzeigename, Kanal-ID, Avatar-/Profil-URL, Moderator, Sperr-/Timeout-Dauer und Dauerhaftigkeit.
new_follower
Neuer Abonnent erkannt über myRecentSubscribers API (alle 5 Minuten abgefragt).
chatname ist der Kanalname des Abonnenten; chatmessage ist leer, sofern Abonnentenmeldungen auf der YouTube-Quellseite nicht aktiviert sind. meta enthält channelId, title, subscribedAt, und gruppierte Serien ergänzen grouped, count, others, und subscribers. Hinweis: Ergebnisse können verspätet oder unvollständig sein; nur öffentlich sichtbare Abonnements lassen sich identifizieren.
Chatweiterleitungen aus der API verwenden meta.plainText für die Klartextnachricht neben umfangreichem chatmessage Inhalt. Es ist Text, kein HTML, und kann weiterhin Unicode-Emojis enthalten. Mitgliedschaftsabzeichen verwenden ersatzweise Emojis (⭐, 💝, 🏅, usw.), um mit der DOM-Erfassung übereinzustimmen. Normale Chatnutzdaten enthalten außerdem meta.messageId damit Dock-Löschaktionen zur YouTube-Moderations-API zurückgehen können.
YouTube-Abonnentenmeldungen (new_follower)
Social Stream kann neue YouTube-Abonnenten jetzt über die myRecentSubscribers API-Endpunkt. Dies funktioniert ähnlich wie Streamlabs-Abonnentenmeldungen.
So funktioniert es:
Fragt die YouTube-API alle 5 Minuten nach neuen Abonnenten ab
Speichert bereits gesehene Abonnenten in localStorage, um neue zu erkennen
Liefert new_follower Ereignisse mit Name, Avatar und Kanal-ID des Abonnenten
Lässt Abonnentenmeldungen standardmäßig deaktiviert; bei Aktivierung wird die aktuelle Übersetzungszeichenfolge für alert-just-subscribed
Gruppiert standardmäßig Schübe von mehr als drei neuen Abonnenten, damit Wiederverbindungen Overlays oder Event Flow nicht überfluten
WebSocket-Modus muss in den Erweiterungseinstellungen aktiviert sein
Einschränkungen (dies sind YouTube-API-Beschränkungen, keine Social-Stream-Beschränkungen):
Keine garantierte Zustellverzögerung – SSN fragt alle fünf Minuten ab, aber die API kann verzögerte oder unvollständige Ergebnisse liefern. Verlasse dich nicht auf ein festes Vierstundenfenster.
Nur öffentliche Abonnements – Abonnenten mit privater Abonnementliste lösen keine Meldungen aus. Abonnements sind auf YouTube standardmäßig privat.
Nur Kanalbesitzer – Du kannst Abonnentenmeldungen nur für Kanäle empfangen, die dir gehören und für die du authentifiziert bist.
Nutzung des API-Kontingents – Jede Abfrage kostet 1 API-Einheit. In 5-Minuten-Abständen ergibt das ungefähr 288 Einheiten pro Tag (vom Standard-Tageskontingent von 10.000).
Auslöser im Event-Flow-Editor: Verwende data.event === "new_follower" und data.type === "youtube"
Lass den Twitch-Chat geöffnet. Mitgliedschafts- und Benutzerhinweise werden erfasst, wenn Twitch sie darstellt; sie sind nicht auf Broadcaster- oder Moderatorenkonten beschränkt. Für kontospezifische Funktionen kann Authentifizierung nötig sein.
Zuschauerzahlanfragen gehen an https://api.socialstream.ninja/twitch/viewers alle 30 Sekunden.
Für Follower-Meldungen, Raids und vollständige Ereignisunterstützung, aktiviere den WebSocket-Modus in den Erweiterungseinstellungen.
Von Zuschauern geteilte Watch-Streak-Hinweise sind standardmäßig aus und erfordern den Twitch Watch Streaks anzeigen Einstellung.
Das ausdrücklich aktivierte PluralMind Einstellung kann chatname, nameColor, und den über einen Proxy geleiteten Anteil von chatmessage, und kann ein Pronomen-Textabzeichen hinzufügen. username bleibt der Twitch-Loginname; zugehörige Löschungen enthalten delete.meta.pluralmind damit das Dock diesen stabilen Loginnamen verwendet.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
reward
Karten zu Kanalpunkte-Einlösungen (einschließlich 7TV-Belohnungscontainer).
Systemzeilen wie „User gifting X Subs in the channel“.
chatmessage ist die Systemzeile, über die Overlays Geschenkkampagnen hervorheben können.
subscription_gift
Hinweise auf verschenkte Abonnements („User gifted a Sub to …“).
Markiert das Ereignis für Hervorhebungsfilter; membership bleibt die Abzeichenbeschriftung des Empfängers.
viewer_update
Abruf alle 30 Sekunden über den Social-Stream-Zuschauerproxy (bei Fehler 0).
meta ganzzahlige Zuschauerzahl.
hype_train
Twitchs angeheftetes Community-Highlight zeigt einen aktiven Hype Train im Popout-Chat.
DOM-Fallback nur mit Metadaten und meta.sourceMode gesetzt auf dom. Verwendet sichtbare Stufe, Timer und meta.progressPercent wenn Twitch keine EventSub-Punktesummen liefert.
community_highlight
Elemente in Twitchs Widget „Community Highlight“.
meta ist der extrahierte Hervorhebungstext für Automatisierungsanschlüsse.
knock
Einladungen zur Zusammenarbeit über Stream Together, die oberhalb des Chats erscheinen.
chatmessage enthält den Einladungstext; chatname wird aus dem Benutzer der Meldung abgeleitet, falls verfügbar.
watch_streak
Ausdrücklich aktivierter, vom Zuschauer geteilter Watch-Streak-Hinweis im Twitch-Chat.
meta.streakCount enthält die sichtbare Anzahl, falls erkannt; meta.milestoneId verwendet die DOM-Hinweiskennung, falls verfügbar.
Bits/Cheers füllen hasDonation (zum Beispiel „500 bits“), obwohl data.event bleibt leer; stütze die Darstellung von Spendenwidgets auf dieses Feld. Informationen zur Abonnementserie stehen in subtitle wenn Abzeichen Monate liefern.
Twitch – EventSub/WebSocket
Implementierung: sources/websocket/twitch.js mit gemeinsamem Kern providers/twitch/chatClient.js
EventSub-Ereignisse; Helix-Polling zählt Zuschauer, Follower und Abonnenten.
WebSocket-Modus liefert in Echtzeit Follower-Meldungen, Abonnementereignisse, Raids, Cheers, Power-ups, Kanalpunkte-Einlösungen und Hype-Train-Metadaten.
Shared-Chat-Zeilen verwenden Twitch IRC source-room-id um sourceName/sourceImg mit dem Ursprungskanal, wenn er vom verbundenen Kanal abweicht.
Von Zuschauern geteilte Watch-Streak-Hinweise sind standardmäßig aus und erfordern den Twitch Watch Streaks anzeigen Einstellung.
Das ausdrücklich aktivierte PluralMind Einstellung kann chatname, nameColor, und den über einen Proxy geleiteten Anteil von chatmessage, und kann ein Pronomen-Textabzeichen hinzufügen. username und userid behalten die Twitch-Identität; zugehörige Löschungen enthalten delete.meta.pluralmind damit das Dock diese stabilen Felder verwendet.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
cheer
Cheer-Benachrichtigungen ?ber IRC oder EventSub channel.bits.use.
Integrierte oder eigene Power-up-Meldungen von EventSub channel.bits.use.
Reine Ereignisnutzdaten mit leerem chatmessage und kein hasDonation, sodass keine normale Chatzeile entsteht. meta.bits ist numerisch und meta.powerUp bewahrt Twitch-Untertyp, Titel/Belohnungs-ID, Effektdetails und gelieferten Nachrichtentext, falls verfügbar.
new_subscriber
channel.subscribe oder USERNOTICE mit msg-id=sub.
meta enthält { userId, tier, isGift }; die zwischengespeicherte Abonnentengesamtzahl wird erhöht, falls verfügbar; Zuschauerzahlen werden separat abgefragt.
resub
channel.subscription.message oder USERNOTICE msg-id=resub.
meta enthält Serie und kumulative Monate; chatmessage enthält den Text des erneuten Abonnements.
subscription_gift
channel.subscription.gift oder USERNOTICE msg-id=subgift.
meta liefert verschenkten Gesamtwert und Stufe; chatmessage fasst die Aktion zusammen.
meta enthält Belohnungs-ID, Titel, Kosten, Prompt, Benutzereingabe, Einlösungs-ID/-Status und älteren Alias. Kein oberstes reward Objekt wird von diesem EventSub-Handler gesendet. Ältere Verbraucher zeigen möglicherweise weiterhin channel_points als veralteten Alias.
raid
EventSub channel.raid oder USERNOTICE msg-id=raid.
meta = { fromId, fromLogin, viewers }.
watch_streak
Ausdrücklich aktiviertes Twitch-IRC-USERNOTICE mit msg-id=viewermilestone und msg-param-category=watch-streak.
Enthält den Zuschauer in chatname, Twitchs Hinweistext in chatmessage, und meta.streakCount/meta.milestoneId. Andere allgemeine USERNOTICE-Typen werden weiterhin ignoriert.
new_follower
channel.follow EventSub-Benachrichtigungen.
Erhöht automatisch follower_update; meta erfasst { userId, followedAt }.
viewer_update
Helix streams Abfrage alle 30 Sekunden.
meta ganzzahlige Zuschauerzahl; unterdrückt, sofern Zuschauerstatistik in den Einstellungen nicht aktiviert ist.
follower_update
Helix-Followergesamtzahl, ausgelöst nach Follow-Ereignissen oder regelmäßiger Abfrage.
meta ganzzahlige Followerzahl.
subscriber_update
Helix-Abonnentengesamtzahl (erfordert Broadcaster-Token mit Abonnementberechtigung).
meta ganzzahlige Abonnentenzahl.
stream_online / stream_offline
EventSub stream.online/stream.offline.
meta.startedAt bei Online-Ereignissen vorhanden; offline wird ein leeres Objekt verwendet.
ad_break / ad_request / ad_schedule
Antworten der Ad-Manager-API (channel.ad_break.begin, manuelles POST channels/ads, GET channels/ads).
meta enthält Dauer, Anforderer und Zeitplannutzdaten für Dashboards.
hype_train
EventSub channel.hype_train.begin, channel.hype_train.progress, und channel.hype_train.end v2-Benachrichtigungen.
Ereignis nur mit Metadaten: kein chatname oder chatmessage. meta.phase ist begin, progress, oder end; meta enthält Train-ID, Stufe, Fortschritt, Ziel, Gesamtwert, Beitragende, Zeitfelder, Kennzeichen für gemeinsamen Train und trainType. Treasure Trains werden über meta.trainType wenn Twitch sie kennzeichnet.
user_banned
EventSub channel.ban, oder IRC CLEARCHAT Fallback, wenn EventSub-Sperrereignisse nicht verfügbar sind.
Ereignis nur mit Metadaten für Moderationswidgets. meta enthält Benutzername/Anzeigename, Benutzer-ID, Avatar-/Profil-URL, Moderator, Grund, Sperr-/Timeout-Dauer und Dauerhaftigkeit.
Chatnutzdaten verwenden den gemeinsamen Anbieter wieder, daher data.event wird für `/me` befüllt (action) und ältere bits Tags auch außerhalb von EventSub-Flows. Twitch-GIF-Nachrichten legen die Giphy-Ressource in contentimg, lass chatmessage leer und bewahre Twitchs Ersatzbeschriftung in meta.gifLabel. Duplikat- und Löschlogik verwenden Nachrichten-IDs; über SSN gesendete Nachrichten verwenden die native message_id aus Twitchs IRC-Echo in data.id.
Twitch-Hype-Train-Metadaten
hype_train enthält nur Metadaten und kein chatname oder chatmessage. Dashboards sollten eine bestehende Train-Anzeige anhand von meta.id statt jede Fortschrittsaktualisierung als Chat anzuhängen. Die Meta Data Bar (meta.html) zeigt diese Ereignisse als Fortschrittsleiste am oberen Rand.
Feld
Tippe
Hinweise
type
Zeichenfolge
Immer twitch.
event
Zeichenfolge
Immer hype_train.
meta.phase
Zeichenfolge
begin, progress, oder end.
meta.id
Zeichenfolge
Stabile Train-ID. Verwende sie zum Anlegen/Aktualisieren eines einzelnen sichtbaren Train-Widgets.
meta.broadcasterUserId
Zeichenfolge
Benutzer-ID des Twitch-Broadcasters.
meta.broadcasterUserLogin
Zeichenfolge
Loginname des Twitch-Broadcasters.
meta.broadcasterUserName
Zeichenfolge
Anzeigename des Twitch-Broadcasters.
meta.total
Zahl | null
Von Twitch gemeldeter Gesamt-Unterstützungswert des Trains.
meta.progress
Zahl | null
Aktueller Fortschritt zum Stufenziel.
meta.goal
Zahl | null
Aktuelles Stufenziel.
meta.progressPercent
Zahl | null
DOM-Fallback-Prozentwert, wenn Twitch nur den sichtbaren Popout-Fortschrittsbalken bereitstellt.
Neuester Beitrag mit derselben Beitragsstruktur wie topContributions.
meta.sharedTrainParticipants
Array
Rohe Teilnehmerdaten gemeinsamer Trains von Twitch, sofern geliefert.
meta.startedAt
Zeichenfolge
ISO-Zeitstempel für Train-Start.
meta.expiresAt
Zeichenfolge
ISO-Zeitstempel für den aktuellen Train-Ablauf.
meta.endedAt
Zeichenfolge
ISO-Zeitstempel für Train-Ende oder davor leer.
meta.cooldownEndsAt
Zeichenfolge
ISO-Zeitstempel für das Ende der Abklingzeit oder davor leer.
meta.isSharedTrain
boolesch
True, wenn Twitch den Train als gemeinsam kennzeichnet.
meta.trainType
Zeichenfolge
Normalerweise regular; Treasure Trains erscheinen hier, wenn Twitch sie so kennzeichnet.
meta.allTimeHighLevel
Zahl | null
Höchste jemals erreichte Train-Stufe, wenn Twitch sie liefert.
meta.allTimeHighTotal
Zahl | null
Höchster jemals erreichter Train-Gesamtwert, wenn Twitch ihn liefert.
meta.sourceMode
Zeichenfolge
Optionale Quellmarkierung wie dom.
meta.eventSubType
Zeichenfolge
Ursprünglicher EventSub-Typ: channel.hype_train.begin, channel.hype_train.progress, channel.hype_train.end, oder dom.community_highlight.
Twitch EventSub: Ereignis-Kurzreferenz
data.event
Szenario
new_follower
Benutzer folgt dem Kanal
new_subscriber
Neues Abonnement
resub
Erneutes Abonnement mit Nachricht
subscription_gift
An den Kanal verschenkte Abonnements
cheer
Mit Bits gecheert
powerup
Integriertes oder eigenes Power-up verwendet
reward
Kanalpunkte-Einlösung
raid
Eingehender Raid
viewer_update
Gleichzeitige Zuschauerzahl
follower_update
Followergesamtzahl
subscriber_update
Abonnentengesamtzahl
stream_online
Stream ging live
stream_offline
Stream beendet
ad_break
Werbepause gestartet
hype_train
Statusmetadaten für Hype Train/Treasure Train
user_banned
Benutzer wurde gesperrt oder zeitweise stummgeschaltet
OBS Flow Actions
Implementierung: actions.html über OBS-WebSocket-v5-Ereignisse, mit dock.html OBS-Browserquellen-Ereignisse als Fallback
Lass das Flow-Actions-Overlay mit derselben Social-Stream-Sitzung wie Event-Flow-Editor/Hintergrund geöffnet oder das Dock in OBS geladen.
Richte OBS WebSocket v5 unter OBS 28+ ein; die Standard-URL lautet ws://127.0.0.1:4455.
Dies sind Event-Flow-Systemereignisse. Sie enthalten keine chatname oder chatmessage, und zusätzliche OBS-Details bleiben in meta.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
stream_started
OBS meldet, dass die Streamausgabe den gestarteten Zustand erreicht hat.
type ist obs; event ist stream_started; meta.source ist obs-websocket oder obs-browser-source; meta.outputState kann den rohen OBS-Ausgabezustand enthalten.
stream_stopped
OBS meldet, dass die Streamausgabe den gestoppten Zustand erreicht hat.
type ist obs; event ist stream_stopped; meta.outputActive kann false.
recording_started
OBS meldet gestartete Aufnahme.
type ist obs; meta.obsEvent kennzeichnet die OBS-Ereignisquelle.
recording_stopped
OBS meldet gestoppte Aufnahme.
type ist obs; meta.outputState kann den rohen WebSocket-Zustand enthalten.
scene_changed
OBS ändert die aktive Programmszene.
type ist obs; meta.sceneName enthält den Szenennamen, wenn OBS ihn liefert.
media_ended
Eine OBS-Medieneingabe beendet die Wiedergabe.
type ist obs; meta.inputName und meta.inputUuid kennzeichnen die Medieneingabe.
replay_buffer_saved
OBS speichert den Wiederholungspuffer.
type ist obs; meta.savedReplayPath kann den gespeicherten Wiederholungspfad enthalten.
Streamlabs Alert Box
Implementierung: sources/streamlabs.js (Meldungsbox-DOM); optionale Socket-Brücke unter sources/websocket/streamlabs.html
Lass deine Streamlabs-Meldungsbox in einem Tab oder einer Browserquelle geöffnet, damit Meldungen dargestellt werden; das Inhaltsskript liest Nachricht/Bild/Tokens aus dem Meldungs-DOM.
Meldungen im Spendenformat setzen hasDonation (z. B. „$10 USD“ oder „100 bits“) und optional donoValue in USD.
Füge für die Socket-Brücke dein Streamlabs-Socket-API-Token ein und verbinde; Meldungen werden ohne Meldungsbox-Seite weitergeleitet.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
donation
Trinkgelder, Wohltätigkeit, JustGiving oder allgemeine „donated“-Meldungen.
hasDonation bewahrt den Währungstext (z. B. „$36“ oder „$10 CAD“); donoValue wird nur bei verfügbarem USD-Wert geliefert; andere beschriftete Beträge verwenden die gemeinsame Währungsumrechnung.
cheer
Twitch-Bits-/Cheer-Meldungen.
hasDonation wird zu „100 bits“ und donoValue erfasst den USD-Wert.
subscription
Abonnementmeldungen.
Standardfelder gesetzt; chatmessage ist die Meldungszeile; meta.tokens enthält als Tokens aufbereitete Werte (name, amount, levelName usw.).
gift
Verschenkte Mitgliedschaften/Abonnements.
meta.tokens.amount kann die Geschenkanzahl zeigen; meta.tokens.levelName kann die Stufe enthalten.
follow
Follower-Meldungen.
Keine Spendenfelder; chatname spiegelt das Namenstoken der Meldung.
raid
Raid-Meldungen.
meta.tokens.count enthält die Raid-Teilnehmerzahl, falls vorhanden.
redeem
Cloudbot-Einlösungsmeldungen.
meta.tokens.product erfasst den eingelösten Artikel.
merch
Merchandise-Kaufmeldungen.
meta.tokens.product enthält den Namen des gekauften Artikels.
superchat
Meldungen im Super-Chat-Stil von YouTube oder unterstützten Meldungsintegrationen.
hasDonation enthält den Betrag; Verbraucher können weiterhin älteres donation Aliase.
sponsor
Von Streamlabs bereitgestellte Meldungen im Sponsor-/Mitgliedschaftsformat.
Standardfelder; keine Spende, sofern der Text keinen Betrag enthält.
TikTok Live – DOM-Erfassung und TikFinity-Feed
Implementierung: sources/tiktok.js für native TikTok-Seiten und sources/tikfinity.js für das Aktivitäts-Feed-Widget/Iframe von TikFinity. SSApp verfügt weiterhin über eine native TikTok-Integration mit der umfassendsten Ereignisabdeckung (siehe SSApp-Dokumente). Standard-Chat beinhaltet meta.messageId wenn die Seite eine native Nachrichten-ID offenlegt; Unterschiedliche Nachrichten mit identischem Text behalten unterschiedliche IDs.
Funktioniert auf der Liveseite des Broadcasters. Geschenk-/Like-/Follow-Banner werden nur bei authentifizierter Sitzung gefüllt.
TikTok liefert viele Ereignisse über DOM-Erkennung ohne erforderlichen WebSocket-Modus – Geschenke, Follows, Likes und ausdrücklich aktivierte Beitritte werden aus dargestellten Zeilen erfasst.
TikFinity-Widget-Seiten unter tikfinity.zerody.one/widget/activity-feed* funktionieren ebenfalls. Der eingebettete Aktivitätsfeed-Iframe sendet dieselben kanonischen TikTok-Nutzdatenfelder für Chat, Follows, Teilungen, Geschenke, Abonnements, ausdrücklich aktivierte Beitritte und Schatztruhen.
Keine zusätzliche API-Authentifizierung erforderlich.
Nativer SSApp-Modus ergänzt weiterhin Ereignisse über die Seiten-/Widget-Erfassungswege hinaus: question_new, emote, viewer_update, und die ausdrücklich aktivierte Summe likes_update.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
gift
Geschenkbannerzeilen oder DivGiftMessage Einträge.
hasDonation wandelt in „N coins“ um (mit Geschenknachschlage-Fallback); membership verwendet Abzeichentext, falls verfügbar.
joined
Beitrittsmeldungen, wenn der globale Stream-Ereignisse „joined“ erfassen Einstellung aktiviert ist.
Überspringt Teilungsmeldungen; chatname kann bei manchen Systemzeichenfolgen leer sein.
followed
Aus Social-Karten ausgelesene Follow-Nachrichten.
Stellt sicher, dass chatname vor der Ausgabe vorhanden ist.
shared
TikFinity-Teilungszeilen.
chatmessage ist der dargestellte Teilungstext.
subscribe
TikFinity-Abonnementzeilen.
membership wird auf SUBSCRIBER.
envelope
TikFinity-Schatztruhenzeilen.
meta.coins und meta.canOpen enthalten die Schatztruhendetails.
liked
Zusammenfassungen von Like-Wellen, ausgelöst durch TikTok-Social-Karten.
chatname ist enthalten, wenn TikTok es liefert; anonyme/System-Like-Karten können weiterhin gesendet werden. TikTok sendet dies über den normalen Hintergrundpfad. Der Hintergrund leitet eine Kopie an das Reactions Overlay weiter und geht nur dann zur Haupt-Chat-/Ereignisverarbeitung über, wenn capturelikeevent aktiviert ist.
likes_update
SSApp empfängt eine maßgebliche kumulative TikTok-LIVE-Gesamtzahl, während captureliketotals aktiviert ist.
meta ist die aktuelle ganzzahlige Gesamtsumme. SSApp sendet den ersten Wert sofort, bündelt Schübe auf höchstens ein Update alle fünf Sekunden, wiederholt den letzten Wert etwa alle 90 Sekunden und sendet beim Streamende null. Dies ist getrennt von zuschauerspezifischen liked Ereignisse.
true (boolesch)
Allgemeine Social-/Systemmeldungen, wenn TikTok keinen Untertyp liefert.
Verwende chatmessage Inhalt zur Wahl der Darstellung; boolesches true bedeutet „Systemereignis – Typ unbekannt“.
membership spiegelt Abzeichen-Tooltips (Abonnentenstufen). Der Avatarcache hält chatimg zwischen Ereignissen gültig; wenn das DOM Farben für Moderatoren unterdrückt, leert das Skript nameColor. Die Erfassung von TikFinity-Aktivitätsfeeds unterstützt sowohl ältere als auch neue Docks widgets.tikfinity.com Browser-Quell-URLs. Neu stream_event Nachrichten werden in die gleichen Chat-, Schenk-, Folge-, Teilen-, Abonnement-, Beitritts- und Umschlagnutzlasten übersetzt, die hier beschrieben werden. TikFinity-Geschenkreihen sind ebenfalls eingerichtet contentimg zum Geschenksymbol, sofern verfügbar. Für explizit streichbare Geschenke mit a repeatEnd Flag, TikFinity sendet nur den abgeschlossenen Streak und seine endgültige Menge; Zwischenaktualisierungen der Zählung werden nicht weitergeleitet. Non-Streak-Geschenke und ältere Payloads ohne diese Flagge werden sofort fortgesetzt. Zu den Aktualisierungen der nativen DOM-Geschenksträhne und der TikFinity-Geschenkreihen gehören meta.tiktokGiftStreakId, meta.tiktokGiftCount, und meta.tiktokGiftQuietMs damit Overlays wiederholte Updates zusammenfassen können; ältere Serien-IDs gelten nur für die jeweilige Seiteninstanz. Geschenkmetadaten können außerdem tiktokGiftMessageId (ursprüngliche TikTok-Nachrichten-ID), tiktokGiftSenderId, groupId, giftId, giftName, streakable, und repeatEnd. Native IDs identifizieren dasselbe Geschenk über mehrere Erfassungsfenster hinweg; eine von null verschiedene Gruppen-ID zusammen mit Absender- und Geschenk-IDs kennzeichnet kumulative Serienaktualisierungen. SSApp-WebSocket-Erfassung liefert nach Abschluss einer Serie dieselben Felder mit count zur Kompatibilität beibehalten. Der Spendenschalter wird beim Weiterleiten jedes Geschenks geprüft: Das Deaktivieren von TikTok-Spenden entfernt hasDonation und donoValue wobei Geschenkereignis und Metadaten erhalten bleiben. TTS verwendet diese Identitäten zum Zusammenfassen von Updates und Unterdrücken abgeschlossener Duplikate für bis zu zehn Minuten (begrenzter Cache) und liest TikTok-Geschenke als Absender, Menge und Geschenkname vor. Ältere Nutzdaten verwenden ersatzweise ihre bisherigen Serien-IDs und Nachrichtentexte; aus Geschenktext allein wird keine Identität abgeleitet. TikTok-Geschenkansagen verwenden die gewählte TTS-/Stimmensprache unabhängig von der Oberflächensprache. Ansageverben sind für Englisch, Spanisch, Portugiesisch, Französisch, Deutsch, Italienisch und Niederländisch übersetzt; andere Sprachen verwenden Absender, Menge und Geschenkname ohne englisches Verb. Vereinfachte TTS behält dieses neutrale Format. Geschenknamen bleiben wie von der Plattform geliefert; dies übersetzt weder Geschenkkataloge noch Chatnachrichten automatisch und leitet keine Streamsprache ab.
Bei diesen Serienaktualisierungen sind Anzahl und Spendenbeschriftung kumulativ: 1, 2, 3 bedeutet drei Geschenke, nicht sechs. Summenverbraucher sollten nur den Zuwachs gegenüber dem höchsten bereits für diese Serien-ID gesehenen Betrag addieren. Standarderfassung unterstützt ältere Geschenkklassen und aktuelle Bild-/Anzahlzeilen; beide behalten event: "gift" und hasDonation. Bei unbekannten Preisen bleiben Geschenkanzahl/-namen für die Anzeige erhalten; als USD-Schätzung wird eine Münze pro Geschenk verwendet. Von der Quelle geliefertes donoValue hat Vorrang; dargestellte Geschenkmetadaten können coinsPerGift oder diamondsPerGift bevor Geschenktabelle oder Standardwert benötigt werden. Standard-/TikFinity-Münzschätzungen und native SSApp-Diamantenschätzungen verwenden ihre bestehenden unterschiedlichen Umrechnungen; keine davon ist eine garantierte Barauszahlung.
Whatnot
Implementierung: sources/whatnot.js
Use the Whatnot source in SSApp for public chat and auction events without video, or open the live show page for website capture. Both connect to the public auction feed. Website capture also reads rendered auction and catalog sections.
Stream-Ereignisse erfassen (Capture Stream Events) steuert Whatnot-Systemereignisse sowie Auktions-/Katalogmetadaten-Updates; Beitrittszeilen benötigen außerdem Stream-Ereignisse „joined“ erfassen; Zuschauerzahlen folgen weiterhin den Zuschauer-/Hype-Schaltern.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
viewer_update
Zuschauerzahländerungen aus WebSocket-Livestream-Updates mit DOM-Polling als Fallback.
meta ist eine ganzzahlige Zuschauerzahl.
donation
Whatnot-WebSocket-Trinkgelder und Community-Boost-Beitragsereignisse.
hasDonation enthält den formatierten Betrag; WebSocket-spezifischer Kontext bleibt unter meta.
raid
Whatnot-WebSocket-Raid-Ereignisse, einschließlich Antworten aus dem Aktivitätsverlauf.
meta.numRaiders ist enthalten, wenn Whatnot es liefert.
joined
Chatzeilen, deren normalisierter Text mit joined, wenn Stream-Ereignisse „joined“ erfassen aktiviert ist.
Verwendet Zeichenfolgen als Ereigniskennzeichen für Beitrittsmeldungen (kein boolesches true).
auction_update
Wenn sich der Auktionszustand in der Live-Fußzeile ändert (Gewinner-/Führend-Text, Titel, Gebote, Preis, Timer, Verkauft-Status), oft beschleunigt durch WebSocket-Pakete zum Auktionslebenszyklus.
Ereignis nur mit Metadaten. Kein chatname/chatmessage; Daten liegen in meta (zum Beispiel meta.title, meta.bids, meta.price, meta.timer, meta.status).
commerce_update
Wenn sich Katalogabschnitte ändern (Produkte, Surprise Sets, kommende Gewinnspiele), oft beschleunigt durch WebSocket-Pakete zum Gewinnspiel-/Produktlebenszyklus.
Metadata-only update. Website section snapshots use meta.products, meta.surpriseSets, und meta.upcomingGiveaways. Public giveaway updates use meta.giveaway.productId und meta.giveaway.entryCount. Pinned-item updates use meta.pinnedItems, containing the supplied type, ID, product ID, or name. meta.websocketEvent identifies giveaway_entry_count_updated oder pinned_item_updated; unchanged states are suppressed.
Die zugehörige Live-WebSocket-Meldung trifft ein. Dies sind einzelne Ereignisse, getrennt von bestehenden Anzeigemomentaufnahmen.
platform/type: "whatnot", Klartext- chatname, userid falls geliefert, Produktname in subtitle, und ein Klartext- chatmessage mit textonly: true. Verfügbare Kennungen und Auktionsdetails stehen unter meta: productId, auctionId, orderId, transactionId, livestreamId, bidId, bids, auctionEndTime, und status. Optionales price ist in Hauptwährungseinheiten, mit priceText und currency falls geliefert.
giveaway_started, giveaway_won
The public auction feed announces a giveaway start or winner.
Uses the auction event fields for the supplied product and winner. meta.entryCount contains the entry count when supplied. Entrant lists and raw order details are not forwarded.
payment_failed
Eine Live-WebSocket-Meldung über eine fehlgeschlagene Zahlung trifft ein.
Dieselben verfügbaren Käufer-, Produkt- und Kennungsfelder mit meta.paymentStatus: "failed". Wenn nur product.purchaserUserId den Käufer identifiziert, füllt es userid bei Verkaufs-/Zahlungsereignissen und der Käufername bleibt leer. Aus einer anderen oder vorherigen Auktion wird kein Käufer abgeleitet.
payment_succeeded
Eine Live-WebSocket-Meldung über eine erfolgreiche Zahlung trifft ein.
meta.paymentStatus: "succeeded", mit Käufer, Artikel, Bestell-ID und weiteren zulässigen Feldern dieser Meldung. Dies bleibt ein eigenständiges Zahlungsereignis; es sendet kein weiteres purchase oder Spende. Fehlende Felder bleiben leer oder fehlen, auch wenn ein früherer Verkauf sie geliefert hat.
Auktions-/Verkaufsanzeige-Updates bleiben DOM-basierte Momentaufnahmen. Verwende zum Abgleich eines einzelnen WebSocket-Ereignisses in Event Flow Ereignistyp (erweitert), wähle Eigenes Ereignis, und gib den genauen Namen ein. Beschriftungen können **{username}**\n{subtitle} mit gewählter Textgewichtung; Bedingungen können meta.paymentStatus mit failed. Ein importierbares Whatnot-Etikettenbeispiel verfügbar ist. Bestehende Einstellungen zur Stream-Ereigniserfassung gelten weiterhin.
Weitere optionale Felder sind meta.catalogProductId (die product.productId), meta.parentProductId (product.parentId), meta.transactionType (Whatnots Verkaufstyp, unverändert) und meta.placeOrderErrorReason (von Whatnot gelieferter Bestell-/Zahlungsfehlercode). Diese Produktverweise beschreiben den Katalog oder das übergeordnete Angebot; sie ersetzen keine Bestell-ID. Bestandsmenge wird nicht als gekaufte Menge behandelt.
Setze für Automatisierung nach erfolgreicher Zahlung einen Ereignistyp (erweitert) Auslöser auf Eigenes Ereignis: payment_succeeded, und filtere die Quelle auf Whatnot. Bestehende Bedingungen und Vorlagen können die userid, chatname, subtitle und meta.orderId direkt. Kein gespeicherter Kauf ist nötig, wenn die Meldung die erforderlichen Details enthält.
Das Ende einer Auktion oder die Markierung eines Artikels als verkauft bestätigt keine erfolgreiche Zahlung: Diese Meldungen werden nicht als bezahlte purchase Ereignisse und setzen keine Spendenbeträge. Ein Erfolgsereignis wird nur für ein empfangenes payment_succeeded Meldung; die Erfassung fragt Zahlungsabschluss nicht ab und leitet ihn nicht aus einem Verkauf ab. Andere paymentStatus values are forwarded only when explicitly supplied in a captured packet. Missing identifiers are omitted; a product ID alone may cover multiple sales, so use a supplied order/auction ID to correlate notifications. Capture does not remember purchases or match payment updates; any such workflow must be explicitly configured in Event Flow. Repeated commerce notifications with the same native event timestamp/ID are suppressed across overlapping channels and reconnects, within a 2,000-event cache. Packets without a native event identity use a brief duplicate window. Raw order/payment objects are not forwarded.
eBay Live
Die Monetarisierungs-eBay-Verkäuferverbindung benötigt einen eingerichteten SSN-eBay-Dienst und die OAuth-Zustimmung des Verkäufers; die unten beschriebene eBay-Live-Erfassung ist unabhängig. Der Sandbox-Modus verwendet Sandbox-Angebots-URLs, nennt den Käufer „eBay Sandbox buyer“ und stellt der Nachricht „Sandbox test purchase:“ voran. Sandbox-Käufe behalten denselben Kaufvertrag und können beim Testen aktivierte Meldungen/Chataktionen auslösen. Der umgesetzte Zahlungsvertrag sendet event: "purchase", mit type und platform gesetzt auf ebay. Benötigt eine bezahlte Bestellung, die zu einem ausgewählten Produkt passt. id ist eine stabile undurchsichtige Kennung einer Bestellposition; chatname ist „eBay buyer“, chatmessage ist Klartext (textonly: true), subtitle ist der Produktname und optionales contentimg ist dessen Bild. meta.ebayPurchase enthält itemId, itemName, quantity, und öffentliches url. Keine Käuferidentität, Versanddaten, hasDonation oder donoValue ist enthalten. Das unterscheidet sich von ausgelesenen Auktions- oder Bestandsänderungen, die keine Zahlung belegen.
Implementierung: sources/ebay.js
Öffne entweder /ebaylive/events/<id>/chat oder /ebaylive/events/<id>/stream. Beide empfangen denselben Live-Auktionsfeed.
Der öffentliche WebSocket-Feed liefert Auktionen, Gebote, Gewinner, Zeitverlängerungen und Bestandsänderungen; eine schreibgeschützte GraphQL-Abfrage liefert Angebotsdetails. DOM-Erfassung bleibt ein Fallback, wenn Netzwerkdaten nicht verfügbar sind.
Stream-Ereignisse erfassen (Capture Stream Events) steuert Metadatenmomentaufnahmen (auction_update, commerce_update); Zuschauerzähler beachten weiterhin die Zuschauer-/Hype-Schalter.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
viewer_update
Wenn sich die Zuschauerzahl des aktiven Ereignisses ändert (Kopfbereichszahl oder ersatzweise Live-Ereignisanzeige).
meta ist eine ganzzahlige Zuschauerzahl.
follower_update
Wenn der Verkäuferstatistik-Endpunkt die Followerzahl des Verkäufers liefert.
meta ist eine ganzzahlige Followerzahl. Die Quelle fragt den Verkäuferendpunkt alle 60 Sekunden ab; der Endpunkt kann trotzdem bis zu 5 Minuten einen zwischengespeicherten Wert liefern.
auction_update
Wenn sich aktive Auktionsmetadaten ändern.
Ereignis nur mit Metadaten. Netzwerkerfassung setzt meta.sourceMode auf network und liefert Titel, Preis, Bieter, Gewinner, Gebote, Timer und endingAt. meta.ebay enthält eventId, listingId, den GraphQL-Angebotsdatensatz (listing), aktuelles öffentliches Socket-Angebot (eventListing), und neueste Auktionsaktualisierung (update). Diese bewahren Kategorie, Bilder, Währungen, Mengen, Case-Break-Details, Auktionsergebnisse und Zeitfelder, ohne Plattformdetails zu verlieren. Der GraphQL-Datensatz ist eine abgerufene Momentaufnahme; Socket-Angebot und Aktualisierung enthalten neueren Livezustand. Anfänglicher Verlauf bzw. Verlauf nach Wiederverbindung wird in die aktuelle Momentaufnahme eingearbeitet, statt als alte Gewinne ausgegeben zu werden. Das Entfernen aller präsentierten Angebote sendet status: "idle" mit cardCount: 0 um die Auktion zu leeren. Der DOM-Fallback behält Playerkarten- oder Ereignisvorschaufelder.
commerce_update
Wenn sich Katalog-/Live-Ereignis-Momentaufnahmeabschnitte ändern.
Momentaufnahme nur mit Metadaten unter meta. Der Netzwerkmodus enthält eventId, navigation.viewerCount und playerCards für die aktuell präsentierten Angebote, jeweils mit derselben detaillierten ebay Objekt als Auktionsmomentaufnahme. Eine leere Kartenliste entfernt verschwundene Angebote. Der DOM-Fallback kann außerdem liveEvents, livePreview, currentEvent und upcomingEvents.
reaction
Wenn eBay Live eine Herz-/Reaktionsanimation darstellt.
Direkt an das eigene Reaktionsziel gesendet. meta.reactionType ist heart; eBay liefert für diese DOM-Animationen keinen Namen pro Benutzer.
Implementierung: sources/kick.js. Chat beinhaltet meta.messageId wenn die Seite eine native Nachrichten-ID offenlegt.
Benötigt eine authentifizierte Sitzung, um Profilbilder und Abonnentenabzeichen aufzulösen.
Begrenzte Ereigniserkennung über Chattextabgleich und Abzeichen; Zuschauerzahlen funktionieren weiterhin bei aktiviertem Schalter.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
gift
Über Stickerbild und sichtbaren Kick-Währungsbetrag erkannte KICKs-Geschenke.
hasDonation enthält N KICKs (1 KICK für eines), wenn der sichtbare Betrag verfügbar ist; contentimg enthält das Geschenkbild. Bestehender Nachrichtentext bleibt erhalten.
reward
Belohnungseinlösungen („has redeemed …“).
chatmessage enthält Einlösungstext.
true (boolesch)
Allgemeine Systemhinweise ohne passende Geschenk- oder Belohnungsmuster.
Verwende chatmessage Inhalt zur Wahl der Darstellung; boolesches true bedeutet „Systemereignis – Typ unbekannt“.
viewer_update
Fragt Kicks Kanal-API alle 30 Sekunden ab (nur bei aktivierter Zuschauerstatistik).
meta ganzzahlige Zuschauerzahl; verwende für Abonnements, Follows oder Trinkgelder die Kick-Brücke unten.
Kick – WebSocket/Brücke
Implementierung: sources/websocket/kick.js mit gemeinsamen Hilfsfunktionen unter providers/kick/core.js
OAuth über die Social-Stream-Kick-Brücke. Aktuelle Berechtigungsbereiche sind user:read, channel:read, channel:write, channel:rewards:read, chat:write, events:subscribe, moderation:ban, moderation:chat_message:manage, und kicks:read. Tokens werden automatisch erneuert.
Die Einrichtung der Kick-Webhooks kann mehrere Minuten dauern; die Oberfläche listet aktive Abonnements pro Kanal auf.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Chatnutzdaten der Brücke.
meta.plainText enthält die Klartextnachricht (die weiterhin Emojis enthalten kann); Abzeichen führen Plattform und Profilcache zusammen. Thread-Antworten füllen initial, reply, und meta.reply wenn Antwortdetails oder eine zwischengespeicherte Elternnachricht verfügbar sind.
reward
channel.reward.redemption.updated, sowie Chat-/Systemnutzdaten der Brücke, die wie Einlösungen aussehen.
meta enthält Belohnungs-/Einlösungs-ID, Titel, Kosten, Status, Benutzereingabe und Einlöser.
new_subscriber
channel.subscription.new.
membership der Abonnentenrolle zugewiesen; meta enthält { subscriber, plan }.
resub
channel.subscription.renewal.
meta.duration (Monate) und meta.plan verfügbar; subtitle fasst die Serie zusammen.
subscription_gift
channel.subscription.gifts.
meta.totalGifted, meta.gifter; Abzeichen verwenden ersatzweise das 💝-Symbol.
donation
Über Ereignistyp-Heuristiken erkannte Unterstützungs-/Trinkgeldereignisse; KICKs-Geschenke verwenden gift unten.
hasDonation enthält den formatierten Betrag; meta enthält { amount, currency, supporter, message, giftName }.
gift
kicks.gifted (KICKs-Geschenke), passend zur DOM-Erfassung.
hasDonation enthält N KICKs (1 KICK für eines); contentimg enthält das Geschenkbild, falls verfügbar. Strukturierte Geschenkdetails bleiben unter meta.
raid
Kompatibilitätsverarbeitung für ältere Socket-Nutzdaten im Host-Format wie App\Events\StreamHostEvent.
Kicks aktueller offizieller Ereigniskatalog enthält kein Raid-/Host-Abonnement. Wenn kompatible ältere Nutzdaten eintreffen, werden sie dem kanonischen raid; verlasse dich bei einem aktuellen Kick-Ablauf nicht darauf.
new_follower
channel.followed.
Follower-Symbole stammen aus dem Profilcache; follower_update wird ausgelöst, wenn Kick laufende Gesamtzahlen liefert.
follower_update
Die Brücke liefert Followerzahlen in Webhook-Nutzdaten.
meta ganzzahlige Gesamtsumme; von Dashboards für Followerziele verwendet.
stream_online / stream_offline
livestream.status.updated.
meta enthält den rohen Statusinhalt von Kick (is_live, title usw.).
viewer_update
livestream.status.updated wenn Kick gleichzeitige Zuschauergesamtzahlen enthält.
meta ganzzahlige Zuschauerzahl; sendet 0 bei Offline-Status, um veraltete Zähler zu leeren.
user_banned
moderation.banned aus der Brücke/dem Webhook oder Sperrereignissen des Kick-Chat-Sockets.
Ereignis nur mit Metadaten für Moderationswidgets. meta enthält Benutzername/Anzeigename, Benutzer-ID, Avatar-/Profil-URL, Moderator, Grund, Sperr-/Timeout-Dauer und Dauerhaftigkeit.
Profilabfragen verwenden profileCache; mapBadges führt Kicks Abzeichenressourcen mit zwischengespeichertem SVG zusammen, falls verfügbar. Wenn Kick Spenden in KICKs meldet, wandelt die Brücke sie in hasDonation plus meta.amount mit currency Fallback auf „KICKs“. Chatnutzdaten enthalten meta.messageId wenn die Brücke eine native Kick-Nachrichten-ID liefert, damit Löschsynchronisierung die richtige Nachricht trifft. Antwortnutzdaten enthalten meta.reply mit der übergeordneten messageId, author, und text wenn bekannt. Gelieferte Antwortdetails bleiben verfügbar, auch wenn die ursprüngliche Nachricht nicht zwischengespeichert ist; einer Antwort nur mit ID ohne gespeicherten Kontext kann weiterhin ein sichtbares Zitat fehlen.
Kick WebSocket: Ereignis-Kurzreferenz
data.event
Szenario
new_follower
Benutzer folgt dem Kanal
new_subscriber
Neues Abonnement
resub
Abonnementverlängerung
subscription_gift
Verschenkte Abonnements
reward
Kanalbelohnungseinlösung oder belohnungsartige Chat-/Systemnachricht
donation
Trinkgeld-/Unterstützungsereignis
gift
KICKs-Geschenkereignis
raid
Nur zur Kompatibilität: ältere Host-/Raid-Eingabe; kein aktuelles offizielles Kick-Abonnement
follower_update
Followergesamtzahl
stream_online
Stream ging live
stream_offline
Stream beendet
user_banned
Benutzer wurde gesperrt oder zeitweise stummgeschaltet
VPZone – WebSocket
Implementierung: sources/websocket/vpzone.js
Verbindet sich mit wss://chat.vpzone.tv/ws?channel=USERNAME; OAuth fordert profile:read, chat:read, chat:write, channel:read, channel:write, und chat:moderate. Ein Bearer-Token kann auch manuell angegeben werden.
Flache VPZone-Frames wie type: "msg" werden zu Standard-Chatnutzdaten normalisiert.
Plattformseitiges delete_message / clear_chat frames remove the matching rows from the dock. Deletions carry meta.streamUsername to select the channel and meta.messageId when targeting a native message ID. Optional toggles sync dock deletes and blocks back to VPZone (channel owner only).
Kanalbesitzer erhalten ein seiteneigenes Stream-Info-Feld zum Aktualisieren von Livestream-Titel und -Kategorie (dasselbe Muster wie auf der Twitch-Quellseite).
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
VPZone msg, message, new_message, oder chat_message WebSocket-Frame.
chatname stammt aus username; chatmessage stammt aus body; Abonnenten-/Besitzer-/Mod-/VIP-Kennzeichen werden in chatbadges, Rollenkennzeichen auf oberster Ebene und meta. Native IDs füllen data.id und meta.messageId.
viewer_update
VPZone presence Frame mit count oder gleichwertiges Zuschauerfeld.
meta ist die ganzzahlige Live-Zuschauerzahl; trägt zur zusammengefassten viewer_updates.
new_subscriber
VPZone subscribe / subscription Frame.
membership wird bei vorhandenen Abonnementkennzeichen auf Subscriber gesetzt.
subscription_gift
VPZone gift / gift_subscription Frame.
Verwendet denselben Ereignisnamen für Geschenkabonnements wie Twitch, Kick, Rumble und Velora. subtitle enthält die Geschenkanzahl (x5) oder Empfänger.
message + hasDonation
VPZone system Frame mit metadata.kind: "pixels_cheer" (Pixels-Trinkgeld).
Chatzeile mit Spendenwert; hasDonation ist die Betragsbeschriftung (zum Beispiel 100 Pixels), meta.pixels die Ganzzahl. event bleibt leer; erkenne dieses Trinkgeld anhand von hasDonation. Unterstützungsereignisse der Kick-Brücke verwenden stattdessen event: "donation".
Wie Kick-Antworten dargestellt: initial enthält die Beschriftung „Autor: Auszug“, reply den rohen Antworttext, meta.reply das strukturierte Ziel. Beachtet die schließen „replying to“ aus Einstellung.
raid
VPZone raid Frame mit metadata.kind: "incoming".
Ausgehende Raid-Frames werden übersprungen; meta.viewers enthält die Raid-Größe, sofern geliefert.
shoutout
VPZone shoutout Frame (!so Befehl).
meta.targetUser nennt den per Shoutout erwähnten Kanal.
reward
VPZone system Frame mit metadata.kind: "channel_points_redeem".
Kanalpunkte-Einlösung mit demselben Ereignisnamen wie Twitch-Belohnungen.
stream_online / stream_offline
VPZone system Frames mit metadata.kind: "stream_started" / "stream_ended".
Dem Kanalnamen zugeordnet (die Frames enthalten keinen Akteur).
new_follower
VPZone follow Frame.
Wird dem Standardformat für Follower-Ereignisse zugeordnet.
joined
VPZone-WebSocket-Ereignisse für Beitritt/Anwesenheit, wenn Stream-Ereignisse „joined“ erfassen aktiviert ist.
Wird einem chatartigen Systemereignis mit VPZone-Akteurmetadaten unter meta.
Joystick
Implementierungen: sources/joystick.js, sources/inject/joystick-ws.js, und sources/websocket/joystick.js
Die normale Joystick-2.0-Website-Quelle läuft auf der angemeldeten /u/<channel>/chat Seite. Liest die ChatChannel, WhisperChatChannel, EventLogChannel, und SystemEventChannel Action-Cable-Frames mit Fallback auf dargestellte Zeilen für Electron und Wiederverbindungen.
Website-Chatnachrichten verwenden dieselben Kernfelder wie YouTube, Twitch und Kick: native id, chatname, chatmessage, chatimg, chatbadges, nameColor, membership, mod, private, username/userid, und timestamp wenn Joystick sie liefert. Wenn der Socket keine Benutzernamenfarbe enthält, liefert die dargestellte Zeile dieselbe nameColor Feld für Docks mit aktivierten Farben.
Seitenseitige Nachrichtenänderungen ersetzen die passende Dock-Zeile; Löschungen, Stummschaltungen und Sperren entfernen passende Zeilen anhand nativer ID oder Benutzername.
Die separate WebSocket-Quelle verwendet Joystick-Bot-Zugangsdaten (client_id + client_secret); die Website-Quelle verwendet die angemeldete Seitensitzung.
Autorisiert unter https://joystick.tv/api/oauth/authorize, tauscht/aktualisiert dann Tokens unter https://api.joystick.tv/api/oauth/token.
Verbindet sich mit wss://api.joystick.tv/cable und abonniert GatewayChannel.
Optionaler OAuth-Tokenaustausch wird für Hilfsendpunkte wie https://api.joystick.tv/api/users/stream-settings.
Die separate Quelle mit Bot-Zugangsdaten sendet keine viewer_update. Die angemeldete Website-Quelle sendet Zuschauerzahlen, wenn ihr Seitensocket diese liefert, wie unten beschrieben.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Joystick ChatMessage, BotMessage, new_message, bot_message, event_bot_message, pvp_message, und Flüsternachrichten.
Normaler Chat hat kein event. Die native ID steht im Feld auf oberster Ebene id und meta.messageId; Rollen und privater Status verwenden die etablierten Felder auf oberster Ebene bzw. Abzeichenfelder.
new_follower
Joystick StreamEvent mit Typ Followed.
Verwendet die Standard-Follower-Struktur und wird gegen Joysticks passende Bot-Zeile dedupliziert. Optionales meta.userId/meta.followedAt sind nur enthalten, wenn Joystick sie liefert.
Verwendet die Kick-kompatiblen Metadatenschlüssel für Abonnements: eventType, subscriber, gifter, totalGifted, duration, und plan.
donation
Joystick StreamEvent Typen Tipped / TipMenu.
hasDonation enthält Tokenbetrag und -einheit für die gemeinsame USD-Umrechnung, falls verfügbar, und die passende Joystick-Bot-Zeile wird dedupliziert. meta verwendet die etablierten Kick-Unterstützungsereignisschlüssel: eventType, supporter, amount, currency, message, giftName, giftType, und tier.
stream_online / stream_offline
Joystick StreamEvent Typen wie Started, StreamResuming, Ended, StreamEnding.
Für Automatisierungen zum transportabhängigen Online-/Offline-Zustand.
Anwesenheitsmeldungen werden als Ereignisnachrichten gesendet und lassen sich mit Einstellungen zum Ausblenden von Ereignissen unterdrücken. Diese unterdrücken außerdem Stream-Ereignisse ohne Spende.
viewer_update
Die angemeldete Website-Quelle empfängt ViewerCountUpdated über EventLogChannel.
Verwendet eine einfache Ganzzahl meta, passend zu YouTube, Twitch und Kick. Wird nur ausgegeben, wenn Zuschauerzahlerfassung oder Hype-Modus aktiviert ist. Die separate Quelle mit Bot-Zugangsdaten erhält weiterhin keine Zuschauerzahlen.
follower_update / subscriber_update
Joystick-Ereignisse zur Aktualisierung von Follower-/Abonnentenzahlen.
Verwendet eine einfache Ganzzahl meta, passend zum Twitch-Zählervertrag.
Ignorierte interne Benachrichtigungen
ChatMessageReceived, Gerätezustand und nicht zugeordnete Widget-Aktualisierungen wie Trinkgeldziel-/PvP-/Subathon-Zustand.
Dies sind Transport- oder Seitenzustandsmeldungen, keine Social-Stream-Ereignisse. Sie werden nicht in erfundene snake_case Ereignisnamen; das echte ChatChannel/new_message Zeile bleibt die einzige Chatnutzlast.
XP Sync
Implementierung: sources/xpsync.js
Chatzeilen verwenden die kanonischen Nutzdatenfelder mit type: "xpsync", einschließlich Autor, Nachricht, Avatar, Bild- und Inline-SVG-Abzeichen, Namensfarbe, Mitgliedschaft, Moderator-/Mitglied-/Bot-Kennzeichen und nativer Nachrichten-UUID als id falls verfügbar.
Antworten folgen der Konvention der YouTube-, Twitch- und Kick-DOM-Quellen: Sofern Antwortpräfixe nicht deaktiviert sind, initial enthält den Benutzer, dem geantwortet wird, reply bewahrt die Nachricht ohne Präfix, und chatmessage erhält das sichtbare Antwortpräfix.
Mit Sparks hervorgehobene Zeilen werden erfasst, obwohl XPSync sie ohne normale Chatzeilenklasse oder Nachrichten-ID darstellt; der sichtbare Betrag wird über hasDonation als N Sparks.
Bei aktivierter Ereigniserfassung senden Zeilen mit „just followed“ oder „followed the channel“ event: "new_follower".
Bei aktivierten Zuschauerzahlen sendet das permanente Chat-Dock event: "viewer_update" aus der von der XPSync-Seite bereits geladenen Livevideozahl und aktualisiert sie anhand von XPSyncs Liveseiten-Updates. Separate SSN-Zugangsdaten sind nicht nötig.
Instagram – Live-REST-Erfassung und Nachrichteneingang
Implementierung: sources/instagram.js und sources/instagramlive.js (identische Kopien)
Auf Liveseiten (/<user>/live/?broadcast_id=...), stammt der Livechat aus Instagrams eigener Web-API, die mit dem Sitzungscookie vom selben Origin abgefragt wird: GET /api/v1/live/{broadcast_id}/get_comment/?last_comment_ts={ts} etwa alle 2 Sekunden, und POST /api/v1/live/{broadcast_id}/heartbeat_and_get_viewer_count/ etwa alle 5 Sekunden bei aktivierten Zuschauerzahlen. Nach 3 aufeinanderfolgenden Fehlern (oder wenn kein broadcast_id ermittelbar ist), fällt die Quelle auf das Auslesen des dargestellten Chat-DOMs zurück.
Der eigene Aktivitätsfeed des Kontos wird über POST /api/v1/news/inbox/ etwa alle 45 Sekunden auf jeder Instagram-Seite. Die erste Abfrage füllt nur die Duplikatmenge, damit Verlauf nie erneut abgespielt wird; Stories werden anhand von tuuid.
Alle Aktivitätsfeed-Ereignisse verwenden type: "instagram"; Livechat bleibt type: "instagramlive". Like-Ereignisse verwenden den normalen Hintergrundpfad: Der Hintergrund sendet eine Kopie an das eigene Reactions Overlay und nimmt sie nur dann in den Haupt-Chat-/Ereignisfeed auf, wenn capturelikeevent aktiviert ist, passend zu TikTok und MeetMe. hideevents und der eigene Ereignisfilter blockieren sie überall. Da Ereignisse des Nachrichteneingangs zum angemeldeten Konto gehören, werden sie beim Ansehen fremder Livestreams unterdrückt (sowohl /<user>/live/ Seiten und Lives im Story-Viewer; Besitz wird pro Profil ermittelt und nach fehlgeschlagenen Abfragen erneut versucht) und auf deinem eigenen Live sowie allen Nicht-Live-Seiten ausgegeben. Jeweils ein aktiver Instagram-Tab fragt den Kontoeingang ab; Polling läuft nur bei Anmeldung.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message (live)
Neue Einträge im get_comment Antwort (comments[]/system_comments[]), oder neue DOM-Chatzeilen, wenn REST nicht verfügbar ist.
Standard-Chatnutzdaten, type: "instagramlive". REST liefert genaue user.username, user.profile_pic_url, und eine eindeutige pk für Duplikaterkennung verwendet.
viewer_update
heartbeat_and_get_viewer_count meldet geändertes viewer_count, wenn Zuschauerzahlerfassung oder Hype-Modus aktiviert ist.
meta ganzzahlige Zuschauerzahl. Polling stoppt, wenn broadcast_status ist nicht länger "live".
stream_online / stream_offline
stream_online wird einmal ausgelöst, wenn eine REST-Übertragungssitzung beginnt; stream_offline wird ausgelöst, wenn der Heartbeat einen nicht live befindlichen broadcast_status (erfordert aktivierte Zuschauerzahlerfassung oder Hype-Modus).
Ereignisse nur mit Metadaten entsprechend dem gemeinsamen Stream-Statusvokabular von Twitch und Joystick.
new_follower
Eine Story im Nachrichteneingang mit einem Follow- notif_name (oder story_type 12) erscheint.
chatname ist der neue Follower, chatimg deren Profilbild, chatmessage der Text des Nachrichteneingangs (zum Beispiel „x started following you.“).
follow_request
Ein private_user_follow_request Story erscheint (private Konten erhalten Anfragen statt direkter Follows).
Gleiche Struktur wie new_follower, bewusst getrennt gehalten, damit Automatisierungen Anfragen genehmigen oder unterschiedlich begrüßen können.
liked
Eine Story im Nachrichteneingang mit einem Like- notif_name (einschließlich comment_like) erscheint.
Gemeinsames Like-Vokabular mit TikTok/MeetMe. chatname ist der Akteur, chatmessage der Text des Nachrichteneingangs (zum Beispiel „x liked your photo.“).
message (Kommentar zum eigenen Beitrag)
Eine Story im Nachrichteneingang mit einem Kommentar- notif_name erscheint.
Normale Chatzeile (event: false), type: "instagram"; chatmessage enthält den Text des Nachrichteneingangs einschließlich Kommentarauszug.
notification
Jeder andere Story-Typ im Nachrichteneingang (Erwähnungen, Markierungen, Shopping usw.).
Allgemeiner Auffangtyp; meta.notifName und meta.storyType bewahren die rohe Story-Klassifizierung.
Facebook Live
Implementierung: sources/facebook.js (DOM-Auslesen) und optionale Graph-API-Brücke unter sources/websocket/facebook.html
DOM-Erfassung liest dargestellte Facebook-Kommentare; die Graph-API-Brücke für verwaltete Seiten liest Videokommentare. Beide verwenden type: "facebook", die Standard-Chatfelder und kein event für gewöhnliche Kommentare. Die API-Brücke enthält außerdem das optionale platform: "facebook".
Die API-Brücke verwendet userid für die Autoren-ID, falls verfügbar, timestamp für einen gültigen Erstellungszeitpunkt in Unix-Millisekunden und contentimg für ein von der API geliefertes HTTP(S)-Anhangsbild. Reine Bildkommentare können ein leeres chatmessage. textonly gilt nur für den Nachrichteninhalt: Rohtext bei true, escaptes HTML bei false.
API-Kommentarkontext verwendet meta.messageId (native Kommentar-ID), meta.permalink, meta.videoId, und meta.pageId. Frühere API-Builds verwendeten meta.commentId, doppelte Autoren-/Zeitfelder unter meta, und übergab dort unverarbeitete Anhänge. Neue Builds verwenden stattdessen die Standardfelder für Autor/Zeit/Medien; dies fügt keine Löschsynchronisierung hinzu.
Zuschauerzahlen aktualisieren sich nur bei Aktivierung. Die API-Brücke liest gleichzeitige live_views; ersetzt fehlende gleichzeitige Zuschauerzahlen weder durch kumulative Videoaufrufe noch durch eine erfundene Null. Die API-Erfassung leitet Stars, Mitgliedschaften, Hervorhebungen oder Antworten nicht aus gewöhnlichem Kommentartext ab.
Stars werden aus dem dargestellten Livechat-DOM erfasst, wenn Facebook das sichtbare N sent Kennzeichen; sie befüllen hasDonation und donoValue mit 100 Stars = 1 USD, ohne data.event.
Füge zum Testen ssnreplay=1 zur Facebook-Live-URL hinzu, um nach dem Neuladen bereits sichtbare Chatzeilen zu verarbeiten.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
viewer_update
DOM fragt das Live-Zuschauerabzeichen ab; die API-Brücke fragt bei Aktivierung gleichzeitige Liveaufrufe ab.
meta ganzzahlige Zuschauerzahl, passend zu anderen Quellen. Fehlende oder nicht lesbare Zahlen werden übersprungen; eine tatsächliche Null ist gültig.
hasDonation
Facebook Stars, die im Livechat-DOM dargestellt werden.
Standard-Chatnutzdaten; hasDonation enthält den sichtbaren Stars-Betrag, etwa 100 Stars, und donoValue enthält den USD-Wert. Stars setzen kein data.event.
highlightColor
Facebook zeigt ein sichtbares HIGHLIGHTED Beschriftung.
Verwendet die normalen Chatfelder und highlightColor; kein data.event gesetzt ist. Stars verwenden weiterhin hasDonation.
Online Church
Implementierung: sources/onlinechurch.js
Verwendet DOM-Auslesen von öffentlichem Chat und Medienkopf.
Zuschauerzahlen aktualisieren sich nur, wenn Zuschauerzahl anzeigen oder Hype-Modus aktiviert ist.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue Einträge erscheinen unter #publicchat.
Standard-Chatnutzdaten mit Absendername, Avatar, Abzeichen und optionaler Mitgliedschaftsbeschriftung, sofern im DOM vorhanden.
viewer_update
Fragt das Live-Belegungsabzeichen im Medienkopf alle 10 Sekunden ab.
meta ganzzahlige Zuschauerzahl; sendet 0 wenn das Abzeichen fehlt oder unlesbar ist, um veraltete Zähler zu leeren.
SharePlay.tv
Implementierung: sources/shareplay.js
Implementierung der Desktop-API: ssn_app/resources/shareplay-client.js. Die native SSApp-Quelle abonniert den eigenen Kanal des autorisierenden Benutzers über einen vom SharePlay-Team bereitgestellten öffentlichen OAuth-Client.
Verwendet DOM-Auslesen der Livechat-Leiste auf SharePlay-Kanalseiten.
Nach dem Start der Erfassung werden nur neu eingefügte Chatzeilen und Karten ausgegeben; der vorhandene Verlauf wird bewusst ignoriert.
Die Desktop-API-Quelle empfängt neue EventSub-Ereignisse; während einer Verbindungsunterbrechung gesendete Nachrichten werden nicht nachgeliefert. Der Chat überträgt die SharePlay-Nachrichten-ID in id und die Absender-ID in userid, aber keine Avatare oder Abzeichen. Emotes berücksichtigen textonly; Antworten füllen die vorhandenen Antwortfelder aus, wenn sich die ursprüngliche Nachricht im Sitzungscache mit 200 Nachrichten befindet.
Die Desktop-API bildet abgeschlossene channel.blitz -Ereignisse auf raid, Kanalempfehlungen im Chat auf shoutout, und stream.viewers auf viewer_update ab, wenn Zuschauerzahlen oder der Hype-Modus aktiviert sind. API-Kanalempfehlungen enthalten den bereitgestellten Chattext ohne Banner- oder Schaltflächenmetadaten der DOM-Karte. Synthetische Chat-/Blitz-Ereignisse behalten meta.is_synthetic: true; Zuschaueraktualisierungen behalten einen ganzzahligen Wert in meta.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue Chatzeilen erscheinen im Haupt-Chatfeed.
Standard-Chatnutzdaten mit Autor, Avatar, Abzeichenbildern und als HTML erhaltenen Emotes. Thread-Antworten füllen außerdem initial, reply, und meta.reply wenn die Elternzeile noch vorhanden ist.
raid
SharePlay fügt dem Livechat-Feed eine Blitz-Karte hinzu.
Wird dem kanonischen Raid-Ereignis zugeordnet. meta.cardType ist "blitz", mit optionalem meta.fromLogin und meta.viewers wenn der Kartentext sie liefert.
shoutout
SharePlay fügt dem Chatfeed eine Shoutout-/Follow-Karte hinzu.
Ausgegeben als data.event = "shoutout". Das Kartenbannerbild wird über contentimg, während meta.cardType und meta.action bewahren Kartenbeschriftung/Schaltflächentext.
viewer_update
Fragt das sichtbare Zuschauerabzeichen im Kopfbereich alle 10 Sekunden ab.
meta ganzzahlige Zuschauerzahl; wird nur ausgegeben, wenn Zuschauerzahl anzeigen oder Hype-Modus aktiviert ist, und sendet 0 wenn das Abzeichen unlesbar wird, um veraltete Zähler zu leeren.
Streamplace
Implementierung: sources/streamplace.js
Liest Streamplaces mit React dargestellte Liveseite und überspringt beim Verbinden den sichtbaren Chatverlauf.
Nachrichten im Relay-Stil wie Name (Discord): message werden auf den weitergeleiteten Absendernamen normalisiert.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue Streamplace-Chatzeilen erscheinen nach dem Verbinden.
Standard-Chatnutzdaten mit nameColor, chatbadges, als HTML erhaltene Links und Antwortfelder initial, reply, und meta.reply wenn sichtbar.
viewer_update
Das Zuschauerabzeichen im Kopfbereich ändert sich bei aktivierter Zuschauerzahlerfassung oder aktiviertem Hype-Modus.
meta ganzzahlige Zuschauerzahl.
WorldsWave
Implementierung: sources/worldswave.js
Unterstützt WorldsWave-Liveseiten und reine Chat-URLs wie https://worldswave.com/kn_livecmd.php?cmd=viewStream&streamId=STREAM_ID&chatonly=1.
Verwendet die stabile data-ww-*/ww-chat-* Markup, falls verfügbar, und behält ältere kontackt-Selektoren für reine Chatseiten und ältere Layouts bei.
Vorhandener Chatverlauf wird beim Start der Erfassung übersprungen; teste mit einer neuen Nachricht.
Zuschauerzahlen erfordern Zuschauerzahl anzeigen oder Hype-Modus. Eigene Geschenk-/Trinkgeldereignisse und Rücksenden sind nicht implementiert. Eine dargestellte Zeile kann trotzdem eine Spendenbeschriftung über data-ww-donation.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Eine neue dargestellte WorldsWave-Chatzeile erscheint.
Standard-Chatnutzdaten mit type: "worldswave", Absendername, Avatar, optionale Benutzer-ID, Namensfarbe, Abzeichen, Moderatorstatus, Mitgliedschaft, Spendenwert, Anhang und Kanalidentität. Stabile WorldsWave-Nachrichten-IDs werden als meta.messageId und über gleichzeitige Vorschau-/Vollchatfelder hinweg dedupliziert. Inline-Nachrichtenbilder bleiben bei deaktiviertem Nur-Text-Modus bereinigt.
viewer_update
Die sichtbare Live-Zuschauergesamtzahl ändert sich bei aktivierter Zuschauerzahlerfassung oder aktiviertem Hype-Modus.
meta ist die ganzzahlige Zuschauerzahl. Die stabile data-ww-viewer-count Wert wird bevorzugt; ältere Kurzformen wie 1.2K werden als Fallback normalisiert.
FLEX TV
Implementierung: sources/flextv.js
Liest das dargestellte Chatfeld auf https://www.flextv.co.kr/channels/*/live Seiten.
Das Chatfeld muss sichtbar sein. Bestehender Chatverlauf wird beim Verbinden der Quelle übersprungen; teste daher mit einer neuen Chatzeile.
Für diese Quelle ist noch kein Weg für Zuschauerzahlen, Spenden oder Antworten dokumentiert.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue sichtbare FLEX-TV- .chat-item Zeilen erscheinen im Livechat-Feed.
Standard-Chatnutzdaten mit type: "flextv", chatname, chatmessage, nameColor, Abzeichenbilder in chatbadges, und FLEX-Mitgliedsdetails unter meta wenn bereitgestellt durch data-member.
Seal Team Sloth
Implementierung: sources/sealteamsloth.js
Liest den dargestellten ausgeklappten Chat auf https://sealteamsloth.com/popout-chat/* Seiten.
Zuschauerzahlen erfordern Zuschauerzahl anzeigen oder Hype-Modus.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Eine neue dargestellte Seal-Team-Sloth-Chatzeile erscheint.
Standard-Chatnutzdaten mit type: "sealteamsloth", Absendername, Avatar und Nachrichteninhalt.
viewer_update
Die sichtbare Live-Zuschauergesamtzahl ändert sich bei aktivierter Zuschauerzahlerfassung oder aktiviertem Hype-Modus.
meta ist die ganzzahlige Zuschauerzahl; Kurzformen wie 1.2K werden normalisiert.
MeetMe – DOM- und WebSocket-Erfassung
Implementierung: sources/meetme.js
Liest MeetMes dargestelltes Livechat-DOM auf app.meetme.com/live/view/... Seiten und innerhalb des api.gateway.meetme-live.com/web-live/... Iframe.
Wenn der Iframe-WebSocket verfügbar ist, wss://video-live.meetme.com/ Frames werden vor dem DOM-Fallback ausgewertet, um umfangreichere Live-Ereignisse zu erfassen.
hideevents unterdrückt Ereignisse ohne Spende; MeetMe-Geschenke und Diamantenspenden füllen weiterhin Spendenfelder. capturejoinedevent aktiviert Beitritts-/Wiederbeitrittshinweise. Akteurspezifische liked Ereignisse verwenden das gemeinsame Hintergrundrouting, gesteuert durch capturelikeevent; zusammengefasstes reaction Effekte bleiben ausdrücklich an das Reactions Overlay gerichtet.
Zuschauerzahlen bevorzugen die sichtbare Anzahl im MeetMe-Kopfbereich und verwenden WebSocket-Gesamtzahlen nur ersatzweise, wenn die DOM-Anzahl nicht verfügbar ist. Sie werden bei Änderung gesendet und etwa alle 30 Sekunden wiederholt, während showviewercount/hypemode aktiviert ist; Followergesamtzahlen werden nur bei Änderung und höchstens etwa alle 60 Sekunden gesendet.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neu SNSChatMessage WebSocket-Frames treffen ein oder neue ChatMessage_* DOM-Zeilen erscheinen unter ChatHistoryContainer_*.
Standard-Chatnutzdaten mit Absendername, Avatar, Nachrichten-HTML/-Text und Abzeichenbildern/-text. DOM-Zeilendetails sind flache meta Schlüssel, einschließlich messageId, roomId, level, levelColor, badgeLabels, badgeSrcs, badgeClasses, isBouncer, isTopStreamer, isBestOfTheWeek, rank, und rowClassName. WebSocket-Nutzdaten setzen meta.source = "websocket".
joined / rejoined / left
SNSChatParticipant WebSocket-Frames zum Erstellen, Aktualisieren oder Löschen treffen ein oder MeetMe stellt ein DOM- join-cell Zeile. Beitritts-/Wiederbeitrittshinweise erfordern Stream-Ereignisse „joined“ erfassen.
Sendet chatartige Systemhinweise mit Akteurname/Avatar, wenn MeetMe diese bereitstellt. meta.isNewViewer, meta.viewerLevelId, meta.isBouncer, und meta.isSubscriber bewahren den Teilnehmerzustand.
new_follower
MeetMe stellt eine DOM-Favoriten-/Follow-Zeile dar, etwa Favorited.
Verwendet das gemeinsame Vokabular für Follower-Ereignisse. chatname ist der Akteur, chatimg ist das erkannte Profilfoto, falls verfügbar, und flache meta.favoriteText/meta.targetName bewahren die ursprünglichen Zeilendetails.
gift
SNSGiftMessage WebSocket-Frames treffen ein oder MeetMe stellt ein Geschenkbild in einer Chatzeile dar.
hasDonation enthält die sichtbare Geschenkbeschriftung oder den Diamantenwert, contentimg enthält das Geschenkbild, falls bereitgestellt, und flache Schlüssel wie meta.giftName, meta.giftCount, meta.amount, und meta.currency bewahren strukturierte Details. Das gift Ereignis ist tatsächlichen Geschenk-Frames/-Zeilen vorbehalten; Spendendarstellung sollte sich weiterhin an hasDonation.
Eigene Diamanten-Frames werden als Spendenereignisse behandelt. hasDonation wird für die gemeinsame USD-Umrechnung als Diamanten formatiert, und meta.amount/meta.currency bleiben für Automatisierungen flach.
liked / reaction
SNSLike WebSocket-Frames treffen ein.
Akteursbezogene Likes verwenden dasselbe liked Vokabular und zentrales Hintergrundrouting wie TikTok. Zusammengefasste/anonyme Like-Gesamtzahlen werden nur an das Reaktionsziel gesendet als reaction, mit flachem meta.reactionType, meta.totalLikes, und meta.subscriberLikes. Der Unterschied liegt in der Ereignisbedeutung, nicht in der Anonymität: capturelikeevent steuert nur einzelne liked/like Ereignisse.
meta ist die ganzzahlige Followerzahl, passend zur gemeinsamen Zählerereigniskonvention.
guest_update
SNSVideoGuestBroadcast Erstellungs-/Aktualisierungs-Frames treffen ein.
Ereignis nur mit Metadaten zum Gast-/Live-Co-Host-Zustand. Flache meta Schlüssel sind status, position, totalGuests, isMuted, guestBroadcastId, videoViewerId, und broadcastId.
viewer_update
Das sichtbare Zuschauerabzeichen im Kopfbereich ändert sich oder SNSVideo WebSocket-Metadaten liefern Zuschauergesamtzahlen, wenn das Abzeichen nicht verfügbar ist; unveränderte Gesamtzahlen werden bei Aktivierung etwa alle 30 Sekunden wiederholt.
meta ganzzahlige Zuschauerzahl; wird nur bei aktivierter Zuschauerzahlerfassung oder aktiviertem Hype-Modus ausgegeben.
Velora
Implementierung: sources/velora.js und sources/websocket/velora.js
Standardmodus liest das sichtbare Chat-DOM; WebSocket-Modus verwendet die Velora Events API mit OAuth.
Unterstützte URLs im Standardmodus sind https://velora.tv/*, https://velora.tv/dashboard/stream/popout?panels=chat%2Cactivity&channel=CHANNEL&layout=vertical, und https://velora.tv/dashboard/stream/popout/CHANNEL/obs-chat.
Volts- und Kanalpunktekarten werden als Ereignisnutzdaten ausgegeben, wenn DOM oder Events API sie bereitstellt.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue Velora-Chatzeilen erscheinen oder Events-API-Chatnachrichten treffen ein.
Standard-Chatnutzdaten mit erhaltenen Abzeichen, Autorenfarbe, Links und Emotes außerhalb des Nur-Text-Modus.
volts
Velora-Volts-Karten oder channel.volts Events-API-Nutzdaten treffen ein.
hasDonation enthält den angezeigten Volts-Betrag; DOM-Erfassungen enthalten meta.source = "dom".
channel_points
Velora-Kanalpunkte-/Einlösungskarten oder channel.channel_points_redemption Events-API-Nutzdaten treffen ein.
chatmessage enthält die Einlösungsnachricht oder den Belohnungstitel; meta.rewardTitle kennzeichnet die Belohnung, falls verfügbar.
subscription
Eine sichtbare Velora-Aktivitätszeile meldet, dass ein Benutzer Kanalmitglied/Abonnent wurde.
membership enthält die sichtbare Mitgliedschaftsbeschriftung.
viewer_update
Sichtbare Zuschauerzahl ändert sich bei aktivierter Zuschauerzahlerfassung oder aktiviertem Hype-Modus.
meta ganzzahlige Zuschauerzahl.
Parti – Profil-/Popout-Chat-Erfassung
Implementierung: sources/parti.js
Unterstützt Profil-URLs wie https://parti.com/USERNAME und Popout-URLs wie https://parti.com/popout-chat?id=USER_ID.
Zuschauerzahlen verwenden Partis Livestream-Heartbeat-Endpunkt bei aktivierter Zuschauerzahlerfassung oder aktiviertem Hype-Modus.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Sichtbare Parti-Chatzeilen erscheinen im Profil- oder Popout-Chatstream.
Standard-Chatnutzdaten; nameColor bewahrt Partis dargestellte Autorenfarbe und chatmessage bewahrt Inline-Inhalt, sofern Nur-Text-Modus nicht aktiviert ist.
donation
Sichtbare Parti-Trinkgeldzeilen melden, dass ein Benutzer einen Betrag gegeben hat.
hasDonation enthält den angezeigten Betrag, meta.amount/meta.currency werden befüllt, wenn auswertbar, meta.amountText bewahrt den rohen Betragstext, und donoValue wird für USD-Trinkgelder gesetzt.
viewer_update
Der Parti-Heartbeat liefert eine Live-Zuschauerzahl.
meta ist die ganzzahlige Zuschauerzahl; die Seite verwendet pro Quellfenster ein Heartbeat-Token wieder, um Zahlen nicht künstlich zu erhöhen.
CHZZK – Popout-Chat-Erfassung
Implementierung: sources/chzzk.js
Unterstützt https://chzzk.naver.com/live/*/chat und https://chzzk.naver.com/iframe/live/*/chat.
Zuschauerzahlen verwenden CHZZKs Live-Status-Abfrageendpunkt bei aktivierter Zuschauerzahlerfassung oder aktiviertem Hype-Modus.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Sichtbare CHZZK-Chatzeilen erscheinen im Popout-Chatstream.
Standard-Chatnutzdaten mit type: "chzzk", nameColor, Abzeichen-Bild-URLs in chatbadges, und dargestellte Emotes in chatmessage sofern Nur-Text-Modus nicht aktiviert ist.
Chat mit hasDonation
Sichtbare CHZZK-Cheese-Spendenzeilen erscheinen im Chat.
hasDonation enthält den angezeigten Cheese-Betrag. Diese Zeilen setzen kein data.event.
viewer_update
Die Live-Statusabfrage liefert eine Zuschauerzahl.
meta ist die ganzzahlige Zuschauerzahl.
Rumble – Standard-DOM-Erfassung
Implementierung: sources/rumble.js
Benötigt authentifizierte Sitzungscookies, damit die service.php Zuschauer-API antwortet.
Dargestellte Rant-Zeilen liefern hasDonation; eingehende Raid-Karten liefern event: "raid". Diese DOM-Quelle sendet nicht den Abonnenten-/Follower-Ereignisfeed der API-Brücke.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Sichtbare Rumble-Chatzeilen erscheinen im Seiten- oder Popup-Chat.
Standard-Chatnutzdaten; chatmessage bewahrt Rumble-Emote-Bild-HTML nach der Seitendarstellung, sofern Nur-Text-Modus nicht aktiviert ist.
viewer_update
Ruft Rumbles video.watching-now Dienst alle 30 Sekunden.
meta ganzzahlige Zuschauerzahl; verwendet credentials: 'include' um Sitzungscookies wiederzuverwenden.
Chat mit hasDonation
Eine sichtbare Rant-Zeile enthält einen Preis.
hasDonation bewahrt den dargestellten Preis; es wird kein Spendenereigniskennzeichen hinzugefügt.
raid
Eine eingehende Raid-Karte erscheint im Chat.
Verwendet die sichtbare Raid-Nachricht und das optionale Kartenbild in contentimg.
Rumble – WebSocket-/API-URL
Implementierung: sources/websocket/rumble.js
Benötigt die dem Creator gehörende Live-Stream-API-URL von https://rumble.com/account/livestream-api. Rumble dokumentiert, dass diese URL den Livestream-Schlüssel enthält, keine separate Authentifizierung benötigt und nur mit vertrauenswürdigen Dritten geteilt werden sollte.
Transport nur zum Lesen. Die öffentlichen Rumble-Live-Stream-API-Dokumente beschreiben keinen offiziellen Endpunkt zum Chatsenden. Daher leitet diese Quelle Nachrichten/Ereignisse in Social Stream ein, sendet aber keinen Chat zurück an Rumble.
livestreams[].chat wird nur gefüllt, während der gewählte Stream live ist. Verwende ?streamId=... um einen bestimmten Stream festzulegen, wenn die API mehrere liefert; ungültige IDs führen jetzt zu einem Fehler statt zum stillen Ausweichen auf einen anderen Stream.
Die Seite löst außerdem https://rumble.com/chat/popup/<livestreams[].id> damit du den normalen Popup-Chat mit eingebundenem Skript direkt öffnen kannst, ohne zuerst die /live Seite.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue Einträge kommen aus Rumbles SSE-Chatstream, nachdem die offizielle API livestreams[].id; fällt zurück auf livestreams[].chat.recent_messages.
Standard-Chatnutzdaten. meta.source ist rumble_sse wenn der SSE-Chatstream verfügbar ist und Avatar-URLs aus users[].image.1; andernfalls fällt es zurück auf live_stream_api ohne Avatare. Wenn der Popup-Emote-Katalog verfügbar ist, chatmessage stellt Rumble-Shortcode-Emotes als Bild-HTML dar und meta.plainText bewahrt den ursprünglichen Shortcode-Text.
donation
Neue Rant-Einträge erscheinen in livestreams[].chat.recent_rants.
hasDonation enthält den als USD formatierten Betrag; meta enthält amount_cents, amount_dollars, und expiresOn.
new_follower
Neue Einträge erscheinen in followers.recent_followers.
Systemereignis mit chatname auf den Follower-Benutzernamen gesetzt und Zeitstempel unter meta.followedOn.
new_subscriber
Neue Einträge erscheinen in subscribers.recent_subscribers.
membership wird auf SUBSCRIBER; subtitle spiegelt den dokumentierten USD-Betrag, wenn Rumble ihn liefert.
subscription_gift
Neue Einträge erscheinen in gifted_subs.recent_gifted_subs.
chatname ist der Schenker, hasDonation wird zu N Gifted, und meta enthält totalGifted, remainingGifts, giftType, und videoId.
follower_update
Immer wenn sich der gewählte Followerzähler ändert.
meta ganzzahlige Followerzahl. Standardmäßig followers.num_followers; mit ?followerMode=total, verwendet followers.num_followers_total wenn Rumble ihn liefert.
subscriber_update
Immer wenn subscribers.num_subscribers ändert sich.
meta ganzzahlige Abonnentenzahl.
stream_online / stream_offline
Wenn der gewählte Livestream zwischen live und offline wechselt.
meta enthält eine bereinigte Auswahl von Streamfeldern (id, title, createdOn, Kategoriebeschriftungen, Likes/Dislikes und Zuschauerzahlen). Sensible Werte wie stream_key werden bewusst nicht weitergeleitet.
viewer_update
Immer wenn livestreams[].watching_now ändert sich für den gewählten Stream.
meta ganzzahlige gleichzeitige Zuschauerzahl; sendet 0 wenn der ausgewählte Stream offline geht, um veraltete Zähler zu leeren.
Dieser Transport ist für Kanäle gedacht, die du besitzt oder verwaltest. Da die API-URL einen Livestream-Schlüssel enthält, darf sie nicht in Overlays, Protokollen, Screenshots oder gemeinsam genutzten Browserprofilen offengelegt werden. Chatavatare stammen aus Rumbles SSE-Chatstream, sobald die offizielle API die Stream-ID aufgelöst hat; dieser Transport liest keine Rumble-Seiten nach Avataren aus.
YouNow – DOM-Erfassung
Implementierung: sources/younow.js
Liest das dargestellte Livechat-DOM und sendet Standard-Chatnutzdaten mit type: "younow".
Zuschaueraktivitätszeilen wie is watching, I became a fan!, und invited N fans to this broadcast. werden mit event: true damit Ereignisfilter sie weiterleiten können.
Die sichtbare Anzahl im Zuschauerfeld ändert sich, während showviewercount/hypemode aktiviert ist.
meta ganzzahlige Zuschauerzahl; sendet 0 wenn der Zähler verschwindet.
Favorited Studio – DOM-Erfassung
Implementierung: sources/favorited.js
Liest das dargestellte Livechat-DOM und sendet Standard-Chatnutzdaten mit type: "favorited".
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue Chatzeilen erscheinen.
Standard-Chatnutzdaten.
viewer_update
Die Anzahl im Live-Zuschauer-Tab ändert sich, während showviewercount/hypemode aktiviert ist.
meta ganzzahlige Zuschauerzahl aus dem content-live-viewers Tab.
BEAM – DOM-Erfassung
Implementierung: sources/beamstream.js
Liest das dargestellte Livechat-DOM und sendet Standard-Chatnutzdaten mit type: "beamstream".
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Neue Chatzeilen erscheinen.
Standard-Chatnutzdaten mit Klartext- chatname, Avatar-URL in chatimg, und Bild-URLs oder SVG-Abzeichenobjekte in chatbadges. Auf Beams Erfassungsseite verborgene Felder bleiben leer. Native Beam-Profillinks werden nicht als externe Relay-Quellen behandelt. contentimg kann Inline-Video-/WebM-Anhänge enthalten, falls bereitgestellt.
viewer_update
Ein Zuschauerzählelement ändert sich, während showviewercount/hypemode aktiviert ist.
meta ganzzahlige Zuschauerzahl; wird nur ausgegeben, wenn die Chatseite einen Zuschauerzähler bereitstellt.
Starvios
Implementierung: sources/starvios.js
Erfasst neu gerenderte Chatzeilen https://starvios.com/popout/chat/USERNAME mit type: "starvios", einfache Absendernamen, Namensfarben und Text oder Inline-Emotes entsprechend textonly.
Bezahlte Chatzeilen behalten den angezeigten Betrag bei hasDonation (zum Beispiel, 100 Starvies). Es wird kein USD-Umrechnungs- oder Spendenereignis bereitgestellt.
Vorhandene Zeilen und Zeilen, die während der anfänglichen 1,5-sekündigen Verlaufsabrechnungsperiode gerendert wurden, werden übersprungen. Separate angeheftete Karten, Antwortvorschauen und Abonnement-/Raid-Benachrichtigungen sind ausgeschlossen. Das Popout liefert keine verifizierte Zuschauerzahl.
Verwendet den Standard focusChat Antwort-Hook, wenn eine sichtbare, bearbeitbare Eingabe vorhanden ist. Der authentifizierte Versand bleibt ungeprüft.
RobotStreamer
Öffnen https://robotstreamer.com/chat.html?c=CHANNEL_ID and keep Stream Chat selected for channel-only capture. Each new message, including messages grouped beneath the same author, uses platform/type: "robotstreamer", Klartext- chatname, userid, chatimg, chatbadges, und nameColor. Message bodies preserve safe inline images; textonlymode uses literal text and image labels. Initial history and system notices are excluded. RobotStreamer deletions are not forwarded; remove moderated messages in the SSN dock if needed.
Castyr – DOM-Erfassung
Implementierung: sources/castyr.js
Liest neue dargestellte Chatzeilen aus https://castyr.live/homebeta/popout-chat/* und sendet Standard-Chatnutzdaten mit type: "castyr".
Vorhandener Chatverlauf wird beim Verbinden der Quelle übersprungen.
Ereignis
Wann es ausgelöst wird
Nutzdatenhinweise
message
Ein neues .chat-message Zeile erscheint.
Standard-Chatnutzdaten mit Absendername, dargestelltem Nachrichteninhalt und Namensfarbe, soweit verfügbar.
viewer_update
Die sichtbare Anzahl aktiver Chats ändert sich, während showviewercount/hypemode aktiviert ist.
meta ist die aus Castyrs aktivem Chatelement mit Titel gelesene Ganzzahl.
SOOP – Player-DOM-Erfassung
Implementierung: sources/sooplive.js. Unterstützt das einheitliche play.sooplive.com Player und älteres play.sooplive.co.kr URLs. Das frühere globale Chatlayout wird weiterhin erkannt, wenn es bereitgestellt wird.
Öffentlicher Chat sendet type/platform: "sooplive", Klartext- chatname/userid, nameColor, und bereinigtes chatmessage. Bestehende Zeilen, doppelte Nachrichten-IDs, Übersetzungskopien und private Flüsternachrichten werden ausgeschlossen. Emotes werden zu sicheren Bildern oder im Nur-Text-Modus zu Alternativtext.
Mit showviewercount oder hypemode aktiviert, viewer_update enthält eine Ganzzahl meta aus dem #nAllViewer. Reine Chat-Popouts zeigen diese Zahl möglicherweise nicht. SSApp verwendet beim Öffnen eines abgetrennten Popups den vollständigen Player, da aktuelle SOOP-Popouts von ihrem öffnenden Fenster abhängen.
Gosh – Kanalchat-Erfassung
Implementierung: sources/gosh.js. Öffne https://gosh.com/USERNAME mit sichtbarem Chat oder füge diese URL in SSApps Add other source ein. Ein Chat-Popout ist nicht nötig.
Neue Chatzeilen senden type/platform: "gosh", Klartext- chatname, nameColor, und bereinigtes chatmessage. Inline-Bilder und GIFs behalten sichere HTTP(S)-URLs. Mit textonlymode, Bilder werden zu Alternativtext oder [image] wenn kein Alternativtext verfügbar ist. Avatare, Abzeichen, Spenden und Mitgliedschaften bleiben leer, wenn sie in der erfassten Zeile fehlen.
Lass den virtualisierten Chat zu den neuesten Nachrichten gescrollt. Bestehender Verlauf, erneut dargestellte Zeilen und Systemhinweise ohne Autor werden ausgeschlossen. Darstellungsindizes bleiben intern und werden nicht als native Nachrichten-IDs ausgegeben. Follow-, Spenden-, Zuschauerzahl- oder Moderationsereignisse werden nicht abgeleitet.
Livacha – Chatraum-Erfassung
Implementierung: sources/livacha.js. Öffne https://livacha.com/chat/ROOM mit sichtbarem Chat oder füge die Raum-URL in SSApps Add other source ein.
Neue Chatzeilen senden type/platform: "livacha", Klartext- chatname, chatimg, nameColor, und bereinigtes chatmessage. Relative Avatar- und Inline-Bild-URLs werden zu absoluten HTTP(S)-URLs. Absätze, Zeilenumbrüche und Listen werden zu einer Chatnachricht zusammengefasst. Mit textonlymode, Bilder werden zu Alternativtext oder [image].
Nachrichten-IDs werden intern verwendet, um bearbeitete und erneut eingefügte Zeilen nicht doppelt zu erfassen. Anfangsverlauf und vorangestellte ältere Nachrichten werden übersprungen; Zeitstempel und Reaktionsmenüs liegen außerhalb des erfassten Texts. Spenden-, Mitgliedschafts-, Moderations- oder Zuschauerzahlereignisse werden nicht abgeleitet.
Chatango - Group Chat
Öffnen https://ROOM.chatango.com/, or a page with an embedded Chatango room. New rows emit standard chat with type/platform: "chatango", Klartext- chatname, nameColor, chatmessage, und chatimg when available. Inline images use HTTP(S) URLs; text-only mode uses their alt text or [image]. Rows already displayed when capture attaches and older messages prepended while scrolling back are skipped.
Vaughn Live – Kanal-Chat-Erfassung
Implementierung: sources/vaughn.js. Öffne https://vaughn.live/USERNAME mit sichtbarem Chat oder fügen Sie die Kanal-URL in „Andere Quelle hinzufügen“ der Desktop-App ein.
Jeder neue Nachrichtentext sendet einen Standard-Chat mit type/platform: "vaughn", Klartext- chatname, chatmessageund der Avatar der Gruppe chatimg, nameColorund Bild/SVG chatbadges sofern vorhanden. Der kompakte Chat liest den Namen vor der Nachricht. Emotes verwenden ihre angezeigten Bild-URLs oder ihren Auslöser/Alt-Text mit textonlymode.
Nachrichten-IDs und -Elemente werden intern verfolgt, um Wiederholungen zu vermeiden, wenn gruppierte Nachrichten eintreffen, sich IDs nach der Bestätigung ändern oder Zeilen erneut gerendert werden. Vorhandene Nachrichten und der Verlauf, die gerendert werden, während das anfängliche Lade-Overlay sichtbar ist, werden übersprungen. Zeitstempel, Nachrichtentools und Linkvorschaukarten sind vom Nachrichteninhalt ausgeschlossen.
Stream.space – experimentelle DOM-Erfassung
Implementierung: sources/streamspace.js. Passt nur zu https://beta.stream.space/chat-popup.php?channel=USERNAME und das entsprechende https://stream.space Popup.
Neue dargestellte Chatzeilen senden type: "streamspace", platform: "streamspace", Klartext- chatname/userid, chatmessage, Avatar chatimg, bildbasierte Stufen- chatbadges, und nameColor. Inline-Emotes werden als sichere Bilder rekonstruiert oder als Alternativtext, wenn textonlymode aktiviert ist. Bestehender Verlauf, Willkommenshinweise, Antwortvorschauen und angeheftete Duplikate werden ausgeschlossen.
viewer_update enthält eine Ganzzahl meta gelesen aus #popupViewersNum wenn showviewercount oder hypemode aktiviert ist. Spenden-, Mitgliedschafts- oder Moderationsereignisse werden nicht abgeleitet.
Experimentell: Das Beta-Popup blieb bei der Prüfung auf Loading. SSApp lud das Popup und erfasste Zuschaueraktualisierungen, aber Livechat-Zustellung und produktives Popup sind weiterhin ungeprüft. SSN kann keine Nachrichten erfassen, die die Website nicht darstellt.
w.tv und Prime – DOM-Erfassung
Implementierungen: sources/wtv.js auf https://w.tv/USERNAME/chat und sources/prime.js auf https://prime.gs/USERNAME?chat_popout=1.
Neue Chatzeilen verwenden type/platform von wtv oder prime, Klartext- chatname, nameColor, und bereinigtes chatmessage. Inline-Emotes werden zu sicheren Bildern oder im Nur-Text-Modus zu Alternativtext. Prime enthält außerdem das userid und unterstützt sowohl angemeldete Profillinks als auch Benutzernamenbeschriftungen ohne Anmeldung. Avatare und Abzeichen bleiben leer, wenn sie in der geprüften Zeilenstruktur nicht verfügbar sind.
Anfangsverlauf, angeheftete Karten und Antwortvorschauen werden ausgeschlossen. w.tv virtualisiert seinen Chat: Lass ihn für die Erfassung zu den neuesten Nachrichten gescrollt. Seine DOM-Test-IDs sind Darstellungsindizes, keine nativen Nachrichten-IDs. Prime überspringt ältere, oberhalb der anfänglichen Nachrichten geladene Verläufe und Platzhalter ignorierter Benutzer.
Keines der Popups liefert eine verifizierte Stream-Zuschauerzahl. Daher senden diese Adapter keine Zuschaueraktualisierungen und leiten keine Spenden-, Abonnement- oder Moderationsereignisse ab.
Goodgame, Pilled, Owncast, Picarto, and Piczel Viewer Counts
Aktivieren Zuschauerzahl anzeigen oder Aktive Chatteilnehmer erfassen (showviewercount oder hypemode) to collect viewer counts. Opening the Viewer Count & Chat Activity overlay with viewers displayed also requests them. Each source emits event: "viewer_update" with a nonnegative integer meta, refreshed every 30 seconds while capture is enabled. These are stream viewer counts; active chatters are counted separately. A reported zero is valid; failed requests do not produce a zero count.
Normal chat uses the source's type, chatname, chatmessage, und textonly fields without a viewer event marker. Viewer updates contain type, event, and integer meta; the background combines them into viewer_updates for overlays.
Source / type
Page to capture
Viewer count and chat fields
Goodgame goodgame
goodgame.ru/CHANNEL/chat
Stream viewers. Chat rows also include the native ID as a string in meta.messageId falls verfügbar.
Pilled pilled
pilled.net/livechat/USERNAME oder pilled.net/comment/TOPIC_ID
The current live topic's topicFacts.liveViews. The dedicated chat URL supports counts without opening the video page.
Owncast owncast
Your captured Owncast stream or chat page
viewerCount from that server's /api/status.
Picarto picarto
picarto.tv/chatpopout/CHANNEL/public
Kanal viewers.
Piczel piczel
piczel.tv/chat/CHANNEL oder piczel.tv/watch/CHANNEL
The matching stream's viewers. Join the chat or sign in to expose chat rows; viewer counts can be collected before joining.
Plattformübergreifende Ereignisvereinheitlichung
Diese Tabelle zeigt die Zuordnung ähnlicher Konzepte über Plattformen hinweg. Neue Quellen sollten nach Möglichkeit die gemeinsamen Ereignisnamen der ersten Spalte verwenden.
Begriff
YouTube WS
Twitch WS
Kick WS
Neues Mitglied/Abonnement
sponsorship
new_subscriber
new_subscriber
Verlängerung/erneutes Abo
resub
resub
resub
Verschenkte Abonnements
giftpurchase
subscription_gift
subscription_gift
Geschenk erhalten
giftredemption
-
-
Meilenstein
membermilestone
-
-
Spende/Trinkgeld
superchat, supersticker, jeweldonation mit hasDonation
cheer (Bits)
donation
Neuer Follower
new_follower (per Polling)*
new_follower
new_follower
Zuschauerzahl
viewer_update
viewer_update
viewer_update
Followerzahl
-
follower_update
follower_update
Abonnentenzahl
subscriber_update
subscriber_update
-
Stream-Status
live_chat_ended
stream_online/stream_offline
stream_online/stream_offline
Raid
-
raid
-
Belohnungseinlösung
-
reward
reward
Hinweise zur Vereinheitlichung
YouTube verwendet sponsorship für neue Mitglieder, während Twitch und Kick new_subscriber. Berücksichtige beim Erstellen plattformübergreifender Auslöser gegebenenfalls beide.
resub ist einheitlich auf allen drei Plattformen für Verlängerungen.
Geschenkereignisse unterscheiden sich: YouTube verwendet giftpurchase/giftredemption, während Twitch und Kick subscription_gift.
Spenden unterscheiden sich je nach Plattform: YouTube verwendet spezifische Namen für bezahlte Ereignisse wie superchat, supersticker, und jeweldonation mit hasDonation; Twitch hat Bits (cheer); Kick hat Trinkgelder (donation).
new_follower ist jetzt einheitlich auf allen drei Plattformen, aber YouTube fragt neue Abonnenten per Polling ab und liefert möglicherweise verzögerte oder unvollständige Ergebnisse.
Likes und Reaktionen sind getrennte Verträge: einzelnes liked/like Ereignisse erreichen das Reactions Overlay, sofern nicht global gefiltert, und gelangen nur dann in die Hauptverarbeitung, wenn capturelikeevent aktiviert ist. Visuelle oder plattformnative reaction Ereignisse behalten das vom Erzeuger definierte Routing. Zusammengefasste likes_update Zähler werden separat gesteuert durch captureliketotals.
Abdeckung und Kompatibilitätsgrenzen
Diese Referenz beschreibt implementierte Nutzdaten und garantiert nicht, dass jede Plattform jedes Ereignis liefert. Leere hasDonation Zuweisungen in einer Quelle belegen keine Spendenunterstützung. DOM-Sichtbarkeit, Kontoberechtigungen, Erfassungsschalter und API-Verfügbarkeit bestimmen weiterhin, was empfangen wird. Die Weiterleitung von Löschungen ist quellenspezifisch; setze keine universelle Moderationssynchronisierung voraus.
Erfasste Abweichungen und Lücken
Paar/Bereich
Beobachtete Abweichung / Lücke
Auswirkung
Twitch: Standard und WebSocket im Vergleich
Gemeinsam: reward, subscription_gift, viewer_update, hype_train, und ausdrücklich aktiviertes watch_streak. Nur Standard: giftpurchase, knock, community_highlight. Nur WebSocket: new_subscriber, resub, cheer, powerup, raid, new_follower, follower_update, subscriber_update.
channel_points ist jetzt ein veralteter Alias für Twitch-Belohnungseinlösungen; neue Integrationen sollten reward.
Kick: Standard und WebSocket im Vergleich
Standard sendet einfache Markierungen (gift, reward, boolesches true, viewer_update). WebSocket ergänzt offizielle Follow-, Abonnement-, Geschenk-, Belohnungseinlösungs-, KICKs-, Moderations- und Live-Statusereignisse. Es behält Kompatibilitätsverarbeitung für ein älteres raid Nutzdaten, aber Kick bietet derzeit kein offizielles Raid-/Host-Abonnement.
WebSocket-Modus ist umfangreicher; Automatisierungen mit Standard-spezifischen Ereignisnamen sollten beim Wechsel geprüft werden. Setze kein Kick-Raid-Ereignis voraus.
YouTube: Standard und WebSocket im Vergleich
Gemeinsam: superchat, supersticker, jeweldonation, sponsorship, resub, giftpurchase, giftredemption, viewer_update. Nur Standard: thankyou, redirect. Nur WebSocket: membermilestone, new_follower, subscriber_update, view_update, likes_update (ausdrücklich zu aktivieren).
Zentrale Mitgliedschafts-/Ereignisnamen stimmen bei beiden überein; Super Chat, Super Sticker und Jewels verwenden hasDonation, während Käufe/Einlösungen von Mitgliedschaftsgeschenken dies nicht tun.
Alle Oberflächen
Viele Quellen befüllen hasDonation ohne data.event.
Dies ist korrekt; Spendendarstellung sollte sich an hasDonation, mit data.event für System-/Ereignisbedeutungen reserviert.
Quellspezifische Aliase und ältere Namen
Diese Zuordnungen gelten für die angegebene Quelle/den Kontext, nicht als globale Ersetzungen. Alias-Unterstützung unterscheidet sich je nach Seite. Aktuelle TikTok-DOM- und TikFinity-Quellen senden weiterhin followed; Velora verwendet subscription und channel_points, und Streamlabs verwendet subscription. Akzeptiere den aktuellen Quellvertrag und seine relevanten älteren Aliase, statt jedes passende Ereignis umzubenennen.
Alias / älterer Name
Kanonischer Ersatz
Kontext
subscription
new_subscriber
Neues Twitch-/Kick-Abonnement
subgift
subscription_gift
Verschenktes Twitch-Abonnement
membership
sponsorship
Neues YouTube-Mitglied (allgemein)
new_member
sponsorship
Neues YouTube-Mitglied
new_membership
sponsorship
Neues YouTube-Mitglied
newmember
sponsorship
Neues YouTube-Mitglied
new-membership
sponsorship
YouTube-DOM-Erfassung (Variante mit Bindestrich)
upgraded_membership
resub
YouTube-Stufen-Upgrade
upgraded-membership
resub
YouTube-DOM-Erfassung (Variante mit Bindestrich)
membership_upgrade
resub
YouTube-Stufen-Upgrade
membership_milestone
membermilestone
YouTube-Meilenstein-Chat
member_milestone
membermilestone
YouTube-Meilenstein-Chat (Variante mit Unterstrich)
Aktuelle TikTok-DOM-/TikFinity-Ausgabe; akzeptiere beim Kombinieren von TikTok-Erfassungsmodi beide Namen.
Diese Referenz verwenden
Verwende beim Hinzufügen eines neuen Ereignisses bestehendes Vokabular (subscription_gift, viewer_update, usw.), wann immer möglich. Wenn eine Abweichung unvermeidbar ist, dokumentiere sie hier mit Begründung.
Lasse data.meta vorhersehbar: Bevorzuge flache Schlüssel, überlade Zeichenfolgen nie mit gemischten Daten und gib immer Einheiten an (currency, bits, duration).
Aktualisiere diese Seite zusammen mit Nutzdatenänderungen; ändere Agentenanweisungen nur bei geänderten gemeinsamen Entwicklungsregeln.
Prüfe Nutzdatenänderungen sowohl an der ausgebenden Quelle als auch am empfangenden Overlay oder Event-Flow-Auslöser.
Erfassung hängt von Quellunterstützung und Einstellungen ab. Füge zum Ausblenden ereignismarkierter Zeilen in Dock- oder Featured-Overlays &hideevents oder &hideallevents. Verwende zum Ausblenden ausgewählter Ereignisse &filterevents=subscription_gift,new_follower,gifted.
Aktiviere für YouTube, Twitch und Kick WebSocket-Modus für die breiteste plattformspezifische Ereignisunterstützung. Geschenk-/Spendenerfassung für YouTube (einschließlich Geschenken und Super Chats) ist sowohl im Standard- als auch im WebSocket-Modus verfügbar; WebSocket ergänzt weitere Ereignistypen. Die genaue Unterstützung hängt weiterhin von Plattform, Kontorolle und erteilten Berechtigungen ab.
NinjaBacker-Trinkgelder verwenden platform: "ninjabacker", type: "ninjabacker", chatname, Klartext- chatmessage, textonly: true, ein mit Quellenpräfix versehenes id, formatiertes hasDonation, und numerisches donoValue. Dies sind normale Zeilen im Spendenformat ohne event Überschreibung. meta.ninjabacker enthält den ISO- currency und in Hauptwährungseinheiten amount. Anonyme Trinkgelder verwenden den Anzeigenamen Anonymous. Die Quelle nutzt entweder Live-SSE (ohne Wiederholung) oder den ausdrücklich aktivierten signierten Webhook-Empfänger der SSN-API (bis zu sieben Tage Zustellwarteschlange). Zuverlässige Zustellungen verwenden eine stabile ninjabacker:delivery:DELIVERY_ID ID. Keiner der Modi empfängt Rückbuchungen durch Erstattungen/Streitfälle. Empfängerzugangsdaten und Signaturschlüssel gelangen nie in Ereignisnutzdaten. Vom Aufrufer bestimmte callbackId-Werte sind keine Zahlungsidentität und werden nicht weitergeleitet. Dashboard-Testtrinkgelder werden von Spendenzeilen ausgeschlossen. Sie senden event: "monetization_test" mit meta.ninjabackerTest mit id und at (Unix-Millisekunden), nur für die eigene Vorschaumeldung.
event: "monetization_update" ist eine Momentaufnahme nur mit Metadaten aus type/platform: "socialstream". meta.monetization.wishlist enthält enabled, qr, position, rank, total, öffentliche url und den aktuellen Artikel (name, amount, currency, image, öffentliche url) oder null. meta.monetization.ninja enthält enabled, qr, position, username und die öffentliche Trinkgeld-url. Private Tip IDs sind nie enthalten. meta.monetization.ebay enthält enabled, qr, position, display (cycle/cheapest/first), seconds, ausdrücklich aktivierte Ansageeinstellungen und öffentliche items. Jeder Eintrag hat id, name, amount, currency, image, url, auction, startingBid, endsAt, available, bought und updatedAt. Zeiten sind Unix-Millisekunden. Verkäuferzugangsdaten und Käuferidentität sind nicht enthalten.
Ein vom Host bestätigter Wunschlistenkauf enthält außerdem meta.wishlistPurchase mit id, name, optional supporter und at (Unix-Millisekunden). Dies ist eine Host-Bestätigung, keine Amazon-Zahlungsmeldung, und zählt nicht als Geldspende. Overlays sollten die id deduplizieren und alte Kaufhinweise ignorieren.
Bezahlte Shopify-Bestellungen
Der optionale signierte Shopify-Empfänger sendet platform/type: "shopify" und event: "purchase" nur für orders/paid mit financial_status: "paid", eine positive Gesamtsumme, test: false, keine Stornierung und einen aktuellen Aktualisierungszeitstempel im signierten Inhalt. Test-, unbezahlte, veraltete, stornierte und Erstattungsmeldungen senden keine Kaufaktionen. Eine Geschenkabsicht wird nicht abgeleitet.
chatname ist Anonymous; Kundenfelder, private Notizen und Bestell-URLs sind ausgeschlossen. chatmessage ist Klartext mit textonly: true; subtitle enthält bis zu drei öffentliche Produkttitel. meta.commerce enthält orderTotal und currency in der Shopwährung, zusätzlich quantity wenn eine vollständige gültige Anzahl bekannt ist. Empfänger und physischer/digitaler Zweck bleiben ungesetzt. Kein hasDonation oder donoValue gesetzt ist. id ist ein stabiler undurchsichtiger Hash für Shop/Bestellung mit Shopify-Präfix; keine rohe Bestellkennung.
Käufe verwenden die bestehenden Aktivitäts-, Multi-Alerts-Purchase-Kategorie- und Event-Flow-Wege. Produktwerbung verwendet die bestehenden meta.monetization.commerce Katalog. Das Importieren eines Produkts oder die Werbebeschriftung Gift erzeugt kein Kauf- oder Geschenkereignis. Shopify-Einrichtung und Zustellgrenzen.
Geschenke und Handel
Verwende event: "gift" für ein Geschenk, giftcontribution für bezahlte Unterstützung zu einem Geschenk, giftfunded für abgeschlossene Finanzierung und purchase für einen Produktverkauf. Diese Namen sind unabhängig vom Anbieter und davon, ob ein Artikel physisch oder digital ist. Reserviere das ältere giftpurchase Ereignis für verschenkte Mitgliedschaften; Throne verwendete diesen Namen früher fälschlich und sendet jetzt gift. Bestehende Erzeuger von Mitgliedschaftsereignissen bleiben unverändert. Eigene Throne-Ereignisnamenfilter sollten auf gift; Spendenfilter müssen nicht geändert werden.
hasDonation bleibt das Kompatibilitätssignal für bezahlte Unterstützung, mit donoValue mit dem gelieferten oder geschätzten USD-Wert. Geschenke und Beiträge behalten diese Felder. Abgeschlossene Finanzierung lässt beide weg, um Beiträge nicht doppelt zu zählen. Normale Produktverkäufe lassen sie standardmäßig weg und bewahren so den eBay-Vertrag. Leite keine Geschenkabsicht aus Shop, Wunschlisten-URL oder physischem Artikel ab: Ein Kauf für Käufer oder andere Empfänger bleibt ein Verkauf, sofern die Quelle nicht ausdrücklich ein Geschenk an den Creator kennzeichnet.
Optionales gemeinsames meta.commerce Felder sind recipient (creator, buyer, other), itemType (physical, digital, service), quantity (positive Artikelanzahl), currency (ISO-Währung), goalAmount (Finanzierungsziel in Hauptwährungseinheiten, niemals neue Einnahmen) und orderTotal (bekannter Gesamtbetrag der bezahlten Bestellung in Hauptwährungseinheiten; Handel, keine Spendeneinnahmen). Unbekannte Angaben weglassen. Artikelnamen in subtitle, Bilder in contentimg, und Unterstützertext in chatmessage. Bestehende Anbietermetadaten bleiben verfügbar. Throne liefert Empfänger und Währung sowie goalAmount bei Abschluss; eBay liefert die Menge. Keiner errät den Artikeltyp oder gibt private Empfängerinformationen preis.
Der Aktivitätsfeed zeigt diese Ereignisse auch ohne Unterstützertext. Multi-alerts verwendet für Geschenke und Beiträge die Spendendarstellung, einschließlich einer eigenen Meldung „Gift Fully Funded“ ohne Geldwert. Käufe haben eine separate, standardmäßig aktivierte Purchase-Kategorie mit purchasestyle, purchasesound, purchaseaccent, und disablepurchases URL-Steuerelemente. Kaufmeldungen ändern keine Spendensummen.
Event Flow bietet diese Ereignisnamen in den Auslösern Event Type und Other Event an. Donation-Auslöser prüfen weiterhin hasDonation; Gift-Sub-Auslöser behalten die Mitgliedschaftsbedeutung. Compare Property akzeptiert verschachtelte Pfade wie meta.commerce.recipient. Aktionsvorlagen akzeptieren {meta.commerce.quantity} und {meta.commerce.currency}, neben bestehenden {donation}, {subtitle}, und {meta}. Verschachtelte Pfade beachten Groß-/Kleinschreibung, fehlende Werte werden leer dargestellt und Prototypzugriff ist verboten.
Creator-Verkaufs-Webhooks und Werbe-Overlays
Öffentliche Ko-fi-Donation-Zahlungen behalten hasDonation und erhalten USD donoValue. Abonnementzahlungen verwenden new_subscriber oder resub, mit der Stufe in membership. Shop Order und Commission verwenden purchase ohne Spendenwerte. Private Ko-fi-Ereignisse bleiben ausgeschlossen. Formularkodiertes JSON wird einmal dekodiert; Namen und Nachrichten sind Klartext.
Buy Me a Coffee donation.created behält monetäre Unterstützung; extra_purchase.created und commission_order.created werden zu purchase. wishlist_payment.created wird zu giftcontribution nur anhand dieses Zahlungsbetrags; meta.commerce.completed erfasst das Abschlusskennzeichen des Anbieters, ohne eine weitere Geldzeile zu senden. membership.started wird zu new_subscriber mit der Stufe in membership, ohne weiterhin hasDonation für einen Stufennamen. Ein Betrag beim Abonnementbeginn wird nicht gesondert als bezahlte Abbuchung behandelt. Test-, erstattete, fehlgeschlagene und nicht unterstützte Aktualisierungs-/Lebenszyklusereignisse erzeugen keine bezahlten Meldungen. Verborgene Unterstützernotizen werden weggelassen.
Fourthwall unterstützt ORDER_PLACED (purchase), GIFT_PURCHASE (gift, Empfänger other), DONATION (normale Spendenzeile) und SUBSCRIPTION_PURCHASED (new_subscriber). Bestehende Bestellsummen behalten hasDonation zur Abwärtskompatibilität, markiert meta.commerce.legacyDonationValue: true; dies ist eine ausdrückliche Ausnahme von den neuen Standardregeln für Produktverkäufe. Bestellungen mit angewendeten Geschenkkarten senden eine Kaufmeldung ohne Spendenwert: Die neue Abbuchung lässt sich nicht zuverlässig aus der Bestellsumme ableiten, und der Geschenkkartenkauf wurde bereits gezählt. Rechnungsnamen und E-Mail-Adressen werden nicht als öffentliche Identität verwendet. Dashboard-Testereignisse und Bestellaktualisierungen erzeugen keine bezahlten Meldungen.
Diese Adapter behalten bestehende Weiterleitung, Bot-Aktionen, Event Flow und Zielrouting bei, mit meta.webhookId Duplikaterkennung. Sie liefern öffentliche Namen, Klartextnachrichten, bekannte Artikelnamen in subtitle, und ISO meta.commerce.currency zusammen mit numerischen Spendenwerten, soweit zutreffend. Sie ergänzen weder Erstattungsbuchhaltung noch neue Empfängerauthentifizierung; verwende die vorhandene konfigurierte Webhook-Route des Anbieters.
meta.monetization.commerce in monetization_update enthält enabled, qr, position, display (first/cycle), seconds und ein öffentliches items-Array. Jeder Eintrag hat name, url, image, optional amount (null, wenn unbekannt), currency und purpose (shop/gift/support/membership). Dies sind vom Host eingegebene Werbeangaben, keine Zahlungsbelege. Hinzufügen oder Bearbeiten sendet kein Spenden- oder Kaufereignis. Das allgemeine Overlay verwendet mode=commerce; view=both|showcase|card|alerts trennt Werbung von Aktivität. Optionale URL-Parameter style, scale, cardevery, cardfor und onlytype steuern die Darstellung. Bestehende Anbietermodi akzeptieren außerdem Ansichts- und Zeitplansteuerung. Siehe den Einrichtungsleitfaden.
Throne-Geschenkereignisse
Die ausdrücklich aktivierte Monetarisierungsintegration leitet signierte Throne-Ereignisse mit platform und type gesetzt auf throne. Alle drei verwenden eine stabile Zustellungs- id, Klartext- chatname, chatmessage mit textonly: true, Artikelname in subtitle, und optionales HTTPS-Vorschaubild in contentimg.
Ereignis
Bedeutung
Spendenbetrag / Rang
gift
Ein gekauftes Geschenk
hasDonation und USD donoValue; +1 Geschenkrang
giftcontribution
Ein Beitrag zu einem Geschenk
Nur Beitragsbetrag; kein Ranganstieg
giftfunded
Ein vollständig finanziertes Crowdfunding-Geschenk
Nein hasDonation oder donoValue, vermeidet die Doppelzählung früherer Beiträge; +1 Geschenkrang
meta.throne enthält itemName, creator (öffentlicher Benutzername), completed, currency und in Hauptwährungseinheiten amount. Für giftfunded, der Betrag beschreibt das Ziel, keine neuen Einnahmen. Anonyme Schenker bleiben Anonymous; abgeschlossene Community-Geschenke verwenden Community. Private Zahlungs- und Versandfelder werden nie weitergeleitet.
monetization_update Momentaufnahmen enthalten zusätzlich meta.monetization.throne: enabled, username, url, qr, position, rank, und gifts. Diese Momentaufnahmen enthalten weder Webhook-URL noch Empfangszugangsdaten.
Sprachbefehle des Hosts (Desktop-Vorschau)
Der Event-Flow- Wenn ich sage… Auslöser empfängt vertrauenswürdige lokale Mikrofonbefehle von SSApp. Sein interner Aktionskontext verwendet chatname: "Host", type: "hostvoice", die erkannte Formulierung in chatmessage, und textonly: true. Dies ist kein eingehendes Plattformereignis und kein neuer Chattransport. Das Senden dieser Felder über Chat kann keinen Sprachauslöser aktivieren.
Benötigt einen aktualisierten Desktop-Build, ausdrücklichen Mikrofonstart und Aktivierung der Aktionen nach dem Testmodus. Siehe den Vorschaueinrichtung und Prüfstatus.
Produktanzeigesteuerung
Bestehendes monetization_update Momentaufnahmen können meta.monetization.commerce.live: null für den gespeicherten Zeitplan oder {mode: "show" | "hide", url?: "https://...", until: 0 | epochMilliseconds}. Show vergleicht die genaue gespeicherte Produkt-URL; bei fehlendem Produkt erscheint keine Karte. Ein positiver until-Wert kehrt nach Ablauf zum gespeicherten Zeitplan zurück; null gilt bis zur Änderung oder zum SSN-Neustart. Hide unterdrückt Werbung, nicht Meldungen bezahlter Aktivität.
commerce.viewerURL ist die veröffentlichte schreibgeschützte Shop-URL oder eine leere Zeichenfolge. Falls vorhanden, führen Werbe-QR-Codes dorthin. Sie enthält nie SSN-Sitzung oder Veröffentlichungsschlüssel. Produkte bleiben in commerce.items. Anzeigesteuerungen, Importe oder Veröffentlichung senden kein Spenden-/Kaufereignis. Siehe Produktsteuerung für Event Flow und Remote-API-Nutzung.
Der Event-Flow- commerceControl Aktion wartet auf die direkte/Chrome-Antwort (bis zu acht Sekunden). Bei normalen Ereignisnutzdaten bewahrt sie das Ereignis und ergänzt meta.commerceControlResult: {success: true, commerce: controlState} oder {success: false, error: "..."}. Für ein vorhandenes numerisches, Array- oder anderes nicht objektförmiges meta, bleiben Metadaten unverändert und die Diagnose wird als commerceControlResult stattdessen im Aktionsergebnis zurückgegeben. Fehlgeschlagene Steuerungen stoppen spätere Aktionen dieser Kette, ohne das ursprüngliche Zahlungsereignis zu unterdrücken. Eine Zeitüberschreitung belegt nicht, dass die Steuerung nicht angewendet wurde; prüfe den Zustand vor Wiederholung eines relativen Befehls wie Next. Erfolg bestätigt lokale Auswahl/Ausblendung/Zeitplan, niemals OBS-Sichtbarkeit oder Synchronisierung der öffentlichen Seite.
Benannte Stream-Deck-/API-Workflows
Der benannter Workflow-Auslöser erstellt eine interne Event-Flow-Nachricht mit type: "api", event: "workflow_trigger", chatname: "Stream Deck / API", leeres chatmessage, und textonly: true. Sein meta.workflow Objekt enthält den Auslösernamen und vom Aufrufer geliefertes JSON- data Objekt. Lies Werte über Vorlagen wie {meta.workflow.data.minutes}. Nur gespeicherte, aktivierte Flows, die ausdrücklich zu diesem Auslöser passen, werden ausgewertet. Dies ist kein eingehendes Zuschauer-/Chatereignis und wird nicht als Chat gesendet; das Kopieren dieser Felder in Chat aktiviert den benannten Auslöser nicht.
NinjaChatter-Zuschauerpilot
Der experimentelle gekoppelte Erweiterungsconnector sendet reine Anzeigezeilen mit type: socialstreamchat, platform: ninjachatter, und textonly: true. meta.ninjachatter enthält origin: audience, die beschreibende provider, und öffentliches room ID. Diese Zeilen umgehen Plattformantworten, Bots, Event-Flow-Auslöser und Punkte. Ein angezeigter Anbieter ist keine Autorisierung. Ältere NinjaChatter-Quellerfassungen enthalten meta.ninjachatter.room zur raumspezifischen Duplikatunterdrückung.
Cheer verwendet einen separaten authentifizierten Anforderungs- und Ergebnispfad, niemals einen besonderen Chatbefehl. Die feste Vorgabe sendet das bestehende Actions-Overlay- show_text Nachricht für drei Sekunden. Ihr Empfang bedeutet Annahme durch den Transport, keine bestätigte OBS-Anzeige. Keine Zuschauernutzdaten können beliebige Aktionen auswählen. Der Pilot ist in NinjaChatter standardmäßig deaktiviert; Electron behält sein bestehendes Relay, bis die neue private Kopplungsgrenze geprüft ist.
Verkaufsplatztafeln und letzte Verkäufe
Das bestehende monetization_update Ereignis (type/platform: socialstream) enthält außerdem meta.monetization.boards. Sein board enthält title, style (spots/teams), columns (1–20), visible, und bis zu 120 spots. Jeder Platz hat eine Zeichenfolge id, Klartext- label, status (available/claimed/revealed) und result (Klartext, bis zum Aufdecken leer). Belegungen und Aufdeckungen sind vom Host eingegebene Anzeigezustände, keine Kaufbelege oder zufälligen Zuweisungen.
boards.sales enthält bis zu 100 letzte Einträge: id, title, optionales amount (null, wenn unbekannt), currency, quantity, source, und at (Unix-Millisekunden zum Aufzeichnungszeitpunkt). automatic aktiviert die Erfassung ausdrücklich, salesVisible steuert die Anzeige und revision erhöht sich bei Änderungen. Automatische Erfassung akzeptiert nur purchase Ereignisse von Shopify, eBay-Verkäufern, Fourthwall, Ko-fi und Buy Me a Coffee; private/Testereignisse sind ausgeschlossen. Es behandelt weder Auktionsmetadaten noch Trinkgelder, Geschenke oder Platzbelegungen als Käufe. Automatische Einträge ersetzen einen Artikelpreis nicht durch Bestellsumme, Angebotspreis oder Spendenbetrag. Manuelle Einträge verwenden source: "Host confirmed".
Der Zustand bleibt im privaten Monetarisierungsspeicher dieser Installation erhalten; öffentliche Momentaufnahmen schließen Zustellungs-Duplikat-IDs, Käuferidentität und Geheimnisse aus. Ausdrücklich angezeigte Verkäufe behalten ihre Ereignis-IDs zum Entfernen. Erstattungen müssen vom Host entfernt werden. Doppelte Kauf-IDs werden getrennt gespeichert (bis zu 2.000), auch nach Leeren des sichtbaren Verlaufs. Das bestehende getCommerceState Antwort enthält commerce.boards; commerceControl akzeptiert die im Tafelleitfaden. Manuelle Änderungen senden aktualisierten Zustand, erzeugen aber nie Kaufereignisse, Spendensummen oder bezahlte Belohnungen. Overlays werden ausgeblendet, wenn seit 35 Sekunden keine Host-Momentaufnahme eingegangen ist.
Ergänzungen für Verkäuferabläufe: commerce.boards.board.id kennzeichnet eine Tafelgeneration. Ein manuelles saleAdd kann boardId und spotId um Verkauf und Platzbelegung atomar zu erfassen; doppelte verknüpfte Verkäufe, die noch im letzten Verlauf stehen, werden abgelehnt. saleRemove mit reopenSpot: true gibt diesen Platz nur frei, wenn die Tafelgeneration noch übereinstimmt. Öffentliche Verkaufseinträge lassen diese Betreiber-Verknüpfungsfelder weg. Ein optionales platform bei einem manuellen Verkauf erhält dessen Quelle für Filter, während source: "Host confirmed" kennzeichnet die Bestätigungsmethode. amount ist der Gesamtbetrag des Eintrags einschließlich seiner quantity. Das meta.ebayPurchase.quantity bleibt erhalten.
salesSettings.auctionSource aktiviert die Whatnot- oder eBay-Live-Artikelhilfe ausdrücklich. Das commerce.auction enthält nur source, title, priceText, status und at aus dem zuletzt erfassten auction_update, oder null. Läuft nach fünf Minuten ab und wird bei Quellwechsel, inaktiver Momentaufnahme oder Neustart gelöscht. Die Hilfe ist nur für den Betreiber: Sie wird weder dauerhaft gespeichert noch an Zuschauer gesendet; Bieter-/Gewinneridentität wird verworfen. Quellskripte und Auktionsereignisnutzdaten bleiben unverändert. Das Kopieren eines Entwurfs bestätigt keine Zahlung und erstellt keinen Verkauf.
Event Flow audio controls
The Actions overlay accepts actionType: "play_audio" mit audioUrl, volume (0–1), and optional audioPlayback: "queue" oder "interrupt". Omitting the playback option keeps overlapping playback. Local media continues to use sourceType: "local", localAssetId, und localAssetName. Queue mode holds up to 30 waiting clips with a two-minute limit per clip; interrupt mode replaces that queue's current clip and clears its waiting items.
actionType: "stop_audio" stops Flow Actions audio clips and clears the sound queue. These are overlay control messages, not source chat events or proof that OBS output was heard. Event Flow resolves a configured random sound set to one audio URL before sending the action. See Event Flow setup.