# YouTube

YouTube is a video-sharing platform with user-generated content, live streaming, and monetization opportunities, widely used for marketing, education, and entertainment

- **Category:** video & audio
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 51
- **Triggers:** 4
- **Slug:** `YOUTUBE`
- **Version:** 20260323_00

## Frequently Asked Questions

### How do I set up custom Google OAuth credentials for YouTube?

For a step-by-step guide on creating and configuring your own Google OAuth credentials with Composio, see [How to create OAuth2 credentials for Google Apps](https://composio.dev/auth/googleapps).

### Why am I getting quota errors on YouTube?

The default OAuth app is shared and has strict quota limits. For production, create your own OAuth app to get a dedicated quota.

---

## Tools

### Add Video to Playlist

**Slug:** `YOUTUBE_ADD_VIDEO_TO_PLAYLIST`

Tool to add a video to a playlist by inserting a playlist item. Use when organizing videos into playlists or building curated collections.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `videoId` | string | Yes | The YouTube video ID to add to the playlist (typically an 11-character string). |
| `position` | integer | No | The position (zero-based index) where the video should be inserted in the playlist. Position 0 is the first position, position 1 is the second, etc. The position value must not exceed the current number of items in the playlist (if a playlist has 3 items, valid positions are 0-3). Specifying a position beyond this range will result in a badRequest error. If not specified, the video is added to the end of the playlist. |
| `playlistId` | string | Yes | The ID of the playlist to add the video to. You can retrieve playlist IDs using the YOUTUBE_LIST_USER_PLAYLISTS action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Insert Channel Section

**Slug:** `YOUTUBE_CREATE_CHANNEL_SECTION`

Tool to create a new channel section for the authenticated user's YouTube channel. Use when organizing channel content into sections like featured playlists, recent uploads, or featured channels.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `snippet` | object | Yes | The snippet object contains details about the channel section including its type, title, and position. |
| `contentDetails` | object | No | Content details for the channel section. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Insert Comment Reply

**Slug:** `YOUTUBE_CREATE_COMMENT_REPLY`

Tool to create a reply to an existing YouTube comment. Use when responding to user comments or engaging in conversations on videos.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `parentId` | string | Yes | The ID of the parent comment being replied to. This is the comment that the new reply will be attached to. |
| `textOriginal` | string | Yes | The text content of the reply comment. This cannot be empty and will be posted as a reply to the parent comment. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Playlist

**Slug:** `YOUTUBE_CREATE_PLAYLIST`

Tool to create a new YouTube playlist on the authenticated user's channel. Use when organizing videos into collections or building curated playlists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `title` | string | Yes | The title of the new playlist. This is a required field. |
| `description` | string | No | The playlist's description. Provides additional context about the playlist content. |
| `privacyStatus` | string ("public" | "private" | "unlisted") | No | The playlist's privacy status. 'public' makes it visible to everyone, 'private' restricts access to the owner and specified users, 'unlisted' makes it accessible via link but not publicly listed. If not specified, defaults to YouTube's default setting. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Channel Section

**Slug:** `YOUTUBE_DELETE_CHANNEL_SECTION`

Tool to delete a YouTube channel section. Use when you need to remove a channel section from a channel. The channel section must exist and the authenticated user must have permission to delete it.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The YouTube channelSection ID for the resource that is being deleted. This is a required parameter. |
| `onBehalfOfContentOwner` | string | No | This parameter is intended exclusively for YouTube content partners. Indicates that the request's authorization credentials identify a YouTube CMS user acting on behalf of the content owner specified in the parameter value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Comment

**Slug:** `YOUTUBE_DELETE_COMMENT`

Tool to delete a YouTube comment owned by the authenticated user or channel. Use when you need to remove a comment from a video. The comment must exist and be owned by the authenticated channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The comment ID to delete. This is the unique identifier for the comment resource. The comment must be owned by the authenticated user or channel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Playlist

**Slug:** `YOUTUBE_DELETE_PLAYLIST`

Tool to delete a YouTube playlist owned by the authenticated user/channel. Use when you need to permanently remove a playlist from YouTube. Requires explicit confirmation via `confirmDelete: true` to prevent accidental deletions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Specifies the YouTube playlist ID for the playlist being deleted. The playlist must be owned by the authenticated user/channel. |
| `confirmDelete` | boolean | Yes | Explicit boolean confirmation required to execute the deletion. Must be set to `true` to proceed with deletion. This is a safety measure to prevent accidental playlist deletions. |
| `onBehalfOfContentOwner` | string | No | Indicates that the request's authorization credentials identify a YouTube CMS user acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Playlist Item

**Slug:** `YOUTUBE_DELETE_PLAYLIST_ITEM`

Tool to delete a playlist item (remove a video from a playlist). Use when removing specific videos from playlists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The YouTube playlist item ID for the playlist item that is being deleted. This is the unique identifier for a specific video within a playlist (not the video ID itself). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Video

**Slug:** `YOUTUBE_DELETE_VIDEO`

Tool to delete a YouTube video owned by the authenticated user/channel. Use when you need to permanently remove a video from YouTube. Requires explicit confirmation via `confirmDelete: true` to prevent accidental deletions. The video must exist and be owned by the authenticated channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `videoId` | string | Yes | The YouTube video ID (typically an 11-character string) to be deleted. The video must be owned by the authenticated user/channel. |
| `confirmDelete` | boolean | Yes | Explicit boolean confirmation required to execute the deletion. Must be set to `true` to proceed with deletion. This is a safety measure to prevent accidental video deletions. |
| `onBehalfOfContentOwner` | string | No | Optional parameter used by YouTube content partners to indicate the request is being made on behalf of a content owner whose content is being managed. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Channel Activities

**Slug:** `YOUTUBE_GET_CHANNEL_ACTIVITIES`

Gets recent activities from a YouTube channel including video uploads, playlist additions, likes, and other channel events.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `part` | string | No | Comma-separated list of activity resource properties to include (e.g., 'snippet', 'contentDetails', 'id'). |
| `channelId` | string | Yes | The YouTube channel ID to retrieve activities for. Channel IDs typically start with 'UC'. |
| `pageToken` | string | No | Pagination token from a previous response to get the next page of results. |
| `maxResults` | integer | No | Maximum number of activities to return. |
| `publishedAfter` | string | No | Return activities published after this date-time (RFC 3339 format: YYYY-MM-DDTHH:MM:SSZ). |
| `publishedBefore` | string | No | Return activities published before this date-time (RFC 3339 format: YYYY-MM-DDTHH:MM:SSZ). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get channel ID by handle

**Slug:** `YOUTUBE_GET_CHANNEL_ID_BY_HANDLE`

Retrieves the YouTube Channel ID for a specific YouTube channel handle.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_handle` | string | Yes | The YouTube channel handle (e.g., '@Google' or 'Google'). Accepts handles with or without the '@' prefix. Also accepts full YouTube channel URLs (e.g., 'https://www.youtube.com/@Google'), from which the handle will be automatically extracted. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Channel Statistics

**Slug:** `YOUTUBE_GET_CHANNEL_STATISTICS`

Gets detailed statistics for YouTube channels including subscriber counts, view counts, and video counts. Channels can be identified using their ID, handle (e.g., @Google), or username.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Comma-separated list of YouTube channel IDs (e.g., 'UCddiUEpeqJcYeBxX1IVBKvQ'). Channel IDs typically start with 'UC'. The YouTube Data API v3 supports up to 50 channel IDs per request; if more than 50 IDs are provided, they will be automatically split into multiple batches and the results will be merged. At least one of 'id', 'forHandle', 'forUsername', or 'mine' must be provided. Do NOT pass 'mine' as the value for this parameter - use the 'mine' boolean parameter instead to fetch the authenticated user's channel. |
| `mine` | boolean | No | Set to true to retrieve the channel owned by the authenticated user. This is a boolean filter parameter. At least one of 'id', 'forHandle', 'forUsername', or 'mine' must be provided. Cannot be combined with other filter parameters. |
| `part` | string | No | Comma-separated list of channel resource properties to include. Use 'statistics' for subscriber count. |
| `forHandle` | string | No | YouTube channel handle (e.g., '@Google' or 'GoogleDevelopers'). The '@' symbol is optional. Use this parameter when you know the channel's handle but not its ID. At least one of 'id', 'forHandle', 'forUsername', or 'mine' must be provided. |
| `forUsername` | string | No | YouTube username to identify the channel. Use this parameter when you know the channel's legacy username but not its ID. At least one of 'id', 'forHandle', 'forUsername', or 'mine' must be provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Video Details Batch

**Slug:** `YOUTUBE_GET_VIDEO_DETAILS_BATCH`

Retrieves multiple YouTube video resource parts in a single batch call. Use when you need cohort-level metrics for many videos to reduce quota usage and latency.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | Language for localized metadata (snippet.localized); IETF language tag, e.g., 'en'. |
| `id` | array | Yes | List of YouTube video IDs to retrieve. At least one video ID is required. Accepts a list or comma-separated string. Also accepts 'videoIds' as an alias. The YouTube API limits each request to 50 video IDs; if more are provided, they will be automatically split into multiple requests and the results merged. |
| `parts` | array | No | Video resource properties to include. At least one part is required. Accepts a list of parts or a comma-separated string. Also accepts 'part' (singular) as an alias. Valid parts: snippet, contentDetails, statistics, status, player, topicDetails, recordingDetails, fileDetails, processingDetails, suggestions, liveStreamingDetails, localizations, paidProductPlacementDetails, id. Defaults to ['snippet', 'statistics'] if not specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Video Rating

**Slug:** `YOUTUBE_GET_VIDEO_RATING`

Retrieves the ratings that the authorized user gave to a list of specified videos. Use when you need to check if a user has liked or disliked specific videos.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | A comma-separated list of the YouTube video ID(s) for the resource(s) for which rating data is being retrieved. Video IDs are typically 11-character strings (e.g., 'dQw4w9WgXcQ'). |
| `onBehalfOfContentOwner` | string | No | For YouTube content partners only. This parameter allows authentication on behalf of a specified content owner. Use the content owner's channel ID. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List captions

**Slug:** `YOUTUBE_LIST_CAPTION_TRACK`

Retrieves a list of caption tracks for a YouTube video. Returns an empty items list if no captions are available. Raises ExecutionFailed if the video ID is invalid or not found.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `part` | string | No | Specifies a comma-separated list of one or more caption resource parts that the API response will include. Valid parts are 'id' and 'snippet'. |
| `video_id` | string | Yes | The YouTube video ID for which the API should return caption tracks. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Channel Sections

**Slug:** `YOUTUBE_LIST_CHANNEL_SECTIONS`

Tool to retrieve channel sections from YouTube. Use when you need to get the layout sections of a channel's homepage. Channel sections organize content into categories like playlists, uploads, or featured channels.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | Deprecated parameter for localized metadata. Instructs the API to return localized resource metadata in a specific language. |
| `id` | string | No | Comma-separated list of channel section IDs to retrieve. Must use exactly one filter parameter: channelId, id, or mine. |
| `mine` | boolean | No | When set to true, retrieves channel sections for the authenticated user's channel. Must use exactly one filter parameter: channelId, id, or mine. |
| `part` | string | Yes | Comma-separated list of channelSection resource properties to include in the response. Valid values: 'contentDetails', 'id', 'snippet'. At least one value must be specified. |
| `channelId` | string | No | Retrieves channel sections for a specific YouTube channel ID (e.g., 'UCddiUEpeqJcYeBxX1IVBKvQ'). Must use exactly one filter parameter: channelId, id, or mine. |
| `onBehalfOfContentOwner` | string | No | For YouTube content partners only. Indicates that the request's authorization credentials identify a YouTube CMS user acting on behalf of the content owner specified in the parameter value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List channel videos

**Slug:** `YOUTUBE_LIST_CHANNEL_VIDEOS`

Lists videos from a specified YouTube channel. This action primarily uses the playlistItems.list endpoint with the channel's uploads playlist, which is the recommended approach by YouTube. The uploads playlist ID is obtained by fetching the channel resource via the Channels API and extracting the playlist ID from contentDetails.relatedPlaylists.uploads field. If the uploads playlist returns a 404 error (which can happen due to a known YouTube API bug where the returned playlist ID doesn't actually exist), the action automatically falls back to the search.list endpoint to retrieve channel videos. Note that the search fallback has higher quota cost (100 units vs 1 unit) and is limited to 500 results. If a channel exists but has no uploads playlist (e.g., brand accounts, channels with all videos deleted, or channels that haven't uploaded any public content), an empty result set is returned instead of an error.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `mine` | boolean | No | Set to true to list videos from the authenticated user's channel. When true, channelId is automatically set to 'me'. Either channelId or mine must be provided. |
| `part` | string | No | This parameter specifies which parts of the playlist item resource to return. The snippet includes basic video details like ID, title, description, and thumbnails. |
| `channelId` | string | No | The YouTube channel identifier (exactly 24 characters for UC IDs). Accepts: (1) channel ID starting with 'UC' followed by 22 characters (e.g., 'UC_x5XG1OV2P6uZZ5FSM9Ttw'), (2) channel handle starting with '@' (e.g., '@Google'), (3) 'me' for the authenticated user's channel, or (4) YouTube channel URLs with /@handle or /channel/UC... format. Do NOT pass OAuth tokens, API keys, or other credentials here - only channel identifiers. Legacy /user/username URLs are supported but legacy /c/ custom URLs are not. Either channelId or mine must be provided. |
| `pageToken` | string | No | Token for pagination; use `nextPageToken` from a previous response for the next page, or `prevPageToken` for the previous page. Page tokens are opaque, ephemeral values that must come directly from a previous LIST_CHANNEL_VIDEOS response and cannot be constructed or reused across different queries. |
| `maxResults` | integer | No | The maximum number of videos to return per page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Comments

**Slug:** `YOUTUBE_LIST_COMMENTS`

List individual comments from YouTube videos. Returns comment details including author, text, timestamps, and engagement metrics. Use 'id' parameter to retrieve specific comments or 'parentId' to retrieve all replies to a top-level comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Comma-separated list of comment IDs to retrieve. Mutually exclusive with 'parentId'. Use when you have specific comment IDs to fetch. Typically obtained from commentThreads.list or comments.list responses. |
| `part` | string | No | Comma-separated list of comment resource properties that the API response will include. Valid parts: 'id' (comment ID only), 'snippet' (detailed comment data including author, text, like count, timestamps). Use 'snippet' for full comment details. |
| `parentId` | string | No | ID of the parent comment for which replies should be retrieved. Mutually exclusive with 'id'. Use to fetch all replies to a specific top-level comment. Parent comment IDs are obtained from commentThreads.list responses. |
| `pageToken` | string | No | Token for pagination; use nextPageToken from a previous response to retrieve the next page of results. |
| `maxResults` | integer | No | Maximum number of comments to return per page. Must be between 1 and 100. Note: This parameter is incompatible with the 'id' filter parameter. |
| `textFormat` | string ("html" | "plainText") | No | Format for text fields in the response. 'html' preserves HTML formatting including links (default). 'plainText' returns plain text without formatting. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Comment Threads (Deprecated)

**Slug:** `YOUTUBE_LIST_COMMENT_THREADS`

DEPRECATED: Use YOUTUBE_LIST_COMMENT_THREADS2 instead. List comment threads from YouTube videos or channels for qualitative analysis and reporting. Returns top-level comments with optional replies (up to 5 per thread). Use the 'videoId' parameter to retrieve comments on a specific video (most common use case).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Comma-separated list of comment thread IDs to retrieve. Mutually exclusive with 'videoId' and 'allThreadsRelatedToChannelId'. Use when you have specific comment thread IDs to fetch. |
| `part` | string | No | Comma-separated list of commentThread resource parts. 'snippet' includes top-level comment metadata (authorDisplayName, textDisplay, likeCount, publishedAt, etc.). 'replies' includes up to 5 reply comments if present. Valid parts: snippet, replies, id. |
| `order` | string ("time" | "relevance") | No | Sorting order for comment threads. 'time' returns newest first (default). 'relevance' returns most relevant first (based on popularity and engagement). |
| `videoId` | string | No | Returns comment threads associated with the specified video ID. Mutually exclusive with 'id' and 'allThreadsRelatedToChannelId'. This is the primary use case for retrieving comments on a specific video. |
| `pageToken` | string | No | Token for pagination; use nextPageToken from a previous response to retrieve the next page of results. |
| `maxResults` | integer | No | Maximum number of comment threads to return per page. Must be between 1 and 100. |
| `textFormat` | string ("html" | "plainText") | No | Format for text fields in the response. 'html' preserves HTML formatting (default). 'plainText' returns plain text without formatting. |
| `searchTerms` | string | No | Filter comment threads to only those matching the search query. Only works with 'allThreadsRelatedToChannelId' parameter. |
| `allThreadsRelatedToChannelId` | string | No | Returns all comment threads associated with the specified channel ID (comments on the channel page itself, not video comments). Mutually exclusive with 'videoId' and 'id'. Requires OAuth authorization. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Comment Threads

**Slug:** `YOUTUBE_LIST_COMMENT_THREADS2`

Tool to retrieve comment threads from YouTube videos or channels matching API request parameters. Use when you need to fetch comments with filtering by video, channel, or specific thread IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Comma-separated list of comment thread IDs to retrieve. Use this to fetch specific comment threads by their IDs. Mutually exclusive with 'allThreadsRelatedToChannelId', 'channelId', and 'videoId'. |
| `part` | string | Yes | Comma-separated list of commentThread resource properties to include in the API response. Valid values: 'id' (thread ID only), 'snippet' (top-level comment metadata including authorDisplayName, textDisplay, likeCount, publishedAt), 'replies' (up to 5 reply comments if present). Most common: 'snippet,replies' for full comment data. |
| `order` | string ("relevance" | "time") | No | Sorting order for comment threads. 'time' returns newest first (default), 'relevance' returns most relevant first based on popularity and engagement. |
| `videoId` | string | No | Returns comment threads associated with the specified video ID. This is the most common use case for retrieving comments on a specific video. Mutually exclusive with 'allThreadsRelatedToChannelId', 'channelId', and 'id'. |
| `channelId` | string | No | Returns comment threads for the specified channel ID. This retrieves comments about the channel itself, not comments on the channel's videos. Mutually exclusive with 'allThreadsRelatedToChannelId', 'videoId', and 'id'. |
| `pageToken` | string | No | Token for pagination. Use the 'nextPageToken' value from a previous response to retrieve the next page of results. |
| `maxResults` | integer | No | Maximum number of comment threads to return per page. Must be between 1 and 100. Default is 20 if not specified. |
| `textFormat` | string ("html" | "plainText") | No | Format for text fields in the response. 'html' preserves HTML formatting (default), 'plainText' returns plain text without formatting. |
| `searchTerms` | string | No | Filter comment threads to only those matching the search query. Only works with 'allThreadsRelatedToChannelId' parameter and cannot be used with other filter parameters. |
| `moderationStatus` | string ("heldForReview" | "likelySpam" | "published") | No | Filter comment threads by moderation status. Only valid for comments on channel's own videos when authorized as the channel owner. 'heldForReview' shows comments held for review, 'likelySpam' shows comments marked as likely spam, 'published' shows published comments. |
| `allThreadsRelatedToChannelId` | string | No | Returns all comment threads associated with the specified channel ID. This includes comments on the channel page itself, not video comments. Mutually exclusive with 'channelId', 'videoId', and 'id'. Requires OAuth authorization. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List I18n Languages

**Slug:** `YOUTUBE_LIST_I18N_LANGUAGES`

Returns a list of application languages that the YouTube website supports. Use this when you need to retrieve all available language options for YouTube's interface or to localize content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | The hl parameter specifies the language that should be used for text values in the API response. The default value is en_US. Use BCP-47 language codes (e.g., 'en_US', 'es', 'fr', 'de', 'ja'). This affects how the language names are displayed in the response. |
| `part` | string | No | The part parameter specifies the i18nLanguage resource properties that the API response will include. Set this parameter to 'snippet' to retrieve the i18nLanguage resource's snippet property, which contains the language code (hl) and human-readable name. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List I18n Regions

**Slug:** `YOUTUBE_LIST_I18N_REGIONS`

Tool to retrieve a list of content regions that the YouTube website supports. Returns region codes (ISO 3166-1 alpha-2) and localized region names. Use when you need to identify available geographic regions for content filtering or display.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | Language code that specifies the language for text values in the API response (e.g., 'en_US', 'es', 'fr'). Affects the human-readable names returned in the response. If not specified, defaults to 'en_US'. |
| `part` | string | No | The part parameter specifies the i18nRegion resource properties that the API response will include. Must be set to 'snippet' to retrieve region code and name information. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Live Chat Messages

**Slug:** `YOUTUBE_LIST_LIVE_CHAT_MESSAGES`

Tool to list live chat messages for a specific chat. Use for monitoring live chat during broadcasts or retrieving chat history. Returns messages with author details, timestamps, and message types (text, Super Chat, moderation events).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | Language code for localized currency display in Super Chat events. Uses BCP 47 format (e.g., 'en', 'es', 'ja'). |
| `part` | string | No | Comma-separated list of liveChatMessage resource parts that the API response will include. Valid parts: 'id' (message ID), 'snippet' (message content, type, timestamp), 'authorDetails' (author channel info, badges, profile image). |
| `pageToken` | string | No | Token that identifies a specific page in the result set. Use nextPageToken from previous response for pagination. Required for retrieving subsequent messages in an active chat. |
| `liveChatId` | string | Yes | The ID of the chat whose messages will be returned. Must be obtained from a liveBroadcast resource's snippet.liveChatId property. |
| `maxResults` | integer | No | Maximum number of messages to return. Valid values: 200-2000. Default: 500. Use lower values for more frequent polling. |
| `profileImageSize` | integer | No | Size of user profile pictures in pixels. Valid values: 16-720. Default: 88. Higher values provide better image quality. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Most Popular Videos

**Slug:** `YOUTUBE_LIST_MOST_POPULAR_VIDEOS`

DEPRECATED: Use YOUTUBE_UPDATE_VIDEO instead. Tool to list the current most-popular (charts/trending) YouTube videos for a region and/or category via videos.list(chart=mostPopular). Use when you need to retrieve YouTube's official trending or most popular videos, not keyword-search approximations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `part` | string | No | Comma-separated list of video resource parts that the API response will include. Valid parts: 'id', 'snippet' (title, description, thumbnails), 'contentDetails' (duration, definition, dimension), 'statistics' (view count, like count, comment count), 'status' (upload status, privacy status), 'player' (embed HTML), 'topicDetails' (associated topics), 'recordingDetails' (recording location and date), 'liveStreamingDetails' (live broadcast details), 'localizations' (localized metadata), 'fileDetails' (file metadata, streams, bitrate), 'processingDetails' (processing status and progress), 'suggestions' (processing errors, warnings, tag suggestions), and 'paidProductPlacementDetails' (paid placement information). |
| `chart` | string | No | Identifies the chart to retrieve. The only supported value is 'mostPopular', which returns the most popular videos on YouTube. |
| `pageToken` | string | No | Token for pagination; use 'nextPageToken' from a previous response to retrieve the next page of results. |
| `maxResults` | integer | No | Maximum number of items to return per page. Must be between 1 and 50. |
| `regionCode` | string | No | ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB', 'JP') for regional chart selection. Returns trending videos specific to that region. If not specified, uses the default region based on the API key or user location. |
| `videoCategoryId` | string | No | YouTube video category ID to restrict the chart to a specific category. Not all categories support mostPopular charts - the API returns 404 for unsupported categories. Known working IDs include: 1 (Film & Animation), 10 (Music), 20 (Gaming), 24 (Entertainment), 25 (News & Politics), 28 (Science & Technology). Omit this parameter to retrieve videos from all categories. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Playlist Images

**Slug:** `YOUTUBE_LIST_PLAYLIST_IMAGES`

Tool to retrieve playlist images associated with a specific playlist. Use when fetching custom thumbnail images for playlists.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | No | Specifies comma-separated playlist image IDs to retrieve. Must specify either this or 'parent' parameter. |
| `part` | string | No | Comma-separated list of one or more playlistImage resource properties that the API response will include. Valid value: 'snippet'. |
| `parent` | string | No | Specifies the unique ID of the playlist for which you want to retrieve images. Must specify either this or 'id' parameter. |
| `pageToken` | string | No | Token for pagination; use nextPageToken from a previous response to retrieve the next page of results. |
| `maxResults` | integer | No | Maximum number of images to return. Must be between 0 and 50. |
| `onBehalfOfContentOwner` | string | No | For YouTube content partners only. Identifies a CMS user acting on behalf of a specified content owner. |
| `onBehalfOfContentOwnerChannel` | string | No | For YouTube content partners only. Specifies the YouTube channel ID for the request. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Playlist Items

**Slug:** `YOUTUBE_LIST_PLAYLIST_ITEMS`

Tool to list videos in a playlist, with pagination support. Use when walking through a channel's uploads playlist to enumerate all videos.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `part` | string | No | Comma-separated list of playlistItem resource parts to include in the response. Valid values: 'snippet', 'contentDetails', 'id', 'status'. |
| `fields` | string | No | Selector specifying which fields to include in a partial response. |
| `videoId` | string | No | Filter results to only those containing the specified video ID. |
| `pageToken` | string | No | The token for the page of results to retrieve. Obtained from a previous call's nextPageToken. |
| `maxResults` | integer | No | The maximum number of items to return per page. Must be between 0 and 50. |
| `playlistId` | string | Yes | The unique playlist ID. Common formats: 'PL...' for user-created playlists, 'UU...' for channel uploads (derived from channel ID by replacing 'UC' with 'UU'). Do NOT pass channel IDs (starting with 'UC') directly. |
| `onBehalfOfContentOwner` | string | No | Note: For YouTube content partners. Authorize using a properly scoped account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Super Chat Events

**Slug:** `YOUTUBE_LIST_SUPER_CHAT_EVENTS`

Lists Super Chat events for a channel, showing supporter purchases during live streams. Returns Super Chat and Super Sticker events from the past 30 days. Use to track and acknowledge supporter contributions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | Language code for formatting the displayString according to language conventions. Use a valid BCP 47 language tag (e.g., 'en', 'es', 'ja'). Defaults to 'en' if not specified. The displayString shows the purchase amount and currency formatted for the specified locale. |
| `part` | string | No | Comma-separated list of superChatEvent resource parts to include in the response. Valid values: 'id' (returns the unique event ID), 'snippet' (returns metadata including supporter details, comment text, amount, currency, and display string). Use 'id,snippet' to get both. |
| `pageToken` | string | No | Token for pagination. Use the nextPageToken value from a previous response to retrieve the next page of results. Omit this parameter for the first request. |
| `maxResults` | integer | No | Maximum number of Super Chat events to return per page. Must be between 1 and 50 (inclusive). Default is 5. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List user playlists

**Slug:** `YOUTUBE_LIST_USER_PLAYLISTS`

Retrieves playlists owned by the authenticated user, implicitly using mine=True.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `part` | string | No | Specifies a comma-separated list of one or more playlist resource properties to include in the response. Common values are 'snippet', 'id', and 'contentDetails'. |
| `pageToken` | string | No | Token for pagination to retrieve a specific page of results. |
| `maxResults` | integer | No | Maximum number of playlists to return. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List user subscriptions

**Slug:** `YOUTUBE_LIST_USER_SUBSCRIPTIONS`

Retrieves the authenticated user's YouTube channel subscriptions, allowing specification of response parts and pagination.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `part` | string | No | Specifies the comma-separated subscription resource parts to include. Valid parts are `id`, `snippet`, `contentDetails`, and `subscriberSnippet`. |
| `pageToken` | string | No | Token for a specific page of results, obtained from a previous response. Omit for the first page. |
| `maxResults` | integer | No | Maximum number of subscription items to return per page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Video Abuse Report Reasons

**Slug:** `YOUTUBE_LIST_VIDEO_ABUSE_REPORT_REASONS`

Tool to retrieve a list of abuse report reasons that can be used to report abusive videos on YouTube. Use when you need to display available reporting categories or before calling videos.reportAbuse. Returns localized reason labels and optional secondary categorizations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | Language code for text displayed in the API response (BCP-47 format, e.g., 'en_US', 'fr_FR', 'ja_JP'). Specifies the language for label text in the snippet. Default value: en_US |
| `part` | string | No | Comma-separated list of videoAbuseReportReason resource parts to include in the response. Valid values: 'id' (the unique ID of the reason) and 'snippet' (localized label text and secondary reasons). Use 'snippet' to get human-readable reason descriptions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Video Categories

**Slug:** `YOUTUBE_LIST_VIDEO_CATEGORIES`

Tool to list YouTube video categories that can be associated with videos. Use when you need to retrieve available video categories for a specific region or get details about specific category IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `hl` | string | No | Language code for text values in the API response (e.g., 'en_US', 'es_ES'). Defaults to 'en_US' if not specified. |
| `id` | string | No | Comma-separated list of video category IDs for the resources being retrieved. Returns only the specified categories. |
| `part` | string | No | The part parameter specifies the videoCategory resource properties that the API response will include. Set the parameter value to 'snippet'. |
| `regionCode` | string | No | ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB', 'JP') to return categories available in that region. Either 'id' or 'regionCode' must be specified. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Download YouTube caption track

**Slug:** `YOUTUBE_LOAD_CAPTIONS`

Downloads a specific YouTube caption track, which must be owned by the authenticated user, and returns its content as text. Note: This action requires you to own the video (YouTube Data API v3 restriction). Non-owned videos will return 403 Forbidden errors, including many auto-generated caption tracks.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique caption track ID assigned by YouTube. This is NOT the video ID. To obtain this ID, first call YOUTUBE_LIST_CAPTION_TRACK with a video_id to get the list of available caption tracks and their IDs. |
| `tfmt` | string | No | Desired format for the caption track. Supported formats: 'srt' (SubRip), 'sbv' (SubViewer), 'vtt' (WebVTT). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Mark Comment as Spam

**Slug:** `YOUTUBE_MARK_COMMENT_AS_SPAM`

Tool to mark one or more YouTube comments as spam. Use when moderating comments to flag spam content. Note: This endpoint is deprecated but still functional according to YouTube API documentation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Comma-separated list of comment IDs to mark as spam. Each ID should be a valid YouTube comment ID. Multiple IDs can be marked as spam in a single request by separating them with commas. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Multipart upload video

**Slug:** `YOUTUBE_MULTIPART_UPLOAD_VIDEO`

Uploads a video to YouTube using multipart upload in a single request. Use when you want to upload both metadata and video file together. This action uploads the video file and metadata in one request, unlike resumable upload which requires two steps.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | List of keyword tags (strings) for the video, used to improve discoverability. |
| `title` | string | Yes | The title for the video. |
| `videoFile` | object | Yes | Video file to upload to YouTube. |
| `categoryId` | string | Yes | YouTube category ID (e.g., '22' for People & Blogs). Can be provided as a string or integer. |
| `description` | string | Yes | Detailed description of the video content. |
| `privacyStatus` | string | Yes | Privacy status: 'public', 'private' (uploader/specified users only), or 'unlisted' (link accessible, not publicly listed). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Post Comment on Video

**Slug:** `YOUTUBE_POST_COMMENT`

Tool to post a new top-level comment on a YouTube video. Use when creating comments to engage with video content or respond to user requests.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `videoId` | string | Yes | The ID of the video to comment on. This is required to create a top-level comment on a video. |
| `channelId` | string | Yes | The ID of the channel that uploaded the video. This is required for creating comments. |
| `textOriginal` | string | Yes | The text content of the comment. This is the actual comment message that will be posted on the video. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Rate Video

**Slug:** `YOUTUBE_RATE_VIDEO`

Tool to add a like or dislike rating to a YouTube video, or remove an existing rating. Use when you need to rate videos on behalf of the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The YouTube video ID to rate or remove rating from (typically an 11-character string like 'dQw4w9WgXcQ'). |
| `rating` | string ("like" | "dislike" | "none") | Yes | The rating to apply to the video. Use 'like' to approve, 'dislike' to disapprove, or 'none' to remove any existing rating. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Report Video for Abuse

**Slug:** `YOUTUBE_REPORT_VIDEO_ABUSE`

Tool to report a YouTube video for containing abusive content. Use when you need to flag videos that violate YouTube's community guidelines or contain harmful content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `videoId` | string | Yes | Identifies the video that is being reported for containing abusive content. Set the value to that video's YouTube video ID (typically an 11-character string). |
| `comments` | string | No | Provides any additional information that the reporter wants to add. |
| `language` | string | No | Identifies a language spoken by the reporter (e.g., 'en' for English, 'es' for Spanish). |
| `reasonId` | string ("N" | "V" | "C" | "M" | "E" | "H") | Yes | Specifies the reason that the video is being reported for containing abusive content. Valid values: N (Sex or nudity), V (Violent, hateful, or dangerous), C (Child abuse), M (Medical misinformation), E (Violent extremism), H (Harassment or bullying). |
| `secondaryReasonId` | string | No | Specifies the secondary reason. A secondary reason provides a more specific description of the objectionable content than the primary reason. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Search YouTube

**Slug:** `YOUTUBE_SEARCH_YOU_TUBE`

Searches YouTube for videos, channels, or playlists using a query term, returning the raw API response.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `q` | string | Yes | Search query term. Supports: - Basic text: 'machine learning' - Exact phrases: '"exact phrase"' - Exclusions: 'python -snake' - Multiple terms: 'AI OR ML' - Channel search: '@channelhandle' or channel name |
| `part` | string | No | The part parameter specifies properties to include in the response. For the search.list endpoint, only 'snippet' is a valid value. The 'id' object is always returned automatically with every search result (no quota cost). Note: 'statistics', 'contentDetails', etc. are only available on the videos.list endpoint, not search.list. |
| `type` | string | No | Restricts search to 'video', 'channel', or 'playlist'; comma-separate for multiple types (e.g., 'video,channel'). |
| `pageToken` | string | No | Pagination token from a previous response's 'nextPageToken' or 'prevPageToken', used to retrieve a specific page of results. |
| `maxResults` | integer | No | Maximum number of items to return per page. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Set Comment Moderation Status

**Slug:** `YOUTUBE_SET_COMMENT_MODERATION_STATUS`

Tool to set the moderation status of one or more YouTube comments. Use when moderating comments to hold for review, publish, or reject them. Optionally ban the comment author when rejecting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Comma-separated list of IDs that identify the comments for which you are updating the moderation status. These are comment IDs, not comment thread IDs. |
| `banAuthor` | boolean | No | If set to true, the author of the comment gets added to the ban list. This parameter is only valid when moderationStatus is set to 'rejected'. Default is false. |
| `moderationStatus` | string ("heldForReview" | "published" | "rejected") | Yes | Identifies the new moderation status of the specified comments. 'heldForReview' holds the comment for review, 'published' makes the comment visible, 'rejected' removes the comment from public view. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Subscribe to channel

**Slug:** `YOUTUBE_SUBSCRIBE_CHANNEL`

Subscribes the authenticated user to a specified YouTube channel, identified by its unique `channelId` which must be valid and existing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channelId` | string | Yes | Unique identifier (ID) of the YouTube channel to subscribe to (typically starts with 'UC'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Unsubscribe from channel

**Slug:** `YOUTUBE_UNSUBSCRIBE_CHANNEL`

Tool to unsubscribe the authenticated user from a YouTube channel by deleting a subscription. Use when you need to remove an existing subscription. The subscription ID can be obtained from the `YOUTUBE_LIST_USER_SUBSCRIPTIONS` tool.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subscriptionId` | string | Yes | The unique subscription ID to delete. This ID can be obtained from the `YOUTUBE_LIST_USER_SUBSCRIPTIONS` tool. The subscription must belong to the authenticated user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update caption track

**Slug:** `YOUTUBE_UPDATE_CAPTION`

Updates a YouTube caption track's metadata such as name, language, or draft status. Use this to modify existing caption track properties without uploading new caption content. Note: Only properties specified in the snippet will be updated; unspecified properties retain their current values.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique caption track ID assigned by YouTube. This is NOT the video ID. To obtain this ID, call YOUTUBE_LIST_CAPTION_TRACK with a video_id to get the list of available caption tracks and their IDs. |
| `snippet` | object | Yes | Snippet object containing the caption properties to update. Only specified fields will be updated. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update channel

**Slug:** `YOUTUBE_UPDATE_CHANNEL`

Updates a channel's metadata including branding settings and localizations. Only brandingSettings, invideoPromotion, and localizations properties can be updated. Requires the channel to be owned by the authenticated user.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The channel ID being updated. This is the unique YouTube channel identifier that typically starts with 'UC'. |
| `part` | string | No | Comma-separated list of channel resource properties to update. Must include at least one of: brandingSettings, invideoPromotion, or localizations. The 'part' parameter identifies the properties that the write operation will set. |
| `localizations` | object | No | Translated metadata for the channel, keyed by BCP-47 language code (e.g., 'es' for Spanish, 'fr' for French). Each value contains localized title and description. |
| `brandingSettings` | object | No | Container for channel branding settings. |
| `invideoPromotion` | object | No | The invideoPromotion object encapsulates information about a promotional campaign associated with the channel. It includes details about promoted items and their timing. |
| `onBehalfOfContentOwner` | string | No | For authorized requests only. Allows content partners to act on behalf of the specified channel owner. The content owner must already be linked to the channel. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Channel Section

**Slug:** `YOUTUBE_UPDATE_CHANNEL_SECTION`

Tool to update an existing YouTube channel section by ID. Use when modifying section properties like title, position, or featured content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID that YouTube uses to uniquely identify the channel section to update. This is a required field. |
| `snippet` | object | No | Snippet details for the channel section update. |
| `contentDetails` | object | No | Content details for the channel section. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Comment

**Slug:** `YOUTUBE_UPDATE_COMMENT`

Tool to modify the text of an existing YouTube comment. Use when updating or correcting a previously posted comment.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique ID of the comment to update. This identifies which specific comment should be modified. |
| `textOriginal` | string | Yes | The new text content for the comment. This will replace the existing comment text. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Playlist

**Slug:** `YOUTUBE_UPDATE_PLAYLIST`

Tool to modify an existing YouTube playlist's metadata (title, description, privacy status). Use when updating playlist information for the authenticated user's channel.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The playlist's unique YouTube ID. This identifies which playlist to update. |
| `part` | string | No | The part parameter specifies a comma-separated list of playlist resource properties that the API response will include. Valid values: contentDetails, id, localizations, player, snippet, status. If not provided, defaults will be determined based on which fields are being updated. |
| `status` | object | No | Information about the playlist's privacy and podcast status. |
| `snippet` | object | Yes | The snippet object contains basic details about the playlist, including title and description. At minimum, title is required. |
| `onBehalfOfContentOwner` | string | No | This parameter is intended exclusively for YouTube content partners. The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Playlist Item

**Slug:** `YOUTUBE_UPDATE_PLAYLIST_ITEM`

Tool to modify a playlist item's properties such as position or note. Use when reordering videos in a playlist or updating item metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the playlist item to update. This is the unique identifier for the playlist item resource. |
| `part` | string | No | Comma-separated list of playlistItem resource properties to include in the API response. Valid values: id, snippet, contentDetails, status. Note: Properties included in the part parameter will have their existing values overwritten. |
| `status` | object | No | Status object for updating playlist item privacy. |
| `snippet` | object | Yes | The snippet object contains basic details about the playlist item that can be modified. |
| `contentDetails` | object | No | Content details containing additional modifiable properties. |
| `onBehalfOfContentOwner` | string | No | For YouTube content partners only. Indicates the content owner on whose behalf the request is being made. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update thumbnail

**Slug:** `YOUTUBE_UPDATE_THUMBNAIL`

Sets the custom thumbnail for a YouTube video using an image from a URL. Requirements: - The authenticated user must own the video or have permission to edit it - The YouTube channel must be verified (phone verification required) to upload custom thumbnails - Image must be JPG, PNG, or GIF; under 2MB; recommended 1280x720 resolution (16:9 aspect ratio)

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `videoId` | string | Yes | Identifier of the YouTube video for which to update the thumbnail. |
| `thumbnailUrl` | string | Yes | Publicly accessible URL of the new thumbnail image. Must be JPG, GIF, or PNG; under 2MB. Recommended: 16:9 aspect ratio, 1280x720 resolution (minimum 640px width). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update video

**Slug:** `YOUTUBE_UPDATE_VIDEO`

Updates metadata for a YouTube video identified by videoId, which must exist; an empty list for tags removes all existing tags.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | No | New tags as a list of strings. Must be an actual list/array like ['tag1', 'tag2'], NOT a JSON string. Replaces all existing tags. An empty list removes all tags. No change if omitted or `None`. YouTube restrictions: (1) Angle brackets < > are forbidden and will be removed automatically. (2) Total characters across all tags must not exceed 500 (spaces in tags add 2 extra characters due to internal quoting, and commas between tags count toward the limit). |
| `title` | string | No | New video title as a string. Must be a text string, not a number. Maximum 100 characters. No change if omitted or `None`. |
| `video_id` | string | Yes | The video's unique YouTube ID (string). Typically an 11-character alphanumeric string found in the video URL (e.g., 'dQw4w9WgXcQ'). |
| `categoryId` | string | No | New YouTube category ID as a string. No change if omitted or `None`. Numeric values will be converted to strings. |
| `description` | string | No | New video description as a string. Maximum 5000 bytes (not characters). Multibyte UTF-8 characters like emojis (4 bytes each) and accented letters (2 bytes each) count more than ASCII characters. No change if omitted or `None`. |
| `privacy_status` | string ("public" | "private" | "unlisted") | No | New privacy status. No change if omitted or `None`. |
| `composio_execution_message` | string | No | Internal field for execution messages about input processing. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload video

**Slug:** `YOUTUBE_UPLOAD_VIDEO`

Uploads a video from a local file path to a YouTube channel; the video file must be in a YouTube-supported format.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tags` | array | Yes | List of keyword tags (strings) for the video, used to improve discoverability. |
| `title` | string | Yes | The title for the video. |
| `categoryId` | string | Yes | YouTube category ID (e.g., '22' for People & Blogs). Can be provided as a string or integer. See YouTube Data API docs for a full list of category IDs. |
| `description` | string | Yes | Detailed description of the video content, optionally including keywords and context. |
| `privacyStatus` | string ("public" | "private" | "unlisted") | Yes | Privacy status. |
| `videoFilePath` | object | Yes | Video file to upload to YouTube. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |


## Triggers

### New YouTube Activity

**Slug:** `YOUTUBE_NEW_ACTIVITY_TRIGGER`

**Type:** poll

Triggers when a new activity is detected on a YouTube channel.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | The ID of the YouTube channel |
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `activity` | object | Yes | Activity details |
| `event_type` | string | No | Type of YouTube activity event |

### New Item in YouTube Playlist

**Slug:** `YOUTUBE_NEW_PLAYLIST_ITEM_TRIGGER`

**Type:** poll

Triggers when a new item is added to a YouTube playlist.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |
| `playlist_id` | string | Yes | The ID of the YouTube playlist |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event_type` | string | No | Type of YouTube playlist item event |
| `item` | object | Yes | Playlist item details |

### New Playlist in YouTube Channel

**Slug:** `YOUTUBE_NEW_PLAYLIST_TRIGGER`

**Type:** poll

Triggers when a new playlist is added to a YouTube channel.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel_id` | string | Yes | The ID of the YouTube channel |
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event_type` | string | No | Type of YouTube playlist event |
| `playlist` | object | Yes | Playlist details |

### New YouTube Channel Subscription

**Slug:** `YOUTUBE_NEW_SUBSCRIPTION_TRIGGER`

**Type:** poll

Triggers when a new channel is subscribed.

#### Configuration

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `interval` | number | No | Periodic Interval to Check for Updates & Send a Trigger in Minutes |

#### Payload

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `event_type` | string | No | Type of YouTube subscription event |
| `subscription` | object | Yes | Subscription details |
