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í.
Na této stránce
Přejděte na společná pravidla polí, implementaci platformy nebo poznámky ke kompatibilitě na konci.
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.
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.platform | string (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.id | string | 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.donoValue | number (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.chatbadges | array | 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á. |
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ář |
sponsorship | new_sponsor | Nový člen přes newSponsorEvent |
sponsorship | new_member | Nový člen přes processMembership |
resub | renewed_member | Obnovení členství |
resub | upgraded_member | Přechod na vyšší úroveň |
giftpurchase | gift_giver | Darovaná členství v kanálu |
giftredemption | gift_recipient | Přijaté darované členství |
membermilestone | member_milestone | Zprá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ězec | Vždy twitch. |
event | řetězec | Vždy hype_train. |
meta.phase | řetězec | begin, progress, nebo end. |
meta.id | řetězec | Stabilní ID vlaku. Použijte je pro vytvoření nebo aktualizaci jednoho viditelného widgetu vlaku. |
meta.broadcasterUserId | řetězec | ID uživatele vysílatele Twitch. |
meta.broadcasterUserLogin | řetězec | Přihlašovací jméno vysílatele Twitch. |
meta.broadcasterUserName | řetězec | Zobrazované jméno vysílatele Twitch. |
meta.total | number | null | Celková hodnota podpory hlášená Twitchem pro daný vlak. |
meta.progress | number | null | Aktuální postup k cíli úrovně. |
meta.goal | number | null | Cíl aktuální úrovně. |
meta.progressPercent | number | null | Náhradní procento z DOM, když Twitch zpřístupní pouze viditelný ukazatel průběhu v samostatném okně. |
meta.level | number | null | Aktuální nebo konečná úroveň vlaku. |
meta.topContributions | array | Největší přispěvatelé. Každý záznam obsahuje userId, userLogin, userName, typea číselné total. |
meta.lastContribution | object | null | Nejnovější příspěvek se stejnou strukturou příspěvku jako topContributions. |
meta.sharedTrainParticipants | array | Nezpracovaná 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.isSharedTrain | logická hodnota | True, pokud Twitch označí vlak jako sdílený. |
meta.trainType | řetězec | Obvykle regular; vlaky Treasure se zde zpřístupňují, když je tak Twitch označí. |
meta.allTimeHighLevel | number | null | Nejvyšší historická úroveň vlaku, pokud ji Twitch poskytne. |
meta.allTimeHighTotal | number | null | Nejvyšší historický součet vlaku, pokud jej Twitch poskytne. |
meta.sourceMode | řetězec | Volitelné označení zdroje, například dom. |
meta.eventSubType | řetězec | Pů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_follower | Uživatel začal sledovat kanál |
new_subscriber | Nové předplatné |
resub | Obnovení předplatného se zprávou |
subscription_gift | Darovaná předplatná kanálu |
cheer | Fandění pomocí bitů |
powerup | Použití vestavěného nebo vlastního Power-up |
reward | Uplatnění bodů kanálu |
raid | Příchozí raid |
viewer_update | Počet současných diváků |
follower_update | Celkový počet sledujících |
subscriber_update | Celkový počet předplatitelů |
stream_online | Vysílání začalo |
stream_offline | Vysílání skončilo |
ad_break | Začátek reklamní přestávky |
hype_train | Metadata stavu Hype Train/Treasure Train |
user_banned | Už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_follower | Uživatel začal sledovat kanál |
new_subscriber | Nové předplatné |
resub | Obnovení předplatného |
subscription_gift | Darovaná předplatná |
reward | Uplatnění odměny kanálu nebo zpráva chatu/systému typu odměny |
donation | Událost spropitného/podpory |
gift | Událost dárku KICKs |
raid | Starší vstup host/raid pouze kvůli kompatibilitě; nejde o současné oficiální přihlášení k událostem Kick |
follower_update | Celkový počet sledujících |
stream_online | Vysílání začalo |
stream_offline | Vysílání skončilo |
user_banned | Už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 hasDonation | Viditelný řádek Rant obsahuje cenu. | hasDonation zachovává vykreslenou cenu; nepřidává se žádná značka události daru. |
raid | V 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í.
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 |
subscription | new_subscriber | Nové předplatné Twitch/Kick |
subgift | subscription_gift | Darované předplatné Twitch |
membership | sponsorship | Nový člen YouTube (obecné) |
new_member | sponsorship | Nový člen YouTube |
new_membership | sponsorship | Nový člen YouTube |
newmember | sponsorship | Nový člen YouTube |
new-membership | sponsorship | Skript získávání z DOM YouTube (varianta se spojovníkem) |
upgraded_membership | resub | Přechod na vyšší úroveň YouTube |
upgraded-membership | resub | Skript získávání z DOM YouTube (varianta se spojovníkem) |
membership_upgrade | resub | Přechod na vyšší úroveň YouTube |
membership_milestone | membermilestone | Zpráva milníku YouTube |
member_milestone | membermilestone | Zpráva milníku YouTube (varianta s podtržítkem) |
gift_membership | giftpurchase | Balíček dárků YouTube |
membership_gift | giftpurchase | Balíček dárků YouTube |
giftmemberships | giftpurchase | Balíček dárků YouTube (varianta v množném čísle) |
gifted_membership | giftredemption | Přijatý dárek YouTube |
gifted_memberships | giftpurchase | Balíček dárků YouTube (varianta v množném čísle) |
community_gift | giftpurchase | Balíček komunitních dárků |
channel_points | reward | Uplatnění odměny Twitch WebSocket (starší alias) |
followed | new_follower | Souč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álost | Význam | Částka daru / pořadí |
|---|
gift | Zakoupený dárek | hasDonation a USD donoValue; pořadí dárku +1 |
giftcontribution | Příspěvek na dárek | Pouze částka příspěvku; bez zvýšení pořadí |
giftfunded | Dokončené společné financování dárku | Ne 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.