youtube
youtube.delete_comment
Delete YouTube comment
Effects: delete, write
Permanently delete a YouTube comment by id (or 'youtube:comment:<id>'). Cannot be undone. Costs 50 quota units.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
comment_id | string | yes | Bare commentId OR 'youtube:comment:<id>'. |
youtube.delete_video
Delete YouTube video
Effects: delete, write
Permanently delete a YouTube video by id (or 'youtube:video:<id>'). Cannot be undone. Costs 50 quota units. Caller must own the channel.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
video_id | string | yes | Bare videoId OR 'youtube:video:<id>'. |
youtube.list_comments
List YouTube comments
Effects: read
List comment threads on a YouTube video. Pass video_id (e.g. 'dQw4w9WgXcQ') or channel_ref ('youtube:video:<id>'). Returns top-level comments with inline replies.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
max_results | integer | no | Page size, 1-100. Default 25. |
page_token | string | no | Pagination cursor from a previous call's next_page_token. |
video_id | string | yes | YouTube videoId — bare 11-char form OR full 'youtube:video:<id>'. |
youtube.list_videos
List YouTube videos
Effects: read
List videos on the connected YouTube channel. Returns id, title, published_at, view_count. Paginate via page_token.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
max_results | integer | no | Page size, 1-50. Default 25. |
page_token | string | no | Pagination cursor returned in a previous call's next_page_token. Omit for the first page. |
youtube.moderate_comment
Moderate YouTube comment
Effects: write
Apply a moderation status to a YouTube comment. Allowed status values: heldForReview, published, rejected, spam. Costs 50 quota units.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
comment_id | string | yes | Bare commentId OR 'youtube:comment:<id>'. |
status | string | yes | One of: heldForReview, published, rejected, spam. |
youtube.post_comment_reply
Post YouTube comment / reply
Effects: write
Post a comment on a YouTube video, or reply to an existing comment. Pass video_id for a top-level comment, OR parent_comment_id to reply. AI-disclosure suffix appended automatically when configured.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
parent_comment_id | string | no | Bare commentId or 'youtube:comment:<id>' — for a reply. |
text | string | yes | Comment body. 1-10000 chars. AI-disclosure suffix may be auto-appended. |
video_id | string | no | Bare videoId or 'youtube:video:<id>' — for a top-level comment. |
youtube.update_video
Update YouTube video
Effects: write
Update title, description, privacy, or tags on a YouTube video. Costs 1600 quota units. Only fields provided are changed.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
description | string | no | New description (max 5000 chars). Omit to keep current. |
privacy | string | no | 'private', 'unlisted', or 'public'. Omit to keep current. (one of private, unlisted, public) |
tags | array | no | New tags list. Omit to keep current. |
title | string | no | New title (max 100 chars). Omit to keep current. |
video_id | string | yes | Bare videoId OR 'youtube:video:<id>'. |
youtube.upload_video
Upload video to YouTube
Effects: write
Upload a workspace-owned video file (file_id) to the connected YouTube channel. Returns video_id + thread_id. Costs 1600 quota units. Default privacy is 'private' — pass privacy='public' to publish.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
category_id | string | no | YouTube category ID (default '22' = People & Blogs). See https://developers.google.com/youtube/v3/docs/videoCategories/list. (default 22) |
channel_account_id | integer | no | The connected YouTube channel_account.id. OMIT to auto-resolve the workspace's YouTube account. |
description | string | no | Video description (max 5000 chars). OMIT to upload without a description. |
file_id | integer | yes | Workspace files.id of the video to upload. Must be a video/* MIME type and status='ready'. Get IDs from the [ATTACHMENTS] block, files.search, or search.files. |
made_for_kids | boolean | no | COPPA flag. OMIT for the standard (non-kids) default. |
privacy | string | no | Privacy status. 'private' (default), 'unlisted', or 'public'. (one of private, unlisted, public; default private) |
tags | array | no | Optional list of tag strings (max ~500 chars total). |
title | string | yes | Video title (max 100 chars). |
youtube.video_query
Ask Gemini about a YouTube video
Effects: read
Ask Gemini about a YouTube video. Pass a video URL and any prompt — verbatim transcript with timestamps, summary, targeted Q&A about content or visuals, translation, etc. Works on any public/unlisted video.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
prompt | string | yes | What to ask Gemini about the video. Examples: 'Provide a verbatim transcript with [HH:MM:SS] timestamps.' / 'What is the main claim made in the first 30 seconds?' / 'Describe what's shown on screen at 0:30.' / 'Translate the spoken Spanish to English.' |
url | string | yes | YouTube video URL. Supported forms: youtube.com/watch?v=…, youtu.be/…, youtube.com/shorts/…, m.youtube.com/watch?v=…. Pass-through to Gemini verbatim. |