remotion_add_lower_third
Add TV-style name plates to videos with customizable timing, duration, and styling. Display names and titles as overlays that appear at specific moments without affecting the main timeline.
Instructions
Add a lower third overlay to the composition.
Creates a name plate overlay (TV-style graphics) that appears at a specific
time and shows for a duration. Lower thirds are overlays and don't affect
the main timeline.
Args:
name: Main name/text to display
title: Optional subtitle/title
start_time: When to show (seconds from start)
duration: How long to show (default: 5.0 seconds)
variant: Style variant (minimal, standard, glass, bold, animated)
position: Screen position (bottom_left, bottom_center, bottom_right, top_left, top_center)
Returns:
JSON with component info
Example:
await remotion_add_lower_third(
name="Dr. Sarah Chen",
title="AI Researcher, Stanford",
start_time=2.0,
duration=5.0,
variant="glass",
position="bottom_left"
)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | ||
| name | Yes | ||
| position | No | bottom_left | |
| start_time | No | ||
| title | No | ||
| variant | No | glass |
Implementation Reference
- The handler function for the 'remotion_add_lower_third' tool. It adds a LowerThird component to the current timeline, handling props like name, title, variant, position, and timing parameters. Returns a JSON response with component details or error.@mcp.tool async def remotion_add_lower_third( name: str, title: str | None = None, variant: str | None = None, position: str | None = None, duration: float | str = 5.0, track: str = "overlay", gap_before: float | str | None = None, ) -> str: """ Add LowerThird to the composition. Name plate overlay with title and subtitle (like TV graphics) Args: name: Person's name to display title: Optional title/role to display variant: Style variant position: Position on screen duration: Duration in seconds track: Track name (default: "overlay") gap_before: Gap before component in seconds (overrides track default) Returns: JSON with component info """ def _add(): if not project_manager.current_timeline: return ErrorResponse( error="No active project. Create a project first." ).model_dump_json() try: component = ComponentInstance( component_type="LowerThird", start_frame=0, duration_frames=0, props={ "name": name, "title": title, "variant": variant, "position": position, }, layer=0, ) component = project_manager.current_timeline.add_component( component, duration=duration, track=track, gap_before=gap_before ) return OverlayComponentResponse( component="LowerThird", start_time=project_manager.current_timeline.frames_to_seconds( component.start_frame ), duration=duration, ).model_dump_json() except Exception as e: return ErrorResponse(error=str(e)).model_dump_json() return await asyncio.get_event_loop().run_in_executor(None, _add)