Referenční příručka živých událostí

Tato stránka dokumentuje kanonická data událostí, která Social Stream Ninja vysílá pro hlavní platformy. Používejte ji jako společný zdroj pravdy při připojování nových zdrojů, řešení problémů integrací nebo sjednocování popisků rozhraní. Stručnější tabulku zaměřenou na příjemce najdete v Kompatibilita událostí a upozornění.

Důležité: Dostupnost událostí závisí na zdroji, oprávněních a nastavení zachytávání. Chcete-li skrýt řádky označené jako události v doku nebo překryvech vybrané zprávy, přidejte &hideevents nebo &hideallevents. Vybrané události skryjete pomocí &filterevents=subscription_gift,new_follower,gifted. Tyto filtry mohou skrývat také placené řádky nesoucí event; běžné řádky darů bez označení události filtrům událostí neodpovídají. Ostatní filtry zpráv stále platí.
Vyberte způsob zachytávání: Pro YouTube, Twitch a Kick Režim WebSocket obecně poskytuje širší podporu událostí. Standardní zachytávání DOM čte řádky a karty skutečně vykreslené na stránce. YouTube Super Chat, Super Sticker a dárky Jewel mají cesty zachytávání v obou režimech; ostatní události dárků, spropitného a členství se liší podle zdroje. Podporované cesty a požadovaná nastavení najdete v tabulkách platforem.
Vytváříte automatizace? Podívejte se na Průvodce Event Flow pro informace o používání těchto dat událostí ve vlastních spouštěčích, upozorněních a pracovních postupech. Průvodce obsahuje Referenční příručka proměnných šablon pro formátování textu.
Struktura dat: Řádky chatu typu daru by měly používat hasDonation a volitelné donoValue. Nenastavujte event: "donation" jen proto, že běžný řádek chatu/spropitného má hodnotu; konkrétní názvy událostí používejte pouze pro skutečné akce platformy nebo typy placených položek, například superchat, supersticker, gift, nebo jeweldonation. Použijte meta pouze pro další strukturovaná data, která příjemci skutečně potřebují a která stávající pole dosud nepokrývají.

Stručný přehled dostupnosti funkcí

Tato tabulka ukazuje, které typy upozornění jednotlivé způsoby zachytávání v současnosti poskytují. Podrobné poznámky k datům následují níže.

Vyhrazené pole Multi-Stream Alert Box seskupuje živé události do šesti základních kategorií upozornění: Follow, Subscription/Member, Donation, Bits/Cheers, Raid/Host, a Purchase, a také dvě volitelně zapnuté kategorie (Auction a Hype Train) zapnuté pomocí parametrů URL. Tyto kategorie odvozuje ze stávajícího event, membership, subtitle, hasDonation, a meta pole zdokumentovaná zde; není potřeba samostatný formát dat.

Zdroj Noví předplatitelé / členové Noví sledující Dary Počty a další údaje
YouTube (most Data API) Vstupy do členství, obnovení, dárky Upozornění na jednotlivé odběratele* + součty Super Chat a Super Sticker Celkové počty diváků, odběratelů a zhlédnutí (pravidelně dotazované)
Twitch – zachytávání z DOM Řádky balíčků dárků a oznámení o obdarování - Bity označené pomocí hasDonation Počet diváků, karty odměn a karty komunitního zvýraznění
Twitch – EventSub/WebSocket Okamžitá předplatná, obnovená předplatná a dárky Okamžitá sledování + celkový počet sledujících Cheers, Power-up a uplatnění bodů kanálu Celkové počty diváků/předplatitelů/sledujících, stav vysílání, oznámení reklam
TikTok Live - Karty sledování (pokud je TikTok zobrazí) Dárky převedené na součty mincí Počet diváků, upozornění na připojení a vlny označení To se mi líbí
YouNow - Aktivita fanoušků a diváků - Počet diváků z panelu živého publika
Favorited Studio - - - Počet diváků z karty živých diváků
Whatnot - - - Počet diváků, upozornění na připojení, metadata živé aukce, produkty a snímky soutěží
eBay Live - - - Počet diváků, počet sledujících, snímky karet živých událostí, metadata aukčního panelu v dolní části (pokud jsou zpřístupněna), reakční srdíčka a metadata nadcházejících událostí
Pole upozornění Streamlabs Předplatná, dárky, sponzoři, sledování Cheer/bity, dary (s měnou) Cheer/bity, dary (hasDonation) Dokud je pole upozornění otevřené; dostupné také přes sources/websocket/streamlabs.html token socketu
OBS Flow Actions - - - Události výstupu OBS, scén, záznamové vyrovnávací paměti a konce médií pro Event Flow při actions.html je připojeno k OBS WebSocket
Kick – DOM - - - Počet diváků a základní systémová oznámení odměn/dárků; pro podrobnější upozornění použijte most Kick
Kick – WebSocket/most Nová předplatná, obnovení a dárky Upozornění na sledování + celkový počet sledujících Události podpory/spropitného (částka + měna) Stav vysílání, uplatnění odměn a metadata profilu
Facebook Live - - Stars, pokud jsou viditelné v DOM Řádky chatu, Stars a dotazování počtu diváků
Rumble – zachytávání z DOM - - Viditelné ceny Rant Chat, příchozí raidy a dotazování počtu diváků
Rumble – WebSocket/URL API Nová předplatná a darovaná předplatná Upozornění na sledování + celkový počet sledujících Rants/spropitná (částka + měna) Celkové počty diváků a předplatitelů, stav vysílání a proud chatu
Streamplace - - - Počet diváků a jména chatu, barvy, odznaky, odpovědi a odkazy
WorldsWave - - Popisky darů, pokud jsou k dispozici Vykreslený živý chat a volitelně zapnuté aktualizace počtu diváků
CHZZK - - Viditelné řádky darů cheese Řádky chatu, obrázky odznaků, emotikony a dotazování počtu diváků
BEAM - - - Řádky chatu a dotazování počtu diváků, pokud stránka pouze s chatem zpřístupňuje počítadlo diváků
Seal Team Sloth - - - Vykreslené řádky samostatného chatu a viewer_update dotazuje, když jsou počty diváků zapnuté
Castyr - - - Vykreslené řádky samostatného chatu a volitelně zapnuté aktualizace počtu diváků
RPLAY - - - Přihlášený /live/chat/box/ samostatné okno: type: "rplay" chat, avatary, obrázky odznaků úrovní a emotikony. Spropitná v mincích zachovávají své množství/jednotku v hasDonation pro sdílený převod na USD bez události daru. Volitelně zapnuté viewer_update dotazy používají celočíselné meta z veřejného koncového bodu vysílání RPLAY. Přeposlané řádky Twitch jsou vyloučeny.
FLEX TV - - - Vykreslené řádky chatu se jmény, barvami autorů, obrázky odznaků a metadaty členů

*Upozornění na odběratele YouTube se pravidelně dotazují a mohou být zpožděná nebo neúplná. Referenční příručka API neslibuje pevné čtyřhodinové okno doručení. Viz oficiální omezení API odběrů.

Přehled polí

data zde znamená objekt zprávy, nikoli další obálku k přidání. Řádky chatu a události pouze s metadaty mají odlišné struktury: počítadla a snímky stavu mohou vynechávat chatname/chatmessage. V tabulkách platforem zprávu popisuje běžný řádek chatu, nikoli doslovné event: "message".

Pole Struktura Použití
data.type řetězec Identifikátor zdroje používaný překryvy, filtry a Event Flow. Instagram zachovává živý chat jako instagramlive a komentáře mimo živé vysílání jako instagram. Viz Průvodce typy zdrojů pro varianty, obecné zdroje a odchozí směrování.
data.chatname řetězec Zobrazované jméno dodané zdrojem, používané při zpracování zpráv a ve výstupech mimo překryvy. Nastavený alias zobrazovaného jména uživatele může tuto hodnotu nahradit pouze v kopiích dat pro přenos do doku a překryvů.
data.username řetězec Uživatelské jméno ze zdroje, pokud je dostupné. Data doku nebo překryvu s aliasem mohou přidat toto pole pro zachování původního chatname pro uživatelské akce; kanonická zpráva zůstává beze změny.
data.userid řetězec Identifikátor uživatele specifický pro platformu. Uživatelské akce upřednostňují tuto hodnotu před username a chatname.
data.platformstring (volitelné)Některé integrace toto zahrnují spolu s type. Mnoho adaptérů zdrojů jej vynechává; použijte type pro směrování zdroje.
data.idstring | number (volitelné)Identifikátor zprávy nebo události. Jeho význam závisí na zdroji a přenosu; nepředpokládejte, že je vždy nativním ID platformy pro moderování. Použijte meta.messageId když jej adaptér zpřístupňuje pro synchronizaci mazání.
data.donoValuenumber (volitelné)Číselný ekvivalent USD dodaný zdrojem, včetně odhadů. Platná hodnota (včetně nuly) má přednost před převodem currency.js. Bez ní příjemci odhadují USD z hasDonation a kontextu zdroje. Původní částky a jednotky zůstávají v hasDonation a stávajících metadatech poskytovatele.
data.chatbadgesarray | string (volitelné)URL obrázků odznaků nebo objekty odznaků (type: "img" s src, type: "svg" s html, nebo type: "text" s text). Přenos zachovává doslovný popisek textového odznaku ve volitelném rawText a vytváří escapované text pro starší překryvy. Při dalších průchodech přeposílání znovu vytvořte text z rawText; neescapujte text znovu. Současné vykreslovače zobrazují rawText doslovně, pokud je přítomné, a jinak zachovejte starší zpracování kódovaného textu. Jde o pole reprezentace, nikoli povolení vykreslovat HTML. Starší zdroje mohou místo pole odeslat jediný řetězec HTML. Překryvy vykreslující odznaky přijímají oba formáty a lokálně sanitizují HTML a URL odznaků, i když odesílatel používá starší rozšíření. Neplatné odznaky nesmějí zabránit zobrazení zprávy chatu nebo členství.
data.event string | boolean Identifikátor systémové aktivity (například viewer_update, subscription_gift, giftpurchase). U běžného chatu má zůstat prázdné/false, aby překryvy odlišily systémová oznámení od konverzačního textu.
data.chatmessage řetězec Tělo zprávy. Může obsahovat sanitizované/vykreslitelné HTML pouze při data.textonly je false.
data.textonly logická hodnota Platí pouze pro data.chatmessage. true znamená vykreslit chatmessage jako prostý text se zachováním doslovných značek a textu podobného entitám; toto tělo nedekódujte, nesanitizujte jako HTML ani do něj nepřidávejte formátovací značky. Styl události použijte na zobrazený prvek. false znamená chatmessage může obsahovat sanitizované/vykreslitelné HTML; starší zprávy bez tohoto příznaku si toto chování HTML zachovávají. Ostatní běžná pole jsou prostý text, s výjimkou polí médií, například chatimg a contentimg. Pole s prostým textem zobrazujte pomocí textContentnebo je při vytváření šablony HTML jednou escapujte; neodstraňujte ani opakovaně nedekódujte jejich obsah.
data.contentimg string (volitelné) URL obrázku obsahu nebo podporovaného média. V rozšíření a desktopové aplikaci volitelně zapnuté allowExternalGifs nastavení vyplní prázdné pole z prvního přímého odkazu HTTP(S) na GIF v textu zprávy nebo odkazu HTML. Cesta URL musí končit na .gif (bez rozlišení velikosti písmen); parametry dotazu a fragmenty zůstávají zachované. Nevyžaduje klíč API, zachovává chatmessage a stávající přílohy a respektuje removeContentImage. Volitelné hideExternalGifUrl nastavení přidává meta.hideExternalGifUrl: true; dok a překryv vybrané zprávy pak skryjí odpovídající odkaz na GIF až po načtení obrázku a zachovají okolní text i původní data. Pokud načtení obrázku selže nebo vyprší, jeho kontejner přílohy se sbalí a odkaz zůstane viditelný. Překryv pouze pro GIFy při selhání načítání dat obrázku zkusí přímé zobrazení a použije nastavenou dobu zobrazení, pokud délka animace není dostupná; při selhání nebo uváznutí načítání přejde na další položku fronty. Nepřidává event nebo změňte zdroj type. Externí obrázky neprocházejí filtrováním obsahu a nemusí se načíst, pokud hosting blokuje vkládání.
data.membership řetězec Čitelný stav členství, například MEMBERSHIP, new_sponsor, gift_recipient. Jednotlivá rozhraní jej používají pro odznaky, filtry a oznámení.
data.subtitle řetězec Doplňující popis (délka členství, přechody na vyšší úroveň, daroval…). Udržujte jej krátký a pouze textový, aby jej překryvy mohly umístit pod zobrazované jméno.
data.hasDonation řetězec Částka peněžního nebo virtuálního dárku ($5.00, 500 bits, 300 coins). Vyplňte i tehdy, když data.event je prázdné, aby jej překryvy darů mohly rozpoznat.
data.meta number | object | string (starší) Pro jednotlivá počítadla (diváků, sledujících, předplatitelů) používejte prostá celá čísla a pro bohatší kontext objekty. Některé starší události, například Twitch DOM community_highlight, nesou řetězec. Před čtením vlastností objektu ověřte strukturu konkrétního typu události; nové strukturované údaje patří do objektu.
data.firsttime logická hodnota Nastavte na true když je zapnuté rozpoznávání prvních zpráv i místní databáze a jde o první uloženou zprávu chatu daného uživatele/zdroje. Dok jej používá pro zvýraznění prvních zpráv a filtry zvukového upozornění na první zprávu; volitelné nastavení odznaku první zprávy přidává odznak listu na začátek chatbadges.
data.lastactivity číslo Unixové časové razítko v sekundách předchozí uložené aktivity chatu daného uživatele, pokud je zapnuté rozpoznávání prvních zpráv a místní databáze. U zcela nových uživatelů se vynechává.

Přenos ovládání překryvu je oddělený od zachyceného chatu/událostí. Aktualizovaní příjemci používají ssnControl obálku obsahující doručovací id, výběr k zobrazení target, volitelný kanál odpovědi a ID klienta snímku. Stávající těla funkcí zůstávají zachována. Veřejné ovládání funkcí používá kanál 7; Actions si ponechává kanál 6. Stav Poll a Map obsahuje hostitelské epoch, revision a reset značku; Timer, Ticker a Spotify používají ssnState s epochou a revizí. Tyto značky popisují stav hostitele, nikoli obnovenou historii hlasování/chatu. Zdroje nesmějí přidávat pole řídicí obálky do zachycených zpráv. Potvrzení přijetí nedokládá dokončení akce ani viditelnost v OBS. Viz stav migrace pro podporované funkce, vyjednávání odpovědí a omezení opětovného připojení.

Phrase Guess používá nativní {response: text} požadavek pro odpovědi chatu server2 a {action: "phraseGuessResponse", value: {type: "bot", chatname: name, chatmessage: text}} pro oznámení pouze v doku. Hostitel musí povolit příchozí zprávy server3; vypnutí ovládání hostitele tyto požadavky stále blokuje. Oznámení doku se předávají jako běžné řádky chatu bota s textonly: true, aniž by se odesílaly do vstupů chatu zdrojů zachytávání. Starší režim API zachovává svůj stávající formát příkazů.

Konvence Meta

