Video Caption (Word-Timed Subtitles)
Burn captions into a video with TikTok-style timing. Transcribe spoken audio word-by-word or overlay fixed text, with full control over caption style.
Overview
Video Caption by Wiro adds burned-in captions to an existing video. It can transcribe the video’s speech and time each word to the voice, then render those words onto the frames. It can also burn a fixed caption line you provide, even if the video has no audio. The output solves the last-mile problem for social clips: you get a share-ready video with captions already embedded.
What you can build
- TikTok, Reels, and Shorts clips with word-timed captions
- Silent promo videos with a fixed headline burned onto the footage
- Accessibility-friendly exports for platforms that don’t show subtitle tracks well
- Creator templates with consistent caption font, color, and placement
- Quick “quote” videos where the same line stays on screen
Inputs
- One input video you want to caption. Provide an uploaded file or a direct URL. If the input is MP4, MOV, MKV, or M4V, it keeps the same container on export; other formats typically return as MP4.
- A captioning mode: either transcribe the speech in the video and caption it with timestamps, or burn the fixed caption text you provide.
- A caption display effect that controls how text appears on screen. Options include a rolling word window, flashing each word, or showing a full sentence at once.
- Optional caption text you write. This is required when you choose fixed-text captioning. If you leave it blank, the run falls back to speech-based captions. With speech-based captioning you can give the script that is spoken instead: when it matches the speech, the captions keep its exact wording and spelling, brand names included, timed to the voice.
- Optional caption placement on the video: top, center, or bottom.
- An optional font choice from the Poppins font family.
- An optional font size in pixels from 8 to 400. If you leave it empty, the model scales the text based on the video size.
- An optional text color as a hex code (for example, #FFFFFF).
- An optional background box color as a hex code (for example, #000000).
- An optional background box opacity from 0.0 to 1.0. Set 0.0 for no box.
- An optional shadow color as a hex code. If you leave it empty, it follows the text color: a white shadow behind dark text, a black one behind light text.
- An optional shadow opacity from 0.0 to 1.0. Set 0.0 for no shadow.
- An optional outline (stroke) color as a hex code, drawn around every letter. Leave it empty for no outline. With an outline the automatic shadow is left out unless you set a shadow color or opacity.
- An optional outline width in pixels from 0 to 20. If you leave it empty, it scales with the font size (about 5 pixels at a 96-pixel font); 0 turns the outline off.
- An optional margin from the top or bottom edge in pixels from 0 to 1000. Leave it empty to scale with video size. This setting is ignored when captions are centered.
- For the rolling-word effect, an optional maximum number of words to keep on screen from 1 to 20.
Outputs
The model returns a single captioned video file.
The video includes captions burned into the frames, so it plays correctly on any platform without needing a separate subtitle track. For MP4, MOV, MKV, and M4V inputs, it preserves the original container; for other input types, it typically exports as MP4.
Recommended settings
- For TikTok-style captions on spoken clips, use speech-based captioning with the “flash each word” effect.
- For fast speakers, use the rolling-word effect and keep the on-screen word window small (often 3–5 words).
- If your video has busy backgrounds, add a caption box and set opacity around 0.3 to 0.6 for readability.
- For captions without a box over changing backgrounds (white app screens one moment, dark scenes the next), use white text with a dark outline, for example #FFFFFF text with a #0F172A outline.
- If the transcription misspells a brand or product name, keep speech-based captioning and give the voice-over script as the caption text.
- If you need consistent visuals across many resolutions, leave font size empty so it scales with the input video.
- If platform UI covers the bottom area (common on Shorts), move captions to the top or raise the bottom margin.
- For a title card that stays up the whole time, use fixed-text captioning with the sentence effect.
Limitations
- Speech-based captions depend on audio quality. Heavy noise, music, or overlapping speakers can reduce accuracy and timing.
- Fixed-text captioning does not auto-time words to speech. It burns the same line you provide.
- The sentence effect can keep the full line on screen for the entire clip in fixed-text mode, which may not fit fast-paced edits.
- Since captions are burned in, you can’t turn them off later or restyle them without re-running the model.
- Low-quality inputs can hurt results. This includes heavy compression, clipped audio, very quiet speech, and videos with existing hardcoded subtitles.
Safety & compliance
- Only upload videos you own or have permission to edit and republish.
- Captions can reveal personal data spoken in the clip. Review outputs before sharing.
- Wiro file URLs are designed to be accessible by link, so treat output links as public if shared. (wiro.ai)
- If you need to remove a run’s media, Wiro provides a task-level option to delete both uploaded inputs and generated outputs after completion. (wiro.ai)
Example prompts
Great starting points for video-caption.
API quick start
Run video-caption with a single API call.
{
"inputVideo": "https://your-cdn.com/input.mp4",
"mode": "speech",
"captionEffect": "wordbyword",
"text": "..."
}curl -X POST "https://api.wiro.ai/v1/Run/wiro/video-caption" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_WIRO_API_KEY" \
--data-binary @- <<'JSON'
{
"inputVideo": "https://your-cdn.com/input.mp4",
"mode": "speech",
"captionEffect": "wordbyword",
"text": "..."
}
JSON