wiro / video-caption
video-caption
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.
- 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 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.
- 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": "..."
}
JSONPricing: 'fixed' caption costs 0.001 per video, flat. 'speech' costs 0.004 per started minute of video, since the speech has to be transcribed: up to 1:00 is 0.004, 1:01 to 2:00 is 0.008, 2:01 to 3:00 is 0.012, and so on. Only successful outputs are charged.
View full API docs