Pro zachování souladu řídicích panelů a automatizací dodržujte při rozšiřování tyto konvence data.meta:

  • viewer_update, follower_update, subscriber_update, a likes_update používají prosté celé číslo meta hodnotu. likes_update je autoritativní součet platformy: příjemci musí zobrazenou hodnotu nastavit, nikoli přičítat. Skript pozadí agreguje počty diváků do viewer_updates s objektem klíčovaným podle data.type.
  • giveaway_state je snímek pouze s metadaty vytvořený hostitelem pro spravovaná zobrazení. meta.giveaway verze 2 obsahuje giveawayId, trvalé roundId/epoch, zvyšující generation napříč novými koly, revision v rámci kola, status, open, draw, keyword, count, ticketCount, zmrazené config, až 120 náhledových entrantsa posledních 20 winners. Záznamy zpřístupňují id, name, platform a tickets; vítězové přidávají drawnAt a udělené points. Coin Flip Pot přidává outcome; Number Hunt přidává number s veřejným low, high a nedávné guesses, nikdy tajný údaj. Příjemci filtrují podle ID soutěže a zahazují starší generace/revize. Jde o ukázky pro zobrazení, nikoli úplnou evidenci lístků nebo pokyn k výplatě. Klíče peněženek, zůstatky a rezervace nejsou součástí snímků pro diváky. Hostitel publikuje do giveaway označení P2P a zapnuté proudy WebSocket překryvů; neznamená to viditelnost v OBS. Průvodce.
  • meta.giveawayControlResult obsahuje výsledek akce soutěže Event Flow (ok, volitelné error, giveaway nebo simulated). meta.giveawayHandled uvádí ID soutěží, která již zpracovala akce scénáře pro přihlášení/nákup, aby je automatický příkaz chatu nemohl znovu zpoplatnit. Editor přidává meta.economyTest pro simulované akce soutěže; nejde o událost zdrojové platformy ani autorizační údaj.
  • video_stats používá strukturované meta objekt pro stav externího kodéru/serveru, včetně provider, label, online, bitrateKbps, rttMs, bufferMs, počítadla ztracených/zahozených paketů a volitelné podrobnosti kodeku.
  • Události typu daru mohou obsahovat popisný objekt: například { amount, currency, supporter } pro Kick, { bits } pro Twitch cheers. Události členství mají vlastní metadata specifická pro zdroj; nejsou automaticky peněžními dary.
  • Normalizované zprávy webhooků Stripe, Ko-fi, Buy Me a Coffee a Fourthwall obsahují identifikátor v rozsahu poskytovatele meta.webhookId, zkopírované ze stabilního identifikátoru události poskytovatele, aby navazující stránky mohly potlačit duplicity při opakování a použití více přenosů.
  • Raidy Twitch předávají { fromId, fromLogin, viewers }. Ostatní zdroje se liší: Whatnot používá meta.numRaiders, zatímco SharePlay používá volitelné meta.fromLogin/meta.viewers. Před čtením metadat raidu zkontrolujte řádek pro konkrétní zdroj.
  • Uplatnění odměn Twitch EventSub zpřístupňují meta.rewardId, cost, rewardTitle, redemptionIda starší alias spolu s připravenou zprávou. Karty odměn DOM a ostatní zdroje mohou poskytovat méně polí nebo jiná pole.
  • user_banned obsahuje pouze metadata pro moderační widgety. Záměrně vynechává chatname a chatmessage; použijte meta.username, meta.displayName, meta.avatarUrl, a meta.profileUrl.
  • Přenosy chatu podporující synchronizaci mazání při ovládání zdroje by měly zpřístupňovat nativní identifikátor chatu platformy jako meta.messageId místo spoléhání na interní pole doku data-mid hodnotu.
  • Mazání ze zdroje používá {delete: {type, id}} pro známé ID zprávy doku nebo {delete: {type, meta: {messageId}}} pro nativní ID zprávy platformy. Známé ID odstraní pouze odpovídající zprávy. Pokud je znám pouze cílový uživatel, odešlete {delete: {type, userid}} nebo {delete: {type, chatname}} pro odstranění zpráv daného uživatele z dané platformy. Nikdy nenahrazujte cílového uživatele identitou moderátora. Příchozí smazání nevyžadují volitelné nastavení synchronizace moderování z doku na platformu.
  • Metadata identity zdroje SSApp mohou přidávat meta.ssnAccountRole, meta.ssnSourceId, a meta.ssnSession když je zdroji přiřazena jiná než běžná role účtu.
  • Event Flow může požádat o zvýraznění nastavením meta.featured = true v datech chatu, což automaticky vybere zprávu k zobrazení v doku/překryvech vybrané zprávy.
  • AI Event Overlay: akce showAiEventOverlay odešle kopii zprávy, která ji spustila, příjemci se štítkem aievent-CONFIGURATION_ID, přičemž přidá meta.aiEventOverlay: {profile: "CONFIGURATION_ID"}. Stávající pole zprávy a metadata ve formě objektu se zachovají; skalární metadata se uloží jako meta.value. Jde o cílené doručení, nikoli o novou událost platformy. Původní zpráva se nemění. Viz průvodce nastavením.
  • Volitelné meta.aiEventOverlay.variation vybere přesnou frázi schválenou v uloženém nastavení překryvu. Text diváka a metadata vyplní pole šablony po jejím vygenerování.
  • Požadavky na zobrazení AI Event Overlay vyžadují profil a jeho soukromý zobrazovací token. Nastavení a klíče API se spravují pouze v místním vyskakovacím okně SSN. Odpovědi používají {aiEventResponse: {target, value}} nebo {aiEventResponse: {target, error}}. Vygenerované výsledky obsahují template, duration, warnings, a volitelné datové URL médií v image/audio.
  • Odměny v podobě AI overlayů placené body používají aiEventPresentation (id, profile, expiresAt, result, message) a potvrzují přijetí pomocí aiEventDelivered (ID doručení). Záznamy o odečtení bodů a částky k vrácení zůstávají u hostitele.
  • Event Flow může požádat o připnutí v doku nastavením meta.pinned = true; volitelné meta.pinnedTarget omezuje toto připnutí na dok s odpovídajícím label.
  • Termotisk Event Flow zaznamenává výsledek pod meta.thermalPrintResult (success a volitelné code/error), se zachováním události chatu a ostatních metadat. U událostí s číselnými nebo jinými neobjektovými metadaty zůstává diagnostika ve výsledku akce a událost se nemění.
  • Volitelně zapnuté nálepkové odměny SSN: event: "sticker" se odesílá pouze do stickers označení překryvu po odečtení věrnostních bodů. Nastavuje platform a type na pole původní zprávy typea zachovává chatname, s prázdným chatmessage, textonly: true, a contentimg obsahující relativní cestu k obrázku v balíčku nebo URL média HTTPS schválenou hostitelem. meta.sticker obsahuje id, pack, name, cost, duration (sekundy), motion, redemptionId, a expiresAt (unixový čas v milisekundách). Jde o odměnu SSN, nikoli dar platformy nebo nativní událost bodů kanálu. Viz galerie a průvodce nastavením.
  • Přehrávač nálepek vrací řídicí paket {action: "stickerReceipt", meta: {sticker: {redemptionId, success}}} odesílateli při načtení obrázku nebo selhání. Pouze potvrzení od připojeného stickers protějšek vyřeší čekající uplatnění odměny. Neúspěšné nebo nepotvrzené doručení vyvolá vrácení bodů; tento řídicí paket není událost chatu. Doporučuje se jedno aktivní zobrazení nálepek na relaci.
  • Příkazy překryvu AI stage používají { action: "aiOverlay", target, meta } nebo přehrávání spolumoderátora ovládané dokem používá { action: "cohostOverlay", target, meta }; zachovejte všechny podrobnosti příkazu, například command, text, emotion, avatar, a tts uvnitř meta.
  • Pokud platforma zpřístupňuje více počítadel společně, upřednostněte strukturovaný objekt s výslovnými klíči (meta.viewer_count, meta.follower_count) místo přetěžování řetězců více významy.
  • Prodejní překryvy by měly používat objekty snímků pod meta (například auction_update a commerce_update) a vyhýbejte se účelově přidaným polím nejvyšší úrovně.

Podpora platforem

YouTube – standardní zachytávání z DOM

Implementace: sources/youtube.js

  • Nechte kartu živého chatu otevřenou. Zachytávání čte karty členství a dárků vykreslené v dané relaci; divák nemusí být vlastníkem kanálu ani moderátorem. Přístup účtu a vybraný pohled chatu mohou ovlivnit viditelnost řádků.
  • Otevření překryvu počtu diváků a aktivity chatu se zobrazenými diváky automaticky vyžádá počty diváků. Nastavení Zobrazovat počet diváků a Sledovat aktivní účastníky chatu také zapínají sběr dat.
  • Pro upozornění na sledující a další události, zapněte režim WebSocket v nastavení rozšíření.
Událost Kdy se spouští Poznámky k datům
sponsorship Uvítací záhlaví členství bez výslovného textu chatu (noví členové, přijaté darované balíčky), včetně strukturovaných uvítacích karet nebo lokalizovaného textu „Vítejte v …“. membership vyplněno přeloženým „MEMBERSHIP“; subtitle obsahuje sérii/úroveň, pokud jsou rozpoznány; nameColor používá zelenou barvu členství, pokud je povolena.
giftpurchase Banner nákupu balíčku dárků (ytd-sponsorships-live-chat-gift-purchase). membership se mění na gift_giver; subtitle nese počet dárků, pokud je znám; bez hasDonation nebo donoValue.
giftredemption Oznámení o uplatnění dárku pro příjemce. membership se mění na „MEMBERSHIP“; subtitle obsahuje „Daroval …“.
resub Bannery přechodu na vyšší úroveň obsahující „upgraded to …“. subtitle zachycuje popisek nové úrovně; membership zůstává „MEMBERSHIP“.
superchat, supersticker, jeweldonation Super Chat, Super Sticker, karty oznámení darů a YouTube Gifts využívající Jewels (yt-gift-message-view-model). hasDonation nese hodnotu; event identifikuje typ placené položky YouTube. YouTube Gifts používají N Jewels pokud je přítomné, nebo 1 YouTube Gift když YouTube skryje počet. Obrázky dárků používají contentimg, popisky dárků používají subtitlea minimální podrobnosti dárku se zrcadlí pod meta.youtubeGift.
jeweldonation efekt dárku YouTube zobrazí nad živým chatem animovaný dárek Jewel (ytls-gift-overlay-item-view-model). Odesílá se přímo do vyhrazeného cíle GIF/médií, aby se animace přehrála bez zdvojení běžného řádku dárku. contentimg nese animovaný soubor a meta.youtubeGift.animationUrl/animationDescription zachovávají podrobnosti efektu.
reaction V živé fontáně emoji YouTube se objeví reakce diváka. Odesílá se přímo do vyhrazeného cíle reakcí. Anonymní emoji a URL obrázku se zachovávají v chatmessage/contentimg a pod meta.reactionType/reactionImage. Mezi známé živé varianty patří ❤, 😄, 🎉, 😳 a 💯.
thankyou Náhradní zpráva, když existuje částka daru, ale nebyl zadán žádný text chatu. Zachovává hasDonation a automaticky vkládá „Děkujeme za váš dar!“ pro překryvy.
redirect V živém chatu se objeví banner přesměrování YouTube (nejbližší obdoba oznámení raidu). Zachytávání pouze z DOM z yt-live-chat-banner-redirect-renderer. Nastavuje event na redirect a používá membership jako popisek, aby jej překryvy vykreslily stejně jako ostatní systémová oznámení.
viewer_update Dotazování koncového bodu diváků Social Stream každých 30 s (při chybách kvóty přechod na získávání ze stránky). meta je celé číslo živých diváků; přispívá do agregovaného viewer_updates ve skriptu pozadí.

Bloky členství také nastavují membership pro chat moderátorů/členů, zatímco subtitle nese buď počet měsíců, nebo názvy úrovní. sourceName/sourceImg se vyplní, jakmile getChannelInfo uspěje. Standardní chat DOM nyní obsahuje meta.messageId když YouTube zpřístupní nativní ID zprávy živého chatu, které dok používá pro synchronizaci mazání.

YouTube – zachytávání přes WebSocket/Data API

Implementace: sources/websocket/youtube.html, sdílené pomocné funkce pod shared/

  • Výchozí rozsahy oprávnění OAuth jsou youtube.readonly a youtube.channel-memberships.creator. Volitelný přístup k zápisu přidává youtube.force-ssl pro odesílání chatu, moderování, zákazy a úpravy podrobností vysílání; Google to může prezentovat jako široké oprávnění ke správě YouTube, protože YouTube neposkytuje rozsah zápisu pouze pro chat.
  • Statistiky kanálu respektují přepínače jednotlivých nastavení (showsubscount, showviewercount).
  • API nemůže dodat vlastní obrázky odznaků; náhradní odznaky používají níže uvedené ikony emoji.
  • Když API výslovně ohlásí authorDetails.isChatModerator: true, data chatu, Super Chat, Super Sticker, YouTube Gift a darovaného členství obsahují mod: true. Stav moderátora se nevyvozuje ani neukládá do mezipaměti mezi událostmi.
  • Upozornění na nové odběratele používají myRecentSubscribers API (dotazované každých 5 minut). Poznámka: Výsledky mohou být zpožděné nebo neúplné; identifikovat lze pouze veřejně viditelné odběry.
  • Bannery přesměrování YouTube nejsou zpřístupněny přes Data API, takže redirect zůstává dostupné pouze ze standardního zachytávání DOM.
Událost Kdy se spouští Poznámky k datům
superchat Záznamy Super Chat z historie Data API nebo dotazování vysílání. hasDonation zachovává částku webu (měna + hodnota); event je superchat. Starší sestavení WebSocket používala event: "donation" pro tento řádek, takže jej příjemci mohou nadále přijímat jako starší alias.
supersticker Super Sticker (pouze náhradní text zprávy, bez obrázku z API). hasDonation obsahuje částku; chatmessage obsahuje dekódovaný text popisu.
jeweldonation YouTube giftEvent zprávy, když diváci vymění Jewels za Gifts. hasDonation obsahuje N Jewels, nebo 1 YouTube Gift když YouTube skryje počet; contentimg používá URL souboru dárku, pokud je zpřístupněna; subtitle nese popisek dárku; meta.youtubeGift nese další podrobnosti dárku.
sponsorship Nový člen se připojí přes newSponsorEvent. membership se mění na new_sponsor nebo new_member; meta obsahuje originalEventType, délky trvání a informace o úrovni.
resub Obnovení členství nebo přechody na vyšší úroveň. membership se mění na renewed_member (obnovení) nebo upgraded_member (přechody na vyšší úroveň); subtitle zobrazuje úroveň.
giftpurchase Balíčky dárků zakoupené přes API. membership nastavené na gift_giver; subtitle uvádí počet/úroveň; bez hasDonation nebo donoValue.
giftredemption Oznámení o uplatnění dárku. membership gift_recipient; výchozí odznak je 🎁; subtitle označuje darovanou úroveň.
membermilestone Zprávy milníků (memberMonth nebo displayMessage přítomné). membership member_milestone; subtitle shrnuje měsíce + úroveň; meta zachycuje nezpracované mapování milníku.
viewer_update Statistiky vysílání (současní diváci), pokud je zapnuté hlášení diváků. meta je celočíselný počet; odpovídá skriptům DOM, takže navazující příjemci mohou oba proudy sloučit. Dok používající &showviewercount požaduje shromažďování počtu diváků na 70 minut a obnovuje tento požadavek každou hodinu bez trvalé změny globálního nastavení.
likes_update Dotazování oficiálních statistik videa při Odesílat celkové počty To se mi líbí z platforem je zapnuté. meta je aktuální počet To se mi líbí u videa jako celé číslo. Vysílá se při změně počtu i pravidelně při nezměněném stavu, aby příjemci zůstávali aktuální. Globální captureliketotals nastavení toto zapíná; starší captureyoutubelikes zůstává aliasem pro kompatibilitu. Zapnutí nastavení jednotlivého doku ve vyskakovacím okně &showlikecount volba také trvale zapne tato globální nastavení zachytávání, zatímco ruční přidání parametru URL řídí pouze vykreslování. Vypnutí možnosti zobrazení nevypíná globální shromažďování.
subscriber_update Dotazování statistik kanálu (odběratelé) při showsubscount není výslovně vypnuté. meta je celkový počet předplatitelů; rozhraní aktualizuje počítadla řídicího panelu.
view_update Dotazování statistik kanálu (celková zhlédnutí) při showviewercount nebo je aktivní režim nadšení. meta je celočíselný počet zhlédnutí.
live_chat_ended Živý chat přestane být dostupný pro přiřazené vysílání. meta.streamTitle se vyplní, když jsou metadata vysílání v mezipaměti.
user_banned userBannedEvent z API živého chatu nebo proudu gRPC. Událost pouze s metadaty pro moderační widgety. meta obsahuje uživatelské/zobrazované jméno, ID kanálu, URL avataru/profilu, moderátora, dobu zákazu/dočasného umlčení a trvalost.
new_follower Nový odběratel zjištěný přes myRecentSubscribers API (dotazované každých 5 minut). chatname je název kanálu odběratele; chatmessage je prázdné, pokud na stránce zdroje YouTube nejsou zapnuté zprávy upozornění na odběratele. meta obsahuje channelId, title, subscribedAta seskupené dávky přidávají grouped, count, others, a subscribers. Poznámka: Výsledky mohou být zpožděné nebo neúplné; identifikovat lze pouze veřejně viditelné odběry.

Přeposílání chatu z API používá meta.plainText pro zprávu v prostém textu vedle bohatého chatmessage obsah. Jde o text, nikoli HTML, a stále může obsahovat emoji Unicode. Členské odznaky náhradně používají emoji (⭐, 💝, 🏅atd.), aby zůstaly shodné se zachytáváním z DOM. Data běžného chatu také obsahují meta.messageId aby akce mazání v doku mohly projít zpět do moderačního API YouTube.

Upozornění na odběratele YouTube (new_follower)

Social Stream nyní dokáže rozpoznávat nové odběratele YouTube pomocí myRecentSubscribers koncového bodu API. Funguje podobně jako upozornění Streamlabs na odběratele.

Jak to funguje:

  • Dotazuje YouTube API každých 5 minut na nedávné odběratele
  • Sleduje již zaznamenané odběratele v localStorage, aby rozpoznal nové
  • Vysílá new_follower události se jménem odběratele, avatarem a ID kanálu
  • Ponechává zprávy upozornění na odběratele ve výchozím stavu vypnuté; po zapnutí používají aktuální překladový řetězec pro alert-just-subscribed
  • Ve výchozím nastavení seskupuje dávky více než tří nových předplatitelů, aby opětovná připojení nezaplavovala překryvy nebo Event Flow
  • Vyžaduje zapnutí režimu WebSocket v nastavení rozšíření

Omezení (jde o omezení YouTube API, nikoli Social Stream):

  • Bez zaručené doby doručení – SSN se dotazuje každých pět minut, ale API může vracet zpožděné nebo neúplné výsledky. Nespoléhejte na pevné čtyřhodinové okno.
  • Pouze veřejné odběry – Odběratelé, kteří mají seznam odběrů nastavený jako soukromý, nevyvolají upozornění. Odběry jsou na YouTube ve výchozím stavu soukromé.
  • Pouze vlastník kanálu – Upozornění na odběratele můžete přijímat pouze pro kanály, které vlastníte a pod jejichž účtem jste přihlášeni.
  • Využití kvóty API – Každý dotaz stojí 1 jednotku API. V pětiminutových intervalech to spotřebuje přibližně 288 jednotek denně (z výchozí denní kvóty 10 000).

Spouštěč editoru Event Flow: Použijte data.event === "new_follower" a data.type === "youtube"

YouTube WebSocket: stručný přehled událostí a členství

data.event data.membership Scénář
sponsorshipnew_sponsorNový člen přes newSponsorEvent
sponsorshipnew_memberNový člen přes processMembership
resubrenewed_memberObnovení členství
resubupgraded_memberPřechod na vyšší úroveň
giftpurchasegift_giverDarovaná členství v kanálu
giftredemptiongift_recipientPřijaté darované členství
membermilestonemember_milestoneZpráva výročí členství
superchat-Super Chat
supersticker-Super Sticker
user_banned-Událost zákazu/dočasného umlčení pouze s metadaty
new_follower-Nový odběratel (pravidelně dotazované; může být zpožděné)

