Overview
The YouTube tool provides full access to the YouTube Data API v3. Supports five resources: (1) Channel — get, getAll, update, uploadBanner. (2) Playlist — create, delete, get, getAll, update. (3) Playlist Item — add, delete, get, getAll. (4) Video — delete, get, getAll (search), rate, update, upload. (5) Video Category — getAll. Binary operations include video upload (resumable upload with chunked transfer) and channel banner upload. Requires Google OAuth2 credentials with YouTube Data API scope.
Node Type
Action (Binary) — handles file/binary data operations
| Direction | Port(s) |
|---|
| Input | Input |
| Output | Output, Error |
Credentials
This tool requires YouTube OAuth2 credentials.
See the Credentials Guide for setup instructions.
Resources
| Resource | Value |
|---|
| Channel | channel |
| Playlist | playlist |
| Playlist Item | playlistItem |
| Video | video |
| Video Category | videoCategory |
Operations
Each resource has its own Operation list, and several resources reuse the same operation values (get, getAll, delete, update). Pick the resource first, then the operation.
| Resource | Operation | Value | Description |
|---|
| Channel | Get | get | Retrieve a channel |
| Channel | Get Many | getAll | Retrieve many channels |
| Channel | Update | update | Update a channel |
| Channel | Upload Banner | uploadBanner | Upload a channel banner image |
| Playlist | Create | create | Create a playlist |
| Playlist | Delete | delete | Delete a playlist |
| Playlist | Get | get | Get a playlist |
| Playlist | Get Many | getAll | Retrieve many playlists |
| Playlist | Update | update | Update a playlist |
| Playlist Item | Add | add | Add a video to a playlist |
| Playlist Item | Delete | delete | Remove an item from a playlist |
| Playlist Item | Get | get | Get a playlist item |
| Playlist Item | Get Many | getAll | Retrieve many playlist items |
| Video | Delete | delete | Delete a video |
| Video | Get | get | Get a video |
| Video | Get Many | getAll | Search for videos |
| Video | Rate | rate | Rate a video (like/dislike) |
| Video | Update | update | Update video metadata |
| Video | Upload | upload | Upload a video (resumable upload) |
| Video Category | Get Many | getAll | Retrieve video categories for a region |
Parameters
Channel: Get
| Parameter | Type | Required | Default | Description |
|---|
| Channel ID | string | Yes | — | The ID of the channel to retrieve. |
Fields (channelPart) | multiOptions | No | ["*"] | Channel resource properties to include in the response, such as snippet, statistics or brandingSettings. |
| | | | Options: *, brandingSettings, contentDetails, contentOwnerDetails, id, localizations, snippet, statistics, status, topicDetails |
Channel: Get Many
| Parameter | Type | Required | Default | Description |
|---|
Fields (channelPart) | multiOptions | No | ["*"] | Channel resource properties to include in the response, such as snippet, statistics or brandingSettings. |
| | | | Options: *, brandingSettings, contentDetails, contentOwnerDetails, id, localizations, snippet, statistics, status, topicDetails |
| Return All | boolean | No | false | Whether to return all results or only up to a given limit. |
| Limit | number | No | 25 | Max number of results to return. (shown when Return All is false) |
| Filters | collection | No | {} | |
| | | | Options: any |
| — Category ID | string | No | — | YouTube guide category ID to filter by. |
| — For Username | string | No | — | YouTube username to retrieve the channel for. |
| — ID | string | No | — | Comma-separated list of channel IDs. |
| — Managed By Me | boolean | No | false | Whether to only return channels managed by the content owner. |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — Language Code | string | No | — | Language code for localized resource metadata (e.g. “en”, “de”). |
| — On Behalf Of Content Owner | string | No | — | Content owner ID for CMS users acting on behalf of the content owner. |
Channel: Update
| Parameter | Type | Required | Default | Description |
|---|
| Channel ID | string | Yes | — | The ID of the channel to retrieve. |
| Update Fields | collection | No | {} | |
| | | | Options: private, creativeCommon |
| — Country | string | No | — | The country with which the channel is associated. |
| — Description | string | No | — | Channel description (max 1000 characters). |
| — Default Language | string | No | — | Default language for the channel. |
| — Default Tab | string | No | — | Content tab to display by default. |
| — Featured Channels Title | string | No | — | Title for the featured channels module (max 30 chars). |
| — Featured Channels URLs | string | No | — | Comma-separated list of featured channel IDs. |
| — Keywords | string | No | — | Space-separated keywords for the channel. |
| — Moderate Comments | boolean | No | false | Whether comments need approval before being visible. |
| — Profile Color | string | No | — | Prominent color for the channel. |
| — Show Related Channels | boolean | No | false | Whether to show related channels. |
| — Show Browse View | boolean | No | false | Whether to show browse view on the channel page. |
| — Tracking Analytics Account ID | string | No | — | Google Analytics account ID for tracking. |
| — Unsubscribed Trailer | string | No | — | Video ID for the featured video for unsubscribed viewers. |
| — On Behalf Of Content Owner | string | No | — | Content owner ID for CMS users. |
Channel: Upload Banner
| Parameter | Type | Required | Default | Description |
|---|
| Channel ID | string | Yes | — | The ID of the channel to retrieve. |
| Binary Property | string | Yes | data | Name of the binary property holding the file to upload; names are case-sensitive. |
Playlist: Create
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | The title of the playlist or video. |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — Description | string | No | — | The playlist description. |
| — Privacy Status | options | No | — | The playlist privacy status. |
| | | | Options: private, public, unlisted |
| — Tags | string | No | — | Comma-separated keyword tags. |
| — Default Language | string | No | — | Language code (e.g. “en”). |
| — On Behalf Of Content Owner | string | No | — | Content owner ID. |
| — On Behalf Of Content Owner Channel | string | No | — | Channel ID when acting on behalf of a content owner. |
Playlist: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Playlist ID | string | Yes | — | The ID of the playlist. |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
Playlist: Get
| Parameter | Type | Required | Default | Description |
|---|
| Playlist ID | string | Yes | — | The ID of the playlist. |
Fields (playlistPart) | multiOptions | No | ["*"] | Playlist resource properties to include in the response, such as snippet, contentDetails or player. |
| | | | Options: *, contentDetails, id, localizations, player, snippet, status |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
| — On Behalf Of Content Owner Channel | string | No | — | |
Playlist: Get Many
| Parameter | Type | Required | Default | Description |
|---|
Fields (playlistPart) | multiOptions | No | ["*"] | Playlist resource properties to include in the response, such as snippet, contentDetails or player. |
| | | | Options: *, contentDetails, id, localizations, player, snippet, status |
| Return All | boolean | No | false | |
| Limit | number | No | 25 | (shown when Return All is false) |
| Filters | collection | No | {} | |
| | | | Options: any |
| — Channel ID | string | No | — | Only return playlists from this channel. |
| — ID | string | No | — | Comma-separated playlist IDs. |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
| — On Behalf Of Content Owner Channel | string | No | — | |
Playlist: Update
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | The title of the playlist or video. |
| Playlist ID | string | Yes | — | The ID of the playlist. |
| Update Fields | collection | No | {} | |
| | | | Options: private, creativeCommon |
| — Description | string | No | — | |
| — Privacy Status | options | No | — | |
| | | | Options: private, public, unlisted |
| — Tags | string | No | — | Comma-separated keyword tags. |
| — Default Language | string | No | — | |
| — On Behalf Of Content Owner | string | No | — | |
Playlist Item: Add
| Parameter | Type | Required | Default | Description |
|---|
| Playlist ID | string | Yes | — | The ID of the playlist. |
| Video ID | string | Yes | — | |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — Position | number | No | — | Zero-based position in the playlist. |
| — Note | string | No | — | User-generated note (max 280 chars). |
| — Start At | string | No | — | Start time in seconds. |
| — End At | string | No | — | End time in seconds. |
| — On Behalf Of Content Owner | string | No | — | |
Playlist Item: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Playlist Item ID | string | Yes | — | |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
Playlist Item: Get
| Parameter | Type | Required | Default | Description |
|---|
| Playlist Item ID | string | Yes | — | |
Fields (playlistItemPart) | multiOptions | No | ["*"] | Playlist item resource properties to include in the response, such as snippet, contentDetails or status. |
| | | | Options: *, contentDetails, id, snippet, status |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
Playlist Item: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Playlist ID | string | Yes | — | The ID of the playlist. |
Fields (playlistItemPart) | multiOptions | No | ["*"] | Playlist item resource properties to include in the response, such as snippet, contentDetails or status. |
| | | | Options: *, contentDetails, id, snippet, status |
| Return All | boolean | No | false | |
| Limit | number | No | 25 | (shown when Return All is false) |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
Video: Delete
| Parameter | Type | Required | Default | Description |
|---|
| Video ID | string | Yes | — | The ID of the video. |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
Video: Get
| Parameter | Type | Required | Default | Description |
|---|
| Video ID | string | Yes | — | The ID of the video. |
Fields (videoPart) | multiOptions | No | ["*"] | Video resource properties to include in the response, such as snippet, statistics, contentDetails or liveStreamingDetails. |
| | | | Options: *, contentDetails, id, liveStreamingDetails, localizations, player, recordingDetails, snippet, statistics, status, topicDetails |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — On Behalf Of Content Owner | string | No | — | |
Video: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Return All | boolean | No | false | |
| Limit | number | No | 25 | (shown when Return All is false) |
| Filters | collection | No | {} | |
| | | | Options: any |
| — Channel ID | string | No | — | Only return videos from this channel. |
| — For Developer | boolean | No | false | Restrict to videos uploaded via your app. |
| — Published After | string | No | — | ISO 8601 datetime. Only return videos published after this time. |
| — Published Before | string | No | — | ISO 8601 datetime. Only return videos published before this time. |
| — Query | string | No | — | Search query term. |
| — Region Code | string | No | — | ISO 3166-1 alpha-2 country code. |
| — Related To Video ID | string | No | — | Retrieve videos related to this video. |
| — Video Category ID | string | No | — | |
| — Video Syndicated | boolean | No | false | Only videos playable outside youtube.com. |
| — Video Type | options | No | — | |
| | | | Options: any, episode, movie |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — Order | options | No | relevance | |
| | | | Options: date, relevance |
| — Safe Search | options | No | — | |
| | | | Options: moderate, none, strict |
Video: Rate
| Parameter | Type | Required | Default | Description |
|---|
| Video ID | string | Yes | — | The ID of the video. |
| Rating | options | No | like | |
| | | | Options: dislike, like, none (remove any previous rating) |
Video: Update
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | The title of the playlist or video. |
| Region Code | string | No | — | ISO 3166-1 alpha-2 country code (e.g. “US”, “GB”) for the region whose video categories apply. |
| Category ID | string | Yes | — | Numeric video category ID. Use videoCategory:getAll to list available categories for your region. |
| Video ID | string | Yes | — | The ID of the video. |
| Update Fields | collection | No | {} | |
| | | | Options: private, creativeCommon |
| — Description | string | No | — | |
| — Tags | string | No | — | Comma-separated tags. |
| — Default Language | string | No | — | |
| — Privacy Status | options | No | — | |
| | | | Options: private, public, unlisted |
| — Embeddable | boolean | No | false | |
| — Public Stats Viewable | boolean | No | true | |
| — Publish At | string | No | — | |
| — Recording Date | string | No | — | |
| — Self Declared Made For Kids | boolean | No | false | |
| — License | options | No | — | |
| | | | Options: creativeCommon, youtube |
Video: Upload
| Parameter | Type | Required | Default | Description |
|---|
| Title | string | Yes | — | The title of the playlist or video. |
| Region Code | string | No | — | ISO 3166-1 alpha-2 country code (e.g. “US”, “GB”) for the region whose video categories apply. |
| Category ID | string | Yes | — | Numeric video category ID. Use videoCategory:getAll to list available categories for your region. |
| Binary Property | string | Yes | data | Name of the binary property holding the file to upload; names are case-sensitive. |
| Options | collection | No | {} | |
| | | | Options: private, creativeCommon, date, moderate |
| — Description | string | No | — | The video description. |
| — Tags | string | No | — | Comma-separated keyword tags. |
| — Default Language | string | No | — | Language code (e.g. “en”). |
| — Privacy Status | options | No | — | |
| | | | Options: private, public, unlisted |
| — Embeddable | boolean | No | false | Whether the video can be embedded on other websites. |
| — Public Stats Viewable | boolean | No | true | Whether extended stats are publicly viewable. |
| — Publish At | string | No | — | Scheduled publish date (ISO 8601). Requires privacyStatus=private. |
| — Recording Date | string | No | — | Date and time when the video was recorded (ISO 8601). |
| — Self Declared Made For Kids | boolean | No | false | Whether the video is designated as child-directed. |
| — License | options | No | — | |
| | | | Options: creativeCommon, youtube |
| — Notify Subscribers | boolean | No | false | Whether to send notifications to channel subscribers. |
Video Category: Get Many
| Parameter | Type | Required | Default | Description |
|---|
| Region Code | string | Yes | — | ISO 3166-1 alpha-2 country code (e.g. “US”, “GB”) for the region whose video categories apply. |
| Return All | boolean | No | false | |
| Limit | number | No | 25 | (shown when Return All is false) |
All Operations
| Parameter | Type | Required | Default | Description |
|---|
| Authentication | options | No | (current default) | Authentication method to use. |
| | | | Options: the authentication choices available to your workspace — pick one from the dropdown. |
| Google Account | credential | No | — | Connect or select your Google account. (shown when Authentication is oAuth2) |
| Service Account Email | string | Yes | — | The email address of the Google service account. (shown when Authentication is serviceAccount) |
| Private Key | string | Yes | — | The private key from the service account JSON key file. (shown when Authentication is serviceAccount) |
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. Keep low for upload operations. |
Output Data
Every operation merges its result onto the input item’s JSON — the fields the item already carried survive, and a result field with the same name overwrites the item’s value. Binary data on the input item is forwarded on every operation, including the two upload operations, which read the file but do not consume it.
| Operation | Output |
|---|
| Channel Get, Channel Get Many, Playlist Get, Playlist Get Many, Playlist Item Get, Playlist Item Get Many, Video Get, Video Get Many, Video Category Get Many | One output item per record returned. Return All keeps paging until YouTube runs out of results. |
| Channel Update, Playlist Create, Playlist Update, Playlist Item Add, Video Update | One output item carrying the returned resource. |
| Video Upload | One output item carrying the created video resource plus uploadId, the new video’s ID. |
| Channel Upload Banner | One output item carrying the API response plus bannerUploaded: true. |
| Playlist Delete, Playlist Item Delete, Video Delete | One output item carrying success: true and the ID that was removed — deletedPlaylistId, deletedPlaylistItemId or deletedVideoId. |
| Video Rate | One output item carrying success: true, videoId and rating. |
An empty result never drops the item. A listing that matched nothing emits the input item with results: [] added; a Get that found nothing emits it with success: false and a message such as “Video not found”. Check for the field you expect rather than assuming an item means a hit.
Example Configuration
Upload a video file produced by an upstream node:
{
"type": "google_youtube",
"parameters": {
"resource": "video",
"operation": "upload",
"title": "{{ $json.title }}",
"regionCode": "US",
"categoryId": "22",
"binaryPropertyName": "data",
"options": {
"description": "{{ $json.description }}",
"tags": "tutorial,howto",
"privacyStatus": "private",
"notifySubscribers": false,
"selfDeclaredMadeForKids": false
}
}
}
Search a channel’s most recent videos:
{
"type": "google_youtube",
"parameters": {
"resource": "video",
"operation": "getAll",
"returnAll": false,
"limit": 25,
"filters": {
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"q": "release notes",
"videoType": "any"
},
"options": {
"order": "date",
"safeSearch": "moderate"
}
}
}
Create a public playlist:
{
"type": "google_youtube",
"parameters": {
"resource": "playlist",
"operation": "create",
"title": "Best of {{ $json.year }}",
"options": {
"description": "Our most watched uploads",
"privacyStatus": "public",
"tags": "highlights,annual"
}
}
}
Add a video to a playlist at the top:
{
"type": "google_youtube",
"parameters": {
"resource": "playlistItem",
"operation": "add",
"playlistId": "PLxxxxxxxxxxxxxxxx",
"videoId": "{{ $json.uploadId }}",
"options": {
"position": 0,
"note": "Added automatically"
}
}
}
Publish a video that was uploaded as private:
{
"type": "google_youtube",
"parameters": {
"resource": "video",
"operation": "update",
"videoId": "{{ $json.uploadId }}",
"title": "{{ $json.title }}",
"categoryId": "22",
"updateFields": {
"description": "Updated description",
"tags": "tutorial,howto",
"privacyStatus": "public",
"license": "youtube"
}
}
}
Read a video’s statistics only:
{
"type": "google_youtube",
"parameters": {
"resource": "video",
"operation": "get",
"videoId": "{{ $json.videoId }}",
"videoPart": ["snippet", "statistics"]
}
}
List the video categories available in a region:
{
"type": "google_youtube",
"parameters": {
"resource": "videoCategory",
"operation": "getAll",
"regionCode": "US",
"returnAll": true
}
}
Replace a channel banner from a binary field:
{
"type": "google_youtube",
"parameters": {
"resource": "channel",
"operation": "uploadBanner",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"binaryPropertyName": "data"
}
}
Like a video:
{
"type": "google_youtube",
"parameters": {
"resource": "video",
"operation": "rate",
"videoId": "{{ $json.videoId }}",
"rating": "like"
}
}
Error Handling
| Mode | Behavior |
|---|
| stop | Halts workflow on first error |
| continue | Skips failed items, passes successful ones through |
| errorPort | Routes failed items to Error output port |
Tips
This tool manages YouTube channels, playlists, playlist items, videos, and video categories. It is ideal for tasks like uploading videos, creating playlists, updating video metadata, or retrieving channel information, rather than for general web searches or social media interactions. It produces updated YouTube content, new playlists, uploaded videos, or retrieved information about channels, videos, and categories.
- Uploads are resumable and chunked, so a large file is sent in pieces rather than one request. Keep Max Concurrency low when a batch of items each carries a video — several simultaneous uploads is the quickest way to exhaust the API quota.
- Category ID is numeric. Run Video Category: Get Many for the region first if you do not already know the ID.
- Scheduling requires privacy. Publish At only takes effect on a video whose Privacy Status is
private.
- Playlist Item ID is not the Video ID. Delete and Get on a playlist item want the item’s own ID, which comes back from Playlist Item: Add or Get Many.
- Listings default to your own account. Channel and Playlist Get Many return the authenticated account’s resources until you set a filter such as Channel ID or ID, at which point they return those instead.
- Fields trims the response. Asking for
snippet alone instead of * makes big listings much smaller and cheaper to page through.