Auf dieser Seite
Was ist ein type?
type ist die kanonische Quellkennung eingehender Social-Stream-Nutzdaten. Overlays, URL-Filter, APIs und Event Flow unterscheiden damit Plattformen und Quellvarianten.
{
"type": "youtubeshorts",
"chatname": "Ava",
"chatmessage": "Hello from Shorts"
}
| Name | Bedeutung | Nicht verwechseln mit |
|---|---|---|
type |
Die Quelle der eingehenden Nutzdaten, etwa youtube oder instagramlive. |
Eine Anzeigebeschriftung, ein Verbindungsmodus oder Ereignisname. |
event |
Was passiert ist, zum Beispiel superchat, gift, oder viewer_update. |
Die Plattform, die es erzeugt hat. |
sourceName |
Ein optionaler Kanal-, Raum- oder Quellanzeigename. | Der beständige Wert, den ein From-Source-Auslöser verwendet. |
tid |
Die ursprüngliche Tab- oder Desktop-Quellfenster-ID für Antworten und Quellausschluss. | Ein Plattformtyp. |
Desktop-App target |
Die gespeicherte Kategorie zur Auswahl von URL, Modus und Erfassungsskript. | Eine Garantie, dass alle ausgegebenen Nutzdaten dieselbe Zeichenfolge enthalten. |
Wichtig: Der Event-Flow- Von Quelle (From Source) Auslöser vergleicht seinen eingestellten Wert direkt mit message.type. Verwende den genauen kleingeschriebenen Nutzdatenwert.
Häufige und missverständliche Typen
| Erfassungs- oder Oberflächenname | Nutzdatentyp | Warum es überraschen kann |
|---|---|---|
| YouTube-Livechat | youtube |
DOM, API-Polling und WebSocket/Streaming beschreiben Transportwege, keine getrennten Typen. |
| YouTube-Shorts-Livechat | youtubeshorts |
Er ist für eingehende Filter und Event-Flow-Weiterleitungsziele getrennt, während gemeinsame YouTube-Steuerungen beide Varianten bei Bedarf weiterhin als eine Familie behandeln. |
| Instagram Live / InstaFeed live | instagramlive |
Instagram-Beitrags- und Feedkommentare verwenden instagram. |
| TikFinity | tiktok |
TikFinity ist der Connector; die normalisierte Plattform bleibt TikTok. |
| X | x, oder älteres twitter mit der Twitter-Branding-Option |
Bestehende Filter behalten möglicherweise bewusst den älteren Namen. |
| Regionale Bilibili-Optionen | bilibili |
Desktop-Ziele und Skripte heißen möglicherweise bilibilicom oder bilibilitv, während Nutzdaten normalisiert werden. |
| OBS-Systemereignisse | obs |
Sie sind keine Chatquellen, können aber mit Ereignissen wie scene_changed. |
Verwende: Ereignisreferenz für den Feldvertrag und Unterstützte Websites für öffentliche Plattform-Einrichtungsnamen.
YouTube Shorts und Event Flow
Eingehender Abgleich ist exakt: verwende youtubeshorts in einem From-Source-Auslöser für Shorts-Nachrichten und youtube für normalen YouTube-Livechat.
Ausgehender Abgleich ist ebenfalls exakt: Relay Chat behandelt sie als getrennte Ziele.
- Ziel
youtubesendet nur an normale YouTube-Livechat-Fenster. - Ziel
youtubeshortssendet nur an YouTube-Shorts-Livechat-Fenster. - Füge zum Erreichen beider Ziele je eine Aktion hinzu oder leite an alle Plattformen außer der Quelle weiter.
Andere YouTube-weite Steuerelemente können beide Typen bewusst als eine Plattformfamilie behandeln. Das ändert den obigen exakten Event-Flow-Abgleich nicht.
Fehlerbehebung älterer Versionen
Ältere Versionen fassten beide Weiterleitungsziele zusammen, sodass zwei Aktionen zweimal an jedes YouTube-Fenster senden konnten. Aktualisiere Social Stream Ninja, wenn das auftritt. Ein Reflection Filter verhindert Weiterleitungsschleifen, korrigiert aber keinen überlappenden Zielabgleich in diesen älteren Versionen.
Weiter mit dem Event-Flow-Leitfaden oder YouTube-Einrichtungsleitfaden.
Instagram Live und Instagram-Kommentare im Vergleich
Verwende instagramlive für Live-Raumchat, der von der Instagram-Live- oder InstaFeed-live-Quelle erfasst wird. Verwende instagram für nicht live stattfindende Feed-, Beitrags- oder statische Kommentare.
- Livechat-Ablauf: From Source =
instagramlive. - Beitrags-/Kommentarablauf: From Source =
instagram. - Beide: verwende zwei Auslöser mit einer gemeinsamen Aktion oder einen Any-Source-Auslöser mit nachfolgendem typabhängigem Filter.
Der sichtbare Markenname Instagram reicht zur Typauswahl nicht aus; der Inhaltskontext unterscheidet beide.
Allgemeine, eigene und unbenannte Quellen
sources/generic.js ist ein allgemeiner Fallback für DOM-Erfassung. Er sucht gängige Chatzeilen, Namen, Nachrichten, Avatare und Eingaben. Er beginnt mit generic, und leitet dann normalerweise einen kleingeschriebenen Typ aus einer bekannten Plattform oder dem Hostnamen der Seite ab.
- Prüfe damit, ob sich ein gewöhnlicher DOM-Chat erfassen lässt, bevor du eine eigene Quelle schreibst.
- Erwarte keine zuverlässige Unterstützung für Ereignisse, Moderation, Löschungen, virtualisierte Listen oder geschlossenes Shadow DOM.
- Ein vom Hostnamen abgeleiteter Typ ist praktisch, aber kein dauerhafter öffentlicher Vertrag. Prüfe die ausgegebenen Nutzdaten, bevor du Filter darauf aufbaust.
- Wenn eine Quelle keinen etablierten Plattformnamen hat, wähle einen beständigen kleingeschriebenen
type. VerwendesourceNamefür die lesbare Raum- oder Kanalbeschriftung. - Wenn noch keine stabile Identität existiert, ist
genericsicherer, als den Typ pro Nachricht zu ändern. Externe Integrationen verwenden häufig einen bewusst gewählten Wert wieexternal.
Sobald Benutzer, Overlays oder Flows von einem neuen Typ abhängen, dokumentiere ihn in der Ereignisreferenz statt ihn stillschweigend umzubenennen.
Skripteinbindung der Desktop-App
Die Desktop-App speichert ein Quellen- target, wählt ein oder mehrere sourceFile/sourceFiles, öffnet ein Quellfenster und bindet gemeinsame Erfassungsskripte aus diesem Projekt ein. Eine Chrome-Runtime-Kompatibilitätsbrücke überträgt erfasste Nachrichten und Antwortbefehle zwischen Seite und App.
- Ziel und Skriptdateiname müssen nicht dem Nutzdatentyp entsprechen. Das
youtubeshortsZiel lädtsources/youtube.js, dasyoutubeoderyoutubeshortsaus dem Seitenkontext. - Bilibili-Ziele werden ähnlich gemeinsamen/regionalen Skripten zugeordnet und geben dabei
bilibili. sources/inject/*.jsDateien sind Hilfen im Seitenkontext für Sockets oder Seitenvariablen. Die Quellhülle bleibt für die kanonischen Nutzdaten verantwortlich.- Wenn mehrere Skripte eingebunden werden, sollte nicht jede Hilfsfunktion dasselbe ausgehende Ziel beanspruchen. Erfassungsidentität und Antwortfähigkeit sind getrennte Aspekte.
- Änderungen an der Quellerfassung gehören in die
sources/Dateien dieses Repositorys. Die Desktop-App verwendet sie; ihre mitgelieferte Fallback-Kopie ist nicht maßgeblich.
Projektbetreuer können die Einrichtung in der index.html Quellfenstererstellung und dann main.js und preload.js für Einbindung und Brückenkommunikation.
Antworten und Weiterleiten an Quellen
Eingehende Identität und ausgehende Fähigkeit hängen zusammen, sind aber nicht derselbe Vertrag.
| Aktion | Wie die Auswahl erfolgt | Häufiger Fehler |
|---|---|---|
| Der Quelle antworten | Verwendet tid um genau den ursprünglichen Tab/das ursprüngliche Fenster anzusprechen. |
Nein tid, oder dieser Erfassungsmodus kann keinen Chat senden. |
| An eine Plattform weiterleiten | Fragt offene Quellen, ob sie dieses ausgehende Ziel unterstützen. | Für die gewählte Variante ist kein passendes Quellfenster geöffnet oder die Quelle kann keinen Chat senden. |
| An alle außer der Quelle weiterleiten | Sendet an erreichbare Quellen und schließt die ursprüngliche tid. |
Eine Quelle akzeptiert keine automatisierten Eingaben oder eine zurückgespiegelte Nachricht wird erneut erfasst. |
- Die
getSourceAntwort ist ein Signal für ausgehende Erreichbarkeit. Gemeinsame YouTube-Steuerungen können beide Varianten gruppieren, während Relay Chat zum Zielabgleich den genauen Shorts-URL-Kontext ergänzt. - Die allgemeine Erfassung kann wahrscheinliche Eingabefelder finden und fokussieren. Das garantiert aber nicht, dass die Website automatisiertes Senden akzeptiert.
- API-/WebSocket-Modi senden möglicherweise über Plattform-APIs, statt in die sichtbare Seite zu tippen.
- In der Desktop-App Bot nur zum Antworten (keine Erfassung) hält eine Quelle für Antworten/Status verfügbar und unterdrückt ihre normalen erfassten Nachrichten.
- Teste Antwortunterstützung mit einem Quellfenster, bevor du eine plattformübergreifende Weiterleitung aufbaust.
Wo du genaue Details findest
- Ereignisreferenz: kanonische Felder und Plattformereignisnamen.
- Event-Flow-Leitfaden: Auslöser, Aktionen, Vorlagen, Behandlung zurückgespiegelter Nachrichten und Tests.
- Modi der eigenständigen App: Verhalten von Quellfenstern und Verbindungsmodi.
- Unterstützte Websites: Plattformnamen und Einrichtungsvoraussetzungen.
- Allgemeine und eigene Quellen: Fallback und externe Erfassung.
- Quellfenster der Desktop-App: interne Details zu Ziel, Skript, Brücke und reinem Antwortmodus.
- Eine Quelle hinzufügen: Quellverträge, Einbindungshilfen, Manifeste und Dokumentation.
Prüfe bei der Fehlersuche einen rohen Nutzdatensatz und notiere dessen type, event, sourceName, und tid. Damit lassen sich gewöhnlich eingehender Abgleich, ausgehendes Routing und doppelte Erfassung unterscheiden.