Twitch – standardní zachytávání z DOM

Implementace: sources/twitch.js

  • Nechte chat Twitch otevřený. Oznámení o členství a uživatelích se zachytávají, když je Twitch vykreslí; nejsou omezena na účty vysílatele nebo moderátora. Pro funkce specifické pro účet může být vyžadováno přihlášení.
  • Požadavky na počet diváků míří na https://api.socialstream.ninja/twitch/viewers každých 30 sekund.
  • Pro upozornění na sledující, raidy a plnou podporu událostí, zapněte režim WebSocket v nastavení rozšíření.
  • Oznámení Watch Streak sdílená diváky jsou ve výchozím stavu vypnutá a vyžadují Zobrazovat série sledování Twitch Watch Streaks nastavení.
  • Volitelně zapnuté PluralMind nastavení může nahradit chatname, nameColora část obalenou proxy v chatmessagea může přidat textový odznak se zájmeny. username zůstává přihlašovacím jménem Twitch; související smazání nesou delete.meta.pluralmind aby dok používal toto stabilní přihlašovací jméno.
Událost Kdy se spouští Poznámky k datům
reward Karty uplatnění bodů kanálu (včetně kontejneru odměn 7TV). chatmessage obsahuje text uplatnění odměny; membership beze změny.
giftpurchase Systémové řádky, například „User gifting X Subs in the channel“. chatmessage je systémový řádek, který umožňuje překryvům zvýraznit kampaně dárců.
subscription_gift Oznámení o darovaném předplatném („Uživatel daroval předplatné …“). Označuje událost pro filtry zvýraznění; membership zůstává popiskem odznaku příjemce.
viewer_update Načítání ze Social Stream viewer proxy každých 30 s (při chybě náhradní hodnota 0). meta celočíselný počet diváků.
hype_train Připnuté komunitní zvýraznění Twitch ukazuje aktivní Hype Train v samostatném chatu. Náhradní událost DOM pouze s metadaty s meta.sourceMode nastavené na dom. Používá viditelnou úroveň, časovač a meta.progressPercent když Twitch nezpřístupňuje celkové počty bodů EventSub.
community_highlight Prvky uvnitř widgetu Twitch „Community Highlight“. meta je vytažený text zvýraznění pro napojení automatizací.
knock Pozvánky ke spolupráci Stream Together zobrazené nad chatem. chatmessage obsahuje text pozvánky; chatname se odvozuje z uživatele upozornění, pokud je dostupný.
watch_streak Volitelně zapnuté oznámení Watch Streak, které divák sdílí a Twitch vykreslí v chatu. meta.streakCount obsahuje viditelný počet, pokud je rozpoznán; meta.milestoneId používá identifikátor oznámení DOM, pokud je dostupný.

Bity/Cheers vyplňují hasDonation (například „500 bits“), přestože data.event zůstává prázdné; při vykreslování widgetů darů se spoléhejte na toto pole. Informace o sérii předplatného se objevují v subtitle když odznaky zpřístupňují měsíce.

Twitch – EventSub/WebSocket

Implementace: sources/websocket/twitch.js se sdíleným jádrem providers/twitch/chatClient.js

  • Rozsahy oprávnění OAuth: 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. Tokeny vysílatele zpřístupňují počty předplatitelů/sledujících.
  • Události doručované přes EventSub a dotazování Helix na celkové počty diváků/sledujících/předplatitelů.
  • Režim WebSocket poskytuje v reálném čase upozornění na sledující, události předplatného, raidy, cheers, Power-up, uplatnění bodů kanálu a metadata Hype Train.
  • Řádky Shared Chat používají Twitch IRC source-room-id pro vyplnění sourceName/sourceImg s původním kanálem, pokud se liší od připojeného kanálu.
  • Oznámení Watch Streak sdílená diváky jsou ve výchozím stavu vypnutá a vyžadují Zobrazovat série sledování Twitch Watch Streaks nastavení.
  • Volitelně zapnuté PluralMind nastavení může nahradit chatname, nameColora část obalenou proxy v chatmessagea může přidat textový odznak se zájmeny. username a userid zachovávají identitu Twitch; související smazání nesou delete.meta.pluralmind aby dok používal tato stabilní pole.
Událost Kdy se spouští Poznámky k datům
cheer Oznámení Cheer z EventSub channel.bits.use. hasDonation „N bits“; meta.bits číselné; chatmessage zachovává nezpracovanou zprávu; identifikovaní přispěvatelé cheer obsahují chatimg.
powerup Oznámení o vestavěných nebo vlastních Power-up z EventSub channel.bits.use. Data pouze události s prázdným chatmessage a žádné hasDonation, takže nevytváří běžný řádek chatu. meta.bits je číselné a meta.powerUp zachovává podtyp Twitch, název/ID odměny, podrobnosti efektu a dodaný text zprávy, pokud jsou dostupné.
new_subscriber channel.subscribe nebo USERNOTICE s msg-id=sub. meta obsahuje { userId, tier, isGift }; součet předplatitelů v mezipaměti se zvýší, pokud je k dispozici; počty diváků se dotazují samostatně.
resub channel.subscription.message nebo USERNOTICE msg-id=resub. meta nese sérii a kumulativní měsíce; chatmessage obsahuje text obnoveného předplatného.
subscription_gift channel.subscription.gift nebo USERNOTICE msg-id=subgift. meta zpřístupňuje celkový počet darovaných předplatných a úroveň; chatmessage shrnuje akci.
reward channel.channel_points_custom_reward_redemption.add. meta obsahuje ID odměny, název, cenu, výzvu, vstup uživatele, ID/stav uplatnění a starší alias. Žádné pole nejvyšší úrovně reward objekt vysílá tato obsluha EventSub. Starší příjemci mohou stále zobrazovat channel_points jako zastaralý alias.
raid EventSub channel.raid nebo USERNOTICE msg-id=raid. meta = { fromId, fromLogin, viewers }.
watch_streak Volitelně zapnuté Twitch IRC USERNOTICE s msg-id=viewermilestone a msg-param-category=watch-streak. Zahrnuje diváka do chatname, text oznámení Twitch v chatmessage, a meta.streakCount/meta.milestoneId. Ostatní obecné typy USERNOTICE se nadále ignorují.
new_follower channel.follow Oznámení EventSub. Automaticky zvyšuje follower_update; meta zaznamenává { userId, followedAt }.
viewer_update Helix streams dotazování každých 30 sekund. meta celočíselný počet diváků; potlačený, pokud nejsou v nastavení zapnuté statistiky diváků.
follower_update Celkový počet sledujících Helix, spouštěný po událostech sledování nebo pravidelným dotazováním. meta celočíselný počet sledujících.
subscriber_update Celkový počet předplatitelů Helix (vyžaduje token vysílatele s oprávněním pro předplatné). meta celočíselný počet předplatitelů.
stream_online / stream_offline EventSub stream.online/stream.offline. meta.startedAt přítomné u online událostí; offline používá prázdný objekt.
ad_break / ad_request / ad_schedule Odpovědi API správce reklam (channel.ad_break.begin, ruční POST channels/ads, GET channels/ads). meta uvádí dobu trvání, žadatele a data plánu pro řídicí panely.
hype_train EventSub channel.hype_train.begin, channel.hype_train.progress, a channel.hype_train.end oznámení v2. Událost pouze s metadaty: bez chatname nebo chatmessage. meta.phase je begin, progress, nebo end; meta obsahuje ID vlaku, úroveň, postup, cíl, součet, přispěvatele, časová pole, příznak sdíleného vlaku a trainType. Vlaky Treasure se zpřístupňují přes meta.trainType když je Twitch takto označí.
user_banned EventSub channel.bannebo IRC CLEARCHAT záložní možnost, když nejsou dostupné události zákazu EventSub. Událost pouze s metadaty pro moderační widgety. meta obsahuje uživatelské/zobrazované jméno, ID uživatele, URL avataru/profilu, moderátora, důvod, dobu zákazu/dočasného umlčení a trvalost.

Data chatu znovu používají sdíleného poskytovatele, takže data.event se vyplňuje pro `/me` (action) a starší bits značky i mimo scénáře EventSub. Zprávy GIF Twitch umísťují soubor Giphy do contentimg, ponechte chatmessage prázdné a zachovejte náhradní popisek Twitch v meta.gifLabel. Odstraňování duplicit a logika mazání používají ID zpráv; zprávy odeslané přes SSN používají nativní message_id z ozvěny IRC Twitch v data.id.

Metadata Twitch Hype Train

hype_train obsahuje pouze metadata a neobsahuje chatname nebo chatmessage. Řídicí panely by měly aktualizovat stávající zobrazení vlaku podle meta.id místo přidávání každé aktualizace postupu jako chatu. Meta Data Bar (meta.html) vykresluje tyto události jako horní ukazatel průběhu.

Pole Napište Poznámky
typeřetězecVždy twitch.
eventřetězecVždy hype_train.
meta.phaseřetězecbegin, progress, nebo end.
meta.idřetězecStabilní ID vlaku. Použijte je pro vytvoření nebo aktualizaci jednoho viditelného widgetu vlaku.
meta.broadcasterUserIdřetězecID uživatele vysílatele Twitch.
meta.broadcasterUserLoginřetězecPřihlašovací jméno vysílatele Twitch.
meta.broadcasterUserNameřetězecZobrazované jméno vysílatele Twitch.
meta.totalnumber | nullCelková hodnota podpory hlášená Twitchem pro daný vlak.
meta.progressnumber | nullAktuální postup k cíli úrovně.
meta.goalnumber | nullCíl aktuální úrovně.
meta.progressPercentnumber | nullNáhradní procento z DOM, když Twitch zpřístupní pouze viditelný ukazatel průběhu v samostatném okně.
meta.levelnumber | nullAktuální nebo konečná úroveň vlaku.
meta.topContributionsarrayNejvětší přispěvatelé. Každý záznam obsahuje userId, userLogin, userName, typea číselné total.
meta.lastContributionobject | nullNejnovější příspěvek se stejnou strukturou příspěvku jako topContributions.
meta.sharedTrainParticipantsarrayNezpracovaná data účastníků sdíleného vlaku z Twitch, pokud jsou poskytnuta.
meta.startedAtřetězecČasové razítko ISO začátku vlaku.
meta.expiresAtřetězecČasové razítko ISO aktuálního vypršení vlaku.
meta.endedAtřetězecČasové razítko ISO konce vlaku, nebo prázdné před jeho koncem.
meta.cooldownEndsAtřetězecČasové razítko ISO konce prodlevy, nebo prázdné před jejím koncem.
meta.isSharedTrainlogická hodnotaTrue, pokud Twitch označí vlak jako sdílený.
meta.trainTypeřetězecObvykle regular; vlaky Treasure se zde zpřístupňují, když je tak Twitch označí.
meta.allTimeHighLevelnumber | nullNejvyšší historická úroveň vlaku, pokud ji Twitch poskytne.
meta.allTimeHighTotalnumber | nullNejvyšší historický součet vlaku, pokud jej Twitch poskytne.
meta.sourceModeřetězecVolitelné označení zdroje, například dom.
meta.eventSubTypeřetězecPůvodní typ EventSub: channel.hype_train.begin, channel.hype_train.progress, channel.hype_train.end, nebo dom.community_highlight.

Twitch EventSub: stručný přehled událostí

data.event Scénář
new_followerUživatel začal sledovat kanál
new_subscriberNové předplatné
resubObnovení předplatného se zprávou
subscription_giftDarovaná předplatná kanálu
cheerFandění pomocí bitů
powerupPoužití vestavěného nebo vlastního Power-up
rewardUplatnění bodů kanálu
raidPříchozí raid
viewer_updatePočet současných diváků
follower_updateCelkový počet sledujících
subscriber_updateCelkový počet předplatitelů
stream_onlineVysílání začalo
stream_offlineVysílání skončilo
ad_breakZačátek reklamní přestávky
hype_trainMetadata stavu Hype Train/Treasure Train
user_bannedUživatel dostal zákaz nebo dočasné umlčení

OBS Flow Actions

Implementace: actions.html prostřednictvím událostí OBS WebSocket v5, s dock.html Události zdroje Prohlížeč v OBS jako záložní možnost

  • Nechte překryv Flow Actions otevřený se stejnou relací Social Stream jako editor/pozadí Event Flow, nebo ponechte dok načtený v OBS.
  • Nakonfigurujte OBS WebSocket v5 v OBS 28+; výchozí URL je ws://127.0.0.1:4455.
  • Jde o systémové události Event Flow. Neobsahují chatname nebo chatmessagea další podrobnosti OBS zůstávají uvnitř meta.
Událost Kdy se spouští Poznámky k datům
stream_started OBS ohlásí, že výstup vysílání přešel do spuštěného stavu. type je obs; event je stream_started; meta.source je obs-websocket nebo obs-browser-source; meta.outputState může nést nezpracovaný stav výstupu OBS.
stream_stopped OBS ohlásí, že výstup vysílání přešel do zastaveného stavu. type je obs; event je stream_stopped; meta.outputActive může být false.
recording_started OBS ohlásí zahájení nahrávání. type je obs; meta.obsEvent identifikuje zdroj události OBS.
recording_stopped OBS ohlásí zastavení nahrávání. type je obs; meta.outputState může nést nezpracovaný stav WebSocket.
scene_changed OBS změní aktivní scénu programu. type je obs; meta.sceneName obsahuje název scény, pokud jej OBS poskytne.
media_ended Mediální vstup OBS dokončí přehrávání. type je obs; meta.inputName a meta.inputUuid identifikují mediální vstup.
replay_buffer_saved OBS uloží záznamovou vyrovnávací paměť. type je obs; meta.savedReplayPath může obsahovat cestu k uloženému záznamu.

Pole upozornění Streamlabs

Implementace: sources/streamlabs.js (DOM pole upozornění); volitelný socketový most na sources/websocket/streamlabs.html

  • Nechte pole upozornění Streamlabs otevřené na kartě nebo ve zdroji Prohlížeč, aby se upozornění vykreslovala; obsahový skript čte zprávu/obrázek/tokeny z DOM upozornění.
  • Upozornění typu daru nastavují hasDonation (např. „$10 USD“ nebo „100 bits“) a volitelné donoValue v USD.
  • Odvozené typy událostí: follow, subscription, gift, cheer, donation, superchat, raid, redeem, merch, sponsor.
  • Pro socketový most vložte token Streamlabs Socket API a připojte se; upozornění se přenášejí bez stránky pole upozornění.
Událost Kdy se spouští Poznámky k datům
donation Spropitná, charita, JustGiving nebo obecná upozornění „donated“. hasDonation zachovává text měny (např. „$36“ nebo „$10 CAD“); donoValue se dodává pouze tehdy, když je dostupná hodnota USD; ostatní označené částky používají sdílený převod měn.
cheer Upozornění na bity/cheer Twitch. hasDonation se mění na „100 bits“ a donoValue zachycuje hodnotu USD.
subscription Upozornění na předplatné. Nastavují se standardní pole; chatmessage je řádek upozornění; meta.tokens nese hodnoty tokenů (name, amount, levelName atd.).
gift Darovaná členství/předplatná. meta.tokens.amount může zobrazovat počet dárků; meta.tokens.levelName může obsahovat úroveň.
follow Upozornění na sledující. Bez polí daru; chatname odráží token jména upozornění.
raid Upozornění na raidy. meta.tokens.count obsahuje počet účastníků raidu, pokud je přítomen.
redeem Upozornění na uplatnění odměn Cloudbot. meta.tokens.product zachycuje položku uplatnění odměny.
merch Upozornění na nákup merche. meta.tokens.product obsahuje název zakoupené položky.
superchat Upozornění typu Super Chat z YouTube nebo podporovaných integrací upozornění. hasDonation nese částku; příjemci mohou nadále přijímat starší donation aliasy.
sponsor Upozornění typu sponzor/člen zpřístupněná přes Streamlabs. Standardní pole; bez daru, pokud text neobsahuje částku.

TikTok Live – zachytávání z DOM a proud TikFinity

Implementace: sources/tiktok.js pro nativní stránky TikTok a sources/tikfinity.js pro widget/iframe přehledu aktivity TikFinity. SSApp nadále nabízí nativní integraci TikTok s nejširší podporou událostí (viz dokumentace SSApp).

  • Funguje na stránce živého vysílání vysílatele. Bannery dárků/To se mi líbí/sledování se plní pouze v ověřené relaci.
  • TikTok poskytuje mnoho událostí prostřednictvím rozpoznávání z DOM bez vyžadování režimu WebSocket – dárky, sledování, označení To se mi líbí a volitelně zapnutá připojení se zachytávají z vykreslených řádků.
  • Stránky widgetů TikFinity na tikfinity.zerody.one/widget/activity-feed* také fungují. Vložený iframe přehledu aktivity vysílá stejná kanonická pole dat TikTok pro chat, sledování, sdílení, dárky, předplatné, volitelně zapnutá připojení a truhly s pokladem.
  • Není vyžadováno další ověření API.
  • Nativní režim SSApp stále přidává události nad rámec cest zachytávání stránky/widgetu: question_new, emote, viewer_updatea volitelně zapnutý souhrn likes_update.
