- Home
- Resources
- Integrations
- YouTube
YouTube n8n integrationAutomate YouTube with n8n.
The YouTube n8n integration turns channel chores into a workflow you run once and forget. The node exposes 20 operations across 5 resources: channels, playlists, playlist items, videos and video categories. No YouTube trigger node exists, so a Schedule or Webhook node starts the run.
Verified Trustpilot reviews · AI, automation & growth agency
What can the YouTube n8n integration actually do?
The YouTube node ships with n8n and calls the YouTube API on behalf of one Google account. It covers 20 operations grouped in 5 resources: channels, playlists, playlist items, videos and video categories. Whatever you do by hand in YouTube Studio, from pushing a file up to flipping a video from private to public, becomes one step in a workflow that other nodes can feed.
Take the publishing queue first. A row lands in Google Sheets with a title, a description and a file, the workflow downloads that file, runs video.upload with the binary field holding it, then writes the returned video ID back to the row and drops a message in Slack so an editor can review before the video goes public.
Playlist curation is the second one. A weekly Schedule Trigger reads the channel with video.getAll, filters on a keyword and a publication date, then pushes each match into the right playlist with playlistItem.add. Nothing stops you from building the playlist in the same run with playlist.create, which is handy for a season or a product launch that needs its own shelf.
Reporting closes the loop. channel.get with the statistics part returns subscriber and view counters, video.getAll lists what went out since last Monday, and the numbers land in a sheet or in a digest sent through Gmail. Because a credential is created once in n8n and reused everywhere, the same Google connection serves every workflow that touches the channel.
Some jobs sit outside the node. Comments, captions, live chat and the Analytics API are not part of these 20 operations, so reach them with the HTTP Request node, which calls any endpoint of the API while reusing the same credential through predefined authentication. That fallback is also the answer when YouTube ships a parameter the node has not caught up with.
Two limits are worth knowing before you build. There is no YouTube trigger, so a workflow here always starts with a Schedule Trigger on a fixed interval, an n8n Webhook called by another service, or the trigger of another tool. And every listing operation is paginated: Return All walks through the API pages until the end, while Limit caps the number of items when it stays off. If you want the broader picture of the platform before committing, the n8n review and the n8n training cover it.
How do you connect YouTube to n8n?
- 01
Pick your OAuth2 path
YouTube uses a Google OAuth2 single service credential, which is the token n8n stores to act on your channel. On n8n Cloud, Managed OAuth2 is the short road: open the credential screen, click Sign in with Google, and nothing else is needed in the Google Cloud Console. Self-hosted instances do not get Managed OAuth2, so switch the authentication type in the dropdown and go the Custom OAuth2 way, which means creating your own app in Google Cloud.
- 02
Set up the Google Cloud project
Create a Google Cloud Console project, enable the APIs you need, then open APIs & Services > OAuth consent screen. Fill in App name and User support email, then choose the Audience: Internal keeps access inside your Google Workspace, External opens it to any Google account. Under Branding, add an authorized domain:
n8n.cloudfor the hosted service, or the domain of your own instance when you self-host. - 03
Create the client and paste it back
In Credentials, select + Create credentials > OAuth client ID, set Application type to Web application and name the client. Copy the OAuth Redirect URL shown in your n8n credential and paste it into Authorized redirect URIs in Google. Running n8n on your machine is fine, Google accepts localhost, so the value looks like
http://localhost:5678/rest/oauth2-credential/callback. Create, then finish the credential in n8n.
What the YouTube node does, operation by operation
The YouTube node exposes 20 operations across 5 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.
| Resource | Create | Get | Get Many | Update | Delete | Add | Rate | Upload | Upload Banner |
|---|---|---|---|---|---|---|---|---|---|
| Channel | ✓ | ✓ | ✓ | ✓ | |||||
| Playlist | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Playlist Item | ✓ | ✓ | ✓ | ✓ | |||||
| Video | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| Video Category | ✓ |
Operations index
Channel
4 operationsGet a channel
channel.getWhat you see in n8n
Notes & use cases
Reads one channel and returns only the property groups you asked for, which keeps the output small enough to map straight into a sheet.
Key parameters
- Channel ID: the identifier of the channel to read, usually
{{ $json.channelId }}when a previous node already carries it. - Fields: the parts the API response includes.
statisticsbrings the counters,snippetthe title and description,brandingSettingsthe visual identity, and*takes everything.
Get many channels
channel.getAllWhat you see in n8n
Notes & use cases
Returns a list instead of a single channel, shaped by the Filters collection you open on the node.
Key parameters
- Fields: same property groups as the single read, applied to every channel in the list.
- Return All: on, n8n follows the API pages until the last channel; off, Limit caps how many come back.
- Filters: ID takes a comma separated list of channel IDs, For Username resolves a YouTube username, Managed By Me narrows to channels managed by the content owner.
Update a channel
channel.updateWhat you see in n8n
Notes & use cases
Writes new values on an existing channel. Only what you place in Update Fields is touched, the rest stays as it is.
Key parameters
- Channel ID: the channel being edited, required, so the node fails if the expression feeding it comes back empty.
- Branding Settings: the collection holding the branding information of the channel.
- On Behalf Of Content Owner: tells the API the credentials belong to a YouTube CMS user acting for that content owner.
Upload a channel banner
channel.uploadBannerWhat you see in n8n
Notes & use cases
Sends an image file to the channel header. The file has to reach the node as binary data, not as a URL in a text field.
Key parameters
- Channel ID: the channel receiving the banner.
- Input Binary Field: the name of the incoming binary field that holds the file. A node that downloaded the image sits right before, and the name it gave the binary goes here, often
data.
Playlist
5 operationsCreate a playlist
playlist.createWhat you see in n8n
Notes & use cases
Builds an empty playlist on the authenticated account and returns its ID, which the next nodes use to fill it.
Key parameters
- Title: the playlist title, the one required field.
- Privacy Status:
private,publicorunlisted. Creating it private first leaves room to add the videos before anyone sees a half empty shelf. - Description and Tags: the description text and the keyword tags, several tags separated by commas.
Delete a playlist
playlist.deleteWhat you see in n8n
Notes & use cases
Removes the playlist itself. The videos inside stay on the channel, only the container disappears, and the call does not ask for confirmation.
Key parameters
- Playlist ID: the playlist to remove. Feed it from a previous listing rather than typing it, since nothing brings it back afterwards.
- On Behalf Of Content Owner: used when a CMS user runs the call for the content owner.
Get a playlist
playlist.getWhat you see in n8n
Notes & use cases
Reads a single playlist and hands back the parts you selected, without touching the items it contains.
Key parameters
- Playlist ID: the playlist to read.
- Fields:
snippetfor the title and description,contentDetailsfor the item count,statusfor the privacy setting,playerfor the embed. - On Behalf Of Content Owner Channel: the channel ID a video is being added to, used alongside the content owner parameter.
Get many playlists
playlist.getAllWhat you see in n8n
Notes & use cases
Lists the playlists that match your filters, one n8n item per playlist, ready to loop over.
Key parameters
- Fields: the property groups returned for each playlist in the list.
- Return All: leave it off and Limit decides how many playlists come back, turn it on for a complete inventory.
- Filters: Channel ID restricts the results to one channel, ID takes a comma separated list of playlist IDs.
Update a playlist
playlist.updateWhat you see in n8n
Notes & use cases
Edits an existing playlist. Worth knowing: Title is required even when the title is not what you came to change.
Key parameters
- Playlist ID: the playlist to edit.
- Title: required, so read the playlist first and pass its current title back when only the description moves.
- Description, Tags, Privacy Status: the fields you actually came to rewrite, privacy switching between
private,publicandunlisted.
Playlist Item
4 operationsAdd a playlist item
playlistItem.addWhat you see in n8n
Notes & use cases
Places a video inside a playlist and returns the playlist item that was created, a different object from the video itself.
Key parameters
- Playlist Name or ID: chosen from the dropdown n8n fills with your playlists, or given through an expression when it comes from a previous node.
- Video ID: the video being added.
- Position: the rank in the playlist, counted from zero, so 0 puts the video on top.
- Note: a private note of 280 characters at most.
Delete a playlist item
playlistItem.deleteWhat you see in n8n
Notes & use cases
Pulls one entry out of a playlist. The video stays online, it simply leaves that list.
Key parameters
- Playlist Item ID: the identifier of the entry, not the video ID. A video sitting in three playlists has three different playlist item IDs, and a listing operation is what gives you the right one.
- On Behalf Of Content Owner: for CMS users acting for the content owner.
Get a playlist item
playlistItem.getWhat you see in n8n
Notes & use cases
Reads one entry of a playlist, which is how you confirm what a given position actually holds.
Key parameters
- Playlist Item ID: the entry to read.
- Fields:
snippetcarries the position and the playlist it belongs to,contentDetailsthe video reference,statusthe privacy of the item.
Get many playlist items
playlistItem.getAllWhat you see in n8n
Notes & use cases
Walks through the contents of one playlist and returns its entries in order.
Key parameters
- Playlist Name or ID: the playlist to read, from the dropdown or through an expression.
- Fields: the property groups returned for each entry.
- Return All: on for the whole playlist however long it is, off to stop at Limit.
Video
6 operationsDelete a video
video.deleteWhat you see in n8n
Notes & use cases
Erases a video from the channel. No recycle bin on the other side, which makes this the operation to guard with a manual approval step.
Key parameters
- Video ID: the video to delete, and the only required field, so a wrong expression here does real damage.
- On Behalf Of Content Owner: when a CMS user runs the deletion for the content owner.
Get a video
video.getWhat you see in n8n
Notes & use cases
Fetches everything known about one video, with the depth set by the parts you tick.
Key parameters
- Video ID: the video to read.
- Fields:
statisticsfor views and likes,contentDetailsfor duration,statusfor the privacy state,liveStreamingDetailsfor a stream,recordingDetailsfor the recording data.
Get many videos
video.getAllWhat you see in n8n
Notes & use cases
The search operation of the node. Nothing is required here, the Filters collection does all the work.
Key parameters
- Query: the search term, and Channel ID to stay inside one channel.
- Published After and Published Before: the publication window.
- Order:
dateorrelevance. Video Type, Region Code and Safe Search narrow it further. - Return All: off, Limit stops the run early, which is what you want while testing a filter.
Rate a video
video.rateWhat you see in n8n
Notes & use cases
Records a like or a dislike from the account behind the credential, or clears a rating that was set before.
Key parameters
- Video ID: the video being rated.
- Rating:
likeanddislikerecord the reaction of the authenticated user,noneremoves any rating previously set.
Update a video
video.updateWhat you see in n8n
Notes & use cases
Rewrites the metadata of a published video, from its description to its privacy state, without touching the file.
Key parameters
- Video ID and Title: both required, so carry the existing title over when the title itself stays put.
- Description and Tags: the text block and the keyword tags, separated by commas.
- Publish At: schedules the switch to public, and it only works if Privacy Status is set to
private. - Notify Subscribers: whether subscribers get an alert.
Upload a video
video.uploadWhat you see in n8n
Notes & use cases
Pushes a file to the channel and gives back the ID of the new video, which the rest of the workflow reuses.
Key parameters
- Title: the title of the video.
- Input Binary Field: the name of the binary field holding the file. The node before has to deliver the file itself, a link in a text field will not do.
- Category Name or ID and Region Code: the category, from the list or an expression, and the region it applies to.
- Privacy Status: upload as
private, review, then publish later.
Video Category
1 operationGet many video categories
videoCategory.getAllWhat you see in n8n
Notes & use cases
Lists the categories YouTube offers, which differ from one country to another. This is where the category ID used at upload comes from.
Key parameters
- Region Code: required, and it drives the whole result since the catalog is regional.
- Return All: on for the complete list, off to stop at Limit.
Need help automating YouTube with n8n?
A person reads every message.
Questions people ask before building
01Is the YouTube n8n integration free?
02What credentials do you need to connect YouTube to n8n?
03What are the limits of the YouTube node in n8n?
04Can a workflow react to a new YouTube video in real time?
05n8n or Make for YouTube automation?
Get our weekly integration tips.
No spam. Unsubscribe anytime.



