Skip to main content
Glama

Upload a video

upload_video

Upload a video from a local file or public URL to YouTube with resumable, checkpointed progress; optionally schedule it, set a thumbnail, add playlists, and attach captions.

Instructions

Upload a video file from this computer (file_path) or a public URL to YouTube with a resumable, checkpointed upload that survives network drops and restarts. Optionally schedule it (publish_at), set a thumbnail, add it to playlists and attach captions in the same call. Runs in the background: returns a job_id right away (or the finished video if it completes within wait_seconds). Poll get_upload_status. Private uploads start immediately; public, unlisted and scheduled uploads need the user’s confirmation first. Tip: write metadata first (generate_metadata, then preview_metadata).

Input Schema

NameRequiredDescriptionDefault
urlNoPublic http(s) URL to download the video from instead of a file.
tagsNoTags (total under 500 characters).
titleYesVideo title (max 100 characters; about 70 show on mobile).
channelNoWhich connected channel: channel ID (UC...), @handle or name. Omit to use the default channel.
licenseNo
privacyNoprivate (default), unlisted or public.private
templateNoTemplate name from list_templates (adds title format, footer, tags, hashtags, playlists).
file_pathNoAbsolute path to the video on this computer, e.g. ~/Videos/recap.mp4.
playlistsNoPlaylist ids or exact names to add the video to.
embeddableNo
publish_atNoSchedule: ISO 8601 date-time when the video goes public. Uploads as private until then.
category_idNoYouTube category id, e.g. 22 People & Blogs, 27 Education, 28 Science & Technology. See list_categories.
descriptionNoDescription. Template header/footer/hashtags are added automatically.
wait_secondsNoWait this long for the upload before returning the job status.
captions_pathNo.srt or .vtt captions file to attach.
made_for_kidsNoCOPPA: is this video made for kids? Defaults to false (or the template value).
recording_dateNoISO date the video was recorded.
thumbnail_pathNoJPG/PNG up to 2 MB to set as the custom thumbnail after upload.
default_languageNoLanguage of title/description, e.g. "en".
captions_languageNoCaptions language, e.g. "en". Defaults to default_audio_language or "en".
confirmation_tokenNoOnly after the user approved: the confirmation_token returned by the previous call with identical arguments.
notify_subscribersNo
default_audio_languageNoSpoken language, e.g. "en", "hi".
contains_synthetic_mediaNoAltered or synthetic content disclosure: true if realistic content was made or altered with AI.
create_missing_playlistsNoCreate (private) playlists named in `playlists` that do not exist yet.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only mark this as a non-read-only, non-idempotent, open-world write; the description adds the behavior that matters: resumable/checkpointed upload surviving network drops, background execution returning a job_id or a finished video, and the wait_seconds threshold for synchronous completion. The confirmation_token requirement for non-private uploads is a material behavioral disclosure not derivable from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences plus a tip, front-loaded with what the tool does before the async model, confirmation gating, and next-step hints. Every sentence carries operational information; nothing is padding for a 25-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 25-parameter mutation with no output schema, the description still covers return shape (job_id or finished video), polling path, and the confirmation prerequisite. An agent has enough to invoke correctly and handle the response without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 88%, so the baseline is 3. The description adds real meaning beyond the schema: the file_path/URL mutual role as alternate sources, publish_at semantics (uploads as private until the scheduled time), and that thumbnail, playlists and captions are applied in the same call. It doesn't clarify the confirmation_token echo-back mechanics in detail, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a concrete verb and resource (upload a video) and specifies both input sources (file_path on this computer or a public URL) plus the destination (YouTube). It distinguishes itself from siblings by defining the async job model, which separates it from resume_upload and upload_captions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: poll get_upload_status after the call, and write metadata first via generate_metadata then preview_metadata. It also states the gating condition (private uploads start immediately; public/unlisted/scheduled need the user's confirmation first), so the agent knows the workflow prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.