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¶
- Discord-Server öffnen
- Channel öffnen wo Nachrichten posten sollen (z.B.
#stream-notifications) - Channel-Einstellungen (Zahnrad) → Integrationen → Webhooks
- Neuer Webhook klicken
- Name:
Streamer.bot(oder beliebig) - Avatar: Logo hochladen (optional)
- Channel: Bestätigen
- 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¶
- Discord Basic Webhook: https://docs.streamer.bot/api/sub-actions/integrations/discord/basic-webhook
- Discord Developer Docs (Webhook-Format): https://discord.com/developers/docs/resources/webhook