YouTube
Connect to YouTube to access channel details, analytics, and upload or manage videos via OAuth 2.0
Connect to YouTube to access channel details, analytics, and upload or manage videos via OAuth 2.0
Supports authentication: OAuth 2.0
Tool list
Section titled “Tool list”youtube_analytics_group_create
Section titled “youtube_analytics_group_create”Create a YouTube Analytics group to organize videos, playlists, channels, or assets for collective analytics reporting.
| Name | Type | Required | Description |
|---|---|---|---|
item_type | string | Yes | Type of items the group will contain |
on_behalf_of_content_owner | string | No | Content owner ID. For content partners only. |
title | string | Yes | Title of the analytics group |
youtube_analytics_group_item_insert
Section titled “youtube_analytics_group_item_insert”Add a video, playlist, or channel to a YouTube Analytics group.
| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | ID of the Analytics group to add the item to |
on_behalf_of_content_owner | string | No | Content owner ID. For content partners only. |
resource_id | string | Yes | ID of the resource (video ID, channel ID, or playlist ID) |
resource_kind | string | Yes | Type of the resource |
youtube_analytics_group_items_delete
Section titled “youtube_analytics_group_items_delete”Remove an item (video, channel, or playlist) from a YouTube Analytics group.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | ID of the group item to remove |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
youtube_analytics_group_items_list
Section titled “youtube_analytics_group_items_list”Retrieve a list of items (videos, playlists, channels, or assets) that belong to a YouTube Analytics group.
| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | ID of the group whose items to retrieve |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
youtube_analytics_groups_delete
Section titled “youtube_analytics_groups_delete”Delete a YouTube Analytics group. This removes the group but does not delete the videos, channels, or playlists within it.
| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | ID of the Analytics group to delete |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
youtube_analytics_groups_list
Section titled “youtube_analytics_groups_list”Retrieve a list of YouTube Analytics groups for a channel or content owner. Specify either id or mine to filter results.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | No | Comma-separated list of group IDs to retrieve |
mine | boolean | No | If true, return only groups owned by the authenticated user. Required if id is not set. |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
page_token | string | No | Token for retrieving the next page of results |
youtube_analytics_groups_update
Section titled “youtube_analytics_groups_update”Update the title of an existing YouTube Analytics group.
| Name | Type | Required | Description |
|---|---|---|---|
group_id | string | Yes | ID of the Analytics group to update |
on_behalf_of_content_owner | string | No | Content owner ID. For content partners only. |
title | string | Yes | New title for the Analytics group |
youtube_analytics_query
Section titled “youtube_analytics_query”Query YouTube Analytics data to retrieve metrics like views, watch time, subscribers, revenue, etc. for channels or content owners.
| Name | Type | Required | Description |
|---|---|---|---|
currency | string | No | Currency for monetary metrics (ISO 4217 code, e.g., USD) |
dimensions | string | No | Comma-separated list of dimensions to group results by (e.g., day,country,video) |
end_date | string | Yes | End date for the analytics report in YYYY-MM-DD format |
filters | string | No | Filter expression to narrow results (e.g., country==US, video==VIDEO_ID) |
ids | string | Yes | Channel or content owner ID. Format: channel==CHANNEL_ID or contentOwner==CONTENT_OWNER_ID |
include_historical_channel_data | boolean | No | Include historical channel data recorded before the channel was linked to a content owner |
max_results | integer | No | Maximum number of rows to return in the response (maximum value: 200) |
metrics | string | Yes | Comma-separated list of metrics to retrieve (e.g., views,estimatedMinutesWatched,likes,subscribersGained) |
sort | string | No | Comma-separated list of columns to sort by. Prefix with - for descending order (e.g., -views) |
start_date | string | Yes | Start date for the analytics report in YYYY-MM-DD format |
start_index | integer | No | 1-based index of the first row to return (for pagination) |
youtube_captions_list
Section titled “youtube_captions_list”Retrieve a list of caption tracks for a YouTube video. The part parameter is fixed to ‘snippet’. Requires youtube.force-ssl scope.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | No | Comma-separated list of caption track IDs to filter results |
video_id | string | Yes | ID of the video to list captions for |
youtube_channels_list
Section titled “youtube_channels_list”Retrieve information about one or more YouTube channels including subscriber count, video count, and channel metadata. You must provide exactly one filter: id, mine, for_handle, for_username, or managed_by_me. Requires a valid YouTube OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
for_handle | string | No | YouTube channel handle to look up (e.g., @MrBeast). Use instead of id, mine, or for_username. |
for_username | string | No | YouTube username of the channel to look up (legacy). Use instead of id, mine, or for_handle. |
id | string | No | Comma-separated list of YouTube channel IDs. Use instead of mine, for_handle, or for_username. |
managed_by_me | boolean | No | Return channels managed by the authenticated user (content partners only). Use instead of id, mine, for_handle, or for_username. |
max_results | integer | No | Maximum number of results to return (0-50, default: 5) |
mine | boolean | No | Return the authenticated user’s channel. Use instead of id, for_handle, or for_username. |
page_token | string | No | Token for pagination |
part | string | Yes | Comma-separated list of channel resource parts to include in the response |
youtube_comment_threads_insert
Section titled “youtube_comment_threads_insert”Post a new top-level comment on a YouTube video. Requires youtube.force-ssl scope.
| Name | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Text of the comment |
video_id | string | Yes | ID of the video to comment on |
youtube_comment_threads_list
Section titled “youtube_comment_threads_list”Retrieve top-level comment threads for a YouTube video or channel. You must provide exactly one filter: video_id, all_threads_related_to_channel_id, or id. Each thread includes the top-level comment and optionally its replies. Requires a valid YouTube OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
all_threads_related_to_channel_id | string | No | Return all comment threads associated with a specific channel. Use instead of video_id or id. |
id | string | No | Comma-separated list of comment thread IDs to retrieve. Use instead of video_id or all_threads_related_to_channel_id. |
max_results | integer | No | Maximum number of comment threads to return (1-100, default: 20) |
order | string | No | Sort order for comment threads |
page_token | string | No | Token for pagination |
part | string | Yes | Comma-separated list of comment thread resource parts to include |
search_terms | string | No | Limit results to comments containing these search terms |
video_id | string | No | YouTube video ID to fetch comment threads for. Use instead of all_threads_related_to_channel_id or id. |
youtube_comments_list
Section titled “youtube_comments_list”Retrieve a list of replies to a specific YouTube comment thread. You must provide exactly one filter: parent_id or id. The part parameter is fixed to ‘snippet’. Requires youtube.readonly scope.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | No | Comma-separated list of comment IDs to retrieve. Use instead of parent_id. |
max_results | integer | No | Maximum number of replies to return (1-100, default: 20). Cannot be used with id filter. |
page_token | string | No | Token for pagination to retrieve the next page of replies. Cannot be used with id filter. |
parent_id | string | No | ID of the comment thread (top-level comment) to list replies for. Use instead of id. |
text_format | string | No | Format of the comment text in the response |
youtube_playlist_delete
Section titled “youtube_playlist_delete”Permanently delete a YouTube playlist. This action cannot be undone. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
playlist_id | string | Yes | ID of the playlist to delete |
youtube_playlist_insert
Section titled “youtube_playlist_insert”Create a new YouTube playlist for the authenticated user. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
default_language | string | No | Default language of the playlist |
description | string | No | Playlist description |
privacy_status | string | No | Privacy setting |
tags | array<string> | No | Tags for the playlist |
title | string | Yes | Playlist title |
youtube_playlist_items_delete
Section titled “youtube_playlist_items_delete”Remove a video from a YouTube playlist by its playlist item ID. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
playlist_item_id | string | Yes | ID of the playlist item to remove (not the video ID) |
youtube_playlist_items_insert
Section titled “youtube_playlist_items_insert”Add a video to a YouTube playlist at an optional position. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
note | string | No | Optional note for this playlist item |
playlist_id | string | Yes | Playlist to add the video to |
position | integer | No | Zero-based position in the playlist. Omit to add at end. |
video_id | string | Yes | YouTube video ID to add |
youtube_playlist_items_list
Section titled “youtube_playlist_items_list”Retrieve a list of videos in a YouTube playlist. Returns playlist items with video details, positions, and metadata. Requires a valid YouTube OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
max_results | integer | No | Maximum number of playlist items to return (0-50, default: 5) |
page_token | string | No | Token for pagination to retrieve the next page |
part | string | Yes | Comma-separated list of playlist item resource parts to include |
playlist_id | string | Yes | YouTube playlist ID to retrieve items from |
video_id | string | No | Filter results to items containing a specific video |
youtube_playlist_update
Section titled “youtube_playlist_update”Update an existing YouTube playlist’s title, description, privacy status, or default language. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
default_language | string | No | Language of the playlist |
description | string | No | New playlist description |
playlist_id | string | Yes | ID of the playlist to update |
privacy_status | string | No | New privacy setting |
title | string | No | New playlist title |
youtube_playlists_list
Section titled “youtube_playlists_list”Retrieve a list of YouTube playlists for a channel or the authenticated user. You must provide exactly one filter: channel_id, id, or mine. Requires a valid YouTube OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | No | Return playlists for a specific channel. Use instead of id or mine. |
id | string | No | Comma-separated list of playlist IDs to retrieve. Use instead of channel_id or mine. |
max_results | integer | No | Maximum number of playlists to return (0-50, default: 5) |
mine | boolean | No | Return playlists owned by the authenticated user. Use instead of channel_id or id. |
page_token | string | No | Token for pagination |
part | string | Yes | Comma-separated list of playlist resource parts to include |
youtube_reporting_create_job
Section titled “youtube_reporting_create_job”Create a YouTube reporting job to schedule daily generation of a specific report type. Once created, YouTube will generate the report daily.
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Human-readable name for the reporting job |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the job is being created |
report_type_id | string | Yes | ID of the report type to generate (e.g., channel_basic_a2, channel_demographics_a1) |
youtube_reporting_jobs_delete
Section titled “youtube_reporting_jobs_delete”Delete a scheduled YouTube Reporting API job. Stopping a job means new reports will no longer be generated.
| Name | Type | Required | Description |
|---|---|---|---|
job_id | string | Yes | ID of the reporting job to delete |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
youtube_reporting_list_jobs
Section titled “youtube_reporting_list_jobs”List all YouTube Reporting API jobs scheduled for a channel or content owner.
| Name | Type | Required | Description |
|---|---|---|---|
include_system_managed | boolean | No | If true, include system-managed reporting jobs in the response |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
page_size | integer | No | Maximum number of jobs to return per page |
page_token | string | No | Token for retrieving the next page of results |
youtube_reporting_list_report_types
Section titled “youtube_reporting_list_report_types”List all YouTube Reporting API report types available for a channel or content owner (e.g., channel_basic_a2, channel_demographics_a1).
| Name | Type | Required | Description |
|---|---|---|---|
include_system_managed | boolean | No | If true, include system-managed report types in the response |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
page_size | integer | No | Maximum number of report types to return per page |
page_token | string | No | Token for retrieving the next page of results |
youtube_reporting_list_reports
Section titled “youtube_reporting_list_reports”List reports that have been generated for a YouTube reporting job. Each report is a downloadable CSV file.
| Name | Type | Required | Description |
|---|---|---|---|
created_after | string | No | Only return reports created after this timestamp (RFC3339 format, e.g., 2024-01-01T00:00:00Z) |
job_id | string | Yes | ID of the reporting job whose reports to list |
on_behalf_of_content_owner | string | No | Content owner ID on whose behalf the request is being made |
page_size | integer | No | Maximum number of reports to return per page |
page_token | string | No | Token for retrieving the next page of results |
start_time_at_or_after | string | No | Only return reports whose data start time is at or after this timestamp (RFC3339 format) |
start_time_before | string | No | Only return reports whose data start time is before this timestamp (RFC3339 format) |
youtube_search
Section titled “youtube_search”Search for videos, channels, and playlists on YouTube. Returns a list of resources matching the search query. The part parameter is fixed to ‘snippet’. Requires a valid YouTube OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | No | Restrict search results to a specific channel |
max_results | integer | No | Maximum number of results to return (0-50, default: 10) |
order | string | No | Sort order for search results |
page_token | string | No | Token for pagination to retrieve the next page of results |
published_after | string | No | Filter results to resources published after this date (RFC 3339 format) |
published_before | string | No | Filter results to resources published before this date (RFC 3339 format) |
q | string | No | Search query keywords |
safe_search | string | No | Safe search filter level |
type | string | No | Restrict results to a specific resource type |
video_duration | string | No | Filter videos by duration (only applies when type is ‘video’) |
youtube_subscriptions_delete
Section titled “youtube_subscriptions_delete”Unsubscribe the authenticated user from a YouTube channel using the subscription ID. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
subscription_id | string | Yes | ID of the subscription to delete |
youtube_subscriptions_insert
Section titled “youtube_subscriptions_insert”Subscribe the authenticated user to a YouTube channel. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | Yes | ID of the YouTube channel to subscribe to |
youtube_subscriptions_list
Section titled “youtube_subscriptions_list”Retrieve a list of YouTube channel subscriptions for the authenticated user or a specific channel. You must provide exactly one filter: channel_id, id, mine, my_recent_subscribers, or my_subscribers. Requires a valid YouTube OAuth2 connection with youtube.readonly scope.
| Name | Type | Required | Description |
|---|---|---|---|
channel_id | string | No | Return subscriptions for a specific channel. Use instead of id, mine, my_recent_subscribers, or my_subscribers. |
for_channel_id | string | No | Filter subscriptions to specific channels (comma-separated channel IDs) |
id | string | No | Comma-separated list of subscription IDs to retrieve. Use instead of channel_id, mine, my_recent_subscribers, or my_subscribers. |
max_results | integer | No | Maximum number of subscriptions to return (0-50, default: 5) |
mine | boolean | No | Return subscriptions for the authenticated user. Use instead of channel_id, id, my_recent_subscribers, or my_subscribers. |
my_recent_subscribers | boolean | No | Return the authenticated user’s recent subscribers. Use instead of channel_id, id, mine, or my_subscribers. |
my_subscribers | boolean | No | Return the authenticated user’s subscribers. Use instead of channel_id, id, mine, or my_recent_subscribers. |
order | string | No | Sort order for subscriptions |
page_token | string | No | Token for pagination |
part | string | Yes | Comma-separated list of subscription resource parts to include |
youtube_video_categories_list
Section titled “youtube_video_categories_list”Retrieve a list of YouTube video categories available in a given region or by ID. You must provide exactly one filter: id or region_code. The part parameter is fixed to ‘snippet’. Useful for setting the category when updating a video. Requires youtube.readonly scope.
| Name | Type | Required | Description |
|---|---|---|---|
hl | string | No | Language for the category names in the response (BCP-47) |
id | string | No | Comma-separated list of category IDs to retrieve. Use instead of region_code. |
region_code | string | No | ISO 3166-1 alpha-2 country code to retrieve categories available in that region. Use instead of id. |
youtube_videos_delete
Section titled “youtube_videos_delete”Permanently delete a YouTube video. This action cannot be undone. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
video_id | string | Yes | ID of the video to delete |
youtube_videos_get_rating
Section titled “youtube_videos_get_rating”Retrieve the authenticated user’s rating (like, dislike, or none) for one or more YouTube videos. The part parameter is fixed to ‘id’. Requires youtube.readonly scope.
| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Comma-separated list of YouTube video IDs to get ratings for |
youtube_videos_list
Section titled “youtube_videos_list”Retrieve detailed information about one or more YouTube videos including statistics, snippet, content details, and status. You must provide exactly one filter: id, chart, or my_rating. Requires a valid YouTube OAuth2 connection.
| Name | Type | Required | Description |
|---|---|---|---|
chart | string | No | Retrieve a chart of the most popular videos. Use instead of id or my_rating. |
id | string | No | Comma-separated list of YouTube video IDs. Use instead of chart or my_rating. |
max_results | integer | No | Maximum number of results to return when using chart filter (1-50, default: 5) |
my_rating | string | No | Filter videos by the authenticated user’s rating. Use instead of id or chart. |
page_token | string | No | Token for pagination |
part | string | Yes | Comma-separated list of video resource parts to include in the response |
region_code | string | No | ISO 3166-1 alpha-2 country code to filter trending videos by region |
video_category_id | string | No | Filter most popular videos by category ID |
youtube_videos_rate
Section titled “youtube_videos_rate”Like, dislike, or remove a rating from a YouTube video on behalf of the authenticated user. Requires youtube scope with youtube.force-ssl.
| Name | Type | Required | Description |
|---|---|---|---|
rating | string | Yes | Rating to apply to the video |
video_id | string | Yes | YouTube video ID to rate |
youtube_videos_update
Section titled “youtube_videos_update”Update metadata for an existing YouTube video. When updating snippet, both title and category_id are required together. Requires youtube scope.
| Name | Type | Required | Description |
|---|---|---|---|
category_id | string | No | YouTube video category ID. Required together with title when updating snippet. |
default_language | string | No | Language of the video |
description | string | No | New video description |
embeddable | boolean | No | Whether the video can be embedded |
license | string | No | Video license |
privacy_status | string | No | New privacy setting |
public_stats_viewable | boolean | No | Whether stats are publicly visible |
tags | array<string> | No | Video tags |
title | string | No | New video title. Required together with category_id when updating snippet. |
video_id | string | Yes | ID of the video to update |