Událost Kdy se spouští Poznámky k datům
gift Řádky bannerů dárků nebo DivGiftMessage záznamy. hasDonation převádí na „N coins“ (se záložním vyhledáním dárku); membership používá text odznaku, pokud je dostupný.
joined Oznámení o připojení při globálním Zachytávat události připojení „joined“ ve vysílání nastavení je zapnuté. Přeskakuje oznámení o sdílení; chatname může být prázdné u některých systémových řetězců.
followed Zprávy sledování zpracované ze sociálních karet. Zajišťuje chatname existuje před vysláním.
shared Řádky sdílení TikFinity. chatmessage je vykreslený text sdílení.
subscribe Řádky předplatného TikFinity. membership se nastavuje na SUBSCRIBER.
envelope Řádky truhel s pokladem TikFinity. meta.coins a meta.canOpen nesou podrobnosti truhly.
liked Souhrny vln označení To se mi líbí spouštěné sociálními kartami TikTok. chatname je zahrnuto, když jej TikTok zpřístupní; anonymní/systémové karty To se mi líbí se přesto mohou vysílat. TikTok jej posílá běžnou cestou přes pozadí. Pozadí směruje jednu kopii do překryvu reakcí a do hlavního zpracování chatu/událostí pokračuje pouze při capturelikeevent je zapnuté.
likes_update SSApp přijímá autoritativní kumulativní součet TikTok LIVE při captureliketotals je zapnuté. meta je aktuální celkový počet jako celé číslo. SSApp odešle první hodnotu okamžitě, slučuje dávky nejvýše do jedné aktualizace za pět sekund, opakuje poslední hodnotu přibližně každých 90 sekund a po skončení vysílání odešle nulu. Je to oddělené od údajů specifických pro diváka liked události.
true (logická hodnota) Obecné sociální/systémové zprávy, pro které TikTok neposkytuje podtyp. Použijte chatmessage obsah pro rozhodnutí o prezentaci; logická hodnota true označuje „systémová událost – neznámý typ“.

membership zrcadlí bublinové nápovědy odznaků (úrovně předplatitelů). Ukládání avatarů do mezipaměti udržuje chatimg platné mezi událostmi; pokud DOM potlačuje barvu moderátorů, skript vymaže nameColor. Řádky dárků TikFinity také nastavují contentimg na ikonu dárku, pokud je dostupná. Aktualizace sérií dárků z nativního DOM a TikFinity obsahují meta.tiktokGiftStreakId, meta.tiktokGiftCount, a meta.tiktokGiftQuietMs aby překryvy mohly slučovat opakované aktualizace; starší ID sérií jsou jedinečná pro instanci stránky. Metadata dárku mohou také obsahovat tiktokGiftMessageId (původní ID zprávy TikTok), tiktokGiftSenderId, groupId, giftId, giftName, streakable, a repeatEnd. Nativní ID identifikují stejný dárek napříč okny zachytávání; nenulové ID skupiny spolu s ID odesílatele a dárku identifikuje kumulativní aktualizace série. Zachytávání SSApp přes WebSocket dodává stejná pole po uzavření série, s count zachováno kvůli kompatibilitě. Jeho přepínač darů se kontroluje při předání každého dárku: vypnutí darů TikTok odstraní hasDonation a donoValue se zachováním události dárku a metadat. TTS používá tyto identity ke slučování aktualizací a potlačení dokončených duplicit až na deset minut (omezená mezipaměť) a čte dárky TikTok jako odesílatele, množství a název dárku. Starší data náhradně používají stávající ID série a text zprávy; ze samotného textu dárku se žádná identita nevyvozuje. Čtení dárků TikTok používá vybraný jazyk TTS/hlasu nezávisle na jazyku rozhraní. Slovesa oznámení jsou přeložena do angličtiny, španělštiny, portugalštiny, francouzštiny, němčiny, italštiny a nizozemštiny; ostatní jazyky používají odesílatele, množství a název dárku bez anglického slovesa. Zjednodušené TTS zachovává tento neutrální formát. Názvy dárků zůstávají tak, jak je dodá platforma; neprovádí se automatický překlad katalogů dárků ani zpráv chatu a nevyvozuje se jazyk vysílání.

U těchto aktualizací série jsou počet a popisek daru kumulativní: 1, 2, 3 znamená tři dárky, nikoli šest. Příjemci počítající součty by měli přidat pouze přírůstek nad nejvyšší částku již zaznamenanou pro dané ID série. Standardní zachytávání podporuje starší třídy dárků i současné řádky s obrázkem/počtem; obojí zachovává event: "gift" a hasDonation. U neznámých cen se zachovávají počty/názvy dárků pro zobrazení a používá se odhad USD odpovídající jedné minci za dárek. Hodnota dodaná zdrojem donoValue má přednost; vykreslená metadata dárku mohou poskytovat coinsPerGift nebo diamondsPerGift než je potřeba tabulka dárků nebo výchozí hodnota. Odhady mincí Standard/TikFinity a nativní odhady diamantů SSApp používají své stávající odlišné přepočty; ani jeden nepředstavuje zaručenou peněžní výplatu.

Whatnot

Implementace: sources/whatnot.js

  • Otevřete stránku živého pořadu Whatnot s viditelným chatem; stávající zachytávání WebSocket dodává chat, oznámení aukcí/prodejů, neúspěšné platby, raidy, dary a rychlé aktualizace diváků. Snímky produktů/soutěží stále závisejí na sekcích DOM vykreslených v zobrazení pořadu.
  • Zachytávat události vysílání (Capture Stream Events) ovládá systémové události Whatnot a aktualizace metadat aukcí/katalogu; řádky připojení také vyžadují Zachytávat události připojení „joined“ ve vysílání; počty diváků se stále řídí přepínači diváků/nadšení.
Událost Kdy se spouští Poznámky k datům
viewer_update Změny počtu diváků z aktualizací živého vysílání přes WebSocket se záložním dotazováním DOM. meta je celočíselný počet diváků.
donation Události spropitného a příspěvků na komunitní posílení Whatnot přes WebSocket. hasDonation obsahuje formátovanou částku; kontext specifický pro WebSocket zůstává pod meta.
raid Události raidů Whatnot přes WebSocket, včetně odpovědí s historií aktivity. meta.numRaiders je zahrnuto, pokud jej Whatnot dodá.
joined Řádky chatu, jejichž normalizované tělo začíná na joined, když Zachytávat události připojení „joined“ ve vysílání je zapnuté. Pro oznámení o připojení používá řetězcové popisky událostí (nikoli logické true).
auction_update Když se změní stav aukce v živém dolním panelu (text vítěze/vedoucího, název, nabídky, cena, časovač, stav prodáno), často urychlené pakety WebSocket životního cyklu aukce. Událost pouze s metadaty. Bez chatname/chatmessage; data jsou v meta (například meta.title, meta.bids, meta.price, meta.timer, meta.status).
commerce_update Když se změní sekce katalogu (produkty, Surprise Sets, nadcházející soutěže), často urychlené pakety WebSocket životního cyklu soutěže/produktu. Snímek pouze s metadaty s počty sekcí a poli položek pod meta.products, meta.surpriseSets, a meta.upcomingGiveaways.
auction_started, new_bid, auction_ended, product_sold Přijde odpovídající živé oznámení WebSocket. Jde o jednotlivé události oddělené od stávajících snímků zobrazení. platform/type: "whatnot", prostý text chatname, userid pokud je dodáno, název produktu v subtitlea prostý text v chatmessage s textonly: true. Dostupné identifikátory a podrobnosti aukce jsou pod meta: productId, auctionId, orderId, transactionId, livestreamId, bidId, bids, auctionEndTime, a status. Volitelné price je v hlavních měnových jednotkách, s priceText a currency pokud je dodáno.
payment_failed Přijde živé oznámení WebSocket o neúspěšné platbě. Stejná dostupná pole kupujícího, produktu a identifikátorů, s meta.paymentStatus: "failed". Když pouze product.purchaserUserId identifikuje kupujícího, vyplňuje userid u událostí prodeje/platby a jméno kupujícího zůstává prázdné. Kupující se nevyvozuje z jiné ani předchozí aukce.
payment_succeeded Přijde živé oznámení WebSocket o úspěšné platbě. meta.paymentStatus: "succeeded", s kupujícím, položkou, ID objednávky a dalšími povolenými poli dodanými tímto oznámením. Zůstává to samostatnou platební událostí; nevysílá další purchase nebo dar. Chybějící pole zůstávají prázdná nebo vynechaná, i když je dřívější prodej dodal.

Aktualizace zobrazení aukcí/obchodu zůstávají snímky z DOM. Pro rozpoznání jednotlivé události WebSocket v Event Flow použijte Typ události (pokročilé), vyberte Vlastní událosta zadejte jeho přesný název. Popisky mohou používat **{username}**\n{subtitle} s vybranou vahou textu; podmínky mohou porovnávat meta.paymentStatus s failed. Událost importovatelný příklad popisku Whatnot je dostupné. Stávající nastavení zachytávání událostí vysílání nadále platí.

Další volitelná pole jsou meta.catalogProductId (pole paketu product.productId), meta.parentProductId (product.parentId), meta.transactionType (typ prodeje Whatnot, beze změny) a meta.placeOrderErrorReason (chybový kód objednávky/platby dodaný Whatnot). Tyto odkazy na produkty popisují katalog nebo nadřazenou nabídku; nenahrazují ID objednávky. Skladové množství se nepovažuje za zakoupené množství.

Pro automatizaci úspěšné platby nastavte Typ události (pokročilé) spouštěč na Vlastní událost: payment_succeededa nastavte filtr zdroje na Whatnot. Stávající podmínky a šablony mohou používat pole dané události userid, chatname, subtitle a meta.orderId přímo. Pokud oznámení obsahuje požadované údaje, není potřeba žádný zapamatovaný nákup.

Konec aukce nebo označení položky jako prodané nepotvrzuje úspěšnou platbu: tato oznámení se nevysílají jako zaplacené purchase události a nenastavují částky darů. Událost úspěchu se vysílá pouze pro přijaté payment_succeeded oznámení; zachytávání nedotazuje dokončení platby ani jej nevyvozuje z prodeje. Ostatní paymentStatus hodnoty se předávají pouze tehdy, pokud jsou výslovně dodány v zachyceném paketu. Chybějící identifikátory se vynechávají; samotné ID produktu může zahrnovat více prodejů, proto k propojení oznámení použijte dodané ID objednávky/aukce. Zachytávání si nepamatuje nákupy ani nepáruje aktualizace plateb; takový pracovní postup musí být výslovně nakonfigurován v Event Flow. Krátkodobé duplicitní pakety ze dvou stávajících mostů zachytávání se potlačují. Nezpracované objekty objednávek/plateb se nepředávají.

eBay Live

Připojení prodejce eBay v části Zpeněžení vyžaduje nakonfigurovanou službu SSN eBay a souhlas prodejce přes OAuth; níže uvedené zachytávání eBay Live je nezávislé. Režim sandbox používá URL nabídek sandboxu, označuje kupujícího jako „eBay Sandbox buyer“ a přidává zprávě předponu „Sandbox test purchase:“. Nákupy sandboxu zachovávají stejný kontrakt nákupu a při testování mohou spouštět zapnutá upozornění/akce chatu. Implementovaný platební kontrakt vysílá event: "purchase", s type a platform nastavené na ebay. Vyžaduje zaplacenou objednávku odpovídající vybranému produktu. id je stabilní neprůhledný identifikátor řádku objednávky; chatname je „eBay buyer“, chatmessage je prostý text (textonly: true), subtitle je název produktu a volitelné contentimg je jeho obrázek. meta.ebayPurchase obsahuje itemId, itemName, quantitya veřejné url. Žádná identita kupujícího, dodací údaje, hasDonation nebo donoValue je zahrnuto. To se liší od získaných aktualizací aukcí nebo zásob, které nedokazují platbu.

Implementace: sources/ebay.js

  • Otevřete buď /ebaylive/events/<id>/chat nebo /ebaylive/events/<id>/stream. Oba přijímají stejný živý proud aukcí.
  • Veřejný proud WebSocket poskytuje aukce, nabídky, vítěze, prodloužení času a změny zásob; dotaz GraphQL pouze pro čtení poskytuje podrobnosti nabídky. Zachytávání z DOM zůstává záložní možností při nedostupnosti síťových dat.
  • Zachytávat události vysílání (Capture Stream Events) ovládá snímky metadat (auction_update, commerce_update); počítadla diváků nadále respektují přepínače diváků/nadšení.
Událost Kdy se spouští Poznámky k datům
viewer_update Když se změní počet diváků aktivní události (počet v záhlaví nebo náhradní hodnota ze štítku živé události). meta je celočíselný počet diváků.
follower_update Když koncový bod statistik prodejce vrátí počet sledujících prodejce. meta je celočíselný počet sledujících. Zdroj dotazuje koncový bod prodejce každých 60 sekund; koncový bod může až 5 minut vracet hodnotu z mezipaměti.
auction_update Když se změní metadata aktivní aukce. Událost pouze s metadaty. Síťové zachytávání nastavuje meta.sourceMode na network a dodává title, price, bidder, winner, bids, timer a endingAt. meta.ebay obsahuje eventId, listingId, záznam nabídky GraphQL (listing), aktuální veřejnou nabídku ze socketu (eventListing) a poslední aktualizaci aukce (update). Zachovávají kategorii, obrázky, měny, množství, podrobnosti rozbalování, výsledky aukce a časová pole, aniž by se ztrácely detaily platformy. Záznam GraphQL je načtený snímek; nabídka ze socketu a aktualizace nesou novější živý stav. Počáteční historie a historie po opětovném připojení se začlení do aktuálního snímku místo vysílání starých výher. Odstranění všech prezentovaných nabídek vysílá status: "idle" s cardCount: 0 pro vymazání aukce. Záložní DOM zachovává pole karty přehrávače nebo náhledu události.
commerce_update Když se změní sekce snímku katalogu/živých událostí. Snímek pouze s metadaty pod meta. Síťový režim obsahuje eventId, navigation.viewerCount a playerCards pro právě prezentované nabídky, každou se stejnými podrobnými ebay objekt jako snímek aukce. Prázdný seznam karet vymaže odstraněné nabídky. Záložní DOM může také obsahovat liveEvents, livePreview, currentEvent a upcomingEvents.
reaction Když eBay Live vykreslí animaci srdíčka/reakce. Odesílá se přímo do vyhrazeného cíle reakcí. meta.reactionType je heart; eBay pro tyto animace DOM nezpřístupňuje jméno jednotlivého uživatele.

Události metadat eBay záměrně vynechávají chatname/chatmessage; navazující překryvy by měly vykreslovat z data.event + data.meta pouze.

Kick – standardní zachytávání z DOM

Implementace: sources/kick.js

  • Vyžaduje ověřenou relaci pro načítání profilových obrázků a odznaků předplatitelů.
  • Omezené rozpoznávání událostí podle textu chatu a odznaků; počty diváků stále fungují, pokud je přepínač zapnutý.
Událost Kdy se spouští Poznámky k datům
gift Dárky KICKs rozpoznané podle obrázku nálepky a viditelné částky měny Kick. hasDonation nese N KICKs (1 KICK pro jeden), pokud je viditelná částka dostupná; contentimg nese obrázek dárku. Stávající text zprávy zůstává zachován.
reward Uplatnění odměn („has redeemed …“). chatmessage obsahuje text uplatnění odměny.
true (logická hodnota) Obecná systémová oznámení, která neodpovídají vzorům dárků nebo odměn. Použijte chatmessage obsah pro rozhodnutí o prezentaci; logická hodnota true označuje „systémová událost – neznámý typ“.
viewer_update Dotazuje API kanálu Kick každých 30 sekund (pouze při zapnutých statistikách diváků). meta celočíselný počet diváků; pro předplatná, sledování nebo spropitná použijte níže uvedený most Kick.

Kick – WebSocket/most

Implementace: sources/websocket/kick.js se sdílenými pomocnými funkcemi pod providers/kick/core.js

  • OAuth přes most Social Stream Kick. Současné rozsahy oprávnění jsou user:read, channel:read, channel:write, channel:rewards:read, chat:write, events:subscribe, moderation:ban, moderation:chat_message:manage, a kicks:read. Tokeny se obnovují automaticky.
  • Zřízení webhooků Kick může trvat několik minut; rozhraní uvádí aktivní odběry událostí pro jednotlivé kanály.
Událost Kdy se spouští Poznámky k datům
message Data chatu z mostu. meta.plainText obsahuje zprávu v prostém textu (která může stále obsahovat emoji); odznaky kombinují platformu a mezipaměť profilů. Odpovědi ve vlákně vyplňují initial, reply, a meta.reply když jsou dostupné podrobnosti odpovědi nebo nadřazená zpráva v mezipaměti.
reward channel.reward.redemption.updated, a také data chatu/systému z mostu, která vypadají jako uplatnění odměn. meta obsahuje ID odměny/uplatnění, název, cenu, stav, vstup uživatele a uživatele uplatňujícího odměnu.
new_subscriber channel.subscription.new. membership přiřazeno roli předplatitele; meta obsahuje { subscriber, plan }.
resub channel.subscription.renewal. meta.duration (měsíce) a meta.plan k dispozici; subtitle shrnuje sérii.
subscription_gift channel.subscription.gifts. meta.totalGifted, meta.gifter; náhradní odznak je ikona 💝.
donation Události podpory/spropitného rozpoznané heuristikou typu události; dárky KICKs používají gift níže. hasDonation nese formátovanou částku; meta obsahuje { amount, currency, supporter, message, giftName }.
gift kicks.gifted (dárky KICKs), shodně se získáváním z DOM. hasDonation nese N KICKs (1 KICK pro jeden); contentimg nese obrázek dárku, pokud je dostupný. Strukturované podrobnosti dárku zůstávají pod meta.
raid Kompatibilní zpracování starších dat socketu ve formě hostování, například App\Events\StreamHostEvent. Současný oficiální katalog událostí Kick neobsahuje odběr raid/host. Pokud přijdou kompatibilní starší data, mapují se na kanonické raid; nespoléhejte na to v současném pracovním postupu pro Kick.
new_follower channel.followed. Ikony sledujících pocházejí z mezipaměti profilů; follower_update spustí se, když Kick poskytne průběžné součty.
follower_update Most dodává počty sledujících v datech webhooků. meta celočíselný součet; používaný řídicími panely pro cíle sledujících.
stream_online / stream_offline livestream.status.updated. meta obsahuje nezpracované tělo stavu z Kick (is_live, title atd.).
viewer_update livestream.status.updated když Kick zahrne celkové počty současných diváků. meta celočíselný počet diváků; vysílá 0 při stavu offline pro vymazání zastaralých počítadel.
user_banned moderation.banned z mostu/webhooku nebo událostí zákazu ze socketu chatu Kick. Událost pouze s metadaty pro moderační widgety. meta obsahuje uživatelské/zobrazované jméno, ID uživatele, URL avataru/profilu, moderátora, důvod, dobu zákazu/dočasného umlčení a trvalost.

