Skip to main content
Glama
Hermoso

Hermoso

Official

Repurpose a video for every placement

repurpose_video

Generate correctly sized video files for multiple ad placements from one source video, with optional captions, language dubs, and a manifest.

Instructions

ONE video in, EVERY placement out, in one job, as a named file list ([_].mp4) with a manifest. Placements: 'everywhere' (default: 9:16, 4:5, 1:1, 16:9), any W:H, a pixel size (1200x628) or a platform word (tiktok, reels, stories, feed, square, youtube, linkedin, pinterest). Each is reframed by a BLUR-PAD by default (the whole frame over a blurred copy of itself; free, no AI), reframe 'crop' (fill, edges cut; free) or 'ai' (the new canvas generated around the frame; paid, for a canvas the engine makes, else padded and said). A placement may be {placement, reframe} to mix. Optional captions (word-timed, ~4 words a cue, placed for each canvas) and languages (a lip-synced dub per language; every placement of each). A pack of pads and crops only is billed 0. dryRun:true = the exact price (the sum of every leg's own price), which is what it charges. For ONE canvas use post_edit op pad.

Input Schema

NameRequiredDescriptionDefault
padNothe pad's look: fill 'blur' (default) or a #rrggbb colour, blur 0-1, dim 0-0.6, position top/center/bottom or 0-1
nameNothe asset name the files are named after
videoYesthe video: an https / upload_file URL, a Library id (L0…), or a local path on the CLI
dryRunNoprice only: nothing made, nothing charged
reframeNodefault 'pad' (free); 'ai' is paid and only when the user asks
captionsNotrue = word-timed captions on every file (only when the user asks); a textStyle preset name or object sets the look
languagesNodub into these languages (paid), e.g. ['Spanish','de']; the original is kept too
placementsNodefault ['everywhere']; a canvas, a WxH size, a platform word, or {placement, reframe}
wordsPerCueNocaptions: 1-8 words a cue (default 4)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.519

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover safety (readOnlyHint=false, openWorldHint=true) but say nothing about cost or side effects; the description carries that load, stating that pad/crop legs are free, 'ai' reframes and dubs are paid, a pads-and-crops-only pack bills 0, and dryRun returns the exact price that would be charged. It also discloses the fallback behavior when the AI canvas is unavailable (padded and said). The one gap is what the job returns and whether it must be polled via get_job.

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?

Information is front-loaded: the one-in/many-out framing and the output filename convention come before the option inventory, and every clause carries a fact (defaults, price, fallbacks, alternatives). It is dense and parenthetical to the point of being a wall of text on a single run-on sentence, which costs it a point but not more.

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?

For a 9-parameter, nested-object, async-looking generation tool with no output schema, the definition explains inputs and pricing well but never says what comes back (job id? manifest shape? where files land) or whether the caller must poll get_job/resume_job. Those omissions matter for correct invocation sequencing.

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%, so baseline would be 3, but the description adds real semantics: the 'everywhere' default expands to 9:16/4:5/1:1/16:9, platform words are enumerated (tiktok, reels, stories, feed, square, youtube, linkedin, pinterest), and the {placement, reframe} mix form is explained. It does not mention the maxItems caps (8 placements, 4 languages) or the object's label/width/height fields, so it stops short of full coverage.

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 precise verb and resource with its scope: 'ONE video in, EVERY placement out, in one job' with a named output convention (<name>_<placement>_<WxH>[_<lang>].mp4) plus a manifest. It enumerates accepted placement forms (canvas, W:H, pixel size, platform word) and names the sibling that handles the single-canvas case (post_edit op pad), so it is separable from reframe_video, resize_ad and post_edit.

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?

Gives clear routing: use this for many placements at once, use post_edit op pad for ONE canvas. It also sets conditional-use rules for the paid paths ('ai' only when the user asks, captions only when the user asks) and points to dryRun:true for pricing. What it lacks is any explicit comparison against close siblings like reframe_video, resize_ad or localize_ad/dub_video.

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

Deploy Server

Other Tools