What This Workflow Does
This workflow checks your YouTube subscriptions every hour and sends email alerts for new videos longer than one minute. It skips shorts and live streams without duration info so users only get meaningful updates. The workflow uses OAuth2 to securely fetch subscription lists and RSS feeds to retrieve recent videos without wasting API quotas.
It filters channels to process only those with new videos since the last run, reducing API calls and workload. Each new video triggers an email with clickable thumbnails, making it easy to see and watch new content fast.
Who Should Use This Workflow
This automation fits anyone subscribed to many YouTube channels who want to save time checking for videos. It helps users avoid missing important uploads hidden by shorts or live broadcasts. The workflow is ideal if managing YouTube API limits is needed while keeping alerts good.
Users wanting email notifications for new relevant videos rather than live notifications or app alerts will find this useful. It works well if handling many channels and wanting to filter out unimportant clip types.
Tools & Services Used
- YouTube OAuth2 API: To access subscription lists and video details securely.
- YouTube RSS Feeds: To get the latest 15 videos per channel minimizing API quota use.
- SMTP Email Service: To send rich HTML email alerts containing video thumbnails.
- n8n Automation Platform: To build, schedule, and run the workflow.
Inputs, Processing Steps & Output
Inputs
- Your YouTube account credentials via OAuth2 for subscription access.
- Channel subscription data fetched hourly.
Processing Steps
- Workflow triggers every hour via Schedule Trigger.
- Fetches subscriptions list with pagination through HTTP Request node.
- Checks for API errors and stops on failures using an If node.
- Splits subscription list into individual channel items.
- Filters only channels with new videos since last check.
- Optionally excludes listed channels.
- Reads latest 15 videos for each channel using YouTube RSS feed.
- Filters videos published after last workflow run to avoid repeats.
- Fetches full video details including duration and thumbnails.
- Filters out short videos and streams under 61 seconds.
- Sends personalized email alerts for each qualifying video, embedding clickable thumbnails.
Output
The result is hourly email notifications with new YouTube videos that matter. Users get fewer irrelevant alerts. Emails include video titles and attractive high-res thumbnails linking to the videos.
Beginner Step-by-Step: How to Use This Workflow in n8n Production
Step 1: Import Workflow
- Download the workflow file using the Download button on this page.
- Inside the n8n editor, click on the menu and choose “Import from File”.
- Select the downloaded workflow file and import it.
Step 2: Configure Credentials and Settings
- Add your YouTube OAuth2 credentials in n8n under “Credentials” if not already done.
- Set up your SMTP email account in n8n for sending emails.
- Update emails, channel IDs, or other values in nodes like Filter or Email Send as needed.
Step 3: Test the Workflow
- Run the workflow manually from the editor and check for any errors.
- Inspect any email received to verify content and format.
Step 4: Activate Workflow
- Turn on the workflow by enabling it in the n8n editor to run on schedule.
- Monitor executions via logs or history to catch issues early.
Once activated, the workflow works hourly without needing your input. You can adjust schedule settings or filters anytime.
For better control, consider self-host n8n to run the workflow securely on private servers.
Customizations ✏️
- Change the checking frequency in the Schedule Trigger to suit your needs.
- Add or remove channels in the Filter out channels node to control which channels send alerts.
- Update the video duration threshold in the Filter out shorts node to catch more or fewer shorts.
- Modify HTML in the Email Send node to add branding, video descriptions, or extra details.
- Add other notification nodes like Slack to receive alerts in multiple platforms.
Troubleshooting 🔧
Problem: HTTP request failed when fetching subscriptions
Cause: Expired or wrong YouTube OAuth2 credentials.
Solution: Re-authenticate YouTube OAuth2 in n8n under Settings > Credentials.
Problem: No emails sent for new videos
Cause: Incorrect or missing SMTP settings.
Solution: Check SMTP email credentials in the Email Send node and test separately.
Problem: Workflow keeps processing same videos repeatedly
Cause: Wrong timestamp filtering or server clock problem.
Solution: Verify date comparison logic in the Keep only videos published since last run node and confirm server time accuracy.
Pre-Production Checklist ✅
- Confirm YouTube OAuth2 credentials have correct scopes for subscriptions and video data.
- Test the SMTP email sending configuration independently.
- Run the workflow manually and view logs for errors or empty data.
- Verify channel IDs for filters match actual YouTube channel IDs.
- Check the n8n instance timezone matches the Schedule Trigger settings.
Deployment Guide
Enable the workflow after configuration to start hourly checks. Use n8n’s execution logs for monitoring quota limits or failures. Adjust the schedule or filters based on number of subscriptions and notification preferences.
Consider running this on a secure private server with self-host n8n for better uptime and privacy.
Summary & Results
✓ Saves hours by automating YouTube subscription video checks.
✓ Skips shorts and live streams to focus on real new content.
✓ Sends clear email alerts with clickable thumbnails.
✓ Respects YouTube API quotas by combining API calls and RSS feed use.
→ Results in timely, relevant video alerts without overload.
→ Enables users to never miss important videos from many channels.
https://www.googleapis.com/youtube/v3/subscriptions?mine=true&part=snippet,contentDetails&maxResults=50
https://www.youtube.com/feeds/videos.xml?channel_id={{ $json.snippet.resourceId.channelId }}
{{ $json.contentDetails.newItemCount }} > 0
Duration > 61 seconds filter expression in ISO 8601 to seconds parsing
Email HTML template with embedded <img> and video link:
<a href="https://www.youtube.com/watch?v={{ $json.id.videoId }}"><img src="{{ $json.snippet.thumbnails.high.url }}" alt="{{ $json.snippet.title }}"></a>
