YouTube — Upload Notifications
GrumpyYoutube watches YouTube channels and automatically posts an announcement whenever a new video is uploaded. No API key needed — the bot reads each channel's public Atom feed.
Activation
In configs/config.yml:
addons:
youtube: true # Default: true (active as soon as the bot starts)
No further required fields in config.yml — the notify channel, ping role, and watched channels are all managed entirely via slash commands in the database.
No API key required! Unlike most YouTube integrations, GrumpyYoutube doesn't use the YouTube Data API. Instead, it fetches
https://www.youtube.com/feeds/videos.xml?channel_id=...for each watched channel — a public Atom feed YouTube provides for free, for every channel, without any login. This means the module works immediately after activation, with no Google Cloud project, quota, or credentials.
Configuration File
There is no configs/modules/youtube.yml. The module has no configurable values of its own (poll interval, limits, etc. are hardcoded) — all configuration happens through /youtube add.
Commands
All subcommands require Manage Guild permission and are guild-only (no DMs).
/youtube add
Watches a new YouTube channel.
| Option | Required | Description |
|---|---|---|
channel-id |
✅ | YouTube channel ID (starts with UC, 24 characters total) |
channel |
❌ | Text/announcement channel for announcements (default: current channel) |
ping-role |
❌ | Role pinged on new videos |
label |
❌ | Display name for the channel, e.g. "MainChannel" |
/youtube add channel-id:UCxxxxxxxxxxxxxxxxxxxxxx
/youtube add channel-id:UCxxxxxxxxxxxxxxxxxxxxxx channel:#videos ping-role:@YouTube-Fans label:MainChannel
The channel ID is not the
@handlename from the URL — it must start withUC. You can find it, for example, in the channel's page source or via various online tools.
Limit: maximum 10 watched channels per server.
/youtube remove <id>
Removes a watch by the ID shown in /youtube list.
/youtube remove id:3
/youtube list
Lists all watched channels on the server with ID, notify channel, label/channel ID, and ping role if set.
/youtube list
Flow & Details
- Poll interval: every active watch is checked every 10 minutes.
- No backlog on first subscription: when a channel is newly added, the bot does not post its entire upload history. On the very first poll pass, only the currently newest video is stored as a baseline (
lastVideoId) — the first real announcement only fires for the next genuinely new video. - Multiple new videos per tick: if several videos were uploaded since the last check, the bot posts at most 3 of them per tick (oldest first) to avoid flooding the channel.
- Failure backoff: if a feed fetch or parse fails, a failure counter (
consecutiveFailures) is incremented. After 10 consecutive failures, the watch is paused and only automatically resumes after 24 hours. Any single successful fetch (even with no new video) resets the counter to 0. - Announcement: red embed with video title, link, and timestamp; optionally pings the configured role.
Permissions
| Action | Permission |
|---|---|
/youtube add / remove / list |
Manage Guild |
| Bot posting the announcement | Send Messages in the notify channel |
GrumpyCore Wiki
⚙️ Setup
🔧 Core-Module
🆕 Neue Module
🔔 Benachrichtigungen & Utility
💬 Commands
👥 Staff
GrumpyCore Wiki (English)
⚙️ Setup
🔧 Core Modules
🆕 New Modules
🔔 Notifications & Utility
💬 Commands
👥 Staff