Skip to main content
Glama

burn_subtitles

Burn subtitles directly into video frames with customizable font size, colors, and positioning so captions display on all platforms, including TikTok, Instagram Reels, and YouTube Shorts.

Instructions

Hardcode/burn subtitles directly into video frames with customizable font size, colors, and positioning. Unlike soft subtitles, burned subtitles render on all platforms including TikTok, Instagram Reels, and YouTube Shorts.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "videoPath": "<videoPath>",
      "subtitlesPath": "<subtitlesPath>",
      "outputPath": "<outputPath>"
    },
    "name": "burn_subtitles"
  }
}

Input Schema

NameRequiredDescriptionDefault
marginVNoVertical margin distance in pixels from the bottom edge. Default: 35.
fontSizeNoSubtitle font size in points. Default: 24.
fontColorNoPrimary subtitle text color: 'white', 'yellow', 'cyan', or ASS hex e.g. '&H00FFFFFF'. Default: 'white'.white
videoPathYesPath to the source video file.
outputPathYesTarget output video path (.mp4, .mov, or .mkv).
outlineColorNoSubtitle border/outline color: 'black', 'white', or ASS hex. Default: 'black'.black
outlineWidthNoOutline thickness in pixels. Default: 2.
subtitlesPathYesPath to the subtitle file (.srt, .vtt, or .ass) to burn into the video.
hardwareAccelerationNoUse hardware-accelerated video encoding when available. Default: true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.5.1
    • addedInput schema / properties / fontColor / pattern
      Added value: +"^(white|yellow|cyan|red|green|blue|black|&[hH][0-9a-fA-F]{6,8})$"
    • addedInput schema / properties / outlineColor / pattern
      Added value: +"^(white|yellow|cyan|red|green|blue|black|&[hH][0-9a-fA-F]{6,8})$"
  2. Addedv0.5.0

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully conveys that subtitles become part of the video frames and therefore render consistently across platforms, but it does not explicitly discuss re-encoding, processing cost, source-file preservation, output overwriting, or the inability to disable the captions afterward.

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?

The description is two compact sentences with the operation front-loaded and the platform-compatibility rationale immediately following. Both sentences contribute useful selection information, and there is no filler or unnecessary repetition.

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

Completeness4/5

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

Together with the rich flat schema, which documents all nine parameters, supported file extensions, defaults, and constraints, the description is sufficient for ordinary selection and invocation. It would be more complete with explicit routing versus add_subtitles and a brief note about rendering cost and the permanent nature of burned captions.

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 baseline of 3 applies. Mentioning customizable font size, colors, and positioning summarizes parameters already documented in detail by the schema, without adding further syntax, interactions, or invocation guidance.

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 opening sentence precisely identifies the operation and resource: burning subtitles directly into video frames, with styling customization. The contrast with soft subtitles clarifies the output type, but the description does not explicitly distinguish itself from the sibling add_subtitles tool.

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

Usage Guidelines4/5

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

The second sentence gives a clear reason to choose this tool: subtitles that remain visible across platforms, with TikTok, Instagram Reels, and YouTube Shorts as concrete examples. It does not explain when add_subtitles or soft subtitles would be preferable, such as when viewers must be able to toggle or select caption tracks.

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