Zum Inhalt

Custom Webhook — SB als HTTP-Endpoint

Streamer.bot kann selbst als HTTP-Server agieren — externe Services können SB triggern via HTTP-Request. Klassisch: GitHub-Webhook bei Commit, Custom-Bot-Server, externe Tools.

Trigger-Pfad: Integrations → Streamer.bot → Custom Webhook

Doku-Stand

Die offizielle Doku zur Custom Webhook Trigger ist aktuell unvollständig. Die folgenden Infos basieren auf Community-Erfahrungen und Reverse-Engineering. Verbindlich: https://docs.streamer.bot/api/triggers/integrations/streamerbot/custom-webhook

Voraussetzung

Streamer.bot Web Server muss aktiv sein:

  1. Settings → Web Server Configuration
  2. Enable: ✅
  3. Address: 0.0.0.0 (alle Interfaces) oder 127.0.0.1 (nur lokal)
  4. Port: 8080 (Default)
  5. Password: optional (für Authentifizierung)

Webhook-URL-Format

http://<sb-ip>:8080/webhook?name=<webhook-name>

Beispiel: http://192.168.1.42:8080/webhook?name=test

Bei jedem GET/POST auf diese URL feuert der Custom Webhook Trigger in SB.

Trigger anlegen

In SB:

  1. Action öffnen → Triggers-Tab → + Add Trigger
  2. Integrations → Streamer.bot → Custom Webhook
  3. Name eingeben (muss zu ?name= in der URL matchen)
  4. Save

Verfügbare Variablen

Je nach Request:

Variable Inhalt
%webhookName% Name aus der Query
%httpMethod% GET / POST
%body% Request-Body (bei POST)
%query.<key>% Query-Parameter (z.B. ?user=bob%query.user%)

Exakte Variablen-Liste je nach SB-Version — mit Log-Sub-Action testen welche Daten ankommen:

[Webhook] Debug
└── Log: "Webhook fired! Body: %body% Query: %query%"

Log-Output in SB → Logs Tab anschauen.

Use-Case A: External Stream-Deck-Alternative

Du hast eine eigene Steuerung (z.B. Raspberry Pi mit Knöpfen) — Pi sendet HTTP-Request an SB, SB triggert OBS-Action.

Auf dem Pi:

curl -X POST "http://192.168.1.42:8080/webhook?name=brbButton"

In SB:

[Webhook] BRB Button
Trigger: Custom Webhook (Name = brbButton)
└── OBS Set Active Scene: BRB

Use-Case B: GitHub Repo-Update Notification

GitHub-Webhook bei Push → SB postet Chat-Message.

In GitHub-Repo: 1. Settings → Webhooks → Add Webhook 2. Payload URL: http://<deine-ip>:8080/webhook?name=githubPush 3. Content type: application/json 4. Save

In SB:

[Webhook] Github Push
Trigger: Custom Webhook (Name = githubPush)
└── Send Message: "📦 Neues GitHub-Update! Check Discord für Details."

(GitHub-Webhook würde POST mit JSON-Body machen, der in %body% landet. Mit Inline-Function-JSON-Parsing kannst du Commit-Message extrahieren.)

Use-Case C: Mobile-App via Tasker

Auf Android: Tasker mit "HTTP-Request"-Plugin. Bei Bedingung (z.B. "Home WLAN" verlassen) → POST an SB:

http://192.168.1.42:8080/webhook?name=streamerLeavesHome

In SB:

[Webhook] Streamer Away
Trigger: Custom Webhook (Name = streamerLeavesHome)
└── Set Active Scene: AFK

Use-Case D: IFTTT / Make / Zapier Integration

Cloud-Services können HTTP-Webhooks senden. So bindest du SB an "Wenn-Dann"-Workflows aus dem Web.

Beispiel IFTTT: "Wenn neuer YouTube-Sub" → HTTP-POST an SB → SB postet auf Twitch.

Security

WICHTIG:

  • Wenn Address = 0.0.0.0 ist der Endpoint im LAN offen. Jeder im LAN kann SB triggern
  • Bei Internet-Exposure (Port-Forwarding) UMBEDINGT Password setzen plus HTTPS via Reverse-Proxy
  • Eigene HTTP-Auth (Bearer-Token) ist via Custom Webhook eher umständlich — pragmatisch via VPN tunneln

Variante: Password-geschützter Webhook

In Web Server Settings ein Password setzen. Caller muss dann mitgeben:

http://192.168.1.42:8080/webhook?name=x&password=mySecret

Oder via Authorization-Header. Exakte Methode SB-Version-abhängig.

Variante: Custom Path mapping

Statt /webhook?name=brb willst du /brb direkt? Geht nicht nativ — alles läuft über /webhook?name=. Wenn du sprechende URLs willst → Reverse-Proxy davor (z.B. nginx) der /brb/webhook?name=brb rewriting macht.

Verwandte: Send Remote Trigger

Wenn beide Seiten Streamer.bot-Instanzen sind, ist Send Remote Trigger einfacher als Custom Webhook (siehe Multi-PC Setup).

Häufige Fallen

  • Doku unvollständig — verlasse dich auf Log-Sub-Action zum Debuggen
  • Port nicht erreichbar — Firewall auf SB-PC prüfen, Address 0.0.0.0 setzen
  • Trigger feuert nicht — Name in URL und Trigger-Dialog vergleichen, case-sensitive
  • Web Server nicht aktiv — Settings → Web Server Configuration → Enable
  • Body-Parsing-Beschränkungen — JSON-Body wird als String in %body% gelegt. Inline-Function-Parsing kann tricky sein, im Zweifel C# nutzen

Quellen