Twitch EventSub in Streamer.bot
Twitch hat mehrere APIs/Event-Systeme im Laufe der Zeit gehabt. Aktuell ist EventSub das offizielle Event-System für alles was in deinem Kanal passiert (Follows, Subs, Bits, Hype-Trains, Predictions, …). Streamer.bot nutzt EventSub unter der Haube: du musst es als User selten direkt konfigurieren, aber es ist gut zu wissen warum.
Warum diese Seite existiert
Abschnitt betitelt „Warum diese Seite existiert“Wenn du in Tutorials, Forum-Posts oder dem Streamer.bot-Discord die Begriffe PubSub, EventSub, Webhook, WebSocket oder Helix liest und nicht weißt was gemeint ist: diese Seite klärt das. Du brauchst das nicht zum Bauen einer Action, aber zum Troubleshooten von “warum feuert mein Reward-Trigger nicht” hilft das Verständnis enorm.
Die kurze Antwort
Abschnitt betitelt „Die kurze Antwort“| System | Status 2026 | Was es ist |
|---|---|---|
| EventSub | ✅ Aktiv | Aktuelles Event-System. WebSocket-Variante seit 2022, alles neue läuft hier. |
| PubSub | ⚠️ Deprecated seit 2024 | Vorgänger von EventSub. Twitch stellt PubSub schrittweise ab. |
| Helix | ✅ Aktiv | Twitchs REST-API für Aktionen (Ban, Timeout, Title setzen, Clips erstellen). Komplementär zu EventSub. |
| TMI / IRC | ✅ Aktiv | Chat-Protokoll. Nicht-Chat-Events laufen über EventSub. |
| Kraken | ❌ Komplett abgeschaltet | Alte API vor Helix. Tot seit 2022. |
Streamer.bot abstrahiert das alles: du klickst Triggers → Twitch → Follow und SB handhabt im Hintergrund EventSub-Subscription, Token-Refresh und Reconnect.
Was EventSub macht
Abschnitt betitelt „Was EventSub macht“EventSub ist das Pub/Sub-System (“publish/subscribe”) von Twitch. Drittanbieter wie SB melden sich für bestimmte Events an (“ich will alle Follows in Kanal XYZ wissen”) und Twitch schickt die Events dann live raus.
Es gibt zwei Transport-Varianten:
| Transport | Wer nutzt es | Vorteil |
|---|---|---|
| EventSub WebSocket | Streamer.bot, lokale Tools | Keine öffentliche URL nötig. Client-initiated Connection |
| EventSub Webhooks | Cloud-Services (Tawmae, StreamElements) | Twitch pusht zu öffentlicher HTTPS-URL |
SB nutzt EventSub WebSocket weil es lokal läuft und keine öffentliche URL hat. Du musst keinen Webhook-Endpoint konfigurieren oder Port forwarden. SB öffnet eine Verbindung zu Twitch und Twitch pusht Events durch.
Was SB abstrahiert
Abschnitt betitelt „Was SB abstrahiert“Wenn du in SB einen Trigger anlegst (z.B. Triggers → Twitch → Follow), passiert intern:
- SB checkt: hat der verbundene Twitch-Account die nötigen Scopes für
channel.follow? - Falls ja: SB subscribed bei Twitch für das Event via EventSub-API
- Bei jedem Follow pusht Twitch die Event-Daten über die WebSocket-Verbindung an SB
- SB feuert deinen Trigger mit den
%user%,%followDate%etc. Variablen - Bei SB-Neustart wird die Subscription automatisch erneuert
Du musst nichts davon manuell konfigurieren. Du klickst Trigger an, SB macht den Rest.
Was du wissen solltest. Scopes
Abschnitt betitelt „Was du wissen solltest. Scopes“Twitch-Events brauchen OAuth-Scopes: Berechtigungen die der verbundene Account dem SB-Tool erteilt hat. Verschiedene Events brauchen unterschiedliche Scopes.
| Event-Typ | Beispiel-Scope | Wer muss verbunden sein |
|---|---|---|
| Follow | moderator:read:followers | Streamer ODER ein Mod |
| Subscribe / Resub | channel:read:subscriptions | Streamer (Broadcaster) |
| Bits Cheer | bits:read | Streamer |
| Channel Points Reward | channel:read:redemptions | Streamer |
| Ban / Timeout (Mod-Aktion) | moderator:manage:banned_users | Streamer ODER Mod |
| Polls | channel:read:polls | Streamer |
| Hype-Train | channel:read:hype_train | Streamer |
| Shield Mode | moderator:read:shield_mode | Streamer ODER Mod |
| Charity | channel:read:charity | Streamer (Affiliate+) |
| Goals | channel:read:goals | Streamer |
Wichtig: Wenn dir ein Trigger nicht feuert obwohl SB connected ist, ist meistens ein Scope nicht erteilt. → Twitch-Account in SB neu verbinden (“Reconnect” / “Reauthorize”), Twitch zeigt dann die aktualisierte Scope-Liste.
Wann du EventSub direkt anfasst
Abschnitt betitelt „Wann du EventSub direkt anfasst“Es gibt drei Situationen wo du tatsächlich was wissen musst:
1. Trigger feuert nicht. Scope fehlt
Abschnitt betitelt „1. Trigger feuert nicht. Scope fehlt“Symptom: Du legst einen Follow-Trigger an, jemand folgt im Test, Action feuert nicht.
Fix: SB → Platforms → Twitch → Scopes → prüfen ob moderator:read:followers aktiv ist. Falls nein → Reauthorize klicken → Twitch öffnet sich → Scope freigeben → SB neu verbinden.
2. Multi-Account-Setup (Broadcaster + Bot)
Abschnitt betitelt „2. Multi-Account-Setup (Broadcaster + Bot)“SB kann zwei Twitch-Accounts verbinden: deinen Streamer-Account und einen separaten Bot-Account (für Chat-Output unter anderem Namen). EventSub-Subscriptions hängen aber am Streamer-Account (das ist der “Broadcaster”): der Bot-Account schickt nur Chat-Messages.
Konfiguration in SB: Platforms → Twitch → Streamer Account (für Events) und Bot Account (für Chat-Output).
3. Subscription-Limits
Abschnitt betitelt „3. Subscription-Limits“Twitch hat ein Limit von 3 EventSub-Subscriptions pro Combination aus Client-ID + User-ID. Streamer.bots Client-ID + dein User = 3 parallel verbundene SB-Instanzen pro Account.
Praktische Konsequenz: Wenn du SB auf 4 verschiedenen Rechnern mit demselben Twitch-Account verbindest, fliegt der älteste raus. Für 99% aller User irrelevant: relevant nur bei Multi-PC-Setups oder Test-Streamer.
Twitch-Doku: EventSub Subscription Limits.
EventSub Rate-Limits
Abschnitt betitelt „EventSub Rate-Limits“Twitch rate-limited einige Events:
| Event | Limit |
|---|---|
| Follow | Maximal 1× pro User pro Channel (re-following triggert nicht erneut) |
| Subscribe | 1× pro Sub-Event |
| Cheer (Bits) | 1× pro Cheer-Action |
| Hype-Train Progress | 1× pro 1-3 Sekunden während Hype-Train aktiv |
| Channel Points Redeem | 1× pro Redemption |
Praktische Konsequenz: Du kannst beim Testen nicht “schnell 5x folgen” um einen Trigger zu testen. Twitch sendet nur 1 Follow pro User. Test-Follows brauchen entweder einen zweiten Account oder den Test Trigger-Knopf in SB.
EventSub vs PubSub: was hat sich geändert
Abschnitt betitelt „EventSub vs PubSub: was hat sich geändert“| PubSub (alt) | EventSub (neu) | |
|---|---|---|
| Status | Deprecated seit 2024 | Aktiv |
| Transport | Nur WebSocket | WebSocket ODER Webhook |
| Auth | OAuth + Topic-Subscribe | OAuth + Subscription-API |
| Events | Begrenztes Set | Deutlich mehr Events |
| Latenz | ~1-3s | ~1s |
| Hype-Train, Polls, Predictions | Nur teilweise | Komplett |
| Charity, Shield Mode, Suspicious Users | – | Vorhanden |
Wenn du in alten Tutorials etwas mit “Twitch PubSub” liest, ist das veraltet: alles läuft heute über EventSub.
Warum SB nicht IRC für Events nutzt
Abschnitt betitelt „Warum SB nicht IRC für Events nutzt“Du fragst dich vielleicht: warum nicht alles über IRC/Chat? Antwort: Twitch sendet die meisten Events nicht über IRC.
| Event-Quelle | Wo es ankommt |
|---|---|
| Chat-Messages | IRC (TMI) |
!-Commands | IRC + von SB als Command-Trigger interpretiert |
| Sub / Resub / Gift Sub | IRC USERNOTICE + EventSub (SB nutzt EventSub für saubere Daten) |
| Cheer (Bits) | IRC USERNOTICE + EventSub |
| Follow | Nur EventSub (kein IRC) |
| Channel Points Reward Redeem | Nur EventSub |
| Hype-Train | Nur EventSub |
| Polls / Predictions | Nur EventSub |
| Ban / Timeout | Nur EventSub + IRC CLEARCHAT |
Kurz: ohne EventSub kein Follow-Trigger, kein Reward-Trigger, keine Hype-Train-Actions.
Troubleshooting
Abschnitt betitelt „Troubleshooting“| Symptom | Ursache | Fix |
|---|---|---|
| Follow-Trigger feuert nicht | Scope moderator:read:followers fehlt | SB → Twitch → Reauthorize |
| Reward-Trigger feuert nicht | Reward wurde im Twitch-Dashboard angelegt, nicht in SB | SB-Doku: Rewards-Setup. Reward muss in SB sein für Update Redemption Status |
| SB verbindet aber Events kommen nicht | EventSub-Quota voll (3 parallele Instances) | Andere SB-Instances ausloggen oder neu verbinden |
| Nach Twitch-Outage keine Events | EventSub-Subscription nicht automatisch erneuert | SB → Reconnect-Knopf, manchmal SB-Neustart nötig |
| Test-Follow triggert nicht | Twitch limitiert auf 1 Follow pro User | Test-Trigger in SB nutzen oder zweiten Account |
| ”Subscription Limit Exceeded” im Log | Du hast 3+ SB-Instances mit selbem Account | In allen anderen Twitch ausloggen |
Wann SB-User EventSub direkt nutzen müssen
Abschnitt betitelt „Wann SB-User EventSub direkt nutzen müssen“In > 99% der Fälle nie. Die Ausnahmen:
- Custom Twitch Extension bauen: eigenes Tool außerhalb SB das eigene EventSub-Subscriptions hat
- SB-WebSocket-API extern nutzen und parallel eigene Twitch-Events brauchen
- Cloud-Bot bauen der ohne SB läuft: dann brauchst du EventSub Webhooks (öffentliche HTTPS-URL nötig)
Für alle Standard-Streamer-Use-Cases: SB nutzen, EventSub vergessen, glücklich sein.
- Trigger-Referenz: alle SB-Trigger im Überblick
- Erste Action: wie eine Action mit einem Trigger zusammenarbeitet
- Command-Settings: Permissions, Cooldowns, Filters
- Twitch-Doku: dev.twitch.tv/docs/eventsub: falls du tief reingehen willst