Skip to main content
Glama

captions.render

Burns captions onto a video while preserving its audio, rendering animated caption layers or ASS overlays from transcription segments, an SRT file, or a composition path.

Instructions

Burn captions onto a video and keep its audio. The HyperFrames engine (default) renders an animated caption layer; the ffmpeg engine burns in an ASS overlay and needs no extra dependency. Give it transcription segments, an SRT file, or a composition path (engine "hyperframes").

Input Schema

NameRequiredDescriptionDefault
fpsNoComposition frame rate (default: source fps)
srtNoPath to an input .srt file (used as-is, lines and timings preserved)
inputYesPath to the source video
styleNoCaption style: "plain", "karaoke" (word highlight), "pop" (scale-in), "box" (background plate). Default "plain".
widthNoComposition width (default: source width)
engineNoRendering engine; default "hyperframes"
heightNoComposition height (default: source height)
outputYesPath of the rendered video
maxLinesNoTranscript lines per caption chunk (default 2)
overwriteNoReplace the output file if it exists (default false)
transcriptNoTranscription segments (inline), or a path to a JSON file holding an array of segments or {segments:[…]}
compositionNoPath to a HyperFrames composition HTML (engine "hyperframes")
maxCharsPerLineNoTranscript wrapping limit per line (default 42)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions engine behavior and that audio is kept, but omits key mutation traits: that it writes an output file, implications of the `overwrite` parameter, whether permissions are needed, and what happens on failure or success. For a 13-parameter rendering tool with no annotations, this is a significant gap.

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?

Three sentences with no wasted words, and the main purpose is front-loaded. The third sentence is slightly awkward but efficiently covers input options and the engine-specific composition path.

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

Completeness3/5

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

Given the complexity (13 parameters, no output schema, no annotations), the description covers purpose and engine choice but lacks sibling routing guidance and return value information. It is adequate but leaves gaps an agent would need to infer.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds marginal value by naming the input types (transcript, SRT, composition) and clarifying that composition is for the hyperframes engine, but it does not add syntax or constraints beyond what the schema provides.

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

Purpose4/5

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

The description states a specific verb (burn) and resource (captions onto a video) and mentions the two engines. It does not explicitly differentiate itself from siblings like `render` or `captions.generate`, but the purpose is clear enough for an agent to understand what it does.

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 implies usage by listing accepted input types (transcription segments, SRT, composition path) but provides no explicit when-to-use versus alternatives or exclusions. It does not mention when to choose this tool over `render` or `captions.generate`.

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