Skip to main content
Glama

AwesomeVideo

Preview caption styles on the video before ordering (free)

style_preview
Read-onlyIdempotent

FREE, never charges, no transcription. Use BEFORE caption_video whenever the person wants to see or choose how captions will look ('qué estilos hay', 'muéstrame cómo queda', 'which captions look best'). Takes the SAME look fields as caption_video (sourceUrl/fileId, preset or presets, language, translateTo, brandPresetId, styleOverrides, faceAvoid, highlightWords, highlightColor, platform, autoFit) and renders each preset with the burn's engine at the burn's output size, safe zone and words-per-caption, on the real frame at atSeconds (one second or up to 3 -> one sheet row each; default a frame with a face, else the middle). Captions are text (sample phrase, max 80 chars; default a short phrase in translateTo/language) with the active word highlighted; if text is longer than one caption the frame shows the chunk on screen at that second, like the burn (truncated:true; fullText:true shows every line but no longer matches a burn). Already have a transcript? Pass transcriptionJobId or subtitles to see the real caption at that second. Returns sheetUrl (labeled contact sheet), per-preset frames[] urls and captionVideoArgs: pass that object unchanged to caption_video (or POST /v1/captions) to get what you saw. Limits: 30 sheets/hour, 200/day per key (429 rate_limited + retryAfterSeconds); identical repeats come from cache and do not count.

Input Schema

NameRequiredDescriptionDefault
textNoPreview only: sample phrase.
fileIdNo
presetNoOne preset (same as caption_video).
autoFitNo
presetsNoUp to 12 presets to compare; default 6 that fit the video shape.
fullTextNoPreview only: show all words in one caption (does not match a burn).
languageNo
mediaUrlNoAlias of sourceUrl.
platformNo
atSecondsNoPreview only: second(s) of the video to show; up to 3 = one sheet.
faceAvoidNo
sourceUrlNoSame as caption_video.
subtitlesNoPreview only: SRT/VTT/JSON captions to show instead of a sample phrase.
audioVisualNoAudio-only input (mp3/m4a/wav...): render the web editor's audio export (visualizer + captions) on the server, same price as the burn. On a video input it returns 422 audio_visual_needs_audio_input (not charged). Omit it on audio to get the default bars.
translateToNoSame as caption_video; the default sample phrase uses this language.
brandPresetIdNo
highlightColorNo
highlightWordsNo
styleOverridesNoSame as caption_video, applied to every preset.
transcriptionJobIdNoPreview only: show real captions from this transcription (no new transcription).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / audioVisual
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Audio-only input (mp3/m4a/wav...): render the web editor's audio export (visualizer + captions) on the server, same price as the burn. On a video input it returns 422 audio_visual_needs_audio_input (not charged). Omit it on audio to get the default bars.",
      +  "properties": {
      +    "aspect": {
      +      "description": "Frame shape; default from platform, else 9:16.",
      +      "enum": [
      +        "9:16",
      +        "16:9",
      +        "1:1",
      +        "4:5"
      +      ],
      +      "type": "string"
      +    },
      +    "background": {
      +      "description": "Frame background color #RRGGBB (gradient/blur via config).",
      +      "type": "string"
      +    },
      +    "config": {
      +      "additionalProperties": {},
      +      "description": "Variant config fields (colors, gradient, blur, bar count, position...). Same names and defaults as list_audio_visuals.",
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "enabled": {
      +      "description": "false: background + captions, no visualizer.",
      +      "type": "boolean"
      +    },
      +    "height": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "overlays": {
      +      "description": "Up to 8 image (imageUrl, PNG/JPEG/WebP <=5 MB) or text items {kind, x, y, width, height, start, end, ...} in frame pixels.",
      +      "items": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "maxItems": 8,
      +      "type": "array"
      +    },
      +    "presetId": {
      +      "description": "bars only: minimal | neon | bold | spotify.",
      +      "type": "string"
      +    },
      +    "variant": {
      +      "description": "Visualizer (default bars). list_audio_visuals shows each one's defaults.",
      +      "enum": [
      +        "bars",
      +        "ribbon",
      +        "rings",
      +        "spectrogram",
      +        "skyline",
      +        "silkline",
      +        "ivory",
      +        "halo",
      +        "needle",
      +        "mono"
      +      ],
      +      "type": "string"
      +    },
      +    "width": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only say readOnly/idempotent/non-destructive; the description adds cost behavior (FREE, never charges, no transcription), rate limits with the exact error code and retryAfterSeconds, cache semantics for repeats, and the audioVisual 422-not-charged case. It also discloses fidelity details: rendering uses the burn's engine, output size, safe zone and words-per-caption, and fullText deliberately does not match a burn.

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?

Front-loaded with the two things that matter (FREE, use before caption_video), and nearly every sentence carries information. However it is one dense paragraph that interleaves routing, rendering internals, return shape and rate limits, which makes it harder to scan than it needs to be.

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?

No output schema exists, yet returns are named (sheetUrl, per-preset frames[], captionVideoArgs) and the passthrough contract is spelled out. Combined with limits, defaults and error codes, an agent has everything needed to call it correctly on the first attempt.

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

Parameters5/5

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

With 20 params and only 60% schema coverage, the description carries real weight: it explains atSeconds as one second or up to 3 (one sheet row each) with the default frame heuristic (a face, else the middle), the 80-char sample phrase and its language default, truncated vs fullText, and that the look fields mirror caption_video. It also documents the return contract (captionVideoArgs) needed to chain into the burn.

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?

States a specific verb+resource (renders each caption preset into a labeled contact sheet) and immediately draws the boundary against caption_video, which is the nearest sibling. An agent can tell from the first sentence that this is a non-charging preview, not the actual burn.

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?

Explicit routing: 'Use BEFORE caption_video whenever the person wants to see or choose how captions will look', reinforced with example user phrasings including Spanish. It also names the escalation path ('pass that object unchanged to caption_video') and the alternate input path when a transcript already exists.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources