Canlı Olay Başvurusu

Bu sayfa, Social Stream Ninja'nın başlıca platformlar için gönderdiği standart olay yüklerini belgeler. Yeni kaynaklar bağlarken, entegrasyon sorunlarını giderirken veya arayüz etiketlerini uyumlulaştırırken bunu ortak doğruluk kaynağı olarak kullanın. Tüketicilere yönelik daha kısa bir tablo için bkz. Olaylar ve Uyarı Uyumluluğu.

Önemli: Olay kullanılabilirliği kaynağa, izinlere ve yakalama ayarlarına bağlıdır. Panelde veya öne çıkarılan katmanlarda olay işaretli satırları gizlemek için şunu ekleyin: &hideevents veya &hideallevents. Seçilen olayları gizlemek için şunu kullanın: &filterevents=subscription_gift,new_follower,gifted. Bu filtreler şu alanı taşıyan ücretli satırları da gizleyebilir: event; olay işareti olmayan sıradan bağış satırları olay filtreleriyle eşleşmez. Diğer mesaj filtreleri uygulanmaya devam eder.
Yakalama yöntemini seçin: YouTube, Twitch ve Kick için WebSocket modu genellikle daha geniş olay kapsamı sağlar. Standart DOM yakalama, sayfada gerçekten görüntülenen satırları ve kartları okur. YouTube Super Chat, Super Sticker ve Jewel hediyelerinin iki modda da yakalama yolları vardır; diğer hediye, bağış ve üyelik olayları kaynağa göre değişir. Desteklenen yollar ve gerekli ayarlar için platform tablolarına bakın.
Otomasyon mu Oluşturuyorsunuz? Şuna göz atın: Etkinlik Akışı Kılavuzu bu olay yüklerini özel tetikleyicilerde, uyarılarda ve iş akışlarında nasıl kullanacağınızı öğrenmek için. Kılavuz şu öğeyi içerir: Şablon Değişkenleri Başvurusu metin biçimlendirmesi için.
Yük biçimi: Bağış türü sohbet satırları şunu kullanmalıdır: hasDonation ve isteğe bağlı donoValue. Şunu ayarlamayın: event: "donation" sırf normal bir sohbet/bağış satırının değeri var diye ayarlamayın; belirli olay adlarını yalnızca şu örnekler gibi gerçek platform eylemleri veya ücretli öğe türleri için kullanın: superchat, supersticker, gift, veya jeweldonation. Kullanın: meta yalnızca tüketicilerin gerçekten ihtiyaç duyduğu ve mevcut alanların henüz kapsamadığı ek yapılandırılmış veriler için.

Özelliklerin Kullanılabilirliğine Hızlı Bakış

Her yakalama yönteminin şu anda hangi uyarı türlerini sağladığını görmek için bu tabloyu kullanın. Ayrıntılı yük notları aşağıdadır.

Özel Çoklu Yayın Uyarı Kutusu, canlı olayları altı temel uyarı kategorisine ayırır: Follow, Subscription/Member, Donation, Bits/Cheers, Raid/Host, ve Purchase, ayrıca iki isteğe bağlı kategori (Auction ve Hype Train) URL parametreleriyle etkinleştirilir. Bu kategorileri mevcut alandan türetir: event, membership, subtitle, hasDonation, ve meta burada belgelenen alanlardır; ayrı bir yük biçimi gerekmez.

Kaynak Yeni Aboneler / Üyeler Yeni Takipçiler Bağışlar Sayılar ve Ekler
YouTube (Data API köprüsü) Üyeliğe katılma, yenileme ve hediyeler Bireysel abone uyarıları* + toplamlar Super Chat ve Super Sticker İzleyici, abone ve görüntüleme toplamları (yoklama ile)
Twitch – DOM yakalama Hediye paketi satırları ve hediye alıcısı bildirimleri - Şu alanla işaretlenen Bits: hasDonation İzleyici sayısı, ödül kartları ve topluluk vurgu kartları
Twitch – EventSub/Websocket Anlık abonelikler, yenilemeler ve hediyeler Anlık takipler + toplam takipçi sayısı Cheers, Power-ups ve kanal puanı kullanımları İzleyici/abone/takipçi toplamları, yayın durumu, reklam bildirimleri
TikTok Live - Takip kartları (TikTok gösterdiğinde) Toplam jeton sayısına dönüştürülmüş hediyeler İzleyici sayısı, katılma uyarıları ve beğeni fırtınaları
YouNow - Hayran ve izleyici etkinliği - Canlı izleyici panelinden izleyici sayısı
Favorited Studio - - - Canlı izleyiciler sekmesinden izleyici sayısı
Whatnot - - - İzleyici sayısı, katılma uyarıları, canlı açık artırma meta verileri, ürünler ve çekiliş anlık görüntüleri
eBay Live - - - İzleyici sayısı, takipçi sayısı, canlı etkinlik kartı anlık görüntüleri, açık artırma altbilgi meta verileri (sunulduğunda), tepki kalpleri ve yaklaşan etkinlik meta verileri
Streamlabs Uyarı Kutusu Abonelikler, hediyeler, sponsorlar, takipler Cheer/bits, bağışlar (para birimiyle) Cheer/bits, bağışlar (hasDonation) Bir uyarı kutusu açıkken; ayrıca şu yolla kullanılabilir: sources/websocket/streamlabs.html soket belirteci
OBS Flow Actions - - - Şu koşulda Etkinlik Akışı için OBS çıkış, sahne, tekrar arabelleği ve medya bitiş olayları: actions.html OBS WebSocket'e bağlıdır
Kick – DOM - - - İzleyici sayısı ve temel ödül/hediye sistem bildirimleri; daha zengin uyarılar için Kick köprüsünü kullanın
Kick – Websocket/Köprü Yeni abonelikler, yenilemeler ve hediyeler Takip uyarıları + toplam takipçi sayısı Destek/bağış olayları (miktar + para birimi) Yayın durumu, ödül kullanımları ve profil meta verileri
Facebook Live - - DOM'da görünür olduğunda Stars Sohbet satırları, Stars ve izleyici sayısı sorguları
Rumble – DOM yakalama - - Görünür Rant fiyatları Sohbet, gelen baskınlar ve izleyici sayısı sorguları
Rumble – Websocket/API URL'si Yeni abonelikler ve hediye abonelikler Takip uyarıları + toplam takipçi sayısı Rant/bağış (miktar + para birimi) İzleyici toplamları, abone toplamları, canlı durum ve sohbet akışı
Streamplace - - - İzleyici sayısı ve sohbet adları, renkler, rozetler, yanıtlar ve bağlantılar
WorldsWave - - Mevcut olduğunda bağış etiketleri İşlenmiş canlı sohbet ve isteğe bağlı izleyici sayısı güncellemeleri
CHZZK - - Görünür cheese bağış satırları Sohbet satırları, rozet resimleri, ifadeler ve izleyici sayısı sorguları
BEAM - - - Yalnızca sohbet sayfası izleyici sayacı sunduğunda sohbet satırları ve izleyici sayısı sorguları
Seal Team Sloth - - - İşlenmiş açılır sohbet satırları ve viewer_update izleyici sayıları etkinken yoklar
Castyr - - - İşlenmiş açılır sohbet satırları ve isteğe bağlı izleyici sayısı güncellemeleri
RPLAY - - - Oturum açılmış /live/chat/box/ açılır pencere: type: "rplay" sohbet, avatarlar, seviye rozeti resimleri ve ifadeler. Jeton bağışları miktarını/birimini şu alanda korur: hasDonation ortak USD dönüştürmesi için; bağış olayı olmadan. İsteğe bağlı viewer_update yoklamaları tam sayı şu alanı kullanır: meta RPLAY'in herkese açık yayın uç noktasından. Aktarılan Twitch satırları hariç tutulur.
FLEX TV - - - Adlar, yazar renkleri, rozet resimleri ve üye meta verileri içeren işlenmiş sohbet satırları

*YouTube abone uyarıları sorgulanır ve gecikmeli veya eksik olabilir. API referansı sabit dört saatlik teslim süresi vadetmez. Bkz. resmî abonelik API sınırları.

Alanlara Genel Bakış

data burada mesaj nesnesini ifade eder; eklenecek fazladan bir sarmalayıcıyı değil. Sohbet satırları ve yalnızca meta veriden oluşan olaylar farklı biçimlere sahiptir: sayaçlar ve durum anlık görüntüleri şu alanı içermeyebilir: chatname/chatmessage. Platform tablolarında, mesaj normal bir sohbet satırını tanımlar, gerçek bir şu değeri değil: event: "message".

Alan Biçim Kullanım
data.type metin Katmanlar, filtreler ve Etkinlik Akışı tarafından kullanılan kaynak tanımlayıcısı. Instagram canlı sohbeti şu değer olarak korur: instagramlive ve canlı olmayan yorumları şu değer olarak tutar: instagram. Bkz. Kaynak Türleri Kılavuzu varyantlar, genel kaynaklar ve giden yönlendirme için.
data.chatname metin Kaynağın sağladığı, mesaj işleme ve katman dışı çıktılar tarafından kullanılan görünen ad. Yapılandırılmış kullanıcı görünen adı takma adı, bu değeri yalnızca kopyalanmış panel ve katman taşıma yüklerinde değiştirebilir.
data.username metin Varsa kaynaktaki kullanıcı adı. Takma ad uygulanmış panel veya katman yükü, özgün şu alanı korumak için bu alanı ekleyebilir: chatname kullanıcı eylemleri için; standart mesaj değişmeden kalır.
data.userid metin Platforma özgü kullanıcı tanımlayıcısı. Kullanıcı eylemleri bu değeri şu alan yerine tercih eder: username ve chatname.
data.platformmetin (isteğe bağlı)Bazı entegrasyonlar bunu şu alanla birlikte içerir: type. Birçok kaynak bağdaştırıcısı bunu eklemez; şunu kullanın: type kaynak yönlendirmesi için.
data.idmetin | sayı (isteğe bağlı)Mesaj veya olay tanımlayıcısı. Anlamı kaynağa ve taşıma yöntemine bağlıdır; her zaman platformun yerel moderasyon kimliği olduğunu varsaymayın. Şunu kullanın: meta.messageId bağdaştırıcı bunu silme eşitlemesi için sunduğunda.
data.donoValuesayı (isteğe bağlı)Tahminler dahil olmak üzere kaynağın sağladığı sayısal USD karşılığı. Geçerli bir değer (sıfır dahil), currency.js dönüştürmesinin önüne geçer. Bu değer yoksa tüketiciler USD tutarını hasDonation ve kaynak bağlamından tahmin eder. Özgün tutarlar ve birimler hasDonation ve mevcut sağlayıcı meta verilerinde kalır.
data.chatbadgesdizi | metin (isteğe bağlı)Rozet resmi URL'leri veya rozet nesneleri (type: "img" şununla: src, type: "svg" şununla: html, veya type: "text" şununla: text). Aktarım, metin rozetinin birebir etiketini isteğe bağlı şu alanda korur: rawText ve kaçış uygulanmış şu alanı üretir: text eski katmanlar için. Sonraki aktarım geçişlerinde şu alanı yeniden oluşturun: text şuradan: rawText; şuna kaçış uygulamayın: text yeniden. Güncel işleyiciler şunu gösterir: rawText mevcut olduğunda olduğu gibi kullanın; aksi halde eski kodlanmış metin işleme yöntemini koruyun. Bu bir gösterim alanıdır, HTML görüntüleme izni değildir. Eski kaynaklar dizi yerine tek bir HTML metni gönderebilir. Rozet görüntüleyen katmanlar iki biçimi de kabul eder ve gönderen eski bir uzantı olsa da rozet HTML'sini ve URL'lerini yerel olarak temizler. Geçersiz rozetler sohbet veya üyelik mesajının görüntülenmesini engellememelidir.
data.event metin | boolean Sistem etkinliği tanımlayıcısı (örneğin viewer_update, subscription_gift, giftpurchase). Katmanların sistem bildirimlerini konuşma metninden ayırabilmesi için normal sohbette bu alan boş/false bırakılmalıdır.
data.chatmessage metin Mesaj gövdesi. Yalnızca şu koşulda temizlenmiş/görüntülenebilir HTML içerebilir: data.textonly false olduğunda.
data.textonly boolean Yalnızca şuna uygulanır: data.chatmessage. true şunu görüntüle anlamına gelir: chatmessage düz metin olarak işlenir; gerçek etiketler ve HTML varlığına benzeyen metinler korunur; bu gövdeyi çözmeyin, HTML temizlemesi yapmayın veya biçimlendirme etiketleri eklemeyin. Olay stilini görüntülenen öğeye uygulayın. false şu anlama gelir: chatmessage temizlenmiş/görüntülenebilir HTML içerebilir; bu bayrağı olmayan eski mesajlar aynı HTML davranışını korur. Şu örnekler gibi medya alanları hariç, diğer normal alanlar düz metindir: chatimg ve contentimg. Düz metin alanlarını şununla gösterin: textContent, ya da HTML şablonu oluştururken bir kez kaçış uygulayın; içeriklerini temizlemeyin veya tekrar tekrar çözmeyin.
data.contentimg metin (isteğe bağlı) İçerik resmi veya desteklenen medya URL'si. Eklentide ve masaüstü uygulamasında isteğe bağlı allowExternalGifs ayarı, mesaj metnindeki veya HTML bağlantısındaki ilk doğrudan HTTP(S) GIF bağlantısından boş alanı doldurur. URL yolu şu uzantıyla bitmelidir: .gif (büyük/küçük harfe duyarsız); sorgu parametreleri ve parçalar korunur. API anahtarı gerektirmez ve şunu korur: chatmessage ve mevcut ekleri kullanır; şu ayara uyar: removeContentImage. İsteğe bağlı hideExternalGifUrl ayarı şunu ekler: meta.hideExternalGifUrl: true; panel ve öne çıkarılan katman eşleşen GIF bağlantısını yalnızca resim yüklendikten sonra gizler; çevresindeki metni ve özgün yükü korur. Başarısız veya zaman aşımına uğrayan resimler ek kapsayıcısını kapatır ve bağlantıyı görünür bırakır. Yalnızca GIF katmanı, resim baytları alınamazsa doğrudan resim göstermeyi dener; animasyon zamanlaması bilinmiyorsa yapılandırılmış gösterim süresini kullanır. Başarısız veya takılan yüklemeler kuyruğu ilerletir. Şu alanı eklemez: event veya kaynağın şu alanını değiştirin: type. Harici resimlere içerik filtresi uygulanmaz; barındıran site gömmeyi engelliyorsa yüklenmeyebilir.
data.membership metin Şunun gibi okunabilir üyelik durumu: MEMBERSHIP, new_sponsor, gift_recipient. Arayüzler bunu rozetler, filtreler ve duyurular için kullanır.
data.subtitle metin Ek açıklayıcı bilgi (üyelik süresi, seviye yükseltmeleri, hediye eden...). Katmanların görünen adın altına yerleştirebilmesi için kısa ve yalnızca metin olarak tutun.
data.hasDonation metin Parasal veya sanal hediye miktarı ($5.00, 500 bits, 300 coins). Şu durumda bile doldurun: data.event bağış katmanlarının algılayabilmesi için boştur.
data.meta sayı | nesne | metin (eski) Tek sayaçlar (izleyici, takipçi, abone) için düz tam sayılar, daha zengin bağlam için nesneler kullanın. Twitch DOM'un şu olayı gibi bazı eski olaylar: community_highlight, bir dize taşır. Nesne özelliklerini okumadan önce olaya özgü biçimi kontrol edin; yeni yapılandırılmış ayrıntılar bir nesnede yer almalıdır.
data.firsttime boolean Şu değere ayarlanır: true ilk kez yazan algılama etkin, yerel veritabanı etkin ve bu, o kullanıcı/kaynak için saklanan ilk sohbet mesajı olduğunda. Panel bunu ilk kez yazanları vurgulamak ve ilk kez yazan bip filtreleri için kullanır; isteğe bağlı ilk kez yazan rozeti ayarı şu alanın başına yaprak rozeti ekler: chatbadges.
data.lastactivity sayı İlk kez yazan algılama ve yerel veritabanı etkin olduğunda, o kullanıcının daha önce saklanan son sohbet etkinliğinin saniye cinsinden Unix zaman damgası. Tamamen yeni kullanıcılar için eklenmez.

Katman kontrol taşıması, yakalanan sohbet/olaylardan ayrıdır. Güncellenmiş alıcılar şunu kullanır: ssnControl bir teslimat öğesi içeren zarf: id, öne çıkarma target, isteğe bağlı yanıt kanalı ve anlık görüntü istemci kimliği. Mevcut öne çıkarma gövdeleri korunur. Herkese açık öne çıkarma kontrolleri kanal 7'yi kullanır; Actions kanal 6'yı korur. Poll ve Map durumu bir sunucu alanı içerir: epoch, revision ve reset işaretçisi; Timer, Ticker ve Spotify şunu kullanır: ssnState bir epoch ve revision ile. Bu işaretçiler geri yüklenmiş oy/sohbet geçmişini değil, sunucu durumunu açıklar. Kaynaklar yakalanan mesajlara kontrol zarfı alanları eklememelidir. Alındı onayı, eylemin tamamlandığını veya OBS'de görünür olduğunu göstermez. Bkz. geçiş durumu desteklenen özellikler, yanıt uzlaşması ve yeniden bağlantı sınırları için.

Phrase Guess yerel şu öğeyi kullanır: {response: text} server2 sohbet yanıtları için istek ve {action: "phraseGuessResponse", value: {type: "bot", chatname: name, chatmessage: text}} yalnızca panel duyuruları için. Sunucu gelen server3 mesajlarını etkinleştirmelidir; sunucu kontrolünü devre dışı bırakmak bu istekleri yine engeller. Panel duyuruları şu alanı içeren normal bot sohbet satırları olarak iletilir: textonly: true, bunları yakalama kaynağının sohbet girişlerine göndermeden. Eski API modu mevcut komut biçimini korur.

Meta Kuralları

Panoları ve otomasyonları uyumlu tutmak için şu yapıyı genişletirken bu kurallara uyun: data.meta:

  • viewer_update, follower_update, subscriber_update, ve likes_update düz bir tam sayı kullanır: meta değeri. likes_update platformun güvenilir toplamıdır: tüketiciler bunu eklemek yerine görüntülenen değeri buna ayarlamalıdır. Arka plan betiği izleyici sayılarını şu alanda birleştirir: viewer_updates şu anahtara göre düzenlenmiş nesneyle: data.type.
  • giveaway_state yönetilen gösterimler için sunucunun oluşturduğu, yalnızca meta veriden oluşan bir anlık görüntüdür. meta.giveaway sürüm 2 şunu içerir: giveawayId, kalıcı roundId/epoch, artan generation yeni turlar boyunca, revision bir tur içinde, status, open, draw, keyword, count, ticketCount, dondurulmuş config, en fazla 120 önizleme entrants, ve son 20 winners. Girdiler şu alanı sunar: id, name, platform ve tickets; kazananlar şunu ekler: drawnAt ve kazanılan points. Coin Flip Pot şunu ekler: outcome; Number Hunt şunu ekler: number herkese açık şu alanla: low, high ve son guesses, asla sır değil. Tüketiciler çekiliş kimliğine göre filtreler ve eski nesilleri/revizyonları atar. Bunlar gösterim örnekleridir; tam bilet defteri veya ödeme talimatı değildir. Cüzdan anahtarları, bakiyeler ve rezervasyonlar izleyici anlık görüntülerine girmez. Sunucu şu kanala yayımlar: giveaway P2P etiketi ve etkin katman WebSocket akışları; bu, OBS'de görünür olduğu anlamına gelmez. Kılavuz.
  • meta.giveawayControlResult Etkinlik Akışı çekiliş eyleminin sonucunu içerir (ok, isteğe bağlı error, giveaway veya simulated). meta.giveawayHandled otomatik sohbet komutunun yeniden ücretlendirmemesi için, katılım/satın alma akışı eyleminin zaten işlediği çekiliş kimliklerini listeler. Düzenleyici şunu ekler: meta.economyTest simüle edilmiş çekiliş eylemleri için; bu bir kaynak platform olayı veya yetkilendirme kimlik bilgisi değildir.
  • video_stats yapılandırılmış bir şu öğeyi kullanır: meta harici kodlayıcı/sunucu sağlığı nesnesi; şu alanı içerir: provider, label, online, bitrateKbps, rttMs, bufferMs, paket kaybı/düşürme sayaçları ve isteğe bağlı codec ayrıntıları.
  • Bağış türü olaylar açıklayıcı bir nesne içerebilir; örneğin { amount, currency, supporter } Kick için, { bits } Twitch cheer'leri için. Üyelik olaylarının kaynağa özgü kendi meta verileri vardır; bunlar otomatik olarak parasal bağış sayılmaz.
  • Normalleştirilmiş Stripe, Ko-fi, Buy Me a Coffee ve Fourthwall webhook mesajları, sağlayıcı kapsamlı şu alanı içerir: meta.webhookId, sağlayıcının sabit olay kimliğinden kopyalanır; böylece sonraki sayfalar yeniden deneme ve karma aktarım kopyalarını bastırabilir.
  • Twitch baskınları şu alanı iletir: { fromId, fromLogin, viewers }. Diğer kaynaklar farklıdır: Whatnot şunu kullanır: meta.numRaiders, SharePlay ise isteğe bağlı şu alanı kullanır: meta.fromLogin/meta.viewers. Baskın meta verilerini okumadan önce kaynağa özgü satırı kontrol edin.
  • Twitch EventSub ödül kullanımları şu alanı sunar: meta.rewardId, cost, rewardTitle, redemptionId, ve eski alias hazırlanan mesajla birlikte sunulur. DOM ödül kartları ve diğer kaynaklar daha az veya farklı alanlar sağlayabilir.
  • user_banned moderasyon bileşenleri için yalnızca meta veriden oluşur. Şu alanı bilinçli olarak içermez: chatname ve chatmessage; kullanın: meta.username, meta.displayName, meta.avatarUrl, ve meta.profileUrl.
  • Kaynak kontrolü silme eşitlemesini destekleyen sohbet aktarımları, platformun yerel sohbet kimliğini şu alanda sunmalıdır: meta.messageId panelin dahili şu alanına dayanmak yerine: data-mid değeri.
  • Kaynak silmeleri şunu kullanır: {delete: {type, id}} bilinen bir panel mesaj kimliği için veya {delete: {type, meta: {messageId}}} platformun yerel mesaj kimliği için. Bilinen bir kimlik yalnızca eşleşen mesajları kaldırır. Yalnızca hedef kullanıcı biliniyorsa şunu gönderin: {delete: {type, userid}} veya {delete: {type, chatname}} o kullanıcının o platformdaki mesajlarını kaldırmak için. Hedef kullanıcı yerine asla moderatörün kimliğini kullanmayın. Gelen silmeler isteğe bağlı panelden platforma moderasyon eşitleme ayarını gerektirmez.
  • SSApp kaynak kimliği meta verileri şunu ekleyebilir: meta.ssnAccountRole, meta.ssnSourceId, ve meta.ssnSession bir kaynağa normal olmayan bir hesap rolü atandığında.
  • Etkinlik Akışı şu alanı ayarlayarak vurgulama isteyebilir: meta.featured = true sohbet yükünde ayarlanır; bu, mesajı panel/öne çıkan katmanlarında otomatik olarak öne çıkarır.
  • AI Event Overlay: Şu eylem: showAiEventOverlay tetikleyen mesajın bir kopyasını şu etikete gönderir: aievent-CONFIGURATION_ID ve şunu ekler: meta.aiEventOverlay: {profile: "CONFIGURATION_ID"}. Mevcut mesaj alanları ve nesne biçimindeki meta veriler korunur; skaler meta veriler şu alanda saklanır: meta.value. Bu, hedefli bir gönderimdir; yeni bir platform olayı değildir. Özgün mesaj değiştirilmez. Ayrıntılar için: kurulum kılavuzu.
  • İsteğe bağlı meta.aiEventOverlay.variation kaydedilmiş katman ayarlarında onaylanan ifadeyi birebir seçer. İzleyici metni ve meta veriler, oluşturma tamamlandıktan sonra şablon alanlarına yerleştirilir.
  • AI Event Overlay görüntüleme istekleri bir profil ve o profile ait özel görüntüleme belirteci gerektirir. Ayarlar ve API anahtarları yalnızca yerel SSN açılır penceresinden yönetilir. Yanıtlar şu biçimi kullanır {aiEventResponse: {target, value}} veya {aiEventResponse: {target, error}}. Oluşturulan sonuçların alanları template, duration, warnings, isteğe bağlı medya verisi URL’lerinin alanları ise image/audio.
  • Puanla ödenen yapay zekâ katmanı ödülleri aiEventPresentation (id, profile, expiresAt, result, message) kullanır ve alındığını aiEventDelivered (teslimat kimliği) ile onaylar. Puan kesintisi kayıtları ve iade tutarları ana makinede kalır.
  • Etkinlik Akışı şu alanı ayarlayarak panelde sabitleme isteyebilir: meta.pinned = true; isteğe bağlı meta.pinnedTarget bu sabitlemeyi, eşleşen şu alana sahip panelle sınırlar: label.
  • Etkinlik Akışı termal yazdırma sonucunu şu alana kaydeder: meta.thermalPrintResult (success ve isteğe bağlı code/error), sohbet olayını ve diğer meta verileri koruyarak. Meta verisi sayı veya başka bir nesne dışı değer olan olaylarda tanı bilgisi işlem sonucunda kalır ve olay değişmez.
  • İsteğe bağlı SSN çıkartma ödülleri: event: "sticker" yalnızca şu hedefe gönderilir: stickers katman etiketi, sadakat puanı düşüldükten sonra kullanılır. Şu alanı ayarlar: platform ve type özgün mesajın şu alanına: type, ve şunu korur: chatname, boş alanla: chatmessage, textonly: true, ve contentimg paketlenmiş göreli bir resim yolu veya sunucunun onayladığı bir HTTPS medya URL'si içerir. meta.sticker şunu içerir: id, pack, name, cost, duration (saniye), motion, redemptionId, ve expiresAt (Unix milisaniyesi). Bu, platform bağışı veya yerel kanal puanı olayı değil, SSN ödülüdür. Bkz. galeri ve kurulum kılavuzu.
  • Çıkartma oynatıcısı bir kontrol paketi döndürür: {action: "stickerReceipt", meta: {sticker: {redemptionId, success}}} resim yüklendiğinde veya başarısız olduğunda gönderene gönderilir. Yalnızca bağlı bir şu öğeden gelen alındılar: stickers eşinin bekleyen bir ödül kullanımını çözmesini sağlar. Başarısız veya onaylanmamış teslimat iadeyi tetikler; bu kontrol paketi bir sohbet olayı değildir. Her oturumda tek bir etkin çıkartma gösterimi önerilir.
  • Yapay zekâ sahne katmanı komutları şunu kullanır: { action: "aiOverlay", target, meta } veya panelden kontrol edilen yardımcı sunucu oynatımı şunu kullanır: { action: "cohostOverlay", target, meta }; şu gibi tüm komut ayrıntılarını koruyun: command, text, emotion, avatar, ve tts şunun içinde: meta.
  • Bir platform birden fazla sayacı birlikte sunuyorsa, açık anahtarlara sahip yapılandırılmış bir nesne tercih edin (meta.viewer_count, meta.follower_count) kullanın; dizelere farklı anlamlar yüklemeyin.
  • Ticaret katmanları şu alanın altındaki anlık görüntü nesnelerini kullanmalıdır: meta (örneğin auction_update ve commerce_update) ve gelişigüzel üst düzey alanlardan kaçının.

Platform Kapsamı

YouTube – Standart DOM Yakalama

Uygulama: sources/youtube.js

  • Canlı sohbet sekmesini açık tutun. Yakalama, o oturumda görüntülenen üyelik ve hediye kartlarını okur; izleyicinin kanal sahibi veya moderatör olması gerekmez. Hesap erişimi ve seçilen sohbet görünümü hangi satırların görünür olduğunu etkileyebilir.
  • İzleyiciler gösterilirken İzleyici Sayısı ve Sohbet Etkinliği katmanını açmak, izleyici sayılarını otomatik olarak ister. İzleyici sayısını göster ve Etkin sohbet katılımcılarını takip et ayarları da veri toplamayı etkinleştirir.
  • Takipçi uyarıları ve ek olaylar için, eklenti ayarlarında WebSocket modunu etkinleştirin.
Olay Ne Zaman Tetiklenir Yük Notları
sponsorship Açık sohbet metni içermeyen üyelik karşılama başlığı (yeni üyeler, ulaşan hediye paketleri); yapılandırılmış karşılama kartlarını veya yerelleştirilmiş “… topluluğuna hoş geldiniz” metnini içerir. membership çevrilmiş “MEMBERSHIP” ile doldurulur; subtitle algılandığında seri/seviye bilgisi içerir; nameColor izin verildiğinde üyelik yeşilini kullanır.
giftpurchase Hediye paketi satın alma afişi (ytd-sponsorships-live-chat-gift-purchase). membership şu hale gelir: gift_giver; subtitle bilindiğinde hediye sayısını taşır; şu alan yoktur: hasDonation veya donoValue.
giftredemption Alıcılar için hediye kullanım duyurusu. membership “MEMBERSHIP” olur; subtitle “… tarafından hediye edildi” ifadesini içerir.
resub “… seviyesine yükseltti” ifadesini içeren yükseltme afişleri. subtitle yeni seviye etiketini yakalar; membership “MEMBERSHIP” olarak kalır.
superchat, supersticker, jeweldonation Super Chat, Super Sticker, bağış duyuru kartları ve Jewels destekli YouTube Gifts (yt-gift-message-view-model). hasDonation değeri taşır; event YouTube ücretli öğe türünü tanımlar. YouTube Gifts şunu kullanır: N Jewels mevcut olduğunda veya 1 YouTube Gift YouTube sayıyı gizlediğinde. Hediye resimleri şunu kullanır: contentimg, hediye etiketlerinde şu kullanılır: subtitle, asgari hediye ayrıntıları da şu alana yansıtılır: meta.youtubeGift.
jeweldonation hediye efekti YouTube, canlı sohbetin üzerinde animasyonlu bir Jewel hediyesi gösterir (ytls-gift-overlay-item-view-model). Animasyonun normal hediye satırını çoğaltmadan oynatılabilmesi için doğrudan özel GIF/medya hedefine gönderilir. contentimg animasyonlu varlığı ve şunu taşır: meta.youtubeGift.animationUrl/animationDescription efekt ayrıntılarını korur.
reaction YouTube'un canlı emoji çeşmesinde izleyici tepkisi görünür. Doğrudan özel tepki hedefine gönderilir. Anonim emoji ve resim URL'si şu alanda korunur: chatmessage/contentimg ve şu alanın altında: meta.reactionType/reactionImage. Bilinen canlı çeşitler ❤, 😄, 🎉, 😳 ve 💯 içerir.
thankyou Bağış tutarı varken sohbet metni sağlanmadığında kullanılan yedek mesaj. Korur: hasDonation ve katmanlar için otomatik olarak “Bağışınız için teşekkürler!” metnini ekler.
redirect YouTube yönlendirme afişi canlı sohbette görünür (baskın bildirimine en yakın karşılık). Şuradan yalnızca DOM yakalama: yt-live-chat-banner-redirect-renderer. Şunu ayarlar: event şu değere: redirect ve şunu kullanır: membership etiket olarak kullanılır; böylece katmanlar bunu diğer sistem bildirimleri gibi görüntüler.
viewer_update Social Stream'in izleyici uç noktasını 30 saniyede bir sorgular (kota hatalarında sayfadan veri toplamaya döner). meta canlı izleyici tam sayısıdır; birleştirilmiş şu alana katkıda bulunur: viewer_updates arka plan betiğinde.

Üyelik blokları ayrıca şunu ayarlar: membership moderatör/üye sohbeti için; buna karşılık subtitle ay sayılarını veya seviye adlarını taşır. sourceName/sourceImg şu işlemden sonra doldurulur: getChannelInfo başarılı olduğunda. Standart DOM sohbeti artık şunu içerir: meta.messageId YouTube, panelin silme eşitlemesinde kullandığı yerel canlı sohbet mesaj kimliğini sunduğunda.

YouTube – Websocket/Data API Yakalama

Uygulama: sources/websocket/youtube.html, paylaşılan yardımcılar şu konumda: shared/

  • Varsayılan OAuth kapsamları: youtube.readonly ve youtube.channel-memberships.creator. İsteğe bağlı yazma erişimi şunu ekler: youtube.force-ssl sohbet gönderme, moderasyon, yasaklama ve yayın ayrıntısı düzenlemeleri için; YouTube yalnızca sohbet yazma kapsamı sunmadığından Google bunu geniş YouTube yönetim izni olarak gösterebilir.
  • Kanal istatistikleri ayar başına anahtarlara uyar (showsubscount, showviewercount).
  • API özel rozet görsellerini iletemez; yedek rozetler aşağıda belirtilen emoji simgelerini kullanır.
  • API açıkça şu durumu bildirdiğinde: authorDetails.isChatModerator: true, sohbet, Super Chat, Super Sticker, YouTube Gift ve üyelik hediyesi yükleri şunu içerir: mod: true. Moderatör durumu olaylar arasında çıkarılmaz veya önbelleğe alınmaz.
  • Yeni abone uyarıları şunu kullanır: myRecentSubscribers API (5 dakikada bir sorgulanır). Not: Sonuçlar gecikmeli veya eksik olabilir; yalnızca herkese açık abonelikler belirlenebilir.
  • YouTube yönlendirme afişleri Data API tarafından sunulmadığından, redirect yalnızca Standart DOM yakalama üzerinden kullanılabilir olmaya devam eder.
Olay Ne Zaman Tetiklenir Yük Notları
superchat Data API geçmişinden veya yayın yoklamasından alınan Super Chat girdileri. hasDonation sitedeki miktarı korur (para birimi + değer); event şudur: superchat. Eski WebSocket sürümleri şunu kullanırdı: event: "donation" bu satır için; bu nedenle tüketiciler bunu eski alternatif ad olarak kabul etmeye devam edebilir.
supersticker Super Sticker (yalnızca yedek mesaj metni; API'den resim gelmez). hasDonation miktarı tutar; chatmessage çözülmüş açıklama metnini içerir.
jeweldonation YouTube giftEvent izleyiciler Jewels kullanarak Gifts aldığında gönderilen mesajlar. hasDonation şunu tutar: N Jewels, veya 1 YouTube Gift YouTube sayıyı gizlediğinde; contentimg sunulduğunda hediye varlığı URL'sini kullanır; subtitle hediye etiketini taşır; meta.youtubeGift ek hediye ayrıntılarını taşır.
sponsorship Şu yolla katılan yeni üye: newSponsorEvent. membership şu hale gelir: new_sponsor veya new_member; meta şunu içerir: originalEventType, süreler ve seviye bilgileri.
resub Üyelik yenilemeleri veya seviye yükseltmeleri. membership şu hale gelir: renewed_member (yenilemeler) veya upgraded_member (yükseltmeler); subtitle seviyeyi gösterir.
giftpurchase API üzerinden satın alınan hediye paketleri. membership şu değere ayarlanır: gift_giver; subtitle sayıyı/seviyeyi listeler; şu alan yoktur: hasDonation veya donoValue.
giftredemption Hediye kullanım bildirimleri. membership gift_recipient; varsayılan rozet 🎁 olur; subtitle hediye edilen seviyeyi belirtir.
membermilestone Dönüm noktası sohbet mesajları (memberMonth veya displayMessage mevcut olduğunda). membership member_milestone; subtitle ayları + seviyeyi özetler; meta ham dönüm noktası eşlemesini yakalar.
viewer_update İzleyici raporlama etkin olduğunda yayın istatistikleri (eşzamanlı izleyiciler). meta tam sayı adettir; DOM betiklerinin davranışını yansıtır, böylece sonraki tüketiciler iki akışı birleştirebilir. Şunu kullanan bir panel: &showviewercount izleyici sayısı toplamayı 70 dakikalığına ister ve genel ayarı kalıcı olarak değiştirmeden bu isteği her saat yeniler.
likes_update Şu koşulda resmî video istatistikleri yoklaması: Platform beğeni toplamlarını gönder etkin olduğunda. meta videonun geçerli beğeni sayısının tam sayı değeridir. Sayı değiştiğinde ve tüketicilerin güncel kalması için değişmediği süre boyunca düzenli olarak gönderilir. Genel captureliketotals ayarı bunu etkinleştirir; eski captureyoutubelikes uyumluluk alternatif adı olarak kalır. Açılır pencerenin panel başına şu ayarını etkinleştirmek: &showlikecount seçeneği bu genel yakalama ayarlarını da kalıcı olarak etkinleştirir; URL parametresini manuel eklemek ise yalnızca görüntülemeyi kontrol eder. Gösterim seçeneğini kapatmak genel toplamayı devre dışı bırakmaz.
subscriber_update Şu durumda kanal istatistiği sorgusu (aboneler): showsubscount açıkça devre dışı bırakılmadığında. meta toplam abone sayısıdır; arayüz pano sayaçlarını günceller.
view_update Şu durumda kanal istatistiği sorgusu (tüm zamanların görüntülemeleri): showviewercount veya hype modu etkin olduğunda. meta görüntüleme sayısının tam sayı değeridir.
live_chat_ended Bağlı yayının canlı sohbeti kullanılamaz hale gelir. meta.streamTitle yayın meta verileri önbelleğe alındığında doldurulur.
user_banned userBannedEvent canlı sohbet API'sinden veya gRPC akışından. Moderasyon bileşenleri için yalnızca meta veriden oluşan olay. meta kullanıcı adı/görünen ad, kanal kimliği, avatar/profil URL'si, moderatör, yasaklama/zaman aşımı süresi ve kalıcılık bilgisini içerir.
new_follower Şu yolla algılanan yeni abone: myRecentSubscribers API (5 dakikada bir sorgulanır). chatname abonenin kanal adıdır; chatmessage YouTube kaynak sayfasında abone uyarı mesajları etkinleştirilmedikçe boştur. meta şunu içerir: channelId, title, subscribedAt, gruplanmış patlamalar ise şunu ekler: grouped, count, others, ve subscribers. Not: Sonuçlar gecikmeli veya eksik olabilir; yalnızca herkese açık abonelikler belirlenebilir.

API'den gelen sohbet aktarımları şunu kullanır: meta.plainText zengin içerikle birlikte düz metin mesaj için: chatmessage içeriği. Bu HTML değil, metindir ve yine de Unicode emoji içerebilir. Üyelik rozetleri yedek olarak emoji kullanır (⭐, 💝, 🏅vb.), DOM yakalamasıyla tutarlı kalmak için. Normal sohbet yükleri ayrıca şunu içerir: meta.messageId böylece panel tarafındaki silme eylemleri YouTube moderasyon API'sine geri ulaşabilir.

YouTube Abone Uyarıları (new_follower)

Social Stream artık şu öğeyi kullanarak yeni YouTube abonelerini algılayabilir: myRecentSubscribers API uç noktası. Streamlabs abone uyarılarına benzer şekilde çalışır.

Nasıl çalışır:

  • Yeni aboneler için YouTube API'sini her 5 dakikada bir yoklar
  • Yeni aboneleri algılamak için görülen aboneleri localStorage içinde takip eder
  • Şunu üretir: new_follower abonenin adı, avatarı ve kanal kimliğiyle olaylar
  • Abone uyarı mesajlarını varsayılan olarak kapalı tutar; etkinleştirildiğinde şu öğenin geçerli çeviri metnini kullanır: alert-just-subscribed
  • Yeniden bağlantıların katmanları veya Etkinlik Akışı'nı doldurmaması için, varsayılan olarak üçten fazla yeni abonenin aynı anda geldiği durumları gruplar
  • Uzantı ayarlarında WebSocket modunun etkinleştirilmesi gerekir

Sınırlamalar (bunlar Social Stream sınırlamaları değil, YouTube API kısıtlamalarıdır):

  • Teslimat gecikmesi garanti edilmez – SSN her beş dakikada bir yoklar, ancak API gecikmiş veya eksik sonuçlar döndürebilir. Sabit dört saatlik bir aralığa güvenmeyin.
  • Yalnızca herkese açık abonelikler – Abonelik listesini gizli olarak ayarlayan aboneler uyarı tetiklemez. YouTube'da abonelikler varsayılan olarak gizlidir.
  • Yalnızca kanal sahibi – Yalnızca sahibi olduğunuz ve sahibi olarak kimlik doğruladığınız kanallar için abone uyarıları alabilirsiniz.
  • API kota kullanımı – Her yoklama 1 API birimi harcar. 5 dakikalık aralıklarla günde yaklaşık 288 birim kullanılır (varsayılan günlük 10.000 birim kotadan).

Etkinlik Akışı Düzenleyicisi tetikleyicisi: Kullanın: data.event === "new_follower" ve data.type === "youtube"

YouTube Websocket: Hızlı Olay ve Üyelik Başvurusu

data.event data.membership Senaryo
sponsorshipnew_sponsorŞu yolla yeni üye: newSponsorEvent
sponsorshipnew_memberŞu yolla yeni üye: processMembership
resubrenewed_memberÜyelik yenileme
resubupgraded_memberSeviye yükseltme
giftpurchasegift_giverKanala hediye edilen üyelikler
giftredemptiongift_recipientHediye üyelik aldı
membermilestonemember_milestoneÜyelik yıl dönümü sohbet mesajı
superchat-Super Chat
supersticker-Super Sticker
user_banned-Yalnızca meta veriden oluşan yasaklama/zaman aşımı olayı
new_follower-Yeni abone (yoklama ile; gecikebilir)

Twitch – Standart DOM Yakalama

Uygulama: sources/twitch.js

  • Twitch sohbetini açık tutun. Üyelik ve kullanıcı bildirimleri, Twitch bunları görüntülediğinde yakalanır; yayıncı veya moderatör hesaplarıyla sınırlı değildir. Hesaba özgü özellikler için kimlik doğrulama gerekebilir.
  • İzleyici sayısı istekleri şu adrese gider: https://api.socialstream.ninja/twitch/viewers her 30 saniyede bir.
  • Takipçi uyarıları, baskınlar ve tam olay desteği için, eklenti ayarlarında WebSocket modunu etkinleştirin.
  • İzleyicilerin paylaştığı Watch Streak bildirimleri varsayılan olarak kapalıdır ve şu seçeneği gerektirir: Twitch İzleme Serilerini Göster ayarı.
  • İsteğe bağlı PluralMind ayarı şu alanı değiştirebilir: chatname, nameColor, ve şunun vekil tarafından sarmalanmış kısmı: chatmessage, ayrıca zamir metin rozeti ekleyebilir. username Twitch giriş adı olarak kalır; ilgili silmeler şunu taşır: delete.meta.pluralmind böylece panel bu sabit giriş adını kullanır.
Olay Ne Zaman Tetiklenir Yük Notları
reward Kanal puanı kullanım kartları (7TV ödül kapsayıcısı dahil). chatmessage ödül kullanımı metnini içerir; membership değişmeden.
giftpurchase “Kullanıcı kanalda X abonelik hediye ediyor” gibi sistem satırları. chatmessage sistem satırıdır; katmanların hediye veren kampanyalarını vurgulamasını sağlar.
subscription_gift Hediye abonelik bildirimleri (“Kullanıcı, … kişisine bir abonelik hediye etti”). Olayı vurgu filtreleri için işaretler; membership alıcı rozetinin etiketi olarak kalır.
viewer_update Social Stream izleyici vekiline 30 saniyede bir fetch isteği (hata durumunda 0). meta tam sayı izleyici sayısı.
hype_train Twitch'in sabitlenmiş topluluk vurgusu, açılır sohbette etkin bir Hype Train gösterir. Şu alanı içeren, yalnızca meta veriden oluşan DOM yedeği: meta.sourceMode şu değere ayarlanır: dom. Görünen seviye, zamanlayıcı ve şu alanı kullanır: meta.progressPercent Twitch EventSub puan toplamlarını sunmadığında.
community_highlight Twitch'in “Community Highlight” bileşeni içindeki öğeler. meta otomasyon bağlantıları için çıkarılan vurgu metnidir.
knock Sohbetin üzerinde görüntülenen Stream Together iş birliği davetleri. chatmessage davet metnini içerir; chatname varsa uyarı kullanıcısından türetilir.
watch_streak İzleyicinin isteğe bağlı olarak paylaştığı, Twitch sohbetinde görüntülenen Watch Streak bildirimi. meta.streakCount algılandığında görünür sayıyı içerir; meta.milestoneId varsa DOM bildirim tanımlayıcısını kullanır.

Bits/Cheers şu alanı doldurur: hasDonation (örneğin “500 bits”); buna rağmen data.event boş kalır; bağış bileşenlerini görüntülerken bu alana dayanın. Abone serisi bilgisi şu alanda görünür: subtitle rozetler ayları sunduğunda.

Twitch – EventSub/Websocket

Uygulama: sources/websocket/twitch.js ortak çekirdek ile: providers/twitch/chatClient.js

  • OAuth kapsamları: 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. Yayıncı belirteçleri abone/takipçi sayılarına erişim sağlar.
  • EventSub ile teslim edilen olaylar ve izleyici/takipçi/abone toplamları için Helix sorgulaması.
  • WebSocket modu gerçek zamanlı şu veriyi sağlar: takipçi uyarıları, abonelik olayları, baskınlar, cheer'ler, Power-ups, kanal puanı kullanımları ve hype train meta verileri.
  • Shared Chat satırları Twitch IRC'nin şu öğesini kullanır: source-room-id şu alanı doldurmak için: sourceName/sourceImg bağlı kanaldan farklı olduğunda özgün kanalla.
  • İzleyicilerin paylaştığı Watch Streak bildirimleri varsayılan olarak kapalıdır ve şu seçeneği gerektirir: Twitch İzleme Serilerini Göster ayarı.
  • İsteğe bağlı PluralMind ayarı şu alanı değiştirebilir: chatname, nameColor, ve şunun vekil tarafından sarmalanmış kısmı: chatmessage, ayrıca zamir metin rozeti ekleyebilir. username ve userid Twitch kimliğini korur; ilgili silmeler şunu taşır: delete.meta.pluralmind böylece panel bu sabit alanları kullanır.
Olay Ne Zaman Tetiklenir Yük Notları
cheer EventSub'dan Cheer bildirimleri channel.bits.use. hasDonation “N bits”; meta.bits sayısal; chatmessage ham mesajı korur; kimliği belirlenen cheer gönderenler şu alanı içerir: chatimg.
powerup EventSub'dan yerleşik veya özel Power-up bildirimleri channel.bits.use. Boş alan içeren, yalnızca olay yükü: chatmessage ve şu alan yoktur: hasDonation, böylece normal sohbet satırı oluşturmaz. meta.bits sayısaldır ve meta.powerUp Twitch alt türünü, başlığı/ödül kimliğini, efekt ayrıntılarını ve varsa sağlanan mesaj metnini korur.
new_subscriber channel.subscribe veya şu alanı içeren USERNOTICE: msg-id=sub. meta şunu içerir: { userId, tier, isGift }; mevcutsa önbellekteki abone toplamı artar; izleyici toplamları ayrı sorgulanır.
resub channel.subscription.message veya USERNOTICE msg-id=resub. meta seriyi ve birikimli ayları taşır; chatmessage yeniden abonelik metnini içerir.
subscription_gift channel.subscription.gift veya USERNOTICE msg-id=subgift. meta toplam hediye sayısını ve seviyeyi sunar; chatmessage eylemi özetler.
reward channel.channel_points_custom_reward_redemption.add. meta ödül kimliği, başlık, maliyet, istem, kullanıcı girdisi, ödül kullanımı kimliği/durumu ve eski alternatif adı içerir. Üst düzey şu alan yoktur: reward nesnesi bu EventSub işleyicisi tarafından gönderilir. Eski tüketiciler hâlâ şunu gösterebilir: channel_points kullanımdan kaldırılmış alternatif ad olarak.
raid EventSub channel.raid veya USERNOTICE msg-id=raid. meta = { fromId, fromLogin, viewers }.
watch_streak Şu alanla isteğe bağlı Twitch IRC USERNOTICE: msg-id=viewermilestone ve msg-param-category=watch-streak. İzleyiciyi şu alana dahil eder: chatname, Twitch'in bildirim metni şu alanda: chatmessage, ve meta.streakCount/meta.milestoneId. Diğer genel USERNOTICE türleri yok sayılmaya devam eder.
new_follower channel.follow EventSub bildirimleri. Otomatik artırır: follower_update; meta şunu kaydeder: { userId, followedAt }.
viewer_update Helix streams her 30 saniyede bir yoklama. meta tam sayı izleyici sayısı; ayarlarda izleyici istatistikleri etkin değilse gönderilmez.
follower_update Takip olaylarından sonra veya düzenli yoklama ile alınan Helix toplam takipçi sayısı. meta tam sayı takipçi sayısı.
subscriber_update Helix toplam abone sayısı (abonelik kapsamına sahip yayıncı belirteci gerektirir). meta tam sayı abone sayısı.
stream_online / stream_offline EventSub stream.online/stream.offline. meta.startedAt çevrimiçi olaylarda bulunur; çevrimdışıyken boş nesne kullanılır.
ad_break / ad_request / ad_schedule Reklam yöneticisi API yanıtları (channel.ad_break.begin, elle POST channels/ads, GET channels/ads). meta panolar için süreyi, istekte bulunanı ve zamanlama yükünü ayrıntılandırır.
hype_train EventSub channel.hype_train.begin, channel.hype_train.progress, ve channel.hype_train.end v2 bildirimleri. Yalnızca meta veriden oluşan olay: şu alan yoktur: chatname veya chatmessage. meta.phase şudur: begin, progress, veya end; meta tren kimliği, seviye, ilerleme, hedef, toplam, katkıda bulunanlar, zaman alanları, paylaşılan tren bayrağı ve şunu içerir: trainType. Treasure Train olayları şu alanla sunulur: meta.trainType Twitch bunları etiketlediğinde.
user_banned EventSub channel.ban, veya IRC CLEARCHAT EventSub yasaklama olayları kullanılamadığında yedek olarak kullanılır. Moderasyon bileşenleri için yalnızca meta veriden oluşan olay. meta kullanıcı adı/görünen ad, kullanıcı kimliği, avatar/profil URL'si, moderatör, neden, yasaklama/zaman aşımı süresi ve kalıcılık bilgisini içerir.

Sohbet yükleri paylaşılan sağlayıcıyı yeniden kullanır; bu nedenle data.event `/me` için doldurulur (action) ve eski bits etiketleri EventSub akışları dışında da kullanılır. Twitch GIF mesajları Giphy varlığını şu alana yerleştirir: contentimg, şunu bırakın: chatmessage boş bırakın ve Twitch'in yedek etiketini şu alanda koruyun: meta.gifLabel. Yinelenenleri ayıklama ve silme mantığı mesaj kimliklerini kullanır; SSN üzerinden gönderilen mesajlar yerel alanı kullanır: message_id Twitch'in şu alandaki IRC yankısından: data.id.

Twitch Hype Train Meta Verileri

hype_train yalnızca meta veriden oluşur ve şu alanı içermez: chatname veya chatmessage. Kontrol panelleri mevcut tren görünümünü şu alana göre güncellemelidir: meta.id her ilerleme güncellemesini sohbet olarak eklemek yerine. Meta Veri Çubuğu (meta.html) bu olayları üst ilerleme çubuğu olarak gösterir.

Alan Yazın: Notlar
typemetinHer zaman twitch.
eventmetinHer zaman hype_train.
meta.phasemetinbegin, progress, veya end.
meta.idmetinSabit tren kimliği. Görünür tek bir tren bileşenini eklemek/güncellemek için bunu kullanın.
meta.broadcasterUserIdmetinTwitch yayıncısının kullanıcı kimliği.
meta.broadcasterUserLoginmetinTwitch yayıncısının giriş adı.
meta.broadcasterUserNamemetinTwitch yayıncısının görünen adı.
meta.totalsayı | nullTwitch'in tren için bildirdiği toplam destek değeri.
meta.progresssayı | nullSeviye hedefine doğru mevcut ilerleme.
meta.goalsayı | nullGeçerli seviye hedefi.
meta.progressPercentsayı | nullTwitch yalnızca görünen açılır pencere ilerleme çubuğunu sunduğunda kullanılan DOM yedek yüzdesi.
meta.levelsayı | nullGeçerli veya sona eren tren seviyesi.
meta.topContributionsdiziEn çok katkıda bulunanlar. Her girdi şunları içerir: userId, userLogin, userName, type, ve sayısal total.
meta.lastContributionnesne | nullŞu alanla aynı katkı biçimini kullanan en son katkı: topContributions.
meta.sharedTrainParticipantsdiziSağlandığında Twitch'ten gelen ham paylaşılan tren katılımcı verileri.
meta.startedAtmetinTrenin başlangıcına ait ISO zaman damgası.
meta.expiresAtmetinGeçerli trenin sona ereceği zamana ait ISO zaman damgası.
meta.endedAtmetinTrenin bitişine ait ISO zaman damgası; bitişten önce boştur.
meta.cooldownEndsAtmetinBekleme süresinin bitişine ait ISO zaman damgası; bitişten önce boştur.
meta.isSharedTrainbooleanTwitch treni paylaşılan olarak işaretlediğinde true değerini alır.
meta.trainTypemetinGenellikle regular; Twitch etiketlediğinde Treasure Train olayları burada sunulur.
meta.allTimeHighLevelsayı | nullTwitch sağladığında tüm zamanların en yüksek tren seviyesi.
meta.allTimeHighTotalsayı | nullTwitch sağladığında tüm zamanların en yüksek tren toplamı.
meta.sourceModemetinŞunun gibi isteğe bağlı kaynak işareti: dom.
meta.eventSubTypemetinÖzgün EventSub türü: channel.hype_train.begin, channel.hype_train.progress, channel.hype_train.end, veya dom.community_highlight.

Twitch EventSub: Hızlı Olay Başvurusu

data.event Senaryo
new_followerKullanıcı kanalı takip etti
new_subscriberYeni abonelik
resubMesaj içeren yeniden abonelik
subscription_giftKanala hediye edilen abonelikler
cheerBits ile destek
powerupYerleşik veya özel Power-up kullanıldı
rewardKanal puanı kullanımı
raidGelen baskın
viewer_updateEşzamanlı izleyici sayısı
follower_updateToplam takipçi sayısı
subscriber_updateToplam abone sayısı
stream_onlineYayın başladı
stream_offlineYayın sona erdi
ad_breakReklam arası başladı
hype_trainHype Train/Treasure Train durum meta verileri
user_bannedKullanıcı yasaklandı veya zaman aşımına alındı

OBS Flow Actions

Uygulama: actions.html OBS WebSocket v5 olayları aracılığıyla; şu alanla: dock.html Yedek olarak OBS Tarayıcı Kaynağı olayları

  • Flow Actions katmanını, Etkinlik Akışı düzenleyicisi/arka planı ile aynı Social Stream oturumunda açık tutun veya paneli OBS içinde yüklü tutun.
  • OBS 28+ üzerinde OBS WebSocket v5 yapılandırın; varsayılan URL: ws://127.0.0.1:4455.
  • Bunlar Etkinlik Akışı sistem olaylarıdır. Şu alanı içermezler: chatname veya chatmessage, ek OBS ayrıntıları ise şu alanın içinde kalır: meta.
Olay Ne Zaman Tetiklenir Yük Notları
stream_started OBS yayın çıkışının başlatılmış duruma ulaştığını bildirir. type şudur: obs; event şudur: stream_started; meta.source şudur: obs-websocket veya obs-browser-source; meta.outputState ham OBS çıkış durumunu taşıyabilir.
stream_stopped OBS yayın çıkışının durdurulmuş duruma ulaştığını bildirir. type şudur: obs; event şudur: stream_stopped; meta.outputActive şu değer olabilir: false.
recording_started OBS kaydın başladığını bildirir. type şudur: obs; meta.obsEvent OBS olay kaynağını tanımlar.
recording_stopped OBS kaydın durduğunu bildirir. type şudur: obs; meta.outputState ham WebSocket durumunu taşıyabilir.
scene_changed OBS etkin program sahnesini değiştirir. type şudur: obs; meta.sceneName OBS sağladığında sahne adını içerir.
media_ended Bir OBS medya girdisinin oynatımı biter. type şudur: obs; meta.inputName ve meta.inputUuid medya girişini tanımlar.
replay_buffer_saved OBS tekrar arabelleğini kaydeder. type şudur: obs; meta.savedReplayPath kaydedilen tekrarın yolunu içerebilir.

Streamlabs Uyarı Kutusu

Uygulama: sources/streamlabs.js (uyarı kutusu DOM'u); isteğe bağlı soket köprüsü: sources/websocket/streamlabs.html

  • Uyarıların görüntülenmesi için Streamlabs uyarı kutunuzu bir sekmede veya tarayıcı kaynağında açık tutun; içerik betiği mesajı/resmi/belirteçleri uyarı DOM'undan okur.
  • Bağış türü uyarılar şunu ayarlar: hasDonation (ör. “$10 USD” veya “100 bits”) ve isteğe bağlı donoValue USD cinsinden.
  • Çıkarılan olay türleri: follow, subscription, gift, cheer, donation, superchat, raid, redeem, merch, sponsor.
  • Soket köprüsü için Streamlabs Socket API belirtecinizi yapıştırıp bağlanın; uyarılar, uyarı kutusu sayfası olmadan aktarılır.
Olay Ne Zaman Tetiklenir Yük Notları
donation Bağış, hayır kurumu, JustGiving veya genel “bağış yaptı” uyarıları. hasDonation para birimi metnini korur (örneğin “$36” veya “$10 CAD”); donoValue yalnızca USD değeri mevcut olduğunda sağlanır; etiketli diğer miktarlar ortak para birimi dönüştürmesini kullanır.
cheer Twitch bit/cheer uyarıları. hasDonation “100 bits” olur ve donoValue USD değerini yakalar.
subscription Abonelik uyarıları. Standart alanlar ayarlanır; chatmessage uyarı satırıdır; meta.tokens belirteçlere ayrılmış değerleri taşır (name, amount, levelName vb.).
gift Hediye edilen üyelikler/abonelikler. meta.tokens.amount hediye sayısını gösterebilir; meta.tokens.levelName seviyeyi tutabilir.
follow Takipçi uyarıları. Bağış alanları yoktur; chatname uyarının ad belirtecini yansıtır.
raid Baskın uyarıları. meta.tokens.count varsa baskına katılanların sayısını tutar.
redeem Cloudbot ödül kullanım uyarıları. meta.tokens.product kullanılan ödül öğesini yakalar.
merch Ürün satın alma uyarıları. meta.tokens.product satın alınan öğenin adını içerir.
superchat YouTube veya desteklenen uyarı entegrasyonlarından Super Chat biçimli uyarılar. hasDonation miktarı taşır; tüketiciler eski şu alanı kabul etmeye devam edebilir: donation alternatif adları.
sponsor Streamlabs tarafından sunulan sponsor/üye biçimli uyarılar. Standart alanlar; metin bir miktar içermedikçe bağış yoktur.

TikTok Live – DOM Yakalama ve TikFinity Akışı

Uygulama: sources/tiktok.js yerel TikTok sayfaları için ve sources/tikfinity.js TikFinity'nin etkinlik akışı bileşeni/iframe'i için. SSApp hâlâ en geniş olay kapsamına sahip yerel TikTok entegrasyonuna sahiptir (SSApp belgelerine bakın).

  • Yayıncının canlı sayfasında çalışır. Hediye/beğeni/takip afişleri yalnızca oturumun kimliği doğrulandığında doldurulur.
  • TikTok, DOM algılama yoluyla birçok olay sağlar WebSocket modu gerektirmeden – hediyeler, takipler, beğeniler ve isteğe bağlı katılımlar işlenmiş satırlardan yakalanır.
  • Şu konumdaki TikFinity bileşen sayfaları: tikfinity.zerody.one/widget/activity-feed* da çalışır. Gömülü etkinlik akışı iframe'i; sohbet, takipler, paylaşımlar, hediyeler, abonelikler, isteğe bağlı katılımlar ve hazine sandıkları için aynı standart TikTok yük alanlarını gönderir.
  • Ek API kimlik doğrulaması gerekmez.
  • SSApp yerel modu sayfa/bileşen yakalama yollarına ek olarak hâlâ şu olayları sunar: question_new, emote, viewer_update, ve isteğe bağlı toplam likes_update.
Olay Ne Zaman Tetiklenir Yük Notları
gift Hediye afişi satırları veya DivGiftMessage girdileri. hasDonation “N coins” biçimine dönüştürür (yedek olarak hediye aramasıyla); membership varsa rozet metnini kullanır.
joined Genel seçenek etkin olduğunda katılma bildirimleri: "joined" yayın olaylarını yakala ayarı etkin olduğunda. Paylaşım bildirimlerini atlar; chatname bazı sistem metinleri için boş olabilir.
followed Sosyal kartlardan ayrıştırılan takip mesajları. Şunu sağlar: chatname göndermeden önce mevcut olmalıdır.
shared TikFinity paylaşım satırları. chatmessage işlenmiş paylaşım metnidir.
subscribe TikFinity abonelik satırları. membership şu değere ayarlanır: SUBSCRIBER.
envelope TikFinity hazine sandığı satırları. meta.coins ve meta.canOpen sandık ayrıntılarını taşır.
liked TikTok sosyal kartlarının tetiklediği beğeni fırtınası özetleri. chatname TikTok sunduğunda eklenir; anonim/sistem beğeni kartları yine de gönderilebilir. TikTok bunu normal arka plan yolundan gönderir. Arka plan, bir kopyayı Tepkiler Katmanı'na yönlendirir; ardından yalnızca şu koşulda ana sohbet/olay işleme hattına devam eder: capturelikeevent etkin olduğunda.
likes_update SSApp, şu koşulda güvenilir ve birikimli TikTok LIVE toplamını alır: captureliketotals etkin olduğunda. meta geçerli toplam tam sayıdır. SSApp ilk değeri hemen gönderir, yoğun güncellemeleri her beş saniyede en fazla bir güncellemeye birleştirir, en son değeri yaklaşık her 90 saniyede bir tekrarlar ve yayın bittiğinde sıfır gönderir. Bu, izleyiciye özgü şu alandan ayrıdır: liked olayları.
true (mantıksal değer) TikTok'un alt tür belirtmediği genel sosyal/sistem yayınları. Kullanın: chatmessage içeriğini sunuma karar vermek için kullanın; boolean true “sistem olayı – tür bilinmiyor” anlamına gelir.

membership rozet araç ipuçlarını yansıtır (abone seviyeleri). Avatar önbelleğe alma şu alanı korur: chatimg olaylar arasında geçerli kalır; DOM moderatörlerin rengini gizlerse betik şu alanı temizler: nameColor. TikFinity hediye satırları ayrıca şunu ayarlar: contentimg varsa hediye simgesine ayarlanır. Yerel DOM ve TikFinity hediye serisi güncellemeleri şunu içerir: meta.tiktokGiftStreakId, meta.tiktokGiftCount, ve meta.tiktokGiftQuietMs böylece katmanlar yinelenen güncellemeleri birleştirebilir; eski seri kimlikleri sayfa örneğine özgüdür. Hediye meta verileri ayrıca şunu içerebilir: tiktokGiftMessageId (özgün TikTok mesaj kimliği), tiktokGiftSenderId, groupId, giftId, giftName, streakable, ve repeatEnd. Yerel kimlikler yakalama pencereleri arasında aynı hediyeyi tanımlar; sıfır olmayan grup kimliği, gönderen ve hediye kimlikleriyle birlikte birikimli seri güncellemelerini tanımlar. SSApp WebSocket yakalaması, seri kesinleştirildikten sonra aynı alanları sağlar; şu değerle: count uyumluluk için korunur. Her hediye iletilirken bağış seçeneği kontrol edilir: TikTok bağışlarını devre dışı bırakmak şu alanı kaldırır: hasDonation ve donoValue hediye olayını ve meta verilerini korurken. TTS, güncellemeleri birleştirmek ve tamamlanmış yinelenenleri en fazla on dakika boyunca engellemek için bu kimlikleri kullanır (sınırlı önbellek); TikTok hediyelerini gönderen, adet ve hediye adı olarak okur. Eski yükler mevcut seri kimliklerine ve mesaj metnine geri döner; yalnızca hediye metninden kimlik çıkarılmaz. TikTok hediye seslendirmesi, arayüz dilinden bağımsız olarak seçilen TTS/ses dilini kullanır. Duyuru fiilleri İngilizce, İspanyolca, Portekizce, Fransızca, Almanca, İtalyanca ve Felemenkçe için yerelleştirilmiştir; diğer diller İngilizce fiil olmadan göndereni, adedi ve hediye adını kullanır. Basitleştirilmiş TTS bu tarafsız biçimi korur. Hediye adları platformun sağladığı şekilde kalır; bu, hediye kataloglarını veya sohbet mesajlarını otomatik olarak çevirmez ya da yayının dilini çıkarmaz.

Bu seri güncellemelerinde sayı ve bağış etiketi birikimlidir: 1, 2, 3 toplam altı değil, üç hediye anlamına gelir. Toplamları hesaplayan bileşenler, yalnızca aynı seri kimliği için daha önce görülen en yüksek miktara göre artışı eklemelidir. Standart yakalama, eski hediye sınıflarını ve güncel resim/sayı satırlarını destekler; ikisi de şunu korur: event: "gift" ve hasDonation. Bilinmeyen fiyatlarda hediye sayıları/adları gösterim için korunur ve hediye başına bir coin üzerinden USD tahmini kullanılır. Kaynağın sağladığı donoValue önceliklidir; işlenmiş hediye meta verileri şunu sağlayabilir: coinsPerGift veya diamondsPerGift hediye tablosuna veya varsayılan değere ihtiyaç duyulmadan önce kullanılır. Standart/TikFinity jeton tahminleri ve SSApp yerel elmas tahminleri mevcut farklı dönüştürmelerini kullanır; ikisi de garantili nakit ödeme anlamına gelmez.

Whatnot

Uygulama: sources/whatnot.js

  • Sohbet görünür olacak şekilde canlı Whatnot yayın sayfasını açın; mevcut websocket yakalaması sohbeti, açık artırma/satış bildirimlerini, ödeme hatalarını, baskınları, bağışları ve hızlı izleyici güncellemelerini sağlar. Ürün/çekiliş anlık görüntüleri hâlâ yayın görünümünde işlenen DOM bölümlerine dayanır.
  • Yayın etkinliklerini yakala Whatnot sistem olaylarını ve açık artırma/katalog meta veri güncellemelerini kontrol eder; katılma satırları ayrıca şunu gerektirir: "joined" yayın olaylarını yakala; izleyici sayıları yine izleyici/Hype anahtarlarına uyar.
Olay Ne Zaman Tetiklenir Yük Notları
viewer_update Websocket canlı yayın güncellemelerinden izleyici sayısı değişiklikleri; yedek olarak DOM yoklaması kullanılır. meta tam sayı izleyici sayısıdır.
donation Whatnot websocket bağış ve community boost katkı olayları. hasDonation biçimlendirilmiş miktarı içerir; websocket'e özgü bağlam şu alanın altında kalır: meta.
raid Geçmiş etkinlik yanıtları dahil Whatnot websocket baskın olayları. meta.numRaiders Whatnot sağladığında eklenir.
joined Normalleştirilmiş gövdesi şununla başlayan sohbet satırları: joined, şu durumda: "joined" yayın olaylarını yakala etkin olduğunda. Katılma bildirimleri için metin olay etiketleri kullanır (boolean değil: true).
auction_update Canlı altbilgideki açık artırma durumu (kazanan/kazanıyor metni, başlık, teklifler, fiyat, zamanlayıcı, satıldı durumu) değiştiğinde; çoğu zaman websocket açık artırma yaşam döngüsü paketleri bunu hızlandırır. Yalnızca meta veriden oluşan olay. Şu alan yoktur: chatname/chatmessage; veriler şu alandadır: meta (örneğin meta.title, meta.bids, meta.price, meta.timer, meta.status).
commerce_update Katalog bölümleri (ürünler, sürpriz setler, yaklaşan çekilişler) değiştiğinde; çoğu zaman websocket çekiliş/ürün yaşam döngüsü paketleri bunu hızlandırır. Şu alan altında bölüm sayıları ve öğe dizileri içeren, yalnızca meta veriden oluşan anlık görüntü: meta.products, meta.surpriseSets, ve meta.upcomingGiveaways.
auction_started, new_bid, auction_ended, product_sold İlgili canlı websocket bildirimi gelir. Bunlar mevcut gösterim anlık görüntülerinden ayrı, bireysel olaylardır. platform/type: "whatnot", düz metin chatname, userid sağlandığında; ürün adı şu alanda: subtitle, ve düz metin chatmessage şununla: textonly: true. Mevcut kimlikler ve açık artırma ayrıntıları şu alandadır: meta: productId, auctionId, orderId, transactionId, livestreamId, bidId, bids, auctionEndTime, ve status. İsteğe bağlı price ana para birimi cinsindendir; şu alanla: priceText ve currency sağlandığında.
payment_failed Canlı ödeme başarısızlığı WebSocket bildirimi gelir. Aynı mevcut alıcı, ürün ve tanımlayıcı alanları; şu alanla: meta.paymentStatus: "failed". Yalnızca şu olduğunda: product.purchaserUserId alıcıyı tanımlıyorsa şu alanı doldurur: userid satış/ödeme olaylarında ve alıcı adı boş kalır. Farklı veya önceki açık artırmalardan alıcı çıkarımı yapılmaz.
payment_succeeded Canlı ödeme başarısı WebSocket bildirimi gelir. meta.paymentStatus: "succeeded", o bildirimin sağladığı alıcı, ürün, sipariş kimliği ve diğer izin verilen alanlarla. Bu ayrı bir ödeme olayı olarak kalır; ek bir olay üretmez: purchase veya bağış. Önceki bir satışta sağlanmış olsalar bile eksik alanlar boş kalır veya dahil edilmez.

Açık artırma/ticaret görüntüleme güncellemeleri DOM destekli anlık görüntüler olarak kalır. Etkinlik Akışında tek bir WebSocket olayıyla eşleşmek için şunu kullanın: Olay Türü (Gelişmiş), şunu seçin: Özel Olay, ve tam adını girin. Etiketlerde şu kullanılabilir: **{username}**\n{subtitle} seçilen metin ağırlığıyla; koşullar şu alanı karşılaştırabilir: meta.paymentStatus şununla: failed. Bir içe aktarılabilir Whatnot etiket örneği kullanılabilir olduğunda. Mevcut yayın olayı yakalama ayarları geçerliliğini korur.

Diğer isteğe bağlı alanlar: meta.catalogProductId (paketin product.productId), meta.parentProductId (product.parentId), meta.transactionType (Whatnot'un satış türü, değiştirilmeden) ve meta.placeOrderErrorReason (Whatnot'un sağladığı sipariş/ödeme hata kodu). Bu ürün referansları katalog veya üst ilanı tanımlar; sipariş kimliğinin yerine geçmez. Stok miktarı, satın alınan miktar olarak değerlendirilmez.

Başarılı ödeme otomasyonu için şunu ayarlayın: Olay Türü (Gelişmiş) tetikleyicisiyle şuna: Özel Olay: payment_succeeded, ve kaynağı Whatnot olarak filtreleyin. Mevcut koşullar ve şablonlar bu olayın şu alanını kullanabilir: userid, chatname, subtitle ve meta.orderId doğrudan. Bildirim gerekli ayrıntıları içerdiğinde daha önce saklanmış bir satın alma gerekmez.

Bir açık artırmanın bitmesi veya ürünün satıldı olarak işaretlenmesi, ödemenin başarılı olduğunu doğrulamaz: bu bildirimler ödenmiş olaylar olarak yayınlanmaz: purchase olaylarıdır ve bağış miktarı ayarlamazlar. Başarı olayı yalnızca şu öğe alındığında gönderilir: payment_succeeded bildirimi; yakalama, ödemenin tamamlanmasını yoklamaz veya satıştan çıkarmaz. Diğer paymentStatus değerleri yalnızca yakalanan pakette açıkça sağlandığında iletilir. Eksik tanımlayıcılar dahil edilmez; yalnızca ürün kimliği birden fazla satışı kapsayabilir, bu nedenle bildirimleri ilişkilendirmek için sağlanan sipariş/açık artırma kimliğini kullanın. Yakalama satın almaları saklamaz veya ödeme güncellemelerini eşleştirmez; bu tür iş akışları Etkinlik Akışı'nda açıkça yapılandırılmalıdır. Mevcut iki yakalama köprüsünden kısa süre içinde gelen yinelenen paketler engellenir. Ham sipariş/ödeme nesneleri iletilmez.

eBay Live

Para Kazanma eBay satıcı bağlantısı, yapılandırılmış bir SSN eBay hizmeti ve satıcının OAuth onayını gerektirir; aşağıdaki eBay Live yakalaması bağımsızdır. Sandbox modu sandbox ilan URL'lerini kullanır, alıcıyı "eBay Sandbox buyer" olarak etiketler ve mesaja "Sandbox test purchase:" önekini ekler. Sandbox satın almaları aynı satın alma sözleşmesini korur ve test sırasında etkin uyarıları/sohbet eylemlerini tetikleyebilir. Uygulanmış ödeme sözleşmesi şunu gönderir: event: "purchase", şu alanla: type ve platform şu değere ayarlanır: ebay. Seçilen bir ürünle eşleşen ödenmiş sipariş gerektirir. id sabit ve opak bir sipariş satırı tanımlayıcısıdır; chatname "eBay buyer" değeridir, chatmessage düz metindir (textonly: true), subtitle ürün adıdır ve isteğe bağlı contentimg onun resmidir. meta.ebayPurchase şunu içerir: itemId, itemName, quantity, ve herkese açık url. Alıcı kimliği, gönderim verileri veya şu alan bulunmaz: hasDonation veya donoValue eklenir. Bu, ödemeyi kanıtlamayan kazınmış açık artırma veya stok güncellemelerinden farklıdır.

Uygulama: sources/ebay.js

  • Şunlardan birini açın: /ebaylive/events/<id>/chat veya /ebaylive/events/<id>/stream. İkisi de aynı canlı açık artırma akışını alır.
  • Herkese açık WebSocket akışı açık artırmaları, teklifleri, kazananları, süre uzatmalarını ve stok değişikliklerini sağlar; salt okunur bir GraphQL sorgusu ilan ayrıntılarını sağlar. Ağ verisi kullanılamadığında DOM yakalaması yedek olarak kalır.
  • Yayın etkinliklerini yakala meta veri anlık görüntülerini kontrol eder (auction_update, commerce_update); izleyici sayaçları yine izleyici/Hype anahtarlarına uyar.
Olay Ne Zaman Tetiklenir Yük Notları
viewer_update Etkin etkinliğin izleyici sayısı değiştiğinde (başlık sayısı veya yedek canlı etkinlik rozeti). meta tam sayı izleyici sayısıdır.
follower_update Satıcı istatistikleri uç noktası, satıcının takipçi sayısını döndürdüğünde. meta tam sayı takipçi sayısıdır. Kaynak, satıcı uç noktasını her 60 saniyede bir yoklar; uç nokta yine de en fazla 5 dakika boyunca önbellekteki değeri döndürebilir.
auction_update Etkin açık artırma meta verileri değiştiğinde. Yalnızca meta veriden oluşan olay. Ağ yakalaması şunu ayarlar: meta.sourceMode şu değere: network ve title, price, bidder, winner, bids, timer ve endingAt alanlarını sağlar. meta.ebay eventId, listingId, GraphQL ilan kaydını içerir (listing), mevcut herkese açık soket ilanı (eventListing), ve en son açık artırma güncellemesi (update). Bunlar kategori, resimler, para birimleri, miktarlar, kutu açılımı ayrıntıları, açık artırma sonuçları ve zamanlama alanlarını platform ayrıntılarını düzleştirmeden korur. GraphQL kaydı alınmış bir anlık görüntüdür; soket ilanı ve güncellemesi daha yeni canlı durumu taşır. İlk bağlantı/yeniden bağlantı geçmişi eski kazanımlar olarak yayınlanmak yerine mevcut anlık görüntüye katılır. Sunulan tüm ilanların kaldırılması şu olayı üretir: status: "idle" şununla: cardCount: 0 açık artırmayı temizlemek için. DOM yedeği oynatıcı kartı veya etkinlik önizlemesi alanlarını korur.
commerce_update Katalog/canlı etkinlik anlık görüntü bölümleri değiştiğinde. Şu alan altında yalnızca meta veriden oluşan anlık görüntü: meta. Ağ modu şunu içerir: eventId, navigation.viewerCount ve playerCards şu anda sunulan ilanlar için; her biri aynı ayrıntılı şu alanı içerir: ebay nesnesi, açık artırma anlık görüntüsü olarak kullanılır. Boş kart listesi kaldırılmış ilanları temizler. DOM yedeği ayrıca şunu içerebilir: liveEvents, livePreview, currentEvent ve upcomingEvents.
reaction eBay Live bir kalp/tepki animasyonu görüntülediğinde. Doğrudan özel tepki hedefine gönderilir. meta.reactionType şudur: heart; eBay bu DOM animasyonları için kullanıcıya özel ad sunmaz.

eBay meta veri olayları şu alanı bilinçli olarak dahil etmez: chatname/chatmessage; sonraki katmanlar şu alandan oluşturmalıdır: data.event + data.meta yalnızca.

Kick – Standart DOM Yakalama

Uygulama: sources/kick.js

  • Profil resimlerini ve abone rozetlerini çözümlemek için kimliği doğrulanmış bir oturum gerekir.
  • Sohbet metni eşleştirmesi ve rozetler aracılığıyla sınırlı olay algılama; seçenek etkinleştirildiğinde izleyici sayıları çalışmaya devam eder.
Olay Ne Zaman Tetiklenir Yük Notları
gift Çıkartma resmi ve görünür Kick para birimi miktarı aracılığıyla algılanan KICKs hediyeleri. hasDonation şunu taşır: N KICKs (1 KICK tek adet için), görünür miktar mevcut olduğunda; contentimg hediye resmini taşır. Mevcut mesaj metni korunur.
reward Ödül kullanımları (“… ödülünü kullandı”). chatmessage ödül kullanımı metnini içerir.
true (mantıksal değer) Hediye veya ödül kalıplarıyla eşleşmeyen genel sistem bildirimleri. Kullanın: chatmessage içeriğini sunuma karar vermek için kullanın; boolean true "sistem olayı – tür bilinmiyor" anlamına gelir.
viewer_update Kick kanal API'sini her 30 saniyede bir yoklar (yalnızca izleyici istatistikleri etkin olduğunda). meta tam sayı izleyici sayısı; abonelikler, takipler veya bağışlar için aşağıdaki Kick köprüsünü kullanın.

Kick – Websocket/Köprü

Uygulama: sources/websocket/kick.js şu konumdaki ortak yardımcılarla: providers/kick/core.js

  • Social Stream Kick köprüsü üzerinden OAuth. Güncel kapsamlar: user:read, channel:read, channel:write, channel:rewards:read, chat:write, events:subscribe, moderation:ban, moderation:chat_message:manage, ve kicks:read. Belirteçler otomatik yenilenir.
  • Kick webhook'larının hazırlanması birkaç dakika sürebilir; arayüz her kanalın etkin aboneliklerini listeler.
Olay Ne Zaman Tetiklenir Yük Notları
message Köprü sohbet yükü. meta.plainText düz metin mesajı içerir (yine de emoji içerebilir); rozetler platform ve profil önbelleğinden birleştirilir. Konu yanıtları şu alanı doldurur: initial, reply, ve meta.reply yanıt ayrıntıları veya önbellekteki üst mesaj mevcut olduğunda.
reward channel.reward.redemption.updated, ayrıca ödül kullanımına benzeyen köprü sohbet/sistem yükleri. meta ödül/ödül kullanımı kimliği, başlık, maliyet, durum, kullanıcı girdisi ve ödülü kullanan kişiyi içerir.
new_subscriber channel.subscription.new. membership abone rolüne atanır; meta { subscriber, plan } içerir.
resub channel.subscription.renewal. meta.duration (ay) ve meta.plan kullanılabilir; subtitle seriyi özetler.
subscription_gift channel.subscription.gifts. meta.totalGifted, meta.gifter; rozet bulunmazsa 💝 simgesi kullanılır.
donation Olay türü sezgisel kurallarıyla algılanan destek/bağış olayları; KICKs hediyeleri şunu kullanır: gift aşağıda. hasDonation biçimlendirilmiş miktarı taşır; meta { amount, currency, supporter, message, giftName } içerir.
gift kicks.gifted (KICKs hediyeleri); DOM yakalayıcısıyla uyumludur. hasDonation şunu taşır: N KICKs (1 KICK tek adet için); contentimg varsa hediye resmini taşır. Yapılandırılmış hediye ayrıntıları şu alanın altında kalır: meta.
raid Şunun gibi eski host biçimli soket yükleri için uyumluluk işlemesi: App\Events\StreamHostEvent. Kick'in güncel resmî olay kataloğunda baskın/host aboneliği yoktur. Uyumlu bir eski yük gelirse şu standart türe eşlenir: raid; güncel Kick iş akışında buna güvenmeyin.
new_follower channel.followed. Takipçi simgeleri profil önbelleğinden alınır; follower_update Kick birikimli toplamlar sağladığında tetiklenir.
follower_update Köprü, webhook yüklerinde takipçi sayılarını sağlar. meta tam sayı toplam; panolar tarafından takipçi hedefleri için kullanılır.
stream_online / stream_offline livestream.status.updated. meta Kick'ten gelen ham durum gövdesini içerir (is_live, title vb.).
viewer_update livestream.status.updated Kick eşzamanlı izleyici toplamlarını içerdiğinde. meta tam sayı izleyici sayısı; şunu gönderir: 0 çevrimdışı durumda eski sayaçları temizlemek için.
user_banned moderation.banned köprü/webhook'tan veya Kick sohbet soketi yasaklama olaylarından. Moderasyon bileşenleri için yalnızca meta veriden oluşan olay. meta kullanıcı adı/görünen ad, kullanıcı kimliği, avatar/profil URL'si, moderatör, neden, yasaklama/zaman aşımı süresi ve kalıcılık bilgisini içerir.

Profil aramaları şunu kullanır: profileCache; mapBadges Kick'in rozet varlıklarını, varsa önbellekteki SVG ile birleştirir. Kick bağışları KICKs olarak bildirdiğinde köprü bunları şu değere dönüştürür: hasDonation ve ayrıca meta.amount şununla: currency yedek olarak "KICKs" kullanır. Sohbet yükleri şunu içerir: meta.messageId köprü yerel bir Kick mesaj kimliğini sunduğunda; böylece silme eşitlemesi doğru mesajı hedefleyebilir. Yanıt yükleri şunu içerir: meta.reply üst öğenin şu alanıyla: messageId, author, ve text bilindiğinde. Özgün mesaj önbellekte olmasa bile sağlanan yanıt ayrıntıları kullanılabilir kalır; önbellekte bağlamı olmayan, yalnızca kimlik içeren bir yanıtta görünür alıntı yine de olmayabilir.

Kick Websocket: Hızlı Olay Başvurusu

data.event Senaryo
new_followerKullanıcı kanalı takip etti
new_subscriberYeni abonelik
resubAbonelik yenileme
subscription_giftHediye edilen abonelikler
rewardKanal ödülü kullanımı veya ödül tarzı sohbet/sistem mesajı
donationBağış/destek olayı
giftKICKs hediye olayı
raidYalnızca uyumluluk için eski host/raid girdisi; güncel resmî Kick aboneliği değildir
follower_updateToplam takipçi sayısı
stream_onlineYayın başladı
stream_offlineYayın sona erdi
user_bannedKullanıcı yasaklandı veya zaman aşımına alındı

VPZone - WebSocket

Uygulama: sources/websocket/vpzone.js

  • Şuraya bağlanır: wss://chat.vpzone.tv/ws?channel=USERNAME; OAuth şunu ister: profile:read, chat:read, chat:write, channel:read, channel:write, ve chat:moderate. Bearer belirteci elle de sağlanabilir.
  • Şunun gibi düz VPZone çerçeveleri: type: "msg" standart sohbet yüklerine normalleştirilir.
  • Platform tarafındaki delete_message / clear_chat çerçeveleri eşleşen satırları panelden kaldırır; isteğe bağlı ayarlar, panel silmelerini ve engellemelerini VPZone'a geri eşitler (yalnızca kanal sahibi).
  • Kanal sahipleri canlı yayının başlığını ve kategorisini güncellemek için sayfaya yerel bir Stream Info paneli alır (Twitch kaynak sayfasıyla aynı düzen).
Olay Ne Zaman Tetiklenir Yük Notları
message VPZone msg, message, new_message, veya chat_message websocket çerçevesi. chatname şuradan gelir: username; chatmessage şuradan gelir: body; abone/sahip/mod/VIP bayrakları şu alana kopyalanır: chatbadges, üst düzey rol bayrakları ve meta. Yerel kimlikler şu alanı doldurur: data.id ve meta.messageId.
viewer_update VPZone presence şunu içeren çerçeve: count veya eşdeğer izleyici alanı. meta canlı izleyici tam sayısıdır; birleştirilmiş şu alana katkıda bulunur: viewer_updates.
new_subscriber VPZone subscribe / subscription çerçevesi. membership abonelik bayrakları mevcut olduğunda Subscriber olarak ayarlanır.
subscription_gift VPZone gift / gift_subscription çerçevesi. Twitch, Kick, Rumble ve Velora ile aynı hediye abonelik olay adını kullanır. subtitle hediye sayısını taşır (x5) veya alıcı.
message + hasDonation VPZone system şunu içeren çerçeve: metadata.kind: "pixels_cheer" (Pixels bahşişi). Bağış içeren sohbet satırı; hasDonation miktar etiketidir (örneğin 100 Pixels), meta.pixels tam sayı. event boş kalır; bu bağışı şu alandan algılayın: hasDonation. Kick köprüsündeki destek olayları bunun yerine şunu kullanır: event: "donation".
message yanıtlar VPZone msg şunu taşıyan çerçeve: metadata.reply_to (mesaj kimliği, yazar, alıntı — sunucu tarafında denormalize edilir). Kick yanıtları gibi görüntülenir: initial "yazar: alıntı" etiketini tutar, reply ham yanıt metni, meta.reply yapılandırılmış hedef. Şu ayara uyar: “replying to” kısmını hariç tutar ayarı.
raid VPZone raid şunu içeren çerçeve: metadata.kind: "incoming". Giden baskın çerçeveleri atlanır; meta.viewers sağlandığında baskının büyüklüğünü taşır.
shoutout VPZone shoutout çerçevesi (!so komutu). meta.targetUser tanıtılan kanalın adını belirtir.
reward VPZone system şunu içeren çerçeve: metadata.kind: "channel_points_redeem". Twitch ödülleriyle aynı olay adını kullanan kanal puanı kullanımı.
stream_online / stream_offline VPZone system şunu içeren çerçeveler: metadata.kind: "stream_started" / "stream_ended". Kanal adına atfedilir (çerçeveler kişi bilgisi taşımaz).
new_follower VPZone follow çerçevesi. Standart takipçi olayı biçimine eşlenir.
joined Şu koşulda VPZone katılma/varlık biçimli websocket olayları: "joined" yayın olaylarını yakala etkin olduğunda. VPZone aktör meta verileriyle sohbet biçimli bir sistem olayına eşlenir; meta verilerin konumu: meta.

Joystick

Uygulamalar: sources/joystick.js, sources/inject/joystick-ws.js, ve sources/websocket/joystick.js

  • Normal Joystick 2.0 web sitesi kaynağı, oturum açılmış şu sayfada çalışır: /u/<channel>/chat sayfası. Sayfanın şu öğesini okur: ChatChannel, WhisperChatChannel, EventLogChannel, ve SystemEventChannel Action Cable çerçeveleri; Electron ve yeniden bağlantı durumları için görüntülenen satır yedeğiyle.
  • Web sitesi sohbet mesajları, YouTube, Twitch ve Kick ile aynı temel alanları kullanır: yerel id, chatname, chatmessage, chatimg, chatbadges, nameColor, membership, mod, private, username/userid, ve timestamp Joystick sağladığında. Soket kullanıcı adı rengini vermediğinde işlenmiş satır aynı şu alanı sağlar: nameColor renk desteği etkin panellerin kullandığı alan.
  • Web sitesi tarafındaki mesaj düzenlemeleri eşleşen panel satırını değiştirir; silmeler, susturmalar ve engellemeler, yerel kimliği veya kullanıcı adını kullanarak eşleşen satırları kaldırır.
  • Ayrı WebSocket kaynağı, Joystick bot kimlik bilgilerini kullanır (client_id + client_secret); web sitesi kaynağı oturum açılmış sayfanın oturumunu kullanır.
  • Şu adreste yetkilendirir: https://joystick.tv/api/oauth/authorize, ardından belirteçleri şu adreste değiştirir/yeniler: https://api.joystick.tv/api/oauth/token.
  • Şuraya bağlanır: wss://api.joystick.tv/cable ve şu öğeye abone olur: GatewayChannel.
  • İsteğe bağlı OAuth belirteç değişimi, şu örnekteki gibi yardımcı uç noktalar için kullanılır: https://api.joystick.tv/api/users/stream-settings.
  • Ayrı bot kimlik bilgisi kaynağı şu olayı göndermez: viewer_update. Oturum açılmış web sitesi kaynağı, aşağıda açıklandığı gibi sayfa soketi izleyici sayıları sağladığında bunları yayınlar.
Olay Ne Zaman Tetiklenir Yük Notları
message Joystick ChatMessage, BotMessage, new_message, bot_message, event_bot_message, pvp_message, ve fısıltılar. Normal sohbette şu alan yoktur: event. Yerel kimlik üst düzey alana yerleştirilir: id ve meta.messageId; roller ve özel durum, yerleşik üst düzey/rozet alanlarını kullanır.
new_follower Joystick StreamEvent şu türle: Followed. Standart takipçi biçimini kullanır ve Joystick'in eşleşen bot satırıyla tekilleştirilir. İsteğe bağlı meta.userId/meta.followedAt yalnızca Joystick bunları sağladığında eklenir.
new_subscriber / subscription_gift Joystick olay türleri NewSubscription / GiftedSubscription. Kick ile uyumlu abonelik meta veri anahtarlarını kullanır: eventType, subscriber, gifter, totalGifted, duration, ve plan.
donation Joystick StreamEvent türleri Tipped / TipMenu. hasDonation varsa ortak USD dönüştürmesi için token miktarını ve birimini taşır; eşleşen Joystick bot satırı tekilleştirilir. meta yerleşik Kick destek olayı anahtarlarını kullanır: eventType, supporter, amount, currency, message, giftName, giftType, ve tier.
stream_online / stream_offline Joystick StreamEvent şu örnekteki gibi türler: Started, StreamResuming, Ended, StreamEnding. Taşıma yöntemini dikkate alan çevrimiçi/çevrimdışı otomasyonlar için kullanılır.
user_enter / user_leave Joystick UserPresence türleri enter_stream / leave_stream. Varlık bildirimleri olay mesajları olarak gönderilir ve olayları gizleme ayarlarıyla engellenebilir. Olayları gizleme, bağış olmayan yayın olaylarını da engeller.
viewer_update Oturum açılmış web sitesi kaynağı şunu alır: ViewerCountUpdated şu yolla: EventLogChannel. Düz bir tam sayı kullanır: meta, YouTube, Twitch ve Kick ile uyumlu. Yalnızca izleyici sayısı veya Hype modu etkinken yayınlanır. Ayrı bot kimlik bilgisi kaynağı hâlâ izleyici sayılarını almaz.
follower_update / subscriber_update Joystick takipçi/abone sayısı güncelleme olayları. Düz bir tam sayı kullanır: meta, Twitch sayaç sözleşmesiyle uyumlu.
Yok sayılan dahili bildirimler ChatMessageReceived, aygıt durumu ve bahşiş hedefi/PvP/subathon durumu gibi eşlenmemiş bileşen yenilemeleri. Bunlar Social Stream olayları değil, taşıma veya sayfa durumu bildirimleridir. Uydurma şu olaylara dönüştürülmezler: snake_case olay adları; gerçek ChatChannel/new_message satırı tek sohbet yükü olarak kalır.

XP Sync

Uygulama: sources/xpsync.js

  • Sohbet satırları standart yük alanlarını şu değerle kullanır: type: "xpsync", yazar, mesaj, avatar, resim ve satır içi SVG rozetleri, ad rengi, üyelik, moderatör/üye/bot bayrakları ve şu alanda yerel mesaj UUID'si dahil: id varsa.
  • Yanıtlar YouTube, Twitch ve Kick DOM kaynaklarının kuralına uyar: yanıt önekleri devre dışı bırakılmadıkça, initial yanıtlanan kullanıcıyı içerir, reply önek eklenmemiş mesajı korur ve chatmessage görünür yanıt önekini alır.
  • XPSync normal sohbet satırı sınıfı veya mesaj kimliği olmadan görüntülese de Sparks ile vurgulanan satırlar yakalanır; görünür miktar şu alan üzerinden sunulur: hasDonation olarak N Sparks.
  • Olay yakalama etkin olduğunda “just followed” veya “followed the channel” içeren satırlar şunu gönderir: event: "new_follower".
  • İzleyici sayıları etkin olduğunda kalıcı sohbet paneli şunu gönderir: event: "viewer_update" XPSync sayfasının zaten yüklemiş olduğu canlı video sayısından alır ve XPSync'in canlı sayfa güncellemeleriyle yeniler. Ayrı SSN kimlik bilgileri gerekmez.

Instagram – Canlı REST Yakalama ve Haber Gelen Kutusu

Uygulama: sources/instagram.js ve sources/instagramlive.js (aynı kopyalar)

  • Canlı sayfalarda (/<user>/live/?broadcast_id=...), canlı sohbet Instagram'ın kendi web API'sinden gelir ve oturum çereziyle aynı kökenden sorgulanır: GET /api/v1/live/{broadcast_id}/get_comment/?last_comment_ts={ts} yaklaşık her 2 saniyede bir ve POST /api/v1/live/{broadcast_id}/heartbeat_and_get_viewer_count/ izleyici sayıları etkinken yaklaşık her 5 saniyede bir. Art arda 3 hatadan sonra (veya şu öğe yoksa: broadcast_id bulunabildiğinde) kaynak, işlenmiş sohbet DOM'unu ayrıştırmaya geri döner.
  • Hesabın kendi etkinlik akışı şu yolla yoklanır: POST /api/v1/news/inbox/ herhangi bir Instagram sayfasında yaklaşık her 45 saniyede bir. İlk yoklama yalnızca tekilleştirme kümesini doldurur; böylece geçmiş asla yeniden oynatılmaz. Haberler şu alana göre tekilleştirilir: tuuid.
  • Gerekli API başlıkları (tümü sabit/türetilebilir): X-IG-App-ID: 936619743392459, X-CSRFToken (çerezden), X-ASBD-ID: 359341, X-Requested-With: XMLHttpRequest, Content-Type: application/x-www-form-urlencoded.
  • Tüm etkinlik akışı olayları şunu kullanır: type: "instagram"; canlı sohbet şu şekilde kalır: type: "instagramlive". Beğeni olayları normal arka plan yolunu kullanır: arka plan özel Tepkiler Katmanına bir kopya gönderir, ardından yalnızca şu durumda bunları ana sohbet/olay akışına dahil eder: capturelikeevent etkin olduğunda; TikTok ve MeetMe ile uyumludur. hideevents ve özel olay filtresi bunları her yerde engeller. Gelen kutusu olayları oturum açmış hesaba ait olduğundan, başka birinin canlı yayını izlenirken engellenirler (hem /<user>/live/ sayfaları ve hikâye görüntüleyicisindeki canlı yayınlar; sahiplik her profil için çözümlenir ve arama hatalarından sonra yeniden denenir) ve kendi canlı yayınınızda ve tüm canlı olmayan sayfalarda gönderilir. Aynı anda yalnızca bir etkin Instagram sekmesi hesabın gelen kutusunu yoklar; yoklama yalnızca oturum açılmışken çalışır.
Olay Ne Zaman Tetiklenir Yük Notları
message (canlı) Şu alandaki yeni girdiler: get_comment yanıtı (comments[]/system_comments[]) veya REST kullanılamadığında yeni DOM sohbet satırları. Standart sohbet yükü, type: "instagramlive". REST tam olarak şunu sağlar: user.username, user.profile_pic_url, ve benzersiz pk tekilleştirme için kullanılır.
viewer_update heartbeat_and_get_viewer_count değişmiş şu alanı bildirir: viewer_count, izleyici sayısı yakalama veya Hype modu etkinken. meta tam sayı izleyici sayısı. Şu koşulda yoklama durur: broadcast_status artık şu değer değildir: "live".
stream_online / stream_offline stream_online REST yayın oturumu başladığında bir kez tetiklenir; stream_offline canlılık kontrolü canlı olmayan şu değeri bildirdiğinde tetiklenir: broadcast_status (izleyici sayısı yakalamanın veya Hype modunun etkin olması gerekir). Twitch ve Joystick'in kullandığı ortak yayın durumu sözlüğüne uyan, yalnızca meta veriden oluşan olaylar.
new_follower Takip türünde bir haber gelen kutusu girdisi: notif_name (veya story_type 12) görünür. chatname yeni takipçidir, chatimg profil resmi, chatmessage gelen kutusu metni (örneğin "x seni takip etmeye başladı.").
follow_request Bir private_user_follow_request haberi görünür (özel hesaplar doğrudan takip yerine istek alır). Şununla aynı biçimde: new_follower, otomasyonların istekleri onaylayabilmesi veya farklı selamlamalar yapabilmesi için ayrı tutulur.
liked Beğeni türünde bir haber gelen kutusu girdisi: notif_name (şunlar dahil: comment_like) görünür. TikTok/MeetMe ile ortak beğeni sözlüğü. chatname aktördür, chatmessage gelen kutusu metni (örneğin "x fotoğrafını beğendi.").
message (kendi gönderisindeki yorum) Yorum türünde bir haber gelen kutusu girdisi: notif_name görünür. Düz sohbet satırı (event: false), type: "instagram"; chatmessage yorum alıntısı dahil gelen kutusu metnini taşır.
notification Diğer tüm haber gelen kutusu türleri (bahsetmeler, etiketler, alışveriş vb.). Genel amaçlı yedek tür; meta.notifName ve meta.storyType ham haber sınıflandırmasını korur.

Facebook Live

Uygulama: sources/facebook.js (DOM'dan veri toplama) ve isteğe bağlı Graph API köprüsü: sources/websocket/facebook.html

  • DOM yakalaması görüntülenen Facebook yorumlarını okur; yönetilen Sayfa Graph API köprüsü video yorumlarını okur. İkisi de şunu kullanır: type: "facebook", standart sohbet alanları ve bulunmayan alan: event normal yorumlar için. API köprüsü ayrıca isteğe bağlı şu alanı içerir: platform: "facebook".
  • API köprüsü şunu kullanır: userid varsa yazar kimliği için, timestamp Unix milisaniyesi cinsinden geçerli oluşturma zamanı için ve contentimg API'nin sağladığı HTTP(S) ek resmi için. Yalnızca resim içeren yorumlarda şu alan boş olabilir: chatmessage. textonly yalnızca mesaj gövdesi için geçerlidir: true olduğunda ham metin, false olduğunda kaçış uygulanmış HTML.
  • API yorum bağlamı şunu kullanır: meta.messageId (yerel yorum kimliği), meta.permalink, meta.videoId, ve meta.pageId. Önceki API sürümleri şunu kullanırdı: meta.commentId, şu alanda yinelenen yazar/zaman alanları: meta, ham ekleri de buradan geçirirdi. Yeni sürümler bunun yerine standart yazar/zaman/medya alanlarını kullanır; bu, silme eşitleme desteği eklemez.
  • İzleyici sayıları yalnızca etkinleştirildiğinde yenilenir. API köprüsü eşzamanlı şu alanı okur: live_views; birikimli video görüntülemelerini yerine koymaz veya bilinmeyen sayı için sıfır uydurmaz. API yakalaması sıradan yorum metninden Stars, üyelik, vurgu veya yanıt çıkarmaz.
  • Facebook görünür şu öğeyi gösterdiğinde Stars, işlenmiş Canlı Sohbet DOM'undan yakalanır: N sent işaretçisi; şu alanı doldururlar: hasDonation ve donoValue 100 Stars = $1 USD oranında; şu alanı ayarlamadan: data.event.
  • Test etmek için şunu ekleyin: ssnreplay=1 yenilemeden sonra zaten görünür olan sohbet satırlarını işlemek için Facebook Live URL'sine ekleyin.
Olay Ne Zaman Tetiklenir Yük Notları
viewer_update DOM canlı izleyici rozetini sorgular; API köprüsü etkinleştirildiğinde eşzamanlı canlı izleyici sayısını sorgular. meta diğer kaynaklarla uyumlu tam sayı izleyici sayısı. Eksik veya ayrıştırılamayan sayılar atlanır; gerçek sıfır geçerlidir.
hasDonation Live Chat DOM'unda görüntülenen Facebook Stars. Standart sohbet yükü; hasDonation şu örnekteki gibi görünür Stars miktarını taşır: 100 Stars, ve donoValue USD değerini taşır. Stars şu alanı ayarlamaz: data.event.
highlightColor Facebook görünür bir öğe oluşturur: HIGHLIGHTED etiketi. Normal sohbet alanlarını ve şunu kullanır: highlightColor; bulunmayan alan: data.event ayarlanır. Stars yine de şunu kullanır: hasDonation.

Online Church

Uygulama: sources/onlinechurch.js

  • Herkese açık sohbetin ve medya başlığının DOM kazımasına dayanır.
  • İzleyici sayıları yalnızca şu koşulda yenilenir: İzleyici sayısını göster veya hype modu etkin olduğunda.
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni girdiler şu öğenin altında görünür: #publicchat. Gönderen adı, avatar, rozetler ve DOM'da mevcutsa isteğe bağlı üyelik etiketi içeren standart sohbet yükü.
viewer_update Medya başlığındaki canlı katılımcı sayısı rozetini her 10 saniyede bir yoklar. meta tam sayı izleyici sayısı; şunu gönderir: 0 eski sayaçları temizlemek için rozet eksik veya okunamaz olduğunda.

SharePlay.tv

Uygulama: sources/shareplay.js

  • SharePlay kanal sayfalarındaki canlı sohbet çekmecesinin DOM kazımasına dayanır.
  • Kazıyıcı bağlandıktan sonra yalnızca yeni eklenen sohbet satırları ve kartlar gönderilir; mevcut geçmiş bilinçli olarak yok sayılır.
Olay Ne Zaman Tetiklenir Yük Notları
message Ana sohbet akışında yeni sohbet satırları görünür. Yazar, avatar, rozet resimleri ve HTML içinde korunan ifadeleri içeren standart sohbet yükü. Konu yanıtları ayrıca şu alanı doldurur: initial, reply, ve meta.reply üst satır hâlâ mevcut olduğunda.
raid SharePlay canlı sohbet akışına bir Blitz kartı ekler. Standart baskın olayına eşlenir. meta.cardType şudur: "blitz", isteğe bağlı meta.fromLogin ve meta.viewers kart metni bunları sunduğunda.
shoutout SharePlay sohbet akışına bir tanıtım/takip kartı ekler. Şu olarak yayınlanır: data.event = "shoutout". Kartın bant resmi şu alanla iletilir: contentimg, buna karşılık meta.cardType ve meta.action kart etiketini/düğme metnini korur.
viewer_update Görünür başlıktaki izleyici rozetini her 10 saniyede bir yoklar. meta tam sayı izleyici sayısı; yalnızca şu koşulda gönderilir: İzleyici sayısını göster veya hype modu etkin olduğunda ve şunu gönderir: 0 rozet okunamaz hale gelirse eski sayaçları temizlemek için.

Streamplace

Uygulama: sources/streamplace.js

  • Streamplace'in React ile işlenmiş canlı sayfasını okur ve bağlanırken görünür sohbet geçmişini atlar.
  • Şunun gibi aktarım biçimli mesajlar: Name (Discord): message aktarılan gönderen adına normalleştirilir.
Olay Ne Zaman Tetiklenir Yük Notları
message Bağlanıldıktan sonra yeni Streamplace sohbet satırları görünür. Şu alanı içeren standart sohbet yükü: nameColor, chatbadges, HTML biçimi korunan bağlantılar ve yanıt alanları initial, reply, ve meta.reply görünür olduğunda.
viewer_update İzleyici sayısı yakalama veya hype modu etkinken başlıktaki izleyici rozeti değişir. meta tam sayı izleyici sayısı.

WorldsWave

Uygulama: sources/worldswave.js

  • WorldsWave canlı sayfalarını ve şu örnekteki gibi yalnızca sohbet URL'lerini destekler: https://worldswave.com/kn_livecmd.php?cmd=viewStream&streamId=STREAM_ID&chatonly=1.
  • Sabit şu öğeyi kullanır: data-ww-*/ww-chat-* işaretlemesi mevcut olduğunda kullanılır; yalnızca sohbet sayfaları ve eski düzenler için eski kontackt seçicileri korunur.
  • Yakalama bağlandığında mevcut sohbet geçmişi atlanır; yeni bir mesajla test edin.
  • İzleyici sayıları için şu seçenek gereklidir: İzleyici sayısını göster veya hype modu. Özel hediye/bağış olayları ve geri gönderim uygulanmamıştır. İşlenmiş bir satır yine de şu alan aracılığıyla bağış etiketi sağlayabilir: data-ww-donation.
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni görüntülenen WorldsWave sohbet satırı görünür. Şu alanı içeren standart sohbet yükü: type: "worldswave", gönderen adı, avatar, isteğe bağlı kullanıcı kimliği, ad rengi, rozetler, moderatör durumu, üyelik, bağış değeri, ek ve kanal kimliği. Sabit WorldsWave mesaj kimlikleri şu alanda sunulur: meta.messageId ve eşzamanlı önizleme/tam sohbet panelleri arasında tekilleştirilir. Yalnızca metin modu kapalıyken satır içi mesaj resimleri temizlenmiş halde kalır.
viewer_update İzleyici sayısı yakalama veya hype modu etkinken görünür canlı izleyici toplamı değişir. meta tam sayı izleyici sayısıdır. Sabit data-ww-viewer-count değeri tercih edilir; şu örnekteki gibi kısaltılmış eski değerler: 1.2K yedek olarak normalleştirilir.

FLEX TV

Uygulama: sources/flextv.js

  • Şu konumdaki işlenmiş sohbet panelini okur: https://www.flextv.co.kr/channels/*/live sayfaları.
  • Sohbet paneli görünür olmalıdır. Kaynak bağlanırken mevcut sohbet geçmişi atlanır; bu nedenle yeni bir sohbet satırıyla test edin.
  • Bu kaynak için henüz izleyici sayısı, bağış veya geri gönderim yolu belgelenmemiştir.
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni görünür FLEX TV .chat-item satırları canlı sohbet akışında görünür. Şu alanı içeren standart sohbet yükü: type: "flextv", chatname, chatmessage, nameColor, rozet resimleri şu alanda: chatbadges, ve FLEX üye ayrıntıları şu alanda: meta şu kaynak tarafından sunulduğunda: data-member.

Seal Team Sloth

Uygulama: sources/sealteamsloth.js

  • Şu konumdaki işlenmiş açılır sohbeti okur: https://sealteamsloth.com/popout-chat/* sayfaları.
  • İzleyici sayıları için şu seçenek gereklidir: İzleyici sayısını göster veya hype modu.
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni görüntülenen Seal Team Sloth sohbet satırı görünür. Şu alanı içeren standart sohbet yükü: type: "sealteamsloth", gönderen adı, avatarı ve mesaj içeriği.
viewer_update İzleyici sayısı yakalama veya hype modu etkinken görünür canlı izleyici toplamı değişir. meta tam sayı izleyici sayısıdır; şu örnekteki gibi kısaltılmış değerler: 1.2K normalleştirilir.

MeetMe - DOM ve WebSocket Yakalama

Uygulama: sources/meetme.js

  • MeetMe'nin işlenmiş canlı sohbet DOM'unu şu konumda okur: app.meetme.com/live/view/... sayfaları ve şu öğenin içinde: api.gateway.meetme-live.com/web-live/... iframe'i.
  • iframe websocket'i kullanılabilir olduğunda, wss://video-live.meetme.com/ çerçeveleri, daha zengin canlı olayları yakalamak için DOM yedeğinden önce ayrıştırılır.
  • hideevents bağış olmayan olayları engeller; MeetMe hediyeleri ve elmas bağışları yine de bağış alanlarını doldurur. capturejoinedevent katılma/yeniden katılma bildirimlerini etkinleştirir. Aktöre özgü liked olayları, şu ayarla kontrol edilen ortak arka plan yönlendirmesini kullanır: capturelikeevent; toplam reaction efektleri açıkça Tepkiler Katmanı'na yönlendirilmiş olarak kalır.
  • İzleyici sayıları için görünür MeetMe başlık sayısı tercih edilir; yalnızca DOM sayısı kullanılamadığında websocket toplamlarına başvurulur. Sayılar değiştiğinde gönderilir ve şu koşul sürerken en son sayı yaklaşık her 30 saniyede bir tekrarlanır: showviewercount/hypemode etkin olduğunda; takipçi toplamları yalnızca değiştiğinde gönderilir ve yaklaşık 60 saniyelik hız sınırına tabidir.
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni SNSChatMessage websocket çerçeveleri gelir veya yeni ChatMessage_* DOM satırları şu konumda görünür: ChatHistoryContainer_*. Gönderen adı, avatar, mesaj HTML'si/metni ve rozet resimleri/metni içeren standart sohbet yükü. DOM satırı ayrıntıları düz şu alandadır: meta anahtarları; şu alan dahil: messageId, roomId, level, levelColor, badgeLabels, badgeSrcs, badgeClasses, isBouncer, isTopStreamer, isBestOfTheWeek, rank, ve rowClassName. WebSocket yükleri şunu ayarlar: meta.source = "websocket".
joined / rejoined / left SNSChatParticipant websocket oluşturma, güncelleme veya silme çerçeveleri gelir ya da MeetMe DOM'da şu öğeyi görüntüler: join-cell satırı. Katıldı/yeniden katıldı bildirimleri şu ayarı gerektirir: "joined" yayın olaylarını yakala. MeetMe sağladığında kişi adı/avatarı içeren sohbet tarzı sistem bildirimleri üretir. meta.isNewViewer, meta.viewerLevelId, meta.isBouncer, ve meta.isSubscriber katılımcı durumunu korur.
new_follower MeetMe, şu örnekteki gibi bir DOM favori/takip satırı görüntüler: Favorited. Ortak takipçi olayı sözlüğünü kullanır. chatname aktördür, chatimg varsa algılanan profil fotoğrafıdır ve düz meta.favoriteText/meta.targetName özgün satır ayrıntılarını korur.
gift SNSGiftMessage websocket çerçeveleri gelir veya MeetMe bir sohbet satırında hediye resmi görüntüler. hasDonation görünür hediye etiketini veya elmas değerini taşır, contentimg sunulduğunda hediye resmini ve şu örnekteki gibi düz anahtarları taşır: meta.giftName, meta.giftCount, meta.amount, ve meta.currency yapılandırılmış ayrıntıları korur. Şu öğe: gift olayı gerçek hediye çerçeveleri/satırları için ayrılmıştır; bağış gösterimi yine de şu alana dayanmalıdır: hasDonation.
donation SNSDiamond websocket çerçeveleri elmas etkinliğini sunar. Özel elmas çerçeveleri bağış olayları olarak değerlendirilir. hasDonation ortak USD dönüştürmesi için elmas olarak biçimlendirilir ve meta.amount/meta.currency otomasyonlar için düz yapıda kalır.
liked / reaction SNSLike websocket çerçeveleri gelir. Kişiye özgü beğeniler aynı alanı kullanır: liked sözlüğünü ve TikTok ile aynı merkezi arka plan yönlendirmesini kullanır. Toplu/anonim beğeni toplamları yalnızca tepkiler hedefine şu biçimde gönderilir: reaction, düz alanlarla: meta.reactionType, meta.totalLikes, ve meta.subscriberLikes. Ayrım anonimlikte değil, olayın anlamındadır: capturelikeevent yalnızca bireysel şu öğeyi kontrol eder: liked/like olayları.
follower_update SNSVideo websocket meta verileri takipçi toplamlarını sunar. meta ortak sayaç olayı kuralına uygun takipçi tam sayısıdır.
guest_update SNSVideoGuestBroadcast oluşturma/güncelleme çerçeveleri gelir. Konuk/canlı yardımcı sunucu durumu için yalnızca meta veriden oluşan olay. Düz meta anahtarları şunları içerir: status, position, totalGuests, isMuted, guestBroadcastId, videoViewerId, ve broadcastId.
viewer_update Görünür başlık izleyici rozeti değişir veya SNSVideo rozet kullanılamadığında websocket meta verileri izleyici toplamlarını sunar; etkin olduğu sürece değişmeyen toplamlar yaklaşık her 30 saniyede bir tekrarlanır. meta tam sayı izleyici sayısı; yalnızca izleyici sayısı yakalama veya hype modu etkin olduğunda gönderilir.

Velora

Uygulama: sources/velora.js ve sources/websocket/velora.js

  • Standart mod görünür sohbet DOM'unu okur; WebSocket modu OAuth ile Velora Events API'sini kullanır.
  • Desteklenen Standart mod URL'leri arasında şunlar vardır: https://velora.tv/*, https://velora.tv/dashboard/stream/popout?panels=chat%2Cactivity&channel=CHANNEL&layout=vertical, ve https://velora.tv/dashboard/stream/popout/CHANNEL/obs-chat.
  • Volts ve kanal puanı biçimli kartlar, DOM veya Events API tarafından sunulduğunda olay yükleri olarak gönderilir.
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni Velora sohbet satırları görünür veya Events API sohbet mesajları gelir. Yalnızca metin modunda değilken rozetleri, yazar rengini, bağlantıları ve ifadeleri koruyan standart sohbet yükü.
volts Velora Volts kartları veya channel.volts Events API yükleri gelir. hasDonation görüntülenen Volts miktarını taşır; DOM yakalamaları şunu içerir: meta.source = "dom".
channel_points Velora kanal puanı/ödül kullanımı kartları veya channel.channel_points_redemption Events API yükleri gelir. chatmessage ödül kullanımı mesajını veya ödül başlığını taşır; meta.rewardTitle varsa ödülü tanımlar.
subscription Görünür Velora etkinlik satırı, bir kullanıcının kanal üyesi/abonesi olduğunu belirtir. membership görünür üyelik etiketini taşır.
viewer_update İzleyici sayısı yakalama veya hype modu etkinken görünür izleyici sayısı değişir. meta tam sayı izleyici sayısı.

Parti - Profil / Açılır Sohbet Yakalama

Uygulama: sources/parti.js

  • Şunun gibi profil URL'lerini destekler: https://parti.com/USERNAME ve şu örnekteki gibi açılır pencere URL'leri: https://parti.com/popout-chat?id=USER_ID.
  • İzleyici sayısı yakalama veya hype modu etkin olduğunda izleyici sayıları Parti'nin canlı yayın canlılık kontrolü uç noktasını kullanır.
Olay Ne Zaman Tetiklenir Yük Notları
message Görünür Parti sohbet satırları profil veya açılır sohbet akışında görünür. Standart sohbet yükü; nameColor Parti'nin işlenmiş yazar rengini ve şunu korur: chatmessage yalnızca metin modu etkin değilse satır içi içeriği korur.
donation Görünür Parti bağış satırları, bir kullanıcının belirli bir miktar bağışladığını belirtir. hasDonation görüntülenen miktarı taşır, meta.amount/meta.currency ayrıştırılabildiğinde doldurulur, meta.amountText ham miktar metnini korur ve donoValue USD bağışları için ayarlanır.
viewer_update Parti canlılık kontrolü, canlı izleyici sayısını döndürür. meta tam sayı izleyici sayısıdır; sayfa, sayıları şişirmemek için her kaynak penceresinde aynı canlılık kontrolü belirtecini yeniden kullanır.

CHZZK - Açılır Sohbet Yakalama

Uygulama: sources/chzzk.js

  • Şunları destekler: https://chzzk.naver.com/live/*/chat ve https://chzzk.naver.com/iframe/live/*/chat.
  • İzleyici sayısı yakalama veya hype modu etkin olduğunda izleyici sayıları CHZZK'nin canlı durum yoklama uç noktasını kullanır.
Olay Ne Zaman Tetiklenir Yük Notları
message Görünür CHZZK sohbet satırları açılır sohbet akışında görünür. Şu alanı içeren standart sohbet yükü: type: "chzzk", nameColor, rozet resmi URL'leri şu alanda: chatbadges, ve işlenmiş ifadeler şu alanda: chatmessage yalnızca metin modu etkin değilse.
şunu içeren sohbet: hasDonation Görünür CHZZK cheese bağış satırları sohbette görünür. hasDonation görüntülenen cheese miktarını taşır. Bu satırlar şu alanı ayarlamaz: data.event.
viewer_update Canlı durum yoklaması bir izleyici sayısı döndürür. meta tam sayı izleyici sayısıdır.

Rumble - Standart DOM Yakalama

Uygulama: sources/rumble.js

  • Şunun için kimliği doğrulanmış oturum çerezleri gerekir: service.php izleyici API'si yanıt verdiğinde.
  • İşlenmiş Rant satırları şunu sağlar: hasDonation; gelen baskın kartları şunu sağlar: event: "raid". Bu DOM kaynağı, API köprüsünün abone/takipçi olay akışını üretmez.
Olay Ne Zaman Tetiklenir Yük Notları
message Görünür Rumble sohbet satırları sayfa veya açılır pencere sohbetinde görünür. Standart sohbet yükü; chatmessage yalnızca metin modu etkin değilse, sayfa işledikten sonra Rumble ifade resimlerinin HTML'sini korur.
viewer_update Rumble'ın şu uç noktasını çağırır: video.watching-now hizmetini her 30 saniyede bir. meta tam sayı izleyici sayısı; şunu kullanır: credentials: 'include' oturum çerezlerini yeniden kullanmak için.
şunu içeren sohbet: hasDonationGörünen bir Rant satırı fiyat içerir.hasDonation işlenmiş fiyatı korur; bağış olayı işaretçisi eklenmez.
raidSohbette gelen bir baskın kartı görünür.Görünür baskın mesajını ve isteğe bağlı kart resmini şu alanda kullanır: contentimg.

Rumble - Websocket/API URL'si

Uygulama: sources/websocket/rumble.js

  • Şu konumdan alınan, içerik üreticisine ait Live Stream API URL'si gerekir: https://rumble.com/account/livestream-api. Rumble, bu URL'nin canlı yayın anahtarını içerdiğini, ayrı kimlik doğrulama gerektirmediğini ve yalnızca güvenilir üçüncü taraflarla paylaşılması gerektiğini belirtir.
  • Salt okunur taşıma. Herkese açık Rumble Live Stream API belgeleri resmî bir sohbet gönderme uç noktası tanımlamaz; bu nedenle kaynak mesajları/olayları Social Stream'e aktarır, ancak Rumble'a sohbet mesajı geri göndermez.
  • livestreams[].chat yalnızca seçili yayın canlıyken doldurulur. Şunu kullanın: ?streamId=... API birden fazla yayın sunduğunda belirli bir yayını sabitlemek için; geçersiz kimlikler artık sessizce başka yayına geçmek yerine hata verir.
  • Sayfa ayrıca şunu çözümler: https://rumble.com/chat/popup/<livestreams[].id> böylece önce yayıncının şu sayfasını yüklemeden normal eklenen açılır sohbeti doğrudan açabilirsiniz: /live sayfası.
Olay Ne Zaman Tetiklenir Yük Notları
message Resmî API şu değeri çözümledikten sonra Rumble'ın SSE sohbet akışından yeni girdiler gelir: livestreams[].id; yedek olarak şunu kullanır: livestreams[].chat.recent_messages. Standart sohbet yükü. meta.source şudur: rumble_sse SSE sohbet akışı kullanılabilir olduğunda ve şu kaynaktan avatar URL'leri içerdiğinde: users[].image.1; aksi durumda şu yedeğe döner: live_stream_api avatarlar olmadan. Açılır pencere ifade kataloğu kullanılabilir olduğunda, chatmessage Rumble kısa kod ifadelerini resim HTML'si olarak işler ve meta.plainText özgün kısa kod metnini korur.
donation Yeni rant girdileri şu alanda görünür: livestreams[].chat.recent_rants. hasDonation USD biçimindeki miktarı taşır; meta şunu içerir: amount_cents, amount_dollars, ve expiresOn.
new_follower Yeni girdiler şu alanda görünür: followers.recent_followers. Şu alanı içeren sistem olayı: chatname takipçi kullanıcı adına ayarlanır; zaman damgası şu alanın altındadır: meta.followedOn.
new_subscriber Yeni girdiler şu alanda görünür: subscribers.recent_subscribers. membership şu değere ayarlanır: SUBSCRIBER; subtitle Rumble sağladığında belgelenmiş USD miktarını yansıtır.
subscription_gift Yeni girdiler şu alanda görünür: gifted_subs.recent_gifted_subs. chatname hediye edendir, hasDonation şu hale gelir: N Gifted, ve meta şunu içerir: totalGifted, remainingGifts, giftType, ve videoId.
follower_update Seçili takipçi sayacı her değiştiğinde. meta tam sayı takipçi sayısı. Varsayılan değer: followers.num_followers; şu alanla: ?followerMode=total, şunu kullanır: followers.num_followers_total Rumble sağladığında.
subscriber_update Her durumda: subscribers.num_subscribers değişir. meta tam sayı abone sayısı.
stream_online / stream_offline Seçili canlı yayın, canlı ve çevrimdışı durumlar arasında geçiş yaptığında. meta yayın alanlarının temizlenmiş bir alt kümesini içerir (id, title, createdOn, kategori etiketleri, beğeniler/beğenmemeler ve izleyici toplamları). Şunun gibi hassas değerler: stream_key bilinçli olarak iletilmez.
viewer_update Her durumda: livestreams[].watching_now seçili yayın için değişir. meta tam sayı eşzamanlı izleyici sayısı; şunu gönderir: 0 eski sayaçları temizlemek için seçili yayın çevrimdışı olduğunda.

Bu taşıma yöntemi, sahibi olduğunuz veya yönettiğiniz kanallar için tasarlanmıştır. API URL'si canlı yayın anahtarı içerdiğinden bunu katmanlarda, günlüklerde, ekran görüntülerinde veya paylaşılan tarayıcı profillerinde açığa çıkarmayın. Resmî API yayın kimliğini çözümledikten sonra sohbet avatarları Rumble'ın SSE sohbet akışından gelir; bu taşıma yöntemi avatarlar için Rumble sayfalarını kazımaz.

YouNow - DOM Yakalama

Uygulama: sources/younow.js

  • İşlenmiş canlı sohbet DOM'unu okur ve şu alanı içeren standart sohbet yükleri gönderir: type: "younow".
  • Şunun gibi izleyici etkinliği satırları: is watching, I became a fan!, ve invited N fans to this broadcast. şu alanla işaretlenir: event: true böylece olay filtreleri bunları yönlendirebilir.
Olay Ne Zaman Tetiklenir Yük Notları
message Canlı izleyici sohbetinde yeni sohbet satırları görünür. Standart sohbet yükü; hayran/izleyici etkinliği satırları şunu ayarlar: event: true.
viewer_update Şu koşulda görünür izleyici panelindeki sayı değişir: showviewercount/hypemode etkin olduğunda. meta tam sayı izleyici sayısı; şunu gönderir: 0 sayaç kaybolduğunda.

Favorited Studio - DOM Yakalama

Uygulama: sources/favorited.js

  • İşlenmiş canlı sohbet DOM'unu okur ve şu alanı içeren standart sohbet yükleri gönderir: type: "favorited".
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni sohbet satırları görünür. Standart sohbet yükü.
viewer_update Şu koşulda canlı izleyiciler sekmesindeki sayı değişir: showviewercount/hypemode etkin olduğunda. meta şu öğeden okunan tam sayı izleyici sayısı: content-live-viewers sekmesinde görüntülenen yeni Kullanıcı ve ChatGPT mesajlarını okur.

BEAM - DOM Yakalama

Uygulama: sources/beamstream.js

  • İşlenmiş canlı sohbet DOM'unu okur ve şu alanı içeren standart sohbet yükleri gönderir: type: "beamstream".
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni sohbet satırları görünür. Şu alanı düz metin olarak içeren standart sohbet yükü: chatname, avatar URL'si şu alanda: chatimg, ve resim URL'leri veya SVG rozet nesneleri şu alanda: chatbadges. Beam yakalama sayfasında gizli olan alanlar boş kalır. Yerel Beam profil bağlantıları harici aktarım kaynakları olarak değerlendirilmez. contentimg sunulduğunda satır içi video/webm eklerini taşıyabilir.
viewer_update Bir izleyici sayacı öğesi şu sırada değişir: showviewercount/hypemode etkin olduğunda. meta tam sayı izleyici sayısı; yalnızca sohbet sayfası bir izleyici sayacı sunduğunda gönderilir.

Castyr - DOM Yakalama

Uygulama: sources/castyr.js

  • Yeni işlenmiş sohbet satırlarını şu konumdan okur: https://castyr.live/homebeta/popout-chat/* ve şu alanı içeren standart sohbet yükleri gönderir: type: "castyr".
  • Kaynak bağlandığında mevcut sohbet geçmişi atlanır.
Olay Ne Zaman Tetiklenir Yük Notları
message Yeni bir .chat-message satırı görünür. Gönderen adı, işlenmiş mesaj içeriği ve sunulduğunda ad rengi içeren standart sohbet yükü.
viewer_update Şu koşulda görünür etkin sohbet sayısı değişir: showviewercount/hypemode etkin olduğunda. meta Castyr'ın başlıklı etkin sohbet öğesinden okunan tam sayı adettir.

SOOP - Oynatıcı DOM Yakalama

Uygulama: sources/sooplive.js. Birleşik biçimi destekler: play.sooplive.com oynatıcısı ve eski play.sooplive.co.kr URL'leri. Önceki genel sohbet düzeni sunulduğunda tanınmaya devam eder.

Herkese açık sohbet şunu gönderir: type/platform: "sooplive", düz metin chatname/userid, nameColor, ve temizlenmiş chatmessage. Mevcut satırlar, yinelenen mesaj kimlikleri, çeviri kopyaları ve özel fısıltılar hariç tutulur. İfadeler güvenli resimlere veya yalnızca metin modunda alternatif metne dönüşür.

Şununla: showviewercount veya hypemode etkin olduğunda, viewer_update bir tam sayı taşır: meta oynatıcının şu öğesinden: #nAllViewer. Yalnızca sohbet açılır pencereleri bu sayıyı sunmayabilir. Mevcut SOOP açılır pencereleri onları açan pencereye bağlı olduğundan SSApp ayrık açılır pencereyi açarken tam oynatıcıyı kullanır.

Gosh - Kanal Sohbeti Yakalama

Uygulama: sources/gosh.js. Şunu açın: https://gosh.com/USERNAME sohbet görünür olacak şekilde açın veya bu URL'yi SSApp'in Add other source alanına yapıştırın. Açılır sohbet penceresi gerekmez.

Yeni sohbet satırları şunu gönderir: type/platform: "gosh", düz metin chatname, nameColor, ve temizlenmiş chatmessage. Satır içi resimler ve GIF'ler güvenli HTTP(S) URL'lerini korur. Şununla: textonlymode, resimler alternatif metne veya şuna dönüşür: [image] alternatif metin yoksa. Yakalanan satırda bulunmadıklarında avatarlar, rozetler, bağışlar ve üyelikler boş kalır.

Sanallaştırılmış sohbeti en yeni mesajlara kaydırılmış halde tutun. Mevcut geçmiş, yeniden işlenen satırlar ve yazarı olmayan sistem bildirimleri hariç tutulur. İşleme indeksleri dahili kalır ve platformun yerel mesaj kimlikleri olarak gönderilmez. Takip, bağış, izleyici sayısı veya moderasyon olayları çıkarım yoluyla üretilmez.

Livacha - Sohbet Odası Yakalama

Uygulama: sources/livacha.js. Şunu açın: https://livacha.com/chat/ROOM sohbet görünür olacak şekilde açın veya oda URL'sini SSApp'in Add other source alanına yapıştırın.

Yeni sohbet satırları şunu gönderir: type/platform: "livacha", düz metin chatname, chatimg, nameColor, ve temizlenmiş chatmessage. Göreli avatar ve satır içi resim URL'leri mutlak HTTP(S) URL'lerine dönüşür. Paragraflar, satır sonları ve listeler tek sohbet mesajında düzleştirilir. Şununla: textonlymode, resimler alternatif metne veya şuna dönüşür: [image].

Mesaj kimlikleri, düzenlemelerin ve yeniden bağlanan satırların tekrar yakalanmasını önlemek için dahili olarak kullanılır. İlk geçmiş ve başa eklenen eski mesajlar atlanır; zaman damgaları ve tepki menüleri yakalanan gövdenin dışındadır. Bağış, üyelik, moderasyon veya izleyici sayısı olayları çıkarım yoluyla üretilmez.

Stream.space - Deneysel DOM Yakalama

Uygulama: sources/streamspace.js. Yalnızca şununla eşleşir: https://beta.stream.space/chat-popup.php?channel=USERNAME ve eşdeğer https://stream.space açılır pencere.

Yeni görüntülenen sohbet satırları şunu gönderir: type: "streamspace", platform: "streamspace", düz metin chatname/userid, chatmessage, avatar chatimg, resim tabanlı seviye chatbadges, ve nameColor. Satır içi ifadeler güvenli resimler olarak veya şu durumda alternatif metinleriyle yeniden oluşturulur: textonlymode etkin olduğunda. Mevcut geçmiş, karşılama bildirimleri, yanıt önizlemeleri ve yinelenen sabitlenmiş öğeler hariç tutulur.

viewer_update bir tam sayı taşır: meta şuradan okunur: #popupViewersNum şu koşulda: showviewercount veya hypemode etkin olduğunda. Bağış, üyelik veya moderasyon olayları çıkarım yoluyla üretilmez.

Deneysel: İnceleme sırasında beta açılır penceresi Loading durumunda kaldı. SSApp açılır pencereyi yükledi ve izleyici güncellemelerini yakaladı; ancak canlı sohbet teslimi ve üretim açılır penceresi doğrulanmadı. SSN, sitenin görüntülemediği mesajları yakalayamaz.

w.tv ve Prime - DOM Yakalama

Uygulamalar: sources/wtv.js üzerinde https://w.tv/USERNAME/chat ve sources/prime.js üzerinde https://prime.gs/USERNAME?chat_popout=1.

Yeni sohbet satırları şunu kullanır: type/platform içindeki wtv veya prime, düz metin chatname, nameColor, ve temizlenmiş chatmessage. Satır içi ifadeler güvenli resimlere veya yalnızca metin modunda alternatif metne dönüşür. Prime ayrıca satırın şu alanını içerir: userid ve hem oturum açılmış profil bağlantılarını hem de oturum kapalıyken kullanıcı adı etiketlerini destekler. Doğrulanmış satır yapısında bulunmadıklarında avatarlar ve rozetler boş bırakılır.

İlk geçmiş, sabitlenmiş kartlar ve yanıt önizlemeleri hariç tutulur. w.tv sohbetini sanallaştırır: yakalama için sohbeti en yeni mesajlara kaydırılmış halde tutun. DOM test kimlikleri, platformun yerel mesaj kimlikleri değil, işleme indeksleridir. Prime, ilk mesajların üzerine yüklenen eski geçmişi ve yok sayılan kullanıcı yer tutucularını atlar.

İki açılır pencere de doğrulanmış bir yayın izleyici sayısı sunmadığından bu bağdaştırıcılar izleyici güncellemeleri göndermez; bağış, abonelik veya moderasyon olayları çıkarmaz.

Platformlar Arası Olay Uyumu

Benzer kavramların platformlar arasında nasıl eşleştiğini anlamak için bu tabloyu kullanın. Mümkün olduğunda yeni kaynaklar ilk sütundaki ortak olay adlarıyla uyumlu olmalıdır.

Kavram YouTube WS Twitch WS Kick WS
Yeni üye/abone sponsorship new_subscriber new_subscriber
Yenileme/yeniden abonelik resub resub resub
Hediye abonelikler giftpurchase subscription_gift subscription_gift
Hediye aldı giftredemption - -
Dönüm noktası membermilestone - -
Bağış/bahşiş superchat, supersticker, jeweldonation şununla: hasDonation cheer (bits) donation
Yeni takipçi new_follower (sorgulanır)* new_follower new_follower
İzleyici sayısı viewer_update viewer_update viewer_update
Takipçi sayısı - follower_update follower_update
Abone sayısı subscriber_update subscriber_update -
Yayın durumu live_chat_ended stream_online/stream_offline stream_online/stream_offline
Baskın - raid -
Ödül kullanımı - reward reward

Uyum Notları

  • YouTube şunu kullanır: sponsorship yeni üyeler için; Twitch ve Kick ise şunu kullanır: new_subscriber. Platformlar arası tetikleyiciler oluştururken ikisini de kontrol etmeyi düşünün.
  • resub tutarlıdır yenilemeler için üç platformun tamamında.
  • Hediye olayları farklılık gösterir: YouTube şunu kullanır: giftpurchase/giftredemption, Twitch ve Kick ise şunu kullanır: subscription_gift.
  • Bağışlar platforma göre değişir: YouTube şu örnekler gibi belirli ücretli olay adlarını kullanır: superchat, supersticker, ve jeweldonation şununla: hasDonation; Twitch'te bits vardır (cheer); Kick'te bahşişler vardır (donation).
  • new_follower artık tutarlıdır üç platformun tamamında; ancak YouTube son aboneleri yoklar ve gecikmiş veya eksik sonuçlar döndürebilir.
  • Beğeniler ve tepkiler ayrı sözleşmelere sahiptir: bireysel liked/like olayları genel olarak filtrelenmedikçe Tepkiler Katmanı'na ulaşır ve yalnızca şu koşulda ana işleme hattına girer: capturelikeevent etkin olduğunda. Görsel veya platformun yerel reaction olayları üreticinin tanımladığı yönlendirmeyi korur. Toplu likes_update sayaçları ayrı olarak şu seçenekle kontrol edilir: captureliketotals.

Kapsam ve Uyumluluk Sınırları

Bu başvuru uygulanmış yükleri açıklar; her platformun her olayı ileteceğini garanti etmez. Boş hasDonation atamalarının bir kaynakta bulunması, bağış desteğini kanıtlamaz. Nelerin alınacağını hâlâ DOM görünürlüğü, hesap izinleri, yakalama seçenekleri ve API kullanılabilirliği belirler. Silme iletimi kaynağa özgüdür; evrensel moderasyon eşitlemesi olduğunu varsaymayın.

Takip Edilen Uyumsuzluklar ve Eksiklikler

İkili/Alan Gözlemlenen Uyumsuzluk / Eksiklik Etkisi
Twitch: Standart ve Websocket Karşılaştırması Paylaşılan: reward, subscription_gift, viewer_update, hype_train, ve isteğe bağlı watch_streak. Yalnızca Standard: giftpurchase, knock, community_highlight. Yalnızca WebSocket: new_subscriber, resub, cheer, powerup, raid, new_follower, follower_update, subscriber_update. channel_points artık Twitch ödül kullanımları için kullanımdan kaldırılmış eski bir alternatif addır; yeni entegrasyonlar şu alana dayanmalıdır: reward.
Kick: Standart ve Websocket Karşılaştırması Standart mod hafif işaretçiler gönderir (gift, reward, mantıksal true, viewer_update). WebSocket resmî takip, abonelik, hediye, ödül kullanımı, KICKs, moderasyon ve canlı durum olayları ekler. Eski bir tür için uyumluluk işlemesini korur: raid yükü; ancak Kick şu anda resmî bir baskın/host aboneliği sunmuyor. Websocket modu daha kapsamlıdır; yalnızca Standart modun olay adlarına göre oluşturulmuş otomasyonlar, geçiş sırasında gözden geçirilmelidir. Kick baskın olayını zorunlu tutmayın.
YouTube: Standart ve Websocket Karşılaştırması Paylaşılan: superchat, supersticker, jeweldonation, sponsorship, resub, giftpurchase, giftredemption, viewer_update. Yalnızca Standard: thankyou, redirect. Yalnızca WebSocket: membermilestone, new_follower, subscriber_update, view_update, likes_update (isteğe bağlı katılım). Temel üye/olay adları ikisi arasında uyumludur; Super Chat, Super Sticker ve Jewels şunu kullanır: hasDonation, üyelik hediyesi satın alımları/kullanımları ise bunu yapmaz.
Tüm arayüzler Birçok kaynak şu alanı doldurur: hasDonation şu alanı ayarlamadan: data.event. Bu doğrudur; bağış gösterimi şu alana dayanmalıdır: hasDonation, şu alanla: data.event sistem/olay anlamları için ayrılmıştır.

Kaynağa Özgü Alternatif Adlar ve Eski Adlar

Bu eşlemeler genel değişimler değil, listelenen kaynağa/bağlama özeldir. Tüketicilerin alternatif ad desteği sayfaya göre değişir. Güncel TikTok DOM ve TikFinity kaynakları hâlâ şunu gönderir: followed; Velora şunu kullanır: subscription ve channel_points, Streamlabs ise şunu kullanır: subscription. Eşleşen her olayı yeniden adlandırmak yerine mevcut kaynak sözleşmesini ve ilgili eski takma adları kabul edin.

Takma Ad / Eski Ad Standart Karşılık Bağlam
subscriptionnew_subscriberTwitch/Kick yeni aboneliği
subgiftsubscription_giftTwitch hediye aboneliği
membershipsponsorshipYouTube yeni üye (genel)
new_membersponsorshipYouTube yeni üye
new_membershipsponsorshipYouTube yeni üye
newmembersponsorshipYouTube yeni üye
new-membershipsponsorshipYouTube DOM kazıyıcısı (kısa çizgili varyant)
upgraded_membershipresubYouTube seviye yükseltme
upgraded-membershipresubYouTube DOM kazıyıcısı (kısa çizgili varyant)
membership_upgraderesubYouTube seviye yükseltme
membership_milestonemembermilestoneYouTube dönüm noktası sohbet mesajı
member_milestonemembermilestoneYouTube dönüm noktası sohbet mesajı (alt çizgili varyant)
gift_membershipgiftpurchaseYouTube hediye paketi
membership_giftgiftpurchaseYouTube hediye paketi
giftmembershipsgiftpurchaseYouTube hediye paketi (çoğul varyant)
gifted_membershipgiftredemptionYouTube hediye alındı
gifted_membershipsgiftpurchaseYouTube hediye paketi (çoğul varyant)
community_giftgiftpurchaseTopluluk hediye paketi
channel_pointsrewardTwitch websocket ödül kullanımı (eski alternatif ad)
followednew_followerGüncel TikTok DOM/TikFinity çıktısı; TikTok yakalama modlarını birleştirirken iki adı da kabul edin.

Bu Başvurunun Kullanımı

  • Yeni bir olay eklerken mevcut sözlüğü yeniden kullanın (subscription_gift, viewer_updatevb.) mümkün olduğunda. Sapma kaçınılmazsa gerekçesiyle birlikte burada belgeleyin.
  • Şunu bırakın: data.meta öngörülebilir tutun: düz anahtarları tercih edin, metinleri karma verilerle aşırı yüklemeyin ve her zaman birimleri ekleyin (currency, bits, duration).
  • Yük değişiklikleriyle birlikte bu sayfayı güncelleyin; ajan talimatlarını yalnızca ortak geliştirme kuralları değiştiğinde güncelleyin.
  • Yük değişikliklerini hem gönderen kaynak hem de tüketen katman veya Etkinlik Akışı tetikleyicisiyle doğrulayın.
  • Yakalama, kaynak desteğine ve ayarlara bağlıdır. Panelde veya öne çıkarılan katmanlarda olay işaretli satırları gizlemek için şunu ekleyin: &hideevents veya &hideallevents. Seçilen olayları gizlemek için şunu kullanın: &filterevents=subscription_gift,new_follower,gifted.
  • YouTube, Twitch ve Kick için şu seçeneği etkinleştirin: WebSocket modu platforma özgü en geniş olay desteği için. YouTube için hediye/bağış yakalama (hediyeler ve super chat'ler dahil), hem Standart hem de WebSocket modunda kullanılabilir; WebSocket ek olay türleri sunar. Tam destek yine de platforma, hesap rolüne ve verilen kapsamlara göre değişir.

Başa dön

Para kazanma katmanları

NinjaBacker bağışları şunu kullanır: platform: "ninjabacker", type: "ninjabacker", chatname, düz metin chatmessage, textonly: true, kaynak ön ekli id, biçimlendirilmiş hasDonation, ve sayısal donoValue. Bunlar şu alanı taşımayan normal bağış türü satırlardır: event geçersiz kılma değeri. meta.ninjabacker ISO biçimindeki şu alanı içerir: currency ve ana para birimi cinsinden amount. Anonim bahşişlerde görünen ad Anonymous olur. Kaynak ya canlı SSE (yeniden oynatma yok) ya da SSN API'deki isteğe bağlı imzalı webhook alıcısını (yedi güne kadar kuyrukta teslim) kullanır. Güvenilir teslimler sabit bir kimlik kullanır: ninjabacker:delivery:DELIVERY_ID kimliği. İki mod da iade/itiraz geri alma işlemlerini almaz. Alıcı kimlik bilgileri ve imzalama gizli anahtarları olay yüklerine asla girmez. Çağıranın kontrol ettiği callbackId değerleri ödeme kimliği değildir ve iletilmez. Panodaki test bağışları bağış satırlarından hariç tutulur. Şunu gönderirler: event: "monetization_test" şununla: meta.ninjabackerTest yalnızca özel önizleme uyarısı için id ve at (Unix milisaniyesi) içerir.

event: "monetization_update" şu kaynaktan gelen, yalnızca meta veriden oluşan anlık görüntüdür: type/platform: "socialstream". meta.monetization.wishlist enabled, qr, position, rank, total, herkese açık url ve geçerli öğeyi (name, amount, currency, image, herkese açık url) veya null içerir. meta.monetization.ninja enabled, qr, position, username ve herkese açık bağış url alanını içerir. Özel Tip ID'leri asla dahil edilmez. meta.monetization.ebay enabled, qr, position, display (cycle/cheapest/first), seconds, isteğe bağlı duyuru ayarları ve herkese açık öğeleri içerir. Her öğe id, name, amount, currency, image, url, auction, startingBid, endsAt, available, bought ve updatedAt alanlarına sahiptir. Zamanlar Unix milisaniyesidir. Satıcı kimlik bilgileri veya alıcı kimliği içermez.

Sunucunun doğruladığı istek listesi satın alımı ayrıca şunu içerir: meta.wishlistPurchase id, name, isteğe bağlı supporter ve at (Unix milisaniyesi) ile. Bu bir sunucu onayıdır, Amazon ödeme bildirimi değildir ve parasal bağış olarak sayılmaz. Katmanlar id alanını tekilleştirmeli ve eski satın alma bildirimlerini yok saymalıdır.

Ödemesi yapılmış Shopify siparişleri

İsteğe bağlı imzalı Shopify alıcısı şunu gönderir: platform/type: "shopify" ve event: "purchase" yalnızca şu öğe için: orders/paid şununla: financial_status: "paid", pozitif toplam, test: false, iptal olmaması ve imzalı gövdeye ait güncel güncelleme zaman damgası. Test, ödenmemiş, eski, iptal edilmiş ve iade bildirimleri satın alma işlemleri üretmez. Hediye niyeti çıkarılmaz.

chatname Anonymous değeridir; müşteri alanları, özel notlar ve sipariş URL'leri hariç tutulur. chatmessage şunu içeren düz metindir: textonly: true; subtitle en fazla üç herkese açık ürün başlığını tutar. meta.commerce şunu içerir: orderTotal ve currency mağazanın para biriminde ve ayrıca quantity tam ve geçerli sayı bilindiğinde. Alıcı ve fiziksel/dijital amaç ayarlanmadan kalır. Şu alan yoktur: hasDonation veya donoValue ayarlanır. id mağaza/sipariş kapsamlı, Shopify önekli, sabit ve opak bir karma değerdir; ham sipariş tanımlayıcısı değildir.

Satın almalar mevcut etkinlik, multi-alerts Purchase kategorisi ve Etkinlik Akışı yollarını kullanır. Ürün tanıtımı mevcut şu öğeyi kullanır: meta.monetization.commerce kataloğu. Bir ürünü içe aktarmak veya tanıtım etiketini Gift olarak ayarlamak, satın alma ya da hediye olayı oluşturmaz. Shopify kurulumu ve teslimat sınırlamaları.

Hediyeler ve ticaret

Kullanın: event: "gift" hediye için, giftcontribution bir hediyeye yönelik ücretli destek için, giftfunded finansmanın tamamlanması için ve purchase ürün satışı için. Bu adlar sağlayıcıdan ve öğenin fiziksel veya dijital olmasından bağımsızdır. Eski şu adı ayırın: giftpurchase hediye üyelikler için kullanılan olaydır; Throne daha önce bu adı yanlış kullanıyordu ve artık şunu gönderiyor: gift. Mevcut üyelik üreticileri değişmez. Özel Throne olay adı filtreleri şuna geçmelidir: gift; bağış filtrelerinde değişiklik gerekmez.

hasDonation ücretli destek için uyumluluk sinyali olarak kalır; şu alanla: donoValue sağlanan veya tahmin edilen USD değerini tutar. Hediyeler ve katkılar bu alanları korur. Finansmanın tamamlanması, katkıları iki kez saymamak için ikisini de içermez. Normal ürün satışları eBay sözleşmesini koruyarak bunları varsayılan olarak içermez. Bir mağazadan, istek listesi URL'sinden veya fiziksel öğeden hediye verme amacı çıkarmayın: kaynak içerik üreticisine hediye verildiğini açıkça belirtmedikçe, alıcı veya başka bir kişi için yapılan satın alma satış olarak kalır.

İsteğe bağlı paylaşılan meta.commerce alanları şunlardır: recipient (creator, buyer, other), itemType (physical, digital, service), quantity (pozitif ürün adedi), currency (ISO para birimi), goalAmount (ana para birimi cinsinden fonlama hedefi; asla yeni gelir değildir) ve orderTotal (ana para birimi cinsinden bilinen ödenmiş sipariş toplamı; bağış geliri değil, ticarettir). Bilinmeyen ayrıntıları eklemeyin. Ürün adlarını şu alanda tutun: subtitle, resimler şu alanda: contentimg, ve destekçi metni şu alanda: chatmessage. Mevcut sağlayıcı meta verileri kullanılabilir kalır. Throne alıcıyı ve para birimini, tamamlanmada da goalAmount alanını sağlar; eBay miktarı sağlar. Hiçbiri ürün türünü tahmin etmez veya özel alıcı bilgilerini açığa çıkarmaz.

Etkinlik akışı bu olayları destekçi metni olmadan da gösterir. Multi-alerts, parasal değeri olmayan ayrı bir Gift Fully Funded bildirimi dahil olmak üzere, hediyeler ve katkılar için bağış sunumunu kullanır. Satın almaların varsayılan olarak etkin ayrı bir Purchase kategorisi vardır; şu alanı içerir: purchasestyle, purchasesound, purchaseaccent, ve disablepurchases URL kontrolleri. Satın alma uyarıları bağış toplamlarını değiştirmez.

Etkinlik Akışı bu olay adlarını Event Type ve Other Event tetikleyicilerinde sunar. Bağış tetikleyicileri yine şu alanı inceler: hasDonation; Gift Sub tetikleyicileri üyelik anlamını korur. Compare Property şu tür iç içe yolları kabul eder: meta.commerce.recipient. İşlem şablonları şunu kabul eder: {meta.commerce.quantity} ve {meta.commerce.currency}, mevcut alanla birlikte: {donation}, {subtitle}, ve {meta}. İç içe yollar büyük/küçük harfe duyarlıdır, eksik değerler boş gösterilir ve prototip üzerinde gezinmek yasaktır.

İçerik üreticisi ticaret webhook'ları ve tanıtım katmanları

Ko-fi'nin herkese açık Donation ödemeleri şunu korur: hasDonation ve USD değerini kazanır: donoValue. Abonelik ödemeleri şunu kullanır: new_subscriber veya resub, kademe şu alanda: membership. Shop Order ve Commission şunu kullanır: purchase bağış değerleri olmadan. Özel Ko-fi olayları hariç tutulmaya devam eder. Form kodlu JSON bir kez çözülür; adlar ve mesajlar düz metindir.

Buy Me a Coffee donation.created parasal desteği korur; extra_purchase.created ve commission_order.created şu hale gelir: purchase. wishlist_payment.created şu hale gelir: giftcontribution yalnızca o ödeme miktarını kullanarak; meta.commerce.completed başka bir parasal satır göndermeden sağlayıcının tamamlanma bayrağını kaydeder. membership.started şu hale gelir: new_subscriber seviye şu alanda olacak şekilde: membership, artık şu alan yanlış kullanılmaz: hasDonation seviye adı için. Abonelik başlangıç miktarı tek başına tahsil edilmiş ödeme olarak değerlendirilmez. Test, iade, başarısız ve desteklenmeyen güncelleme/yaşam döngüsü olayları ücretli uyarı üretmez. Gizli destekçi notları dahil edilmez.

Fourthwall, ORDER_PLACED olayını destekler (purchase), GIFT_PURCHASE (gift, alıcı other), DONATION (normal bağış satırı) ve SUBSCRIPTION_PURCHASED (new_subscriber). Mevcut sipariş toplamları şunu korur: hasDonation geriye dönük uyumluluk için; şu şekilde işaretlenir: meta.commerce.legacyDonationValue: true; bu, yeni ürün satışı varsayılanlarına açık bir istisnadır. Hediye kartı uygulanmış siparişler bağış değeri olmadan satın alma uyarısı üretir: sipariş toplamından yeni çekilen tutar güvenilir biçimde çıkarılamaz ve hediye satın alımı zaten sayılmıştır. Fatura adları ve e-posta adresleri herkese açık kimlik için kullanılmaz. Kontrol paneli test olayları ve sipariş güncellemeleri ücretli uyarı üretmez.

Bu bağdaştırıcılar mevcut aktarımı, bot eylemlerini, Etkinlik Akışı'nı ve hedef yönlendirmesini korur; şu alanla: meta.webhookId tekilleştirmesi. Herkese açık adları, düz metin mesajları ve bilinen öğe adlarını şu alanda sunarlar: subtitle, ve ISO meta.commerce.currency ve uygun olduğunda sayısal bağış değerlerini içerir. İade muhasebesi veya yeni alıcı kimlik doğrulaması eklemezler; sağlayıcının mevcut yapılandırılmış webhook yolunu kullanın.

meta.monetization.commerce şu alanda: monetization_update enabled, qr, position, display (first/cycle), seconds ve herkese açık bir items dizisi içerir. Her öğe name, url, image, isteğe bağlı amount (bilinmediğinde null), currency ve purpose (shop/gift/support/membership) alanlarına sahiptir. Bunlar sunucunun girdiği tanıtım ayrıntılarıdır, ödeme kanıtı değildir. Öğe eklemek veya düzenlemek bağış ya da satın alma olayı göndermez. Genel katman şunu kullanır: mode=commerce; view=both|showcase|card|alerts tanıtımı etkinlikten ayırır. İsteğe bağlı style, scale, cardevery, cardfor ve onlytype URL parametreleri sunumu kontrol eder. Mevcut sağlayıcı modları ayrıca görünüm ve zamanlama kontrollerini kabul eder. Bkz. kurulum kılavuzu.

Throne hediye olayları

İsteğe bağlı Para Kazanma entegrasyonu, imzalı Throne olaylarını şu alanla iletir: platform ve type şu değere ayarlanır: throne. Üçü de sabit bir teslim kimliği kullanır: id, düz metin chatname, chatmessage şununla: textonly: true, ürün adı şu alanda: subtitle, ve isteğe bağlı HTTPS küçük resmi şu alanda: contentimg.

olayAnlamıBağış tutarı / sıralama
giftSatın alınmış bir hediyehasDonation ve USD donoValue; +1 hediye sıralaması
giftcontributionBir hediyeye yapılan katkıYalnızca katkı tutarı; sıralama artışı yok
giftfundedToplulukça fonlanan hediye tamamlandıHayır hasDonation veya donoValue, önceki katkıların iki kez sayılmasını önleyerek; +1 hediye sıralaması

meta.throne şunu içerir: itemName, creator (herkese açık kullanıcı adı), completed, currency ve ana para birimi cinsinden amount. Şunun için: giftfunded, tutar yeni geliri değil hedefi tanımlar. Anonim hediye verenler şu şekilde kalır: Anonymous; tamamlanmış topluluk hediyeleri şunu kullanır: Community. Özel ödeme ve gönderim alanları asla iletilmez.

monetization_update anlık görüntüleri ayrıca şunu içerir: meta.monetization.throne: enabled, username, url, qr, position, rank, ve gifts. Bu anlık görüntüler webhook URL'si veya dinleme kimlik bilgisi içermez.

Sunucunun sesli komutları (masaüstü önizlemesi)

Etkinlik Akışı Şunu söylediğimde... tetikleyicisi, SSApp'ten güvenilir yerel mikrofon komutlarını alır. Dahili eylem bağlamı şunu kullanır: chatname: "Host", type: "hostvoice", tanınan ifade şu alanda: chatmessage, ve textonly: true. Bu gelen platform olayı veya yeni sohbet aktarımı değildir. Bu alanları sohbet üzerinden göndermek ses tetikleyicisini etkinleştirmez.

Güncel bir masaüstü derlemesi, mikrofonun açıkça başlatılması ve Test modundan sonra eylemlerin etkinleştirilmesi gerekir. Bkz. önizleme kurulumu ve doğrulama durumu.

Ürün gösterim kontrolleri

Mevcut monetization_update anlık görüntüleri şunu içerebilir: meta.monetization.commerce.live: kayıtlı program için null veya {mode: "show" | "hide", url?: "https://...", until: 0 | epochMilliseconds}. Show, kaydedilmiş ürün URL'siyle tam eşleşir; ürün eksikse kart gösterilmez. Pozitif until değeri sona erdiğinde kayıtlı programa dönülür; sıfır, değiştirilene veya SSN yeniden başlayana kadar sürer. Hide, ücretli etkinlik uyarılarını değil tanıtımları bastırır.

commerce.viewerURL yayınlanmış salt okunur mağaza URL'si veya boş metindir. Mevcut olduğunda tanıtım QR kodları buraya bağlanır. SSN oturumunu veya yayınlama anahtarını asla içermez. Ürünler şu alanda kalır: commerce.items. Görüntüleme kontrolleri, içe aktarmalar veya yayımlama, bağış/satın alma olayı üretmez. Bkz. Ürün kontrolleri Etkinlik Akışı ve uzak API kullanımı için.

Etkinlik Akışı commerceControl eylemi, doğrudan/Chrome yanıtını bekler (en fazla sekiz saniye). Normal olay yüklerinde olayı korur ve şunu ekler: meta.commerceControlResult: {success: true, commerce: controlState} veya {success: false, error: "..."}. Mevcut sayısal, dizi veya başka bir nesne dışı değer için: meta, meta veriler değişmeden kalır ve tanı bilgisi şu olarak döndürülür: commerceControlResult bunun yerine eylem sonucunda kullanılır. Başarısız kontroller, özgün ödeme olayını engellemeden o zincirdeki sonraki eylemleri durdurur. Zaman aşımı, kontrolün uygulanmadığını kanıtlamaz; Next gibi göreli bir komutu yeniden denemeden önce durumu inceleyin. Başarı yerel seçili/gizli/zamanlanmış durumu doğrular; OBS görünürlüğünü veya herkese açık sayfa eşitlemesini asla doğrulamaz.

Adlandırılmış Stream Deck / API iş akışları

Bu adlandırılmış iş akışı tetikleyicisi şu alanı içeren dahili bir Etkinlik Akışı mesajı oluşturur: type: "api", event: "workflow_trigger", chatname: "Stream Deck / API", boş chatmessage, ve textonly: true. İlgili alan: meta.workflow nesnesi tetikleyici adını ve çağıranın sağladığı JSON öğesini içerir: data nesnesi. Şu örnekteki gibi şablonlar aracılığıyla değerleri okuyun: {meta.workflow.data.minutes}. Yalnızca bu tetikleyiciyle açıkça eşleşen, kaydedilmiş ve etkin akışlar değerlendirilir. Bu gelen izleyici/sohbet olayı değildir ve sohbet olarak yayınlanmaz; bu alanları sohbete kopyalamak adlandırılmış tetikleyiciyi etkinleştirmez.

NinjaChatter izleyici pilotu

Deneysel eşleştirilmiş uzantı bağlayıcısı, şu alanı içeren yalnızca görüntüleme amaçlı satırlar gönderir: type: socialstreamchat, platform: ninjachatter, ve textonly: true. meta.ninjachatter şunu taşır: origin: audience, açıklayıcı provider, ve herkese açık room kimliği. Bu satırlar platform yanıtlarını, botları, Etkinlik Akışı tetikleyicilerini ve puanları atlar. Görüntülenen sağlayıcı adı yetkilendirme anlamına gelmez. Eski NinjaChatter kaynak yakalamaları şunları içerir: meta.ninjachatter.room odaya özgü yinelenenleri engellemek için.

Cheer, özel sohbet komutu yerine ayrı ve kimliği doğrulanmış bir talep/sonuç yolu kullanır. Sabit hazır ayar mevcut Actions katmanı olayını üretir: show_text mesajını üç saniye boyunca gösterir. Alınması, doğrulanmış OBS gösterimi değil, taşıma kabulü anlamına gelir. Hiçbir izleyici yükü rastgele eylemler seçemez. Pilot NinjaChatter'da varsayılan olarak kapalıdır; yeni özel eşleştirme sınırı doğrulanana kadar Electron mevcut aktarımını korur.

Ticaret spot panoları ve son satışlar

Mevcut monetization_update olay (type/platform: socialstream) ayrıca şunu içerir: meta.monetization.boards. İlgili alan: board şunu içerir: title, style (spotlar/takımlar), columns (1–20), visible, ve en fazla 120 spots. Her spot bir dize içerir: id, düz metin label, status (available/claimed/revealed) ve result (düz metin, açıklanana kadar boş). Sahiplenmeler ve açıklamalar, sunucunun girdiği gösterim durumudur; satın alma kanıtı veya rastgele atama değildir.

boards.sales en fazla 100 yakın tarihli kayıt tutar: id, title, isteğe bağlı amount (bilinmiyorsa null), currency, quantity, source, ve at (kaydedildiği andaki Unix milisaniyesi). automatic toplamayı isteğe bağlı olarak etkinleştirir, salesVisible gösterimi ve şunu kontrol eder: revision değişikliklerde artar. Otomatik toplama yalnızca şunu kabul eder: purchase olaylarını Shopify, eBay satıcısı, Fourthwall, Ko-fi ve Buy Me a Coffee'den alır; özel/test olayları hariç tutulur. Açık artırma meta verilerini, bağışları, hediyeleri veya yer ayırtmalarını satın alma olarak değerlendirmez. Otomatik kayıtlar, öğe fiyatı yerine sipariş toplamlarını, ilan fiyatlarını veya bağış miktarlarını kullanmaz. Manuel kayıtlar şunu kullanır: source: "Host confirmed".

Durum, bu kurulumun özel para kazanma depolamasında kalıcı olarak saklanır; herkese açık anlık görüntüler teslimat tekilleştirme kimliklerini, alıcı kimliğini ve gizli bilgileri içermez. Açıkça gösterilen satışlar, kaldırılabilmeleri için olay kimliklerini korur. İadeleri sunucunun kaldırması gerekir. Yinelenen satın alma kimlikleri, görünür geçmiş temizlendikten sonra da ayrı olarak saklanır (en fazla 2.000). Mevcut getCommerceState yanıtı şunu içerir: commerce.boards; commerceControl şu belgede açıklanan pano/satış komutlarını kabul eder: pano kılavuzu. Elle düzenlemeler güncel durumu yayınlar, ancak asla satın alma olayları, bağış toplamları veya ücretli ödüller oluşturmaz. Sunucu anlık görüntüsü 35 saniye boyunca gelmezse katmanlar gizlenir.

Satıcı iş akışı eklemeleri: commerce.boards.board.id panonun bir neslini tanımlar. Manuel bir saleAdd şunu sağlayabilir: boardId ve spotId satışı kaydetmek ve o yeri tek bir atomik işlemle ayırmak için; yakın geçmişte hâlâ bulunan yinelenen bağlantılı satışlar reddedilir. saleRemove şununla: reopenSpot: true yalnızca pano nesli hâlâ eşleşiyorsa o yeri serbest bırakır. Herkese açık satış girdileri bu operatör bağlantı alanlarını içermez. İsteğe bağlı platform manuel bir satışta, filtreleme için kaynağını korur; buna karşılık source: "Host confirmed" onay yöntemini tanımlar. amount girdinin şu alanı dahil toplamıdır: quantity. eBay ödenmiş sipariş bağdaştırıcısının alanı: meta.ebayPurchase.quantity korunur.

salesSettings.auctionSource Whatnot veya eBay Live öğe yardımcısını isteğe bağlı olarak etkinleştirir. Kontrol yanıtının şu alanı: commerce.auction yalnızca en son yakalanan şu öğeden source, title, priceText, status ve at alanlarını içerir: auction_update, veya null. Beş dakika sonra sona erer; kaynak değişiminde, boşta anlık görüntüde veya yeniden başlatmada temizlenir. Yardımcı yalnızca operatör içindir: kalıcı kaydedilmez ve izleyici yayınlarına dahil edilmez; teklif veren/kazanan kimliği atılır. Kaynak betikleri ve açık artırma olay yükleri değişmez. Taslağı kopyalamak ödemeyi doğrulamaz veya satış oluşturmaz.