Vyhledávání profilů používá profileCache; mapBadges slučuje odznaky Kick s SVG v mezipaměti, pokud jsou dostupné. Když Kick hlásí dary v KICKs, most je převádí na hasDonation a také meta.amount s currency náhradně používají „KICKs“. Data chatu obsahují meta.messageId když most zpřístupní nativní ID zprávy Kick, aby synchronizace mazání mohla cílit na správnou zprávu. Data odpovědí obsahují meta.reply s nadřazeným messageId, author, a text pokud je známé. Dodané podrobnosti odpovědi zůstávají dostupné, i když původní zpráva není v mezipaměti; odpověď pouze s ID bez kontextu z mezipaměti může stále postrádat viditelnou citaci.

Kick WebSocket: stručný přehled událostí

data.event Scénář
new_followerUživatel začal sledovat kanál
new_subscriberNové předplatné
resubObnovení předplatného
subscription_giftDarovaná předplatná
rewardUplatnění odměny kanálu nebo zpráva chatu/systému typu odměny
donationUdálost spropitného/podpory
giftUdálost dárku KICKs
raidStarší vstup host/raid pouze kvůli kompatibilitě; nejde o současné oficiální přihlášení k událostem Kick
follower_updateCelkový počet sledujících
stream_onlineVysílání začalo
stream_offlineVysílání skončilo
user_bannedUživatel dostal zákaz nebo dočasné umlčení

VPZone – WebSocket

Implementace: sources/websocket/vpzone.js

  • Připojuje se k wss://chat.vpzone.tv/ws?channel=USERNAME; OAuth požaduje profile:read, chat:read, chat:write, channel:read, channel:write, a chat:moderate. Token bearer lze zadat i ručně.
  • Ploché rámce VPZone, například type: "msg" se normalizují do standardních dat chatu.
  • Na straně platformy delete_message / clear_chat rámce odstraňují odpovídající řádky z doku; volitelné přepínače synchronizují mazání a blokování z doku zpět do VPZone (pouze vlastník kanálu).
  • Vlastníci kanálů mají na stránce panel Informace o vysílání (Stream Info) pro aktualizaci názvu a kategorie živého vysílání (stejný vzor jako na stránce zdroje Twitch).
Událost Kdy se spouští Poznámky k datům
message VPZone msg, message, new_message, nebo chat_message rámec WebSocket. chatname pochází z username; chatmessage pochází z body; příznaky předplatitele/vlastníka/moderátora/VIP se kopírují do chatbadges, příznaky rolí nejvyšší úrovně a meta. Nativní ID vyplňují data.id a meta.messageId.
viewer_update VPZone presence rámec s count nebo ekvivalentní pole diváků. meta je celé číslo živých diváků; přispívá do agregovaného viewer_updates.
new_subscriber VPZone subscribe / subscription rámec. membership se nastavuje na Subscriber, pokud jsou přítomné příznaky předplatného.
subscription_gift VPZone gift / gift_subscription rámec. Používá stejný název události darovaného předplatného jako Twitch, Kick, Rumble a Velora. subtitle nese počet dárků (x5) nebo příjemce.
message + hasDonation VPZone system rámec s metadata.kind: "pixels_cheer" (spropitné Pixels). Řádek chatu s darem; hasDonation je popisek částky (například 100 Pixels), meta.pixels celé číslo. event zůstává prázdné; toto spropitné rozpoznávejte z hasDonation. Události podpory mostu Kick místo toho používají event: "donation".
message odpovědi VPZone msg rámec nesoucí metadata.reply_to (ID zprávy, autor, úryvek — denormalizováno na serveru). Vykreslené jako odpovědi Kick: initial obsahuje popisek „autor: úryvek“, reply nezpracovaný text odpovědi, meta.reply strukturovaný cíl. Respektuje vylučují „replying to“ nastavení.
raid VPZone raid rámec s metadata.kind: "incoming". Rámce odchozích raidů se přeskakují; meta.viewers nese velikost raidu, pokud je poskytnuta.
shoutout VPZone shoutout rámec (!so příkaz). meta.targetUser pojmenovává doporučovaný kanál.
reward VPZone system rámec s metadata.kind: "channel_points_redeem". Uplatnění bodů kanálu se stejným názvem události jako odměny Twitch.
stream_online / stream_offline VPZone system rámce s metadata.kind: "stream_started" / "stream_ended". Přiřazeno názvu kanálu (rámce nenesou aktéra).
new_follower VPZone follow rámec. Mapováno do standardní struktury události sledujícího.
joined Události připojení/přítomnosti VPZone přes WebSocket, když Zachytávat události připojení „joined“ ve vysílání je zapnuté. Mapováno na systémovou událost ve stylu chatu s metadaty aktéra VPZone pod meta.

Joystick

Implementace: sources/joystick.js, sources/inject/joystick-ws.js, a sources/websocket/joystick.js

  • Běžný webový zdroj Joystick 2.0 běží na přihlášeném /u/<channel>/chat stránku. Čte ze stránky ChatChannel, WhisperChatChannel, EventLogChannel, a SystemEventChannel Rámce Action Cable se záložním získáváním z vykreslených řádků pro Electron a případy opětovného připojení.
  • Zprávy webového chatu používají stejná základní pole jako YouTube, Twitch a Kick: nativní id, chatname, chatmessage, chatimg, chatbadges, nameColor, membership, mod, private, username/userid, a timestamp když je Joystick dodá. Pokud socket vynechá barvu uživatelského jména, vykreslený řádek dodá stejné nameColor pole používané doky s podporou barev.
  • Úpravy zpráv na webu nahrazují odpovídající řádek doku; smazání, umlčení a blokování odstraňují odpovídající řádky podle nativního ID nebo uživatelského jména.
  • Samostatný zdroj WebSocket používá přihlašovací údaje bota Joystick (client_id + client_secret); webový zdroj používá přihlášenou relaci stránky.
  • Autorizuje na https://joystick.tv/api/oauth/authorize, poté vyměňuje/obnovuje tokeny na https://api.joystick.tv/api/oauth/token.
  • Připojuje se k wss://api.joystick.tv/cable a přihlašuje se k odběru GatewayChannel.
  • Volitelná výměna tokenu OAuth se používá pro pomocné koncové body, například https://api.joystick.tv/api/users/stream-settings.
  • Samostatný zdroj s přihlašovacími údaji bota nevysílá viewer_update. Přihlášený webový zdroj vysílá počty diváků, když je dodá socket stránky, jak je popsáno níže.
Událost Kdy se spouští Poznámky k datům
message Joystick ChatMessage, BotMessage, new_message, bot_message, event_bot_message, pvp_messagea soukromé zprávy. Běžný chat nemá event. Nativní ID se umísťuje do pole nejvyšší úrovně id a meta.messageId; role a soukromý stav používají zavedená pole nejvyšší úrovně/odznaků.
new_follower Joystick StreamEvent s typem Followed. Používá standardní strukturu sledujícího a odstraňuje duplicity vůči odpovídajícímu řádku bota Joystick. Volitelné meta.userId/meta.followedAt jsou zahrnuty pouze tehdy, když je Joystick dodá.
new_subscriber / subscription_gift Typy událostí Joystick NewSubscription / GiftedSubscription. Používá klíče metadat předplatného kompatibilní s Kick: eventType, subscriber, gifter, totalGifted, duration, a plan.
donation Joystick StreamEvent typy Tipped / TipMenu. hasDonation nese množství tokenů a jednotku pro sdílený převod na USD, pokud jsou dostupné, a odpovídající řádek bota Joystick se odstraní jako duplicita. meta používá zavedené klíče událostí podpory Kick: eventType, supporter, amount, currency, message, giftName, giftType, a tier.
stream_online / stream_offline Joystick StreamEvent typy, například Started, StreamResuming, Ended, StreamEnding. Používá se pro automatizace online/offline zohledňující přenos.
user_enter / user_leave Joystick UserPresence typy enter_stream / leave_stream. Oznámení přítomnosti se vysílají jako zprávy událostí a lze je potlačit nastavením skrývání událostí. Skrývání událostí potlačuje také události vysílání bez darů.
viewer_update Přihlášený webový zdroj přijímá ViewerCountUpdated přes EventLogChannel. Používá prosté celé číslo meta, shodně s YouTube, Twitch a Kick. Vysílá se pouze při zapnutém zachytávání počtu diváků nebo režimu nadšení. Samostatný zdroj s přihlašovacími údaji bota stále nepřijímá počty diváků.
follower_update / subscriber_update Události aktualizace počtu sledujících/předplatitelů Joystick. Používá prosté celé číslo meta, shodně s kontraktem počítadla Twitch.
Ignorovaná interní oznámení ChatMessageReceived, stav zařízení a nenamapované aktualizace widgetů, například stav cíle spropitného/PvP/subathonu. Jde o oznámení přenosu nebo stavu stránky, nikoli události Social Stream. Nepřevádějí se na smyšlené snake_case názvy událostí; skutečné ChatChannel/new_message řádek zůstává jedinými daty chatu.

XP Sync

Implementace: sources/xpsync.js

  • Řádky chatu používají kanonická pole dat s type: "xpsync", včetně autora, zprávy, avataru, obrázkových odznaků a vložených SVG odznaků, barvy jména, členství, příznaků moderátora/člena/bota a nativního UUID zprávy jako id pokud je dostupné.
  • Odpovědi dodržují konvenci zdrojů DOM YouTube, Twitch a Kick: pokud nejsou předpony odpovědí vypnuté, initial obsahuje uživatele, na kterého se odpovídá, reply zachovává zprávu bez předpony a chatmessage přijímá viditelnou předponu odpovědi.
  • Řádky zvýrazněné Sparks se zachytávají, přestože je XPSync vykresluje bez běžné třídy řádku chatu nebo ID zprávy; viditelná částka se zpřístupňuje přes hasDonation jako N Sparks.
  • Když je zapnuté zachytávání událostí, řádky obsahující „just followed“ nebo „followed the channel“ vysílají event: "new_follower".
  • Když jsou počty diváků zapnuté, trvalý dok chatu vysílá event: "viewer_update" z počtu živého videa již načteného stránkou XPSync a obnovuje jej z aktualizací živé stránky XPSync. Nejsou vyžadovány samostatné přihlašovací údaje SSN.

Instagram – zachytávání živého vysílání přes REST a schránka novinek

Implementace: sources/instagram.js a sources/instagramlive.js (totožné kopie)

  • Na stránkách živého vysílání (/<user>/live/?broadcast_id=...), živý chat pochází z vlastního webového API Instagramu, pravidelně dotazovaného ze stejného původu se souborem cookie relace: GET /api/v1/live/{broadcast_id}/get_comment/?last_comment_ts={ts} přibližně každé 2 s a POST /api/v1/live/{broadcast_id}/heartbeat_and_get_viewer_count/ přibližně každých 5 s, když jsou počty diváků zapnuté. Po 3 po sobě jdoucích selháních (nebo když není broadcast_id lze zjistit) zdroj náhradně zpracovává vykreslený DOM chatu.
  • Vlastní přehled aktivity účtu se dotazuje přes POST /api/v1/news/inbox/ přibližně každých 45 s na jakékoli stránce Instagramu. První dotaz pouze naplní množinu pro odstranění duplicit, aby se historie nikdy nepřehrávala; duplicity položek se určují podle tuuid.
  • Požadované hlavičky API (všechny statické/odvoditelné): X-IG-App-ID: 936619743392459, X-CSRFToken (ze souboru cookie), X-ASBD-ID: 359341, X-Requested-With: XMLHttpRequest, Content-Type: application/x-www-form-urlencoded.
  • Všechny události přehledu aktivity používají type: "instagram"; živý chat zůstává type: "instagramlive". Události označení To se mi líbí používají běžnou cestu přes pozadí: pozadí odešle jednu kopii do vyhrazeného překryvu reakcí a do hlavního proudu chatu/událostí je zahrne pouze při capturelikeevent je zapnuté, shodně s TikTok a MeetMe. hideevents a vlastní filtr událostí je blokují všude. Protože události schránky patří přihlášenému účtu, jsou potlačeny při sledování živého vysílání někoho jiného (jak /<user>/live/ stránkách a živých vysíláních v prohlížeči příběhů; vlastnictví se určuje pro každý profil a po neúspěšném vyhledání se zkouší znovu) a vysílají se na vašem vlastním živém vysílání i všech stránkách mimo živé vysílání. Schránku účtu dotazuje vždy jedna aktivní karta Instagramu a dotazování běží pouze po přihlášení.
Událost Kdy se spouští Poznámky k datům
message (živě) Nové záznamy v get_comment odpověď (comments[]/system_comments[]) nebo nové řádky chatu z DOM, když REST není k dispozici. Standardní data chatu, type: "instagramlive". REST poskytuje přesné user.username, user.profile_pic_urla jedinečné pk používané pro odstranění duplicit.
viewer_update heartbeat_and_get_viewer_count hlásí změněné viewer_count, když je zapnuté zachytávání počtu diváků nebo režim nadšení. meta celočíselný počet diváků. Dotazování se zastaví, když broadcast_status již není "live".
stream_online / stream_offline stream_online spustí se jednou při zahájení relace vysílání REST; stream_offline spustí se, když kontrolní signál ohlásí neživé broadcast_status (vyžaduje zachytávání počtu diváků nebo režim nadšení). Události pouze s metadaty odpovídající společnému názvosloví stavu vysílání, které používají Twitch a Joystick.
new_follower Položka ve schránce novinek s typem sledování notif_name (nebo story_type 12) se zobrazí. chatname je nový sledující, chatimg jejich profilový obrázek, chatmessage text schránky (například „x vás začal sledovat.“).
follow_request Událost private_user_follow_request položka se objeví (soukromé účty místo přímého sledování dostávají žádosti). Stejná struktura jako new_follower, zachované odděleně, aby automatizace mohly schvalovat žádosti nebo zdravit odlišně.
liked Položka ve schránce novinek s typem To se mi líbí notif_name (včetně comment_like) se zobrazí. Společné názvosloví To se mi líbí s TikTok/MeetMe. chatname je aktér, chatmessage text schránky (například „x označil vaši fotku jako To se mi líbí.“).
message (komentář k vlastnímu příspěvku) Položka ve schránce novinek s typem komentáře notif_name se objeví. Běžný řádek chatu (event: false), type: "instagram"; chatmessage nese text schránky včetně úryvku komentáře.
notification Jakýkoli jiný typ položky ve schránce novinek (zmínky, označení, nákupy atd.). Obecná záchytná kategorie; meta.notifName a meta.storyType zachovávají nezpracovanou klasifikaci položky.

Facebook Live

Implementace: sources/facebook.js (získávání z DOM) a volitelný most Graph API na sources/websocket/facebook.html

  • Zachytávání DOM čte vykreslené komentáře Facebooku; most Graph API spravované stránky čte komentáře videa. Oba používají type: "facebook", standardní pole chatu a žádné event pro běžné komentáře. Most API také obsahuje volitelné platform: "facebook".
  • Most API používá userid pro ID autora, pokud je dostupné, timestamp pro platný čas vytvoření v unixových milisekundách a contentimg pro obrázek přílohy HTTP(S) dodaný API. Komentáře pouze s obrázkem mohou mít prázdné chatmessage. textonly platí pouze pro tělo zprávy: nezpracovaný text při true, escapované HTML při false.
  • Kontext komentáře API používá meta.messageId (nativní ID komentáře), meta.permalink, meta.videoId, a meta.pageId. Dřívější sestavení API používala meta.commentId, duplicitní pole autora/času pod metaa předával tam nezpracované přílohy. Nová sestavení místo toho používají standardní pole autora/času/médií; nepřidává se tím podpora synchronizace mazání.
  • Počty diváků se aktualizují pouze při zapnutí. Most API čte souběžné live_views; nenahrazuje jej kumulativním počtem zhlédnutí videa ani nevymýšlí nulu pro nedostupný počet. Zachytávání API nevyvozuje Stars, členství, zvýraznění ani odpovědi z běžného textu komentáře.
  • Stars se zachytávají z vykresleného DOM živého chatu, když Facebook zobrazí viditelné N sent značku; vyplňují hasDonation a donoValue při kurzu 100 Stars = $1 USD bez nastavení data.event.
  • Pro testování přidejte ssnreplay=1 k URL Facebook Live pro zpracování řádků chatu, které jsou po obnovení již viditelné.
Událost Kdy se spouští Poznámky k datům
viewer_update DOM dotazuje odznak živých diváků; most API při zapnutí dotazuje souběžná živá zhlédnutí. meta celočíselný počet diváků, shodný s ostatními zdroji. Chybějící nebo nezpracovatelné počty se přeskakují; skutečná nula je platná.
hasDonation Facebook Stars vykreslené v DOM živého chatu. Standardní data chatu; hasDonation nese viditelné množství Stars, například 100 Stars, a donoValue nese hodnotu USD. Stars nenastavují data.event.
highlightColor Facebook vykreslí viditelné HIGHLIGHTED popisek. Používá běžná pole chatu a highlightColor; žádné data.event je nastaveno. Stars stále používají hasDonation.

Online Church

Implementace: sources/onlinechurch.js

  • Spoléhá na získávání z DOM veřejného chatu a záhlaví médií.
  • Počty diváků se aktualizují pouze při Zobrazovat počet diváků nebo je zapnutý režim nadšení.
Událost Kdy se spouští Poznámky k datům
message Nové záznamy se objeví pod #publicchat. Standardní data chatu se jménem odesílatele, avatarem, odznaky a volitelným popiskem členství, pokud je přítomen v DOM.
viewer_update Dotazuje živý odznak přítomných v záhlaví média každých 10 s. meta celočíselný počet diváků; odesílá 0 když odznak chybí nebo je nečitelný, aby se vymazala zastaralá počítadla.

SharePlay.tv

Implementace: sources/shareplay.js

  • Spoléhá na získávání z DOM vysouvacího panelu živého chatu na stránkách kanálů SharePlay.
  • Po připojení skriptu získávání se vysílají pouze nově vložené řádky a karty chatu; stávající historie se záměrně ignoruje.
Událost Kdy se spouští Poznámky k datům
message V hlavním proudu chatu se objeví nové řádky. Standardní data chatu s autorem, avatarem, obrázky odznaků a emotikony se zachovaným HTML. Odpovědi ve vlákně také vyplňují initial, reply, a meta.reply když je nadřazený řádek stále přítomen.
raid SharePlay vloží kartu Blitz do proudu živého chatu. Mapováno na kanonickou událost raidu. meta.cardType je "blitz", s volitelným meta.fromLogin a meta.viewers když je text karty zpřístupní.
shoutout SharePlay vloží kartu doporučení/sledování do proudu chatu. Vysílá se jako data.event = "shoutout". Obrázek banneru karty se předává přes contentimg, zatímco meta.cardType a meta.action zachovávají popisek karty/text tlačítka.
viewer_update Dotazuje viditelný odznak diváků v záhlaví každých 10 s. meta celočíselný počet diváků; vysílá se pouze při Zobrazovat počet diváků nebo je zapnutý režim nadšení a odesílá 0 pokud se odznak stane nečitelným, aby se vymazala zastaralá počítadla.

Streamplace

Implementace: sources/streamplace.js

  • Čte živou stránku Streamplace vykreslenou Reactem a při připojení přeskakuje viditelnou historii chatu.
  • Zprávy typu přeposílání, například Name (Discord): message se normalizují na jméno přeposílaného odesílatele.
Událost Kdy se spouští Poznámky k datům
message Po připojení se objeví nové řádky chatu Streamplace. Standardní data chatu s nameColor, chatbadges, odkazy se zachovaným HTML a pole odpovědí initial, reply, a meta.reply pokud je viditelné.
viewer_update Odznak diváků v záhlaví se změní, když je zapnuté zachytávání počtu diváků nebo režim nadšení. meta celočíselný počet diváků.

WorldsWave

Implementace: sources/worldswave.js

  • Podporuje živé stránky WorldsWave a URL pouze s chatem, například https://worldswave.com/kn_livecmd.php?cmd=viewStream&streamId=STREAM_ID&chatonly=1.
  • Používá stabilní data-ww-*/ww-chat-* značky, pokud jsou dostupné, a současně zachovává starší selektory kontackt pro stránky pouze s chatem a starší rozvržení.
  • Při připojení zachytávání se existující historie chatu přeskočí; testujte novou zprávou.
  • Počty diváků vyžadují Zobrazovat počet diváků nebo režim nadšení. Vyhrazené události dárků/spropitného a odesílání zpět nejsou implementovány. Vykreslený řádek může přesto poskytovat popisek daru přes data-ww-donation.
Událost Kdy se spouští Poznámky k datům
message Objeví se nový vykreslený řádek chatu WorldsWave. Standardní data chatu s type: "worldswave", jméno odesílatele, avatar, volitelné ID uživatele, barvu jména, odznaky, stav moderátora, členství, hodnotu daru, přílohu a identitu kanálu. Stabilní ID zpráv WorldsWave se zpřístupňují jako meta.messageId a odstraňují se duplicity mezi souběžnými panely náhledu/plného chatu. Vložené obrázky zpráv zůstávají sanitizované, pokud je režim pouze textu vypnutý.
viewer_update Viditelný celkový počet živých diváků se změní, když je zapnuté zachytávání počtu diváků nebo režim nadšení. meta je celočíselný počet diváků. Stabilní data-ww-viewer-count hodnota má přednost; zkrácené starší hodnoty, například 1.2K se normalizují jako záložní možnost.

FLEX TV

Implementace: sources/flextv.js

  • Čte vykreslený panel chatu na https://www.flextv.co.kr/channels/*/live stránky.
  • Panel chatu musí být viditelný. Při připojení zdroje se existující historie chatu přeskočí, proto testujte novým řádkem chatu.
  • Pro tento zdroj zatím není zdokumentován počet diváků, dary ani cesta odesílání zpět.
Událost Kdy se spouští Poznámky k datům
message Nový viditelný FLEX TV .chat-item řádky se objeví v proudu živého chatu. Standardní data chatu s type: "flextv", chatname, chatmessage, nameColor, obrázky odznaků v chatbadgesa podrobnosti členů FLEX pod meta když je zpřístupněno přes data-member.

Seal Team Sloth

Implementace: sources/sealteamsloth.js

  • Čte vykreslený samostatný chat na https://sealteamsloth.com/popout-chat/* stránky.
  • Počty diváků vyžadují Zobrazovat počet diváků nebo režim nadšení.
Událost Kdy se spouští Poznámky k datům
message Objeví se nový vykreslený řádek chatu Seal Team Sloth. Standardní data chatu s type: "sealteamsloth", jméno odesílatele, avatar a obsah zprávy.
viewer_update Viditelný celkový počet živých diváků se změní, když je zapnuté zachytávání počtu diváků nebo režim nadšení. meta je celočíselný počet diváků; zkrácené hodnoty, například 1.2K se normalizují.

MeetMe – zachytávání z DOM a WebSocket

Implementace: sources/meetme.js

  • Čte vykreslený DOM živého chatu MeetMe na app.meetme.com/live/view/... stránkách a uvnitř api.gateway.meetme-live.com/web-live/... iframe.
  • Když je WebSocket v iframe dostupný, wss://video-live.meetme.com/ rámce se zpracovávají před záložním DOM, aby se zachytily podrobnější živé události.
  • hideevents potlačuje události bez darů; dárky MeetMe a dary v diamantech stále vyplňují pole darů. capturejoinedevent zapíná oznámení o připojení/opětovném připojení. Specifické pro aktéra liked události používají sdílené směrování pozadí ovládané pomocí capturelikeevent; souhrn reaction efekty zůstávají výslovně cílené na překryv reakcí.
  • Počty diváků upřednostňují viditelný počet v záhlaví MeetMe a na součty WebSocket přecházejí pouze při nedostupnosti počtu v DOM. Počty se vysílají při změně a poslední počet se opakuje přibližně každých 30 sekund při showviewercount/hypemode je zapnuté; součty sledujících se vysílají pouze při změně a s omezením na přibližně 60 sekund.
Událost Kdy se spouští Poznámky k datům
message Nový SNSChatMessage přijdou rámce WebSocket nebo nové ChatMessage_* Řádky DOM se objevují pod ChatHistoryContainer_*. Standardní data chatu se jménem odesílatele, avatarem, HTML/textem zprávy a obrázky/textem odznaků. Podrobnosti řádku DOM jsou ploché meta klíče, včetně messageId, roomId, level, levelColor, badgeLabels, badgeSrcs, badgeClasses, isBouncer, isTopStreamer, isBestOfTheWeek, rank, a rowClassName. Data WebSocket nastavují meta.source = "websocket".
joined / rejoined / left SNSChatParticipant přijdou rámce vytvoření, aktualizace nebo smazání přes WebSocket nebo MeetMe vykreslí v DOM join-cell řádek. Oznámení o připojení/opětovném připojení vyžadují Zachytávat události připojení „joined“ ve vysílání. Vysílá systémová oznámení ve stylu chatu se jménem/avatarem aktéra, pokud je MeetMe zpřístupňuje. meta.isNewViewer, meta.viewerLevelId, meta.isBouncer, a meta.isSubscriber zachovávají stav účastníků.
new_follower MeetMe vykreslí řádek oblíbení/sledování v DOM, například Favorited. Používá společné názvosloví událostí sledujících. chatname je aktér, chatimg je rozpoznaná profilová fotografie, pokud je dostupná, a ploché meta.favoriteText/meta.targetName zachovávají původní podrobnosti řádku.
gift SNSGiftMessage přijdou rámce WebSocket nebo MeetMe vykreslí obrázek dárku v řádku chatu. hasDonation nese viditelný popisek dárku nebo hodnotu diamantů, contentimg nese obrázek dárku, pokud je zpřístupněn, a ploché klíče, například meta.giftName, meta.giftCount, meta.amount, a meta.currency zachovávají strukturované podrobnosti. gift událost je vyhrazena skutečným rámcům/řádkům dárků; vykreslování darů by se stále mělo řídit podle hasDonation.
donation SNSDiamond rámce WebSocket zpřístupňují aktivitu diamantů. Vyhrazené rámce diamantů se zpracovávají jako události daru. hasDonation je formátováno jako diamanty pro sdílený převod na USD a meta.amount/meta.currency zůstávají ploché pro automatizace.
liked / reaction SNSLike přijdou rámce WebSocket. Označení To se mi líbí od konkrétního aktéra používají stejné liked názvosloví a centralizované směrování pozadí jako TikTok. Souhrnné/anonymní součty To se mi líbí se odesílají pouze do cíle reakcí jako reaction, s plochými meta.reactionType, meta.totalLikes, a meta.subscriberLikes. Rozdíl spočívá ve významu události, nikoli v anonymitě: capturelikeevent ovládá pouze jednotlivé liked/like události.
follower_update SNSVideo metadata WebSocket zpřístupňují celkové počty sledujících. meta je celé číslo sledujících, shodné se společnou konvencí událostí počítadel.
guest_update SNSVideoGuestBroadcast přijdou rámce vytvoření/aktualizace. Událost pouze s metadaty pro stav hosta/živého spolumoderátora. Plochá meta klíče zahrnují status, position, totalGuests, isMuted, guestBroadcastId, videoViewerId, a broadcastId.
viewer_update Viditelný odznak diváků v záhlaví se změní nebo SNSVideo metadata WebSocket zpřístupňují počty diváků, pokud odznak není dostupný; při zapnutí se nezměněné součty opakují přibližně každých 30 sekund. meta celočíselný počet diváků; vysílá se pouze při zapnutém zachytávání počtu diváků nebo režimu nadšení.

Velora

Implementace: sources/velora.js a sources/websocket/velora.js

  • Režim Standard čte viditelný DOM chatu; režim WebSocket používá Velora Events API s OAuth.
  • Mezi podporované URL režimu Standard patří https://velora.tv/*, https://velora.tv/dashboard/stream/popout?panels=chat%2Cactivity&channel=CHANNEL&layout=vertical, a https://velora.tv/dashboard/stream/popout/CHANNEL/obs-chat.
  • Karty typu Volts a bodů kanálu se vysílají jako data událostí, pokud je zpřístupňuje DOM nebo Events API.
Událost Kdy se spouští Poznámky k datům
message Objeví se nové řádky chatu Velora nebo přijdou zprávy chatu Events API. Standardní data chatu se zachovanými odznaky, barvou autora, odkazy a emotikony, pokud nejde o režim pouze textu.
volts Karty Velora Volts nebo channel.volts Přicházejí data Events API. hasDonation nese zobrazenou částku Volts; zachytávání DOM obsahuje meta.source = "dom".
channel_points Karty bodů kanálu/uplatnění odměn Velora nebo channel.channel_points_redemption Přicházejí data Events API. chatmessage nese zprávu uplatnění odměny nebo název odměny; meta.rewardTitle identifikuje odměnu, pokud je dostupná.
subscription Viditelný řádek aktivity Velora uvádí, že se uživatel stal členem/předplatitelem kanálu. membership nese viditelný popisek členství.
viewer_update Viditelný počet diváků se změní, když je zapnuté zachytávání počtu diváků nebo režim nadšení. meta celočíselný počet diváků.

Parti – zachytávání profilu / samostatného chatu

Implementace: sources/parti.js

  • Podporuje URL profilů, například https://parti.com/USERNAME a URL samostatných oken, například https://parti.com/popout-chat?id=USER_ID.
  • Počty diváků používají koncový bod kontrolního signálu živého vysílání Parti, když je zapnuté zachytávání počtu diváků nebo režim nadšení.
Událost Kdy se spouští Poznámky k datům
message V proudu chatu profilu nebo samostatného okna se objeví viditelné řádky chatu Parti. Standardní data chatu; nameColor zachovává vykreslenou barvu autora Parti a chatmessage zachovává vložený obsah, pokud není zapnutý režim pouze textu.
donation Viditelné řádky spropitného Parti uvádějí, že uživatel přispěl určitou částkou. hasDonation nese zobrazenou částku, meta.amount/meta.currency se vyplňují, pokud je lze zpracovat, meta.amountText zachovává nezpracovaný text částky a donoValue se nastavuje pro spropitná v USD.
viewer_update Kontrolní signál Parti vrací počet živých diváků. meta je celočíselný počet diváků; stránka znovu používá jeden token kontrolního signálu pro každé okno zdroje, aby se počty nenavyšovaly.

CHZZK – zachytávání samostatného chatu

Implementace: sources/chzzk.js

  • Podporuje https://chzzk.naver.com/live/*/chat a https://chzzk.naver.com/iframe/live/*/chat.
  • Počty diváků používají koncový bod dotazování živého stavu CHZZK, když je zapnuté zachytávání počtu diváků nebo režim nadšení.
Událost Kdy se spouští Poznámky k datům
message V proudu samostatného chatu se objeví viditelné řádky chatu CHZZK. Standardní data chatu s type: "chzzk", nameColor, URL obrázků odznaků v chatbadgesa vykreslené emotikony v chatmessage pokud není zapnutý režim pouze textu.
chat s hasDonation V chatu se objeví viditelné řádky darů cheese CHZZK. hasDonation nese zobrazené množství cheese. Tyto řádky nenastavují data.event.
viewer_update Dotaz na stav vysílání vrátí počet diváků. meta je celočíselný počet diváků.

Rumble – standardní zachytávání z DOM

Implementace: sources/rumble.js

  • Vyžaduje soubory cookie ověřené relace, aby service.php API diváků odpoví.
  • Vykreslené řádky Rant poskytují hasDonation; karty příchozích raidů poskytují event: "raid". Tento zdroj DOM nevysílá proud událostí odběratelů/sledujících z mostu API.
Událost Kdy se spouští Poznámky k datům
message Na stránce nebo v samostatném chatu se objeví viditelné řádky chatu Rumble. Standardní data chatu; chatmessage zachovává HTML obrázků emotikonů Rumble po jejich vykreslení stránkou, pokud není zapnutý režim pouze textu.
viewer_update Volá Rumble video.watching-now službu každých 30 s. meta celočíselný počet diváků; používá credentials: 'include' pro opětovné použití souborů cookie relace.
chat s hasDonationViditelný řádek Rant obsahuje cenu.hasDonation zachovává vykreslenou cenu; nepřidává se žádná značka události daru.
raidV chatu se objeví karta příchozího raidu.Používá viditelnou zprávu raidu a volitelný obrázek karty v contentimg.

Rumble – WebSocket/URL API

Implementace: sources/websocket/rumble.js

  • Vyžaduje URL Live Stream API vlastněnou tvůrcem z https://rumble.com/account/livestream-api. Rumble uvádí, že tato URL obsahuje klíč živého vysílání, nevyžaduje samostatné ověření a měla by se sdílet pouze s důvěryhodnými třetími stranami.
  • Přenos pouze pro čtení. Veřejná dokumentace Rumble Live Stream API nepopisuje oficiální koncový bod pro odesílání chatu, takže tento zdroj přeposílá zprávy/události do Social Stream, ale neposílá chat zpět do Rumble.
  • livestreams[].chat se plní pouze během živého vysílání vybraného přenosu. Použijte ?streamId=... pro připnutí konkrétního vysílání, když API zpřístupňuje více než jedno; neplatná ID nyní selžou místo tichého přechodu na jiné vysílání.
  • Stránka také zjišťuje https://rumble.com/chat/popup/<livestreams[].id> abyste mohli otevřít běžný vložený samostatný chat přímo bez předchozího načtení vysílatelova /live stránku.
Událost Kdy se spouští Poznámky k datům
message Nové záznamy přicházejí z proudu chatu SSE Rumble poté, co oficiální API určí livestreams[].id; náhradně používá livestreams[].chat.recent_messages. Standardní data chatu. meta.source je rumble_sse když je proud chatu SSE dostupný a obsahuje URL avatarů z users[].image.1; jinak náhradně používá live_stream_api bez avatarů. Pokud je dostupný katalog emotikonů samostatného okna, chatmessage vykresluje emotikony zkrácených kódů Rumble jako HTML obrázku a meta.plainText zachovává původní text zkráceného kódu.
donation Nové záznamy Rant se objeví v livestreams[].chat.recent_rants. hasDonation nese částku formátovanou v USD; meta obsahuje amount_cents, amount_dollars, a expiresOn.
new_follower Nové záznamy se objeví v followers.recent_followers. Systémová událost s chatname nastavené na uživatelské jméno sledujícího a časové razítko pod meta.followedOn.
new_subscriber Nové záznamy se objeví v subscribers.recent_subscribers. membership se nastavuje na SUBSCRIBER; subtitle zrcadlí zdokumentovanou částku USD, pokud ji Rumble poskytne.
subscription_gift Nové záznamy se objeví v gifted_subs.recent_gifted_subs. chatname je dárce, hasDonation se mění na N Gifted, a meta obsahuje totalGifted, remainingGifts, giftType, a videoId.
follower_update Kdykoli se změní vybrané počítadlo sledujících. meta celočíselný počet sledujících. Výchozí hodnota je followers.num_followers; s ?followerMode=total, používá followers.num_followers_total když jej Rumble poskytne.
subscriber_update Kdykoli subscribers.num_subscribers se změní. meta celočíselný počet předplatitelů.
stream_online / stream_offline Když vybrané živé vysílání přepne mezi stavy živě a offline. meta obsahuje sanitizovanou podmnožinu polí vysílání (id, title, createdOn, popisky kategorií, líbí/nelíbí a celkové počty diváků). Citlivé hodnoty, například stream_key se záměrně nepředávají.
viewer_update Kdykoli livestreams[].watching_now se změní pro vybrané vysílání. meta celočíselný počet současných diváků; vysílá 0 když vybrané vysílání přejde offline, aby se vymazala zastaralá počítadla.

Tento přenos je určen pro kanály, které vlastníte nebo spravujete. Protože URL API obsahuje klíč živého vysílání, nezveřejňujte ji v překryvech, protokolech, snímcích obrazovky ani sdílených profilech prohlížeče. Avatary chatu pocházejí z proudu chatu SSE Rumble, jakmile oficiální API určí ID vysílání; tento přenos nezískává avatary ze stránek Rumble.

YouNow – zachytávání z DOM

Implementace: sources/younow.js

  • Čte vykreslený DOM živého chatu a vysílá standardní data chatu s type: "younow".
  • Řádky aktivity diváků, například is watching, I became a fan!, a invited N fans to this broadcast. jsou označeny pomocí event: true aby je filtry událostí mohly směrovat.
Událost Kdy se spouští Poznámky k datům
message V živém chatu diváků se objeví nové řádky. Standardní data chatu; řádky aktivity fanoušků/diváků nastavují event: true.
viewer_update Viditelný počet v panelu diváků se změní při showviewercount/hypemode je zapnuté. meta celočíselný počet diváků; vysílá 0 když počítadlo zmizí.

Favorited Studio – zachytávání z DOM

Implementace: sources/favorited.js

  • Čte vykreslený DOM živého chatu a vysílá standardní data chatu s type: "favorited".
Událost Kdy se spouští Poznámky k datům
message Objeví se nové řádky chatu. Standardní data chatu.
viewer_update Počet na kartě živých diváků se změní při showviewercount/hypemode je zapnuté. meta celočíselný počet diváků čtený z content-live-viewers kartě.

BEAM – zachytávání z DOM

Implementace: sources/beamstream.js

  • Čte vykreslený DOM živého chatu a vysílá standardní data chatu s type: "beamstream".
Událost Kdy se spouští Poznámky k datům
message Objeví se nové řádky chatu. Standardní data chatu s prostým textem v chatname, URL avataru v chatimga URL obrázků nebo objekty odznaků SVG v chatbadges. Pole skrytá na stránce zachytávání Beam zůstávají prázdná. Nativní odkazy na profily Beam se nepovažují za externí zdroje přeposílání. contentimg může nést vložené přílohy video/webm, pokud jsou zpřístupněny.
viewer_update Prvek počítadla diváků se změní, když showviewercount/hypemode je zapnuté. meta celočíselný počet diváků; vysílá se pouze tehdy, když stránka chatu zpřístupňuje počítadlo diváků.

Castyr – zachytávání z DOM

Implementace: sources/castyr.js

  • Čte nové vykreslené řádky chatu z https://castyr.live/homebeta/popout-chat/* a vysílá standardní data chatu s type: "castyr".
  • Při připojení zdroje se existující historie chatu přeskočí.
Událost Kdy se spouští Poznámky k datům
message Nový .chat-message řádek se objeví. Standardní data chatu se jménem odesílatele, vykresleným obsahem zprávy a barvou jména, pokud je zpřístupněna.
viewer_update Viditelný počet aktivního chatu se změní při showviewercount/hypemode je zapnuté. meta je celé číslo čtené z prvku aktivního chatu Castyr s atributem title.

SOOP – zachytávání z DOM přehrávače

Implementace: sources/sooplive.js. Podporuje sjednocené play.sooplive.com přehrávač a starší play.sooplive.co.kr URL. Dřívější globální rozvržení chatu je nadále rozpoznáváno, pokud je poskytováno.

Veřejný chat vysílá type/platform: "sooplive", prostý text chatname/userid, nameColora sanitizované chatmessage. Stávající řádky, duplicitní ID zpráv, přeložené kopie a soukromé zprávy jsou vyloučeny. Emotikony se mění na bezpečné obrázky nebo alternativní text v režimu pouze textu.

S showviewercount nebo hypemode zapnuté, viewer_update nese celé číslo meta z přehrávače #nAllViewer. Samostatná okna pouze s chatem nemusí tento počet zpřístupňovat. SSApp při otevření odděleného okna používá celý přehrávač, protože současná okna SOOP závisejí na okně, které je otevřelo.

Gosh – zachytávání chatu kanálu

Implementace: sources/gosh.js. Otevřete https://gosh.com/USERNAME s viditelným chatem nebo vložte tuto URL do Přidat jiný zdroj (Add other source) v SSApp. Samostatné okno chatu není nutné.

Nové řádky chatu vysílají type/platform: "gosh", prostý text chatname, nameColora sanitizované chatmessage. Vložené obrázky a GIFy zachovávají bezpečné URL HTTP(S). Při textonlymode, obrázky se mění na alternativní text nebo [image] když není dostupný alternativní text. Avatary, odznaky, dary a členství zůstávají prázdné, pokud v zachyceném řádku chybí.

Udržujte virtualizovaný chat posunutý na nejnovější zprávy. Existující historie, znovu vykreslené řádky a systémová oznámení bez autora jsou vyloučeny. Indexy vykreslení zůstávají interní a nevysílají se jako nativní ID zpráv. Nevyvozují se žádné události sledování, darů, počtu diváků ani moderování.

Livacha – zachytávání chatovací místnosti

Implementace: sources/livacha.js. Otevřete https://livacha.com/chat/ROOM s viditelným chatem nebo vložte URL místnosti do Přidat jiný zdroj (Add other source) v SSApp.

Nové řádky chatu vysílají type/platform: "livacha", prostý text chatname, chatimg, nameColora sanitizované chatmessage. Relativní URL avatarů a vložených obrázků se mění na absolutní URL HTTP(S). Odstavce, konce řádků a seznamy se slučují do jedné zprávy chatu. Při textonlymode, obrázky se mění na alternativní text nebo [image].

ID zpráv se používají interně, aby se znovu nezachytávaly úpravy a znovu vložené řádky. Počáteční historie a starší zprávy přidané na začátek se přeskakují; časová razítka a nabídky reakcí leží mimo zachytávané tělo. Nevyvozují se žádné události darů, členství, moderování ani počtu diváků.

Stream.space – experimentální zachytávání z DOM

Implementace: sources/streamspace.js. Odpovídá pouze https://beta.stream.space/chat-popup.php?channel=USERNAME a odpovídající https://stream.space vyskakovací okno.

Nové vykreslené řádky chatu vysílají type: "streamspace", platform: "streamspace", prostý text chatname/userid, chatmessage, avatar chatimg, úroveň ve formě obrázku chatbadges, a nameColor. Vložené emotikony se znovu sestavují jako bezpečné obrázky nebo jejich alternativní text při textonlymode je zapnuté. Existující historie, uvítací oznámení, náhledy odpovědí a připnuté duplicity jsou vyloučeny.

viewer_update nese celé číslo meta čtené z #popupViewersNum když showviewercount nebo hypemode je zapnuté. Nevyvozují se žádné události darů, členství ani moderování.

Experimentální: samostatné okno beta během kontroly zůstalo na stavu Načítání. SSApp okno načetla a zachytila aktualizace diváků, ale doručování živého chatu a produkční okno zůstávají neověřené. SSN nemůže zachytit zprávy, které web nevykreslí.

w.tv a Prime – zachytávání z DOM

Implementace: sources/wtv.js na https://w.tv/USERNAME/chat a sources/prime.js na https://prime.gs/USERNAME?chat_popout=1.

Nové řádky chatu používají type/platform z wtv nebo prime, prostý text chatname, nameColora sanitizované chatmessage. Vložené emotikony se mění na bezpečné obrázky nebo alternativní text v režimu pouze textu. Prime také obsahuje pole řádku userid a podporuje odkazy na profily přihlášených i popisky uživatelských jmen nepřihlášených. Avatary a odznaky zůstávají prázdné, pokud nejsou dostupné v ověřené struktuře řádku.

Počáteční historie, připnuté karty a náhledy odpovědí jsou vyloučeny. w.tv používá virtualizovaný chat: pro zachytávání jej udržujte posunutý na nejnovější zprávy. Jeho testovací ID v DOM jsou indexy vykreslení, nikoli nativní ID zpráv. Prime přeskakuje starší historii načtenou nad počátečními zprávami a zástupné prvky ignorovaných uživatelů.

Ani jedno samostatné okno nezpřístupňuje ověřený počet diváků vysílání, takže tyto adaptéry nevysílají aktualizace diváků ani nevyvozují události darů, předplatného nebo moderování.

Sjednocení událostí napříč platformami

Tato tabulka vysvětluje, jak se podobné pojmy mapují napříč platformami. Kde je to možné, nové zdroje by měly odpovídat společným názvům událostí v prvním sloupci.

Pojem YouTube WS Twitch WS Kick WS
Nový člen/předplatitel sponsorship new_subscriber new_subscriber
Obnovení/opakované předplatné resub resub resub
Darovaná předplatná giftpurchase subscription_gift subscription_gift
Přijatý dárek giftredemption - -
Milník membermilestone - -
Dar/spropitné superchat, supersticker, jeweldonation s hasDonation cheer (bity) donation
Nový sledující new_follower (pravidelně dotazované)* new_follower new_follower
Počet diváků viewer_update viewer_update viewer_update
Počet sledujících - follower_update follower_update
Počet předplatitelů subscriber_update subscriber_update -
Stav vysílání live_chat_ended stream_online/stream_offline stream_online/stream_offline
Raid - raid -
Uplatnění odměny - reward reward

Poznámky ke sjednocení

  • YouTube používá sponsorship pro nové členy, zatímco Twitch a Kick používají new_subscriber. Při vytváření spouštěčů napříč platformami zvažte kontrolu obou.
  • resub je konzistentní na všech třech platformách pro obnovení.
  • Události dárků se liší: YouTube používá giftpurchase/giftredemption, zatímco Twitch a Kick používají subscription_gift.
  • Dary se podle platformy liší: YouTube používá konkrétní názvy placených událostí, například superchat, supersticker, a jeweldonation s hasDonation; Twitch má bity (cheer); Kick má spropitné (donation).
  • new_follower je nyní konzistentní na všech třech platformách, ale YouTube dotazuje nedávné odběratele a může vracet zpožděné nebo neúplné výsledky.
  • Označení To se mi líbí a reakce mají samostatné kontrakty: jednotlivé liked/like události se dostanou do překryvu reakcí, pokud nejsou globálně odfiltrovány, a do hlavního zpracování vstupují pouze při capturelikeevent je zapnuté. Vizuální nebo nativní platformové reaction události zachovávají směrování definované zdrojem. Souhrnné likes_update počítadla jsou samostatně ovládána pomocí captureliketotals.

Rozsah podpory a omezení kompatibility

Tato příručka popisuje implementovaná data, nikoli záruku, že každá platforma doručí každou událost. Prázdné hasDonation ve zdroji nedokládají podporu darů. O tom, co se přijme, stále rozhodují viditelnost DOM, oprávnění účtu, přepínače zachytávání a dostupnost API. Předávání smazání je specifické pro zdroj; nepředpokládejte univerzální synchronizaci moderování.

Sledované nesoulady a mezery

Dvojice/Oblast Zjištěný nesoulad / mezera Dopad
Twitch: Standard a WebSocket Společné: reward, subscription_gift, viewer_update, hype_traina volitelně zapnuté watch_streak. Pouze Standard: giftpurchase, knock, community_highlight. Pouze WebSocket: new_subscriber, resub, cheer, powerup, raid, new_follower, follower_update, subscriber_update. channel_points je nyní zastaralý alias pro uplatnění odměn Twitch; nové integrace by se měly řídit podle reward.
Kick: Standard a WebSocket Standard vysílá jednoduché značky (gift, reward, logická hodnota true, viewer_update). WebSocket přidává oficiální události sledování, předplatného, darování, uplatnění odměn, KICKs, moderování a stavu vysílání. Zachovává kompatibilní zpracování staršího raid data, ale Kick v současnosti nenabízí oficiální odběr raid/host. Režim WebSocket je bohatší; automatizace postavené na názvech událostí pouze režimu Standard je při přepnutí potřeba zkontrolovat. Nevyžadujte událost raidu Kick.
YouTube: Standard a WebSocket Společné: superchat, supersticker, jeweldonation, sponsorship, resub, giftpurchase, giftredemption, viewer_update. Pouze Standard: thankyou, redirect. Pouze WebSocket: membermilestone, new_follower, subscriber_update, view_update, likes_update (volitelně zapnuté). Základní názvy členství/událostí jsou u obou sjednocené; Super Chat, Super Sticker a Jewels používají hasDonation, zatímco nákupy/uplatnění darovaných členství nikoli.
Všechna rozhraní Mnoho zdrojů vyplňuje hasDonation bez nastavení data.event. To je správně; vykreslování darů by se mělo řídit podle hasDonation, s data.event vyhrazeno významu systému/událostí.

Aliasy a starší názvy specifické pro zdroje

Tato mapování platí pro uvedený zdroj/kontext, nikoli jako globální náhrady. Podpora aliasů u příjemců se liší podle stránky. Současné zdroje TikTok DOM a TikFinity stále vysílají followed; Velora používá subscription a channel_pointsa Streamlabs používá subscription. Přijímejte současný kontrakt zdroje a jeho příslušné starší aliasy místo přejmenovávání všech odpovídajících událostí.

Alias / Starší název Kanonická náhrada Kontext
subscriptionnew_subscriberNové předplatné Twitch/Kick
subgiftsubscription_giftDarované předplatné Twitch
membershipsponsorshipNový člen YouTube (obecné)
new_membersponsorshipNový člen YouTube
new_membershipsponsorshipNový člen YouTube
newmembersponsorshipNový člen YouTube
new-membershipsponsorshipSkript získávání z DOM YouTube (varianta se spojovníkem)
upgraded_membershipresubPřechod na vyšší úroveň YouTube
upgraded-membershipresubSkript získávání z DOM YouTube (varianta se spojovníkem)
membership_upgraderesubPřechod na vyšší úroveň YouTube
membership_milestonemembermilestoneZpráva milníku YouTube
member_milestonemembermilestoneZpráva milníku YouTube (varianta s podtržítkem)
gift_membershipgiftpurchaseBalíček dárků YouTube
membership_giftgiftpurchaseBalíček dárků YouTube
giftmembershipsgiftpurchaseBalíček dárků YouTube (varianta v množném čísle)
gifted_membershipgiftredemptionPřijatý dárek YouTube
gifted_membershipsgiftpurchaseBalíček dárků YouTube (varianta v množném čísle)
community_giftgiftpurchaseBalíček komunitních dárků
channel_pointsrewardUplatnění odměny Twitch WebSocket (starší alias)
followednew_followerSoučasný výstup TikTok DOM/TikFinity; při kombinování režimů zachytávání TikTok přijímejte oba názvy.

Používání této příručky

  • Při přidávání nové události znovu použijte stávající názvosloví (subscription_gift, viewer_updateatd.), kdykoli je to možné. Pokud je odchylka nevyhnutelná, zdokumentujte ji zde spolu s důvodem.
  • Ponechte data.meta předvídatelné: upřednostňujte ploché klíče, nikdy nepřetěžujte řetězce směsí dat a vždy uvádějte jednotky (currency, bits, duration).
  • Tuto stránku aktualizujte spolu se změnami dat událostí; pokyny pro agenty aktualizujte pouze při změně společných vývojových pravidel.
  • Změny dat ověřujte jak u vysílajícího zdroje, tak u přijímajícího překryvu nebo spouštěče Event Flow.
  • Zachytávání závisí na podpoře zdroje a nastavení. Chcete-li skrýt řádky označené jako události v doku nebo překryvech vybrané zprávy, přidejte &hideevents nebo &hideallevents. Vybrané události skryjete pomocí &filterevents=subscription_gift,new_follower,gifted.
  • Pro YouTube, Twitch a Kick zapněte Režim WebSocket pro nejširší podporu událostí specifických pro platformu. Zachytávání dárků/darů YouTube (včetně dárků a Super Chat) je dostupné v režimech Standard i WebSocket; WebSocket přidává další typy událostí. Přesná podpora se stále liší podle platformy, role účtu a udělených rozsahů oprávnění.

Zpět nahoru

Překryvy zpeněžení

Spropitná NinjaBacker používají platform: "ninjabacker", type: "ninjabacker", chatname, prostý text chatmessage, textonly: true, s předponou zdroje id, formátované hasDonationa číselné donoValue. Jde o běžné řádky typu daru bez event přepsání. meta.ninjabacker obsahuje ISO currency a v hlavních měnových jednotkách amount. Anonymní spropitná používají zobrazované jméno Anonymous. Zdroj používá buď živé SSE (bez opakovaného přehrání), nebo volitelně zapnutý přijímač podepsaných webhooků v SSN API (až sedm dní doručování z fronty). Spolehlivá doručení používají stabilní ninjabacker:delivery:DELIVERY_ID ID. Ani jeden režim nepřijímá storna vrácených plateb/sporů. Přihlašovací údaje přijímače a tajné podpisové klíče nikdy nevstupují do dat událostí. Hodnoty callbackId ovládané volajícím nejsou identitou platby a nepředávají se. Testovací spropitná z řídicího panelu jsou vyloučena z řádků darů. Vysílají event: "monetization_test" s meta.ninjabackerTest obsahující id a at (unixové milisekundy), pouze pro vyhrazené upozornění náhledu.

event: "monetization_update" je snímek pouze s metadaty z type/platform: "socialstream". meta.monetization.wishlist obsahuje enabled, qr, position, rank, total, veřejné url a aktuální položku (name, amount, currency, image, veřejné url) nebo null. meta.monetization.ninja obsahuje enabled, qr, position, username a veřejné url pro spropitné. Soukromá Tip ID nejsou nikdy zahrnuta. meta.monetization.ebay obsahuje enabled, qr, position, display (cycle/cheapest/first), seconds, volitelně zapnutá nastavení oznámení a veřejné items. Každá položka má id, name, amount, currency, image, url, auction, startingBid, endsAt, available, bought a updatedAt. Časy jsou unixové milisekundy. Neobsahuje přihlašovací údaje prodejce ani identitu kupujícího.

Nákup ze seznamu přání potvrzený hostitelem také obsahuje meta.wishlistPurchase s id, name, volitelným supporter a at (unixové milisekundy). Jde o potvrzení hostitele, nikoli platební oznámení Amazonu, a nezapočítává se jako peněžní dar. Překryvy by měly odstraňovat duplicity podle id a ignorovat stará oznámení o nákupu.

Zaplacené objednávky Shopify

Volitelný přijímač podepsaných zpráv Shopify vysílá platform/type: "shopify" a event: "purchase" pouze pro orders/paid s financial_status: "paid", kladný součet, test: false, bez zrušení a s aktuálním časovým razítkem aktualizace podepsaného těla. Testovací, nezaplacená, zastaralá či zrušená oznámení a oznámení vrácení peněz nevysílají akce nákupu. Záměr darování se nevyvozuje.

chatname je Anonymous; zákaznická pole, soukromé poznámky a URL objednávek jsou vyloučeny. chatmessage je prostý text s textonly: true; subtitle obsahuje až tři veřejné názvy produktů. meta.commerce obsahuje orderTotal a currency v měně obchodu a quantity když je znám úplný platný počet. Příjemce a fyzický/digitální účel zůstávají nenastavené. Žádné hasDonation nebo donoValue je nastaveno. id je stabilní neprůhledný hash omezený na obchod/objednávku s předponou Shopify; nejde o nezpracovaný identifikátor objednávky.

Nákupy používají stávající aktivitu, kategorii Purchase v multi-alerts a cesty Event Flow. Propagace produktů používá stávající meta.monetization.commerce katalog. Import produktu nebo nastavení jeho propagačního popisku na Gift nevytváří událost nákupu ani dárku. Nastavení Shopify a omezení doručování.

Dárky a obchod

Použijte event: "gift" pro dárek, giftcontribution pro placenou podporu na dárek, giftfunded pro dokončení financování a purchase pro prodej produktu. Tyto názvy jsou nezávislé na poskytovateli i na tom, zda je položka fyzická nebo digitální. Starší giftpurchase událost pro darovaná členství; Throne tento název dříve používal nesprávně a nyní vysílá gift. Stávající zdroje členství zůstávají beze změny. Vlastní filtry názvů událostí Throne by měly přejít na gift; filtry darů nepotřebují změnu.

hasDonation zůstává signálem kompatibility pro placenou podporu, s donoValue obsahující dodanou nebo odhadovanou hodnotu USD. Dárky a příspěvky tato pole zachovávají. Dokončení financování obě pole vynechává, aby se příspěvky nezapočítaly dvakrát. Běžné prodeje produktů je ve výchozím stavu vynechávají, čímž zachovávají kontrakt eBay. Záměr darování nevyvozujte z obchodu, URL seznamu přání ani fyzické položky: nákup pro kupujícího nebo jiného příjemce zůstává prodejem, pokud zdroj výslovně neoznačí darování tvůrci.

Volitelné sdílené meta.commerce pole jsou recipient (creator, buyer, other), itemType (physical, digital, service), quantity (kladný počet položek), currency (měna ISO), goalAmount (cílová částka financování v hlavních měnových jednotkách, nikdy nový příjem) a orderTotal (známá celková zaplacená částka objednávky v hlavních měnových jednotkách; obchod, nikoli příjem z darů). Neznámé údaje vynechte. Názvy položek ponechte v subtitle, obrázky v contentimga text podporovatele v chatmessage. Stávající metadata poskytovatelů zůstávají dostupná. Throne dodává příjemce a měnu, při dokončení také goalAmount; eBay dodává množství. Ani jeden neodhaduje typ položky ani nezpřístupňuje soukromé informace příjemce.

Přehled aktivity zobrazuje tyto události i bez textu podporovatele. Multi-alerts používá pro dárky a příspěvky prezentaci darů, včetně samostatného oznámení Gift Fully Funded bez peněžní hodnoty. Nákupy mají samostatnou kategorii Purchase, ve výchozím stavu zapnutou, s purchasestyle, purchasesound, purchaseaccent, a disablepurchases ovládání přes URL. Upozornění na nákupy nemění součty darů.

Event Flow nabízí tyto názvy událostí ve spouštěčích Typ události (Event Type) a Jiná událost (Other Event). Spouštěče darů stále kontrolují hasDonation; spouštěče Gift Sub zachovávají význam členství. Compare Property přijímá vnořené cesty, například meta.commerce.recipient. Šablony akcí podporují {meta.commerce.quantity} a {meta.commerce.currency}, spolu se stávajícím {donation}, {subtitle}, a {meta}. Vnořené cesty rozlišují velikost písmen, chybějící hodnoty se vykreslí prázdné a procházení prototypu je zakázáno.

Obchodní webhooky tvůrců a propagační překryvy

Veřejné platby Donation v Ko-fi zachovávají hasDonation a získávají USD donoValue. Platby za předplatné používají new_subscriber nebo resub, s úrovní v membership. Shop Order a Commission používají purchase bez hodnot darů. Soukromé události Ko-fi zůstávají vyloučeny. JSON kódované jako formulář se dekóduje jednou; jména a zprávy jsou prostý text.

Buy Me a Coffee donation.created zachovává peněžní podporu; extra_purchase.created a commission_order.created se mění na purchase. wishlist_payment.created se mění na giftcontribution pouze s částkou dané platby; meta.commerce.completed zaznamenává příznak dokončení poskytovatele bez vyslání dalšího peněžního řádku. membership.started se mění na new_subscriber s úrovní v membership, již nesprávně nepoužívá hasDonation pro název úrovně. Částka při zahájení předplatného se sama o sobě nepovažuje za uhrazenou platbu. Testovací, vrácené, neúspěšné a nepodporované aktualizační události či události životního cyklu nevytvářejí upozornění na platby. Skryté poznámky podporovatelů se vynechávají.

Fourthwall podporuje ORDER_PLACED (purchase), GIFT_PURCHASE (gift, příjemce other), DONATION (běžný řádek daru) a SUBSCRIPTION_PURCHASED (new_subscriber). Stávající součty objednávek si zachovávají hasDonation kvůli zpětné kompatibilitě, označené meta.commerce.legacyDonationValue: true; jde o výslovnou výjimku z výchozích pravidel pro nové prodeje produktů. Objednávky s uplatněnými dárkovými kartami vysílají upozornění na nákup bez hodnoty daru: novou platbu nelze z celkové částky objednávky spolehlivě odvodit a nákup dárku již byl započten. Fakturační jména a e-mailové adresy se nepoužívají pro veřejnou identitu. Testovací události z řídicího panelu a aktualizace objednávek nevytvářejí upozornění na platby.

Tyto adaptéry zachovávají stávající přeposílání, akce botů, Event Flow a směrování do cílových míst, s meta.webhookId odstraňování duplicit. Zpřístupňují veřejná jména, zprávy v prostém textu, známé názvy položek v subtitlea ISO meta.commerce.currency spolu s číselnými hodnotami darů, kde je to relevantní. Nepřidávají účtování vrácených plateb ani nové ověření přijímače; použijte stávající nakonfigurovanou cestu webhooku poskytovatele.

meta.monetization.commerce v monetization_update obsahuje enabled, qr, position, display (first/cycle), seconds a veřejné pole items. Každá položka má name, url, image, volitelné amount (null, pokud není známo), currency a purpose (shop/gift/support/membership). Jde o propagační údaje zadané hostitelem, nikoli doklad o platbě. Přidání nebo úprava položek nevysílá událost daru ani nákupu. Obecný překryv používá mode=commerce; view=both|showcase|card|alerts odděluje propagaci od aktivity. Volitelné parametry URL style, scale, cardevery, cardfor a onlytype řídí prezentaci. Stávající režimy poskytovatelů také přijímají ovládání view a plánování. Viz průvodce nastavením.

Události dárků Throne

Volitelně zapnutá integrace Zpeněžení předává podepsané události Throne s platform a type nastavené na throne. Všechny tři používají stabilní doručovací id, prostý text chatname, chatmessage s textonly: true, název položky v subtitlea volitelný náhled HTTPS v contentimg.

událostVýznamČástka daru / pořadí
giftZakoupený dárekhasDonation a USD donoValue; pořadí dárku +1
giftcontributionPříspěvek na dárekPouze částka příspěvku; bez zvýšení pořadí
giftfundedDokončené společné financování dárkuNe hasDonation nebo donoValue, čímž se zamezí dvojímu započítání předchozích příspěvků; pořadí dárku +1

meta.throne obsahuje itemName, creator (veřejné uživatelské jméno), completed, currency a v hlavních měnových jednotkách amount. Pro giftfunded, částka popisuje cíl, nikoli nový příjem. Anonymní dárci zůstávají Anonymous; dokončené komunitní dárky používají Community. Soukromá platební a dodací pole se nikdy nepředávají.

monetization_update snímky navíc obsahují meta.monetization.throne: enabled, username, url, qr, position, rank, a gifts. Tyto snímky neobsahují URL webhooku ani přihlašovací údaj pro naslouchání.

Hlasové příkazy hostitele (náhled pro desktop)

Event Flow Když řeknu… přijímá důvěryhodné místní mikrofonní příkazy z SSApp. Jeho interní kontext akce používá chatname: "Host", type: "hostvoice", rozpoznanou frázi v chatmessage, a textonly: true. Nejde o příchozí událost platformy ani nový přenos chatu. Odeslání těchto polí přes chat nemůže aktivovat hlasový spouštěč.

Vyžaduje aktualizované desktopové sestavení, výslovné zapnutí mikrofonu a zapnutí akcí po režimu Test. Viz nastavení náhledu a stav ověření.

Ovládání zobrazení produktů

Stávající monetization_update snímky mohou obsahovat meta.monetization.commerce.live: null pro uložený plán nebo {mode: "show" | "hide", url?: "https://...", until: 0 | epochMilliseconds}. Show porovnává přesnou uloženou URL produktu; chybějící produkt nezobrazí žádnou kartu. Kladné until po vypršení vrátí uložený plán; nula trvá až do změny nebo restartu SSN. Hide potlačuje propagaci, nikoli upozornění na placenou aktivitu.

commerce.viewerURL je publikovaná URL obchodu pouze pro čtení nebo prázdný řetězec. Pokud existuje, propagační QR kódy směřují na ni. Nikdy neobsahuje relaci SSN ani publikační klíč. Produkty zůstávají v commerce.items. Ovládání zobrazení, importy ani publikování nevysílají události daru/nákupu. Viz Ovládání produktů pro použití v Event Flow a vzdáleném API.

Event Flow commerceControl čeká na přímou odpověď/odpověď Chrome (až osm sekund). U běžných dat události zachovává událost a přidává meta.commerceControlResult: {success: true, commerce: controlState} nebo {success: false, error: "..."}. U existujícího číselného, polem tvořeného nebo jiného neobjektového meta, metadata zůstávají beze změny a diagnostika se vrací jako commerceControlResult místo toho ve výsledku akce. Neúspěšné ovládání zastaví další akce v daném řetězci, aniž by potlačilo původní platební událost. Vypršení časového limitu nedokazuje, že se ovládací příkaz neprovedl; před opakováním relativního příkazu, jako je Next, zkontrolujte stav. Úspěch potvrzuje místní stav výběru/skrytí/plánu, nikdy viditelnost OBS nebo synchronizaci veřejné stránky.

Pojmenované pracovní postupy Stream Deck / API

Tento spouštěč pojmenovaného pracovního postupu vytváří interní zprávu Event Flow s type: "api", event: "workflow_trigger", chatname: "Stream Deck / API", prázdné chatmessage, a textonly: true. Jeho meta.workflow objekt obsahuje název spouštěče a JSON dodané volajícím data objekt. Hodnoty čtěte prostřednictvím šablon, například {meta.workflow.data.minutes}. Vyhodnocují se pouze uložené a zapnuté scénáře výslovně odpovídající tomuto spouštěči. Nejde o příchozí událost diváka/chatu a nevysílá se jako chat; zkopírování těchto polí do chatu neaktivuje pojmenovaný spouštěč.

Pilot diváckého NinjaChatter

Experimentální spárovaný konektor rozšíření odesílá řádky pouze pro zobrazení s type: socialstreamchat, platform: ninjachatter, a textonly: true. meta.ninjachatter nese origin: audience, popisné providera veřejné room ID. Tyto řádky obcházejí odpovědi platformy, boty, spouštěče Event Flow a body. Zobrazený poskytovatel nepředstavuje autorizaci. Starší zachytávání zdroje NinjaChatter obsahuje meta.ninjachatter.room pro potlačení duplicit specifické pro místnost.

Cheer používá samostatnou ověřenou cestu požadavku a výsledku, nikdy zvláštní příkaz chatu. Pevná předvolba vysílá stávající příkaz překryvu Actions show_text zprávu po dobu tří sekund. Její přijetí znamená přijetí přenosem, nikoli ověřené zobrazení v OBS. Žádná data od diváků nemohou vybírat libovolné akce. Pilot je v NinjaChatter ve výchozím stavu vypnutý; Electron zachovává stávající přeposílání, dokud nebude ověřena nová hranice soukromého párování.

Prodejní tabule míst a nedávné prodeje

Stávající monetization_update událost (type/platform: socialstream) také obsahuje meta.monetization.boards. Jeho board obsahuje title, style (spots/teams), columns (1–20), visiblea až 120 spots. Každé místo má řetězcové id, prostý text label, status (available/claimed/revealed) a result (prostý text, prázdný až do odhalení). Obsazení a odhalení jsou stavy zobrazení zadané hostitelem, nikoli doklad o nákupu nebo náhodné přiřazení.

boards.sales obsahuje až 100 nedávných záznamů: id, title, volitelné amount (null, pokud není známo), currency, quantity, source, a at (unixový čas v milisekundách v okamžiku záznamu). automatic zapíná shromažďování, salesVisible ovládá zobrazení a revision se zvyšuje při změnách. Automatické shromažďování přijímá pouze purchase události ze Shopify, účtu prodejce eBay, Fourthwall, Ko-fi a Buy Me a Coffee; soukromé/testovací události jsou vyloučeny. Metadata aukcí, spropitná, dárky ani obsazení míst nepovažuje za nákupy. Automatické záznamy nenahrazují cenu položky součty objednávek, cenami nabídek ani částkami darů. Ruční záznamy používají source: "Host confirmed".

Stav přetrvává v soukromém úložišti zpeněžení této instalace; veřejné snímky vylučují ID pro odstranění duplicit doručení, identitu kupujícího a tajné údaje. Výslovně zobrazované prodeje si uchovávají ID událostí pro odstranění. Vrácení peněz vyžaduje odstranění hostitelem. Duplicitní ID nákupů se pamatují samostatně (až 2 000), a to i po vymazání viditelné historie. Stávající getCommerceState odpověď obsahuje commerce.boards; commerceControl přijímá příkazy tabulí/prodejů zdokumentované v průvodci tabulemi. Ruční úpravy vysílají aktualizovaný stav, ale nikdy nevytvářejí události nákupu, součty darů ani placené odměny. Překryvy se skryjí, pokud 35 sekund nepřijde snímek hostitele.

Doplňky pracovního postupu prodejce: commerce.boards.board.id identifikuje generaci tabule. Ruční saleAdd může dodat boardId a spotId pro atomické zaznamenání prodeje a obsazení daného místa; duplicitní propojené prodeje dosud v nedávné historii se odmítají. saleRemove s reopenSpot: true uvolní dané místo pouze tehdy, pokud generace tabule stále souhlasí. Veřejné záznamy prodejů vynechávají tato propojovací pole pro obsluhu. Volitelné platform u ručního prodeje zachovává jeho zdroj pro filtrování, zatímco source: "Host confirmed" identifikuje způsob potvrzení. amount je celková částka záznamu včetně jeho quantity. Pole adaptéru zaplacených objednávek eBay meta.ebayPurchase.quantity zůstává zachováno.

salesSettings.auctionSource zapíná pomocníka předmětu Whatnot nebo eBay Live. Pole odpovědi ovládání commerce.auction obsahuje pouze source, title, priceText, status a at z poslední zachycené auction_updatenebo null. Vyprší po pěti minutách a vymaže se při změně zdroje, neaktivním snímku nebo restartu. Pomocník je určen pouze obsluze: neukládá se trvale ani není součástí vysílání divákům; identita přihazujícího/vítěze se zahazuje. Zdrojové skripty a data aukčních událostí zůstávají beze změny. Zkopírování návrhu nepotvrzuje platbu ani nevytváří prodej.