Opening Problem Statement
Meet Sarah, an avid YouTube follower and content creator who subscribes to dozens of channels daily. She loves keeping up with new videos, but manually checking each channel for new uploads wastes hours every week. Worse, many videos she’s interested in get buried under shorts or irrelevant live broadcasts. Sarah often misses valuable content because the information is scattered and overwhelming.
This is a common issue for many YouTube enthusiasts juggling numerous subscriptions. The hours spent scanning channels could be better used on creating or consuming valuable content. Plus, with the limits on YouTube API quotas, fetching data efficiently while avoiding unnecessary requests is a challenge.
What This Automation Does
This n8n workflow automatically checks your YouTube subscriptions hourly and sends you an email alert for each new video that matters — filtering out short videos and those posted before the last check. Here’s how it helps you:
- Fetches your subscription list: Retrieves all your YouTube channel subscriptions securely via OAuth2.
- Filters channels with new videos: Only processes channels that have unwatched content since the last check, saving API quota and processing time.
- Uses RSS feeds to get latest videos: Retrieves the 15 newest videos per channel via an RSS feed, avoiding heavy quota use from direct API searches.
- Filters out shorts and live streams without duration info: Ensures emails are only sent for videos longer than 1 minute, skipping short clips and live broadcasts incorrectly tagged.
- Includes thumbnails in emails: Pulls full video details including thumbnails to embed directly in email for better click engagement.
- Sends personalized email alerts: Each video triggers an email notification with clickable thumbnails linking directly to the video.
By automating this, Sarah saves hours per week and never misses important videos. The workflow respects YouTube API quota limits by combining API calls and RSS feeds strategically.
Prerequisites ⚙️
- n8n account: Either cloud-hosted or self-hosted to run the workflow.
- YouTube OAuth2 API credentials: Set up in n8n for accessing your subscriptions and video details.
- SMTP email account: Configured in n8n to send video alert emails.
You can self-host n8n for maximum control and cost efficiency. Services like Hostinger offer easy deployment solutions.
Step-by-Step Guide to Setting Up the Workflow
1. Schedule Your Video Check
Navigate to the n8n editor. Add the Schedule Trigger node:
- Click Add Node → Search and select Schedule Trigger.
- Set it to run every hour at your preferred minute (e.g., every hour at minute 47).
- This node triggers the workflow to check for videos automatically at set intervals.
Outcome: The workflow initiates hourly to fetch new subscription data.
Common mistake: Forgetting to configure timezone settings appropriately.
2. Retrieve Your YouTube Subscriptions
Add an HTTP Request node named Get my subscriptions:
- Set HTTP method to GET.
- URL:
https://www.googleapis.com/youtube/v3/subscriptions - Query parameters:
mine=true,part=snippet,contentDetails,maxResults=50 - Enable pagination to handle multiple pages as you may have many subscriptions.
- Authentication: Choose YouTube OAuth2 credentials you previously configured.
Outcome: Fetches your subscription list with metadata.
Common mistake: Omitting pagination causes incomplete subscription lists.
3. Error Handling on Subscription Fetch
Add an If node named Check for errors connected to the previous node:
- Condition: Check if the JSON response contains an
errorfield indicating request failure. - If true, connect to a Stop and Error node with a descriptive message using expressions to surface API error information.
Outcome: Workflow halts gracefully and surfaces issues instead of failing silently.
4. Split Subscriptions for Individual Processing
Add a Split Out Items node connected to success of subscription fetch:
- Field to split:
items
Outcome: Each subscription is processed individually in parallel.
5. Filter Channels for New Videos
Add a Filter node named Only keep channels with unwatched videos:
- Condition:
contentDetails.newItemCount > 0to filter only channels with new content.
Outcome: Reduces API calls and processing by skipping inactive channels.
6. (Optional) Manually Filter Specific Channels
Add another Filter node called Filter out channels to exclude specific YouTube channels by their ID:
- Condition: The channel ID does not match any in an exclusion list (e.g.
exampleChannelId1,exampleChannelId2).
This allows fine-tuning which channels get processed.
7. Get Latest 15 Videos Per Channel via RSS Feed
Add an RSS Feed Read node named Get latest 15 videos of each channel:
- Set RSS URL dynamically:
https://www.youtube.com/feeds/videos.xml?channel_id={{ $json.snippet.resourceId.channelId }}
RSS feeds provide the latest 15 videos without hitting YouTube API quotas.
8. Filter Videos Published Since Last Run
Add a Filter node named Keep only videos published since last run:
- Use datetime comparison to check if video’s publish date is after the timestamp of the last workflow run minus the interval (e.g., last hour).
Outcome: Prevent duplicated emails for previously processed videos.
9. Retrieve Full Video Details
Add a YouTube node named Get video details:
- Operation: Get video details including
snippetandcontentDetails. - Input video ID extracted from RSS feed items.
This node fetches video thumbnails and duration to filter out shorts.
10. Filter Out Shorts and Live Streams
Add an If node named Filter out shorts:
- Condition: Keep videos where duration field exists and duration is greater than 61 seconds.
Many shorts and live streams do not have duration info or are shorter than a minute.
11. Send Email Notification for Each New Video
Add an Email Send node named Send an email for each new video:
- Set recipient email (e.g.,
My Name). - Configure subject line as video channel title.
- Compose HTML email embedding video title and highest resolution thumbnail with a clickable link to the video.
- Email sender configured via SMTP credentials.
Outcome: Personalized email alerts with clickable video thumbnails.
Customizations ✏️
- Adjust frequency: In the Schedule Trigger node, change hoursInterval to check for videos more or less frequently.
- Add more channel exclusions: Update channel IDs in the Filter out channels node to customize ignored channels.
- Enhance email formatting: Modify HTML in the Email Send node to add branding, styling, or additional video metadata such as descriptions or durations.
- Change video duration filter: In the Filter out shorts node, adjust the 61-seconds threshold to control which videos are considered shorts.
- Expand notification options: Integrate Slack or other messaging apps by adding respective nodes to notify you in multiple channels.
Troubleshooting 🔧
Problem:
“HTTP request failed with error” in subscription fetching.
Cause: OAuth2 credentials expired or misconfigured.
Solution: Re-authenticate your YouTube OAuth2 account in n8n via Settings → Credentials → YouTube account.
Problem:
Emails not sending for new videos.
Cause: SMTP credentials incorrect or missing.
Solution: Verify SMTP settings in the Email Send node and test connection independently.
Problem:
Workflow processing no new videos repeatedly.
Cause: Timestamp filtering logic incorrect or system clock skew.
Solution: Confirm the Keep only videos published since last run node date comparison logic and ensure server time is accurate.
Pre-Production Checklist ✅
- Verify YouTube OAuth2 credentials have proper scopes for subscriptions and video data.
- Test email sending with the configured SMTP account.
- Run the workflow manually and check log outputs for errors or empty results.
- Check the channel filter list for any mismatched IDs if videos are unexpectedly missing.
- Ensure your n8n instance clock/timezone matches your configured Schedule Trigger timezone.
Deployment Guide
Activate the workflow in n8n by enabling it after all nodes are configured and tested. Monitor executions regularly through n8n’s built-in execution history and logs to catch API quota issues or errors early. Scheduling hourly is balanced but can be adjusted based on your number of subscriptions and email preferences.
Conclusion
By following this comprehensive guide, you have built an n8n workflow that automatically fetches your latest YouTube subscription videos, filters out shorts and irrelevant content, and sends you personalized email alerts complete with video thumbnails. This saves you hours weekly and ensures you never miss valuable content.
Next, consider expanding this automation with Slack notifications, archiving videos data to Google Sheets, or integrating with calendar apps to schedule watch reminders. Happy automating!