Skip to main content
Glama
hermoso-ai

Hermoso

Official

Upload, replace or delete a caption track

manage_youtube_caption
Destructive

Upload, replace, or delete subtitle tracks on your connected YouTube channel. Pass SRT/WebVTT content and language to attach, update, or remove captions, with confirmation for deletion.

Instructions

Attach a real subtitle track to one of the connected channel’s videos, replace one, or delete one. Pass the caption file BODY itself as text (SRT or WebVTT), not a URL. language is required and may not be guessed — YouTube uses it to decide which viewers see the track. A track YouTube generated itself (trackKind ASR) is refused by name: YouTube owns it and it cannot be edited or deleted through any API; to replace it, upload your own track in the same language and YouTube prefers yours. Delete is confirm-gated — viewers with captions on lose them immediately and YouTube stops indexing the video by that text, though it can be re-uploaded if you still have the file. 0 credits. Needs a connected YouTube channel.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoa label shown in YouTube’s caption picker
textNothe caption file body — SRT or WebVTT. Required for upload.
draftNotrue keeps the track unpublished while you review it
actionYesupload | update | delete
confirmNorequired to delete
videoIdNorequired for upload; strongly recommended for update and delete so the track can be resolved and read back
languageNoBCP-47 code such as en, es, pt-BR. Required for upload.
captionIdNorequired for update and delete (from list_youtube_captions)
Behavior5/5

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

The description goes far beyond the annotations (which only mark destructiveHint=true). It discloses that ASR tracks are refused by name, that deletion is confirm-gated and immediately removes captions for viewers and stops YouTube indexing, that tracks can be re-uploaded, and that credits are 0. It also clarifies that a connected channel is required. These are critical behavioral traits that the agent needs to know before invocation.

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

Conciseness4/5

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

The description is a moderately long paragraph but each sentence contributes unique information: purpose, parameter specifics, ASR restriction, delete consequences, and prerequisites. It is front-loaded with the core purpose and then expands into nuances. While not extremely concise, the density is justified given the tool's three actions and multiple constraints.

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?

Given the complexity of three actions, eight parameters, and no output schema, the description is thorough. It covers prerequisites (connected channel), parameter usage (body vs URL), behavioral expectations (ASR refusal, delete gating, immediate effects), and resource implications (0 credits). Nothing essential for correct invocation is missing; return format is not a concern since no output schema exists.

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 100% for all 8 parameters, so the baseline is 3. The description adds valuable semantics beyond the schema, such as emphasizing that `text` is the file body, not a URL, and explaining that `language` must not be guessed because YouTube uses it to decide viewer visibility. It also notes that ASR tracks are refused, tying `action` to the trackKind restriction, and mentions that `captionId` comes from list_youtube_captions, which is in the schema but reinforced contextually.

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?

The description states a specific verb-resource combination: attach, replace, or delete a caption track on a connected channel's video. It clearly distinguishes this from sibling tools like list_youtube_captions (which only lists) and update_youtube_video (which updates general video metadata) by focusing on caption tracks, and mentions the three distinct actions explicitly.

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

Usage Guidelines3/5

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

The description provides context about when to use this tool (e.g., to attach a real subtitle track, replace one, or delete one), and explains that ASR tracks cannot be edited/deleted and that you should upload your own to replace them. However, it does not explicitly contrast this tool with alternatives like list_youtube_captions or suggest when not to use it, leaving some inference required.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hermoso-ai/hermoso'

If you have feedback or need assistance with the MCP directory API, please join our Discord server