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.

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

FAQs

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.

Related templates

Discord support triage board for unanswered questions

See every question in your Discord support channels that nobody has answered yet, oldest first, with a clock on each row showing how long it has been waiting.

Discord
Linear
Notion
App
Discord announcement publishing desk with live preview

Write, preview and publish community announcements across your Discord servers from one place, then see which ones actually landed.

Discord
Notion
App
Turn your Discord server into a working member directory

See every member with their join date, roles and activity, spot your top helpers, and check who is already in your CRM before you reach out.

Discord
HubSpot
App
Monday brief: what competitors are pitching on YouTube

Every Monday, Gemini watches every video your competitors posted last week and tells you which ones signal a real change in strategy.

YouTube
Google Gemini
Slack Bot
+1
Agentic Task
Match-day fantasy football injury and lineup brief

On the mornings your club plays, get a plain-English rundown of who is out, who is doubtful, and how it reshapes the team, posted straight to Discord.

API-Sports
Discord
Agentic Task
Weekly Discord community pulse digest

Every Monday at 9am, roll up the week's activity across your key Discord channels into a pinned embed digest with trends, unanswered questions, and shoutouts.

Discord
Agentic Task

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.