Update Video Metadata
youtube_update_videoUpdate video metadata by merging new title, description, tags, category, privacy, and more. Fetches current data to ensure required fields are always present.
Instructions
Update the metadata of an existing video.
Fetches the current video (snippet + status) first, merges your provided fields, then calls videos.update. This ensures snippet.title and snippet.categoryId (both required by the API) are always present even if you only change one field.
Args
videoId (string, required): video to update
title (string, optional): new title
description (string, optional): new description
tags (string[], optional): full replacement tag list
categoryId (string, optional): numeric category ID (use youtube_list_video_categories)
privacyStatus ("public"|"unlisted"|"private", optional)
madeForKids (boolean, optional): sets status.selfDeclaredMadeForKids
embeddable (boolean, optional)
publicStatsViewable (boolean, optional)
defaultLanguage (string, optional): BCP-47 language code
Returns Short confirmation markdown + full updated video resource as structuredContent.
Examples
Update title:
{ "videoId": "abc123", "title": "New Title" }Make private:
{ "videoId": "abc123", "privacyStatus": "private" }
Errors
400: required fields invalid
403: not your video or scope missing
404: video not found
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | ID of the video to update. | |
| title | No | New video title. | |
| description | No | New video description. | |
| tags | No | Full replacement tag list (replaces all existing tags). | |
| categoryId | No | Numeric video category ID (see youtube_list_video_categories). | |
| privacyStatus | No | New privacy status. | |
| madeForKids | No | Mark video as made for kids (sets selfDeclaredMadeForKids). | |
| embeddable | No | Allow embedding on external sites. | |
| publicStatsViewable | No | Allow public to see extended stats. | |
| defaultLanguage | No | BCP-47 default language code (e.g. 'en'). |