Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mosaic.so/llms.txt

Use this file to discover all available pages before exploring further.

Add dynamic, stylized captions that match your video’s tone, improve retention, and boost accessibility. Ideal for social platforms where sound-off viewing is common (TikTok, Reels, Shorts, LinkedIn).

How It Works

The Captions tile listens to your video audio, transcribes speech, and overlays timed captions. You control how they look — from fonts and stroke to placement and coloring. Captions are auto-timed to speech and update in real-time based on your styling choices. Clean captions

Input and Settings

Caption Style

Controls how captions are visually rendered. API caption_style values:
  • colored → Highlights key words with your highlight_color
  • scaling → Emphasis via animated word scaling
  • karaoke → Progressive karaoke-style emphasis
stroke_color and stroke_width are controlled separately from caption_style. Great for:
  • Retention editing
  • Educational clips
  • Talking-head explanatory content

Colors

You can customize three visual layers: Base Color
Default text color (e.g., #FFFFFF for white)
Highlight Color
Used to emphasize specific words — increases engagement & readability
Stroke Color
Outline around text for contrast on busy footage

Font Options

Set the typography style to match your brand. Controls include:
  • Font Family (e.g., Montserrat)
  • Font Weight (e.g., 400 / 700)
  • Font Size (slider)
Use cases:
  • Bold fonts for TikTok/Shorts
  • Light/fonts for cinematic edits

Vertical Position

Adjust how high/low captions sit in the frame (via percentage slider). Examples:
  • 90% → Just above bottom edge (common for shorts)
  • 50% → Centered (cinematic)
  • 20% → Top aligned (when lower third is busy)

Words per Caption

Controls pacing and readability. Two sliders:
  • Minimum words
  • Maximum words
Examples:
  • Min 1 / Max 3 → Fast TikTok pacing
  • Min 3 / Max 7 → YouTube educational pacing

API Info

  • Node ID: cdccb204-168e-4aec-aa72-480b11e74324

Node params

ParamTypeRequiredDefaultNotes
caption_style"colored" | "scaling" | "karaoke"No"colored"Visual style preset.
base_colorstring (hex)No"#F8FAFC"Primary text color.
highlight_colorstring (hex)No"#A78BCA"Highlight/accent color.
stroke_colorstring (hex)No"#0B0B0B"Stroke/outline color.
stroke_widthnumberNo14Stroke/outline width (0-20).
caption_fontstringNo"Montserrat"Font family.
caption_font_weightstringNo"700"Font weight as string token.
caption_font_sizenumberNo108Font size in pixels (20-120).
caption_vertical_positionnumber (percent)No88Vertical caption placement (10-90).
caption_min_wordsnumberNo2Minimum words grouped per caption chunk (1-8).
caption_max_wordsnumberNo4Maximum words grouped per caption chunk (1-8).

Parameter groups

  • Render style: caption_style, base_color, highlight_color, stroke_color, stroke_width
  • Typography: caption_font, caption_font_weight, caption_font_size
  • Layout & pacing: caption_vertical_position, caption_min_words, caption_max_words

Scenario requirements

  • Keep caption_min_words <= caption_max_words.
  • Use valid hex color strings for color fields.
  • caption_font_weight must be sent as a string (for example "700"), not a number.

Runtime notes

  • For deterministic output, set style, typography, and pacing fields explicitly.
  • For API overrides, pass these fields via update_params[agent_node_id].

Example

{
  "caption_style": "colored",
  "base_color": "#FFFFFF",
  "highlight_color": "#EC81EE",
  "caption_font": "Montserrat",
  "caption_font_weight": "700",
  "caption_font_size": 108,
  "caption_vertical_position": 88,
  "caption_min_words": 2,
  "caption_max_words": 4
}