Default frequency: every hour
Configured with Email Send, Filter, HTTP Request, Rss Feed Read, and additional nodes. Review the connections and setup before adapting this template.
Node categories in this workflow
- Files / media
- Trigger
- Routing
- Integration
- Web / API
- Messaging
- Transform
Icons describe general node roles, inferred from node types. Inspect the parameters for the configured action.
Drag to pan; use + and − to zoom. Reconstructed from the exported node positions; nothing runs here. Dashed lines represent non-main connections. Full node names and notes appear below.
How it works
The exported workflow contains the following configured nodes. Their connections are shown above; inspect the JSON for the complete logic, expressions, and external actions.
| Node | Category | Type | Operation |
|---|---|---|---|
| Get video details | Files / media | You Tube | video / get |
| Schedule Trigger | Trigger | Schedule Trigger | See node parameters |
| Filter out shorts | Routing | If | See node parameters |
| Get latest 15 videos of each channel | Integration | Rss Feed Read | See node parameters |
| Get my subscriptions | Web / API | HTTP Request | See node parameters |
| Check for errors | Routing | If | See node parameters |
| Only keep channels with unwatched videos | Routing | Filter | See node parameters |
| Keep only videos published since last run | Routing | Filter | See node parameters |
| Send an email for each new video | Messaging | Email Send | See node parameters |
| If the HTTP request failed, throw the error | Routing | Stop And Error | See node parameters |
| Split out subscriptions to process individually | Transform | Split Out | See node parameters |
| Filter out channels | Routing | Filter | See node parameters |
Setup
- Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
- Connect your own credentials through n8n’s credential store. Replace
REPLACE_WITH_*values with your resource identifiers. - Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
- Run with synthetic data and harmless destinations. Enable triggers only after checking the actual outputs.
Requirements
An n8n instance with the listed node types and compatible versions. Service-connected workflows may require accounts, credentials, or paid APIs.
Credential types declared in the source
smtpyouTubeOAuth2Api
Workflow notes
Get video details
Make a call to the YouTube API so that we have the thumbnail for the email and the duration to filter out shorts.
Filter out shorts
Sometime, some live broadcasts that are then posted as regular videos do not have a duration. That is why we check if duration is present in contentDetails.
Default frequency: every hour
Default frequency: every hour
Changing it here is enough if you want to check for new videos at a higher or lower frequency. You don't have to edit anything else.
Get my subscriptions from the YouTube Data v3 API
Get my subscriptions from the YouTube Data v3 API
You can expect to use 1 quota per 50 subscriptions per run, which is well within the 10 000/req a day allowed by default.
Get the 15 latest videos of each channel with RSS
Get the 15 latest videos of each channel with RSS
Using the YouTube API instead would cost too many quotas to make it viable.
Call YouTube's API for more data
Call YouTube's API for more data
We need the thumbnails for the email and the duration to filter out shorts.
Configure your email here
Configure your email here
To go to the video from the email, simply click on the thumbnail.
Get latest 15 videos of each channel
YouTube provides an RSS feed for each channel with the 15 latest videos. We use this instead of the YouTube Data v3 API, as search requests cost a lot of "quota points" and would easily put us over the daily limit with just one workflow run.
Get my subscriptions
Get subscriptions from YouTube Data v3 API
Only keep channels with unwatched videos
It's not a perfect indicator for new videos but helps reduce the amount of channels to process.
Keep only videos published since last run
We dynamically figure out the last run's execution time through the settings of the "Schedule Trigger" node.
Send an email for each new video
The expression in the HTML for the thumbnail simply selects the last element of the thumbnails array so that we get the best possible resolution thumbnail available.
Manually filter out channels
Manually filter out channels
To find the channel ID of a channel, click on the description → Share channel → Copy channel ID
Filter out channels
Optional step
Default frequency: every hour
Default frequency: every hour
Purpose and structure
This folder contains the Default frequency: every hour workflow. Its executable nodes use emailSend, filter, httpRequest, if, rssFeedRead, scheduleTrigger, splitOut, stopAndError, youTube. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.
Setup
Import inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.
Entry points
Schedule Trigger
Verification
Sanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.
Attribution
https://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Stopanderror/0791_Stopanderror_Splitout_Create_Webhook.json MIT; preserve source notices.