Announce new YouTube uploads in Discord

Automatically post a rich embed to your Discord server the moment a new video goes up on your YouTube channel.

Deterministic Code
YouTubeDiscordMarketingNotifications & Alerts
PromptCreate

Every 15 minutes, check my YouTube channel for new uploads and announce each one in a Discord channel as a rich embed. This is fully deterministic — no reasoning, no drafting — so build it as a code workflow with concrete steps.

Trigger: cron on a 15 minute cadence. YouTube does not send outgoing webhooks for uploads and is not a first-class poll provider on the platform, so the cron + list pattern is the right shape here. 15 minutes is a sensible default because YouTube's Search Videos costs 100 quota units per call and the daily quota is 10,000 units.

Configuration (both user-configurable at workflow install time):

1) youtubeChannelId — the YouTube channel to monitor (a UC... string).

2) discordChannelId — the Discord channel to post announcements into.

Workflow state: persist lastSeenPublishedAt (ISO 8601 timestamp). On the very first run, if it is unset, initialize it to the current time so we do not backfill the whole channel history — we only announce videos uploaded from now onward.

Step 1 — Fetch new videos with YouTube's Search Videos operation. Pass channelId = youtubeChannelId, order = date, type = video, publishedAfter = lastSeenPublishedAt, and a small maxResults (e.g. 10). Search results use items[].id.videoId (not items[].id), so parse accordingly.

Step 2 — If there are zero new items, exit early without touching state. Otherwise sort the returned items by snippet.publishedAt ascending so we announce oldest-first.

Step 3 — For each new video, build a Discord embed with: title = the video title, description = the first 200 characters of the video description (trim trailing whitespace, append an ellipsis if truncated), url = https://www.youtube.com/watch?v=<videoId>, thumbnail.url = the highest-resolution thumbnail available on snippet.thumbnails (prefer maxres, then high, then medium, then default), and color = 0xED4245 (Discord's red).

Step 4 — Call Discord's Send a Message operation to discordChannelId with that embed. Send them in publish order.

Step 5 — Only after every message posts successfully, update lastSeenPublishedAt to the newest snippet.publishedAt from this batch. If any Discord post fails, do not advance the cursor — the next run will retry from where we left off, so we never lose a video and never double-post.

Additional information

What does this prompt do?
  • Checks your YouTube channel for new uploads every 15 minutes
  • Posts each new video to a Discord channel as a rich red embed with the title, first 200 characters of the description, thumbnail, and watch link
  • Remembers the timestamp of the last video it saw so consecutive runs never double-post
  • Runs entirely on a schedule, no manual work once it is set up
What do I need to use this?
  • A YouTube channel you want to monitor (you will need its channel ID)
  • A Discord server where you can post announcements, plus the channel ID for the announcement channel
  • A YouTube account with access to the channel
  • A Discord login with permission to post in the target channel
How can I customize it?
  • Swap the announcement channel or point it at multiple servers
  • Change how often the check runs (every 5, 15, or 60 minutes) to balance freshness against your YouTube quota
  • Tweak the embed styling: color, description length, or add extra fields like publish date

Frequently asked questions

How fast will my Discord server hear about a new video?
By default the workflow checks YouTube every 15 minutes, so a new upload shows up in Discord within 15 minutes of publishing. You can lower the interval if you need it faster, but check-ins use up your YouTube API quota.
Will it post the same video twice?
No. The workflow remembers the publish time of the last video it announced and only fetches uploads newer than that, so consecutive runs never re-announce the same video.
Can I monitor a channel that isn't mine?
Yes. Any public YouTube channel works, you just need its channel ID (the string that starts with UC). The workflow only reads public upload data.
Can I announce in more than one Discord channel?
Yes. The target Discord channel is configurable, and you can duplicate the workflow if you want to post the same announcement to several places.
What happens if YouTube is slow or down when the workflow runs?
The workflow simply skips that run and tries again on the next tick. Because the last-seen timestamp is only updated after a successful post, nothing gets missed.

Never miss telling your community about a new upload.

Set this up once and every future YouTube video shows up in Discord on its own.