Live-Ereignisreferenz
Diese Seite dokumentiert die kanonischen Ereignisnutzdaten, die Social Stream Ninja für große Plattformen ausgibt. Verwende sie als gemeinsame maßgebliche Referenz beim Verbinden neuer Quellen, bei Integrationsfehlern oder beim Vereinheitlichen von Oberflächenbeschriftungen. Eine kürzere, auf Verbraucher ausgerichtete Übersicht findest du unter Kompatibilität von Ereignissen und Meldungen.
Auf dieser Seite
Springe zu gemeinsamen Feldregeln, einer Plattformimplementierung oder den Kompatibilitätshinweisen am Ende.
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.
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.
| Quelle |
Neue Abonnenten / Mitglieder |
Neue Follower |
Spenden |
Zähler & Extras |
| YouTube (Data-API-Brücke) |
Mitgliedschaftsbeitritte, Verlängerungen, Geschenke |
Einzelne Abonnentenmeldungen* + Gesamtzahlen |
Super Chats & Super Stickers |
Zuschauer-, Abonnenten- und Aufrufgesamtzahlen (per Polling) |
| Twitch – DOM-Erfassung |
Geschenkpaketzeilen & Hinweise auf Beschenkte |
- |
Bits gekennzeichnet über hasDonation |
Zuschauerzahl, Belohnungskarten und Community-Highlight-Karten |
| Twitch – EventSub/WebSocket |
Sofortige Abonnements, Verlängerungen und Geschenke |
Sofortige Follows + Followergesamtzahl |
Cheers, Power-ups und Kanalpunkte-Einlösungen |
Zuschauer-/Abonnenten-/Followergesamtzahlen, Stream-Status, Werbehinweise |
| TikTok Live |
- |
Follow-Karten (wenn TikTok sie zeigt) |
In Münzgesamtwerte umgerechnete Geschenke |
Zuschauerzahl, Beitrittsmeldungen und Like-Wellen |
| YouNow |
- |
Fan- und Zuschaueraktivität |
- |
Zuschauerzahl aus dem Live-Zuschauerfeld |
| Favorited Studio |
- |
- |
- |
Zuschauerzahl aus dem Live-Zuschauer-Tab |
| Whatnot |
- |
- |
- |
Zuschauerzahl, Beitrittsmeldungen, Live-Auktionsmetadaten, Produkte und Gewinnspielmomentaufnahmen |
| eBay Live |
- |
- |
- |
Zuschauerzahl, Followerzahl, Live-Ereigniskarten-Momentaufnahmen, Metadaten der Auktionsfußzeile (falls verfügbar), Reaktionsherzen und Metadaten kommender Ereignisse |
| Streamlabs Alert Box |
Abonnements, Geschenke, Sponsoren, Follows |
Cheer/Bits, Spenden (mit Währung) |
Cheer/Bits, Spenden (hasDonation) |
Solange eine Meldungsbox geöffnet ist; auch verfügbar über sources/websocket/streamlabs.html Socket-Token |
| OBS Flow Actions |
- |
- |
- |
OBS-Ausgabe-, Szenen-, Wiederholungspuffer- und Medienende-Ereignisse für Event Flow, wenn actions.html mit OBS WebSocket verbunden ist |
| Kick – DOM |
- |
- |
- |
Zuschauerzahl plus einfache Belohnungs-/Geschenk-Systemhinweise; verwende die Kick-Brücke für umfangreichere Meldungen |
| Kick – WebSocket/Brücke |
Neue Abonnements, Verlängerungen und Geschenke |
Follow-Meldungen + Followergesamtzahl |
Unterstützungs-/Trinkgeldereignisse (Betrag + Währung) |
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 |
*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 |
Von der Quelle gelieferter Anzeigename für Nachrichtenverarbeitung und Ausgaben außerhalb von Overlays. Ein konfigurierter Anzeigenamenalias darf diesen Wert nur in kopierten Dock- und Overlay-Transportnutzdaten ersetzen. |
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. |
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“. |
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. |
membership gift_recipient; Abzeichen sind standardmäßig 🎁; subtitle kennzeichnet die verschenkte Stufe. |
membermilestone |
Meilenstein-Chatnachrichten (memberMonth oder displayMessage vorhanden). |
membership member_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"
YouTube WebSocket: Ereignis- & Mitgliedschafts-Kurzreferenz
data.event |
data.membership |
Szenario |
sponsorship | new_sponsor | Neues Mitglied über newSponsorEvent |
sponsorship | new_member | Neues Mitglied über processMembership |
resub | renewed_member | Mitgliedschaftsverlängerung |
resub | upgraded_member | Stufen-Upgrade |
giftpurchase | gift_giver | An den Kanal verschenkte Mitgliedschaften |
giftredemption | gift_recipient | Verschenkte Mitgliedschaft erhalten |
membermilestone | member_milestone | Chatnachricht zum Mitgliedschaftsjubiläum |
superchat | - | Super Chat |
supersticker | - | Super Sticker |
user_banned | - | Sperr-/Timeout-Ereignis nur mit Metadaten |
new_follower | - | Neuer Abonnent (per Polling; möglicherweise verzögert) |
Twitch – Standard-DOM-Erfassung
Implementierung: sources/twitch.js
- 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). |
chatmessage enthält Einlösungstext; membership unverändert. |
giftpurchase |
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
- OAuth-Berechtigungsbereiche:
chat:read, chat:edit, user:write:chat, bits:read, moderator:read:followers, moderator:read:chatters, channel:read:subscriptions, channel:read:hype_train, channel:moderate, moderator:manage:banned_users, moderator:manage:chat_messages, channel:manage:broadcast, channel:read:redemptions, channel:read:ads, channel:manage:ads. Broadcaster-Tokens schalten Abonnenten-/Followerzähler frei.
- Über EventSub zugestellte Ereignisse sowie Helix-Polling für Zuschauer-/Follower-/Abonnentengesamtzahlen.
- 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-Meldungen von EventSub channel.bits.use. |
hasDonation „N bits“; meta.bits numerisch; chatmessage bewahrt die rohe Nachricht; identifizierte Cheer-Absender enthalten chatimg. |
powerup |
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. |
reward |
channel.channel_points_custom_reward_redemption.add. |
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. |
meta.level | Zahl | null | Aktuelle oder abschließende Train-Stufe. |
meta.topContributions | Array | Wichtigste Beitragende. Jeder Eintrag enthält userId, userLogin, userName, type, und numerisches total. |
meta.lastContribution | Objekt | null | 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.
- Abgeleitete Ereignistypen:
follow, subscription, gift, cheer, donation, superchat, raid, redeem, merch, sponsor.
- 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 TikFinitys Aktivitätsfeed-Widget/-Iframe. SSApp hat weiterhin eine native TikTok-Integration mit der größten Ereignisabdeckung (siehe SSApp-Dokumentation).
- 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. TikFinity-Geschenkzeilen setzen außerdem contentimg auf das Geschenksymbol, falls verfügbar. Native DOM- und TikFinity-Geschenkserienupdates enthalten 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
- Öffne die Live-Whatnot-Showseite mit sichtbarem Chat; die bestehende WebSocket-Erfassung liefert Chat, Auktions-/Verkaufsmeldungen, Zahlungsfehler, Raids, Spenden und schnelle Zuschaueraktualisierungen. Produkt-/Gewinnspielmomentaufnahmen benötigen weiterhin in der Showansicht dargestellte DOM-Abschnitte.
- 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. |
Momentaufnahme nur mit Metadaten, mit Abschnittszählern und Artikelarrays unter meta.products, meta.surpriseSets, und meta.upcomingGiveaways. |
auction_started, new_bid, auction_ended, product_sold |
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. |
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 Werte werden nur weitergeleitet, wenn sie ausdrücklich in einem erfassten Paket enthalten sind. Fehlende Kennungen werden weggelassen; eine Produkt-ID allein kann mehrere Verkäufe umfassen. Verwende daher eine gelieferte Bestell-/Auktions-ID zur Zuordnung von Meldungen. Die Erfassung merkt sich keine Käufe und gleicht keine Zahlungsupdates ab; solche Abläufe müssen ausdrücklich in Event Flow eingerichtet werden. Kurzzeitig doppelte Pakete der beiden bestehenden Erfassungsbrücken werden unterdrückt. Rohe Bestell-/Zahlungsobjekte werden nicht weitergeleitet.
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. |
eBay-Metadatenereignisse lassen bewusst chatname/chatmessage; nachgelagerte Overlays sollten aus data.event + data.meta nur.
Kick – Standard-DOM-Erfassung
Implementierung: sources/kick.js
- 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 entfernen die passenden Dock-Zeilen; optionale Schalter synchronisieren Dock-Löschungen und Sperren zurück an VPZone (nur Kanalbesitzer).
- 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". |
message Antworten |
VPZone msg Frame mit metadata.reply_to (Nachrichten-ID, Autor, Auszug – serverseitig denormalisiert). |
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. |
new_subscriber / subscription_gift |
Joystick-Ereignistypen NewSubscription / GiftedSubscription. |
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. |
user_enter / user_leave |
Joystick UserPresence Typen enter_stream / leave_stream. |
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.
- Erforderliche API-Header (alle statisch/ableitbar):
X-IG-App-ID: 936619743392459, X-CSRFToken (aus Cookie), X-ASBD-ID: 359341, X-Requested-With: XMLHttpRequest, Content-Type: application/x-www-form-urlencoded.
- 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
- 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.
| 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. |
donation |
SNSDiamond WebSocket-Frames liefern Diamantenaktivität. |
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. |
follower_update |
SNSVideo WebSocket-Metadaten liefern Followergesamtzahlen. |
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.
| Ereignis |
Wann es ausgelöst wird |
Nutzdatenhinweise |
message |
Neue Chatzeilen erscheinen im Live-Zuschauerchat. |
Standard-Chatnutzdaten; Fan-/Zuschaueraktivitätszeilen setzen event: true. |
viewer_update |
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. |
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.
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.
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) |
gift_membership | giftpurchase | YouTube-Geschenkpaket |
membership_gift | giftpurchase | YouTube-Geschenkpaket |
giftmemberships | giftpurchase | YouTube-Geschenkpaket (Pluralvariante) |
gifted_membership | giftredemption | YouTube-Geschenk erhalten |
gifted_memberships | giftpurchase | YouTube-Geschenkpaket (Pluralvariante) |
community_gift | giftpurchase | Community-Geschenkpaket |
channel_points | reward | Twitch-WebSocket-Belohnungseinlösung (älterer Alias) |
followed | new_follower | 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.
Nach oben
Monetarisierungs-Overlays
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.