Zum Inhalt

Discord Webhook Setup

Streamer.bot kann Nachrichten in einen Discord-Channel posten via Webhook. Kein Bot-Account nötig, keine OAuth — einfach ein URL.

Doku: https://docs.streamer.bot/api/sub-actions/integrations/discord/basic-webhook

Webhook in Discord anlegen

  1. Discord-Server öffnen
  2. Channel öffnen wo Nachrichten posten sollen (z.B. #stream-notifications)
  3. Channel-Einstellungen (Zahnrad) → IntegrationenWebhooks
  4. Neuer Webhook klicken
  5. Name: Streamer.bot (oder beliebig)
  6. Avatar: Logo hochladen (optional)
  7. Channel: Bestätigen
  8. Webhook-URL kopieren — Format: https://discord.com/api/webhooks/123456.../abcXYZ...

Diese URL ist dein Auth-Token. Sicher behandeln — wer die hat, kann in deinen Channel posten.

Mehrere Webhooks für verschiedene Channels

Du kannst mehrere Webhooks anlegen für verschiedene Channels:

Channel Use-Case
#stream-live Stream-Online-Notifications
#twitch-clips Clip-URLs
#sub-feed Sub/Follow-Events
#mod-log Ban/Timeout-Audit
#oncall Errors / API-Probleme

Pro Channel ein eigener Webhook → pro SB-Action der passende.

Discord Basic Webhook Sub-Action

Pfad: Integrations → Discord → Basic Webhook

Feld Bedeutung
Webhook Name Interner Name in SB (z.B. "Stream-Live")
Webhook URL Die kopierte URL
Username Custom-Name für die Message (override)
Content Der Text. Mehrzeilig erlaubt. Variablen-Interpolation aktiv
Avatar URL Override für Avatar
Text to Speech Discord-TTS aktivieren

Setzt %messageId% nach dem Post (Discord Message-ID für späteres Edit/Delete).

Wichtige Variablen-Tricks

Mentions

  • User: <@DISCORD_USER_ID> — z.B. <@123456789012345678> pingt User
  • Role: <@&DISCORD_ROLE_ID> — z.B. <@&987654321> pingt Rolle
  • @everyone: @everyone (Webhook muss in Discord Permission haben)
  • @here: @here

Discord User-/Role-IDs bekommst du via Rechtsklick auf User/Rolle → ID kopieren (Developer Mode an in Discord-Settings).

Markdown

Discord-Markdown funktioniert im Content:

  • **bold**, *italic*, __underline__, ~~strikethrough~~
  • ```code``` (Mehrzeilig)
  • > Zitat
  • [Link-Text](https://...) — funktioniert nicht in Webhooks (Discord-Limit), nur in Bot-Messages

Emojis

  • Standard: :thumbsup: wird ✅ zu 👍
  • Custom Server-Emoji: <:emoji_name:emoji_id> — z.B. <:hype:123456789>

Use-Cases in dieser Sektion

Use-Case MD
Twitch-Clip in Discord posten clip-notification.md
Sub/Follow-Notification mit Embed-Style sub-follow-notification.md
Stream-Live mit @everyone-Ping stream-live-notification.md

Häufige Fallen

  • Webhook-URL public geleaked — jeder kann posten. Bei Verdacht: Webhook löschen + neu anlegen
  • @everyone-Ping ohne Permission — Discord rendert's als Text statt Ping. Channel-Berechtigung "Everyone erwähnen" muss aktiv sein
  • Rate-Limit — Discord-Webhook erlaubt ~30 Messages pro Minute. Bei Spam: 429er-Response, Discord verzögert
  • Embeds nicht via Basic Webhook — die Sub-Action posted nur Plain-Text. Für Embeds (Card-Layout) entweder Fetch URL POST (geht nicht in SB) oder C# nutzen
  • Discord-Server Discord-Settings — Channel kann Restrictions haben (z.B. Slowmode). Webhook umgeht die meisten, aber nicht alle

Erweiterung: Embeds via Raw HTTP

Discord-Webhook akzeptiert auch JSON-Body mit Embeds:

{
  "content": "Stream startet!",
  "embeds": [{
    "title": "AzaCraft live",
    "url": "https://twitch.tv/azazelitv",
    "color": 9520895,
    "image": {"url": "https://..."}
  }]
}

Aber: Streamer.bot Fetch URL kann nur GET. Volles Embed-Posting braucht C# mit POST. Pragmatisch: Plain-Text mit Link reicht für 95% der Use-Cases.

Quellen