1 GrumpyYoutube EN
darksoon edited this page 2026-07-11 01:05:01 +02:00

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 @handle name from the URL — it must start with UC. 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