A text overlay burns one authored line; it does not listen
add_video_captions stamps one hook, headline, or CTA on the whole file. Transcription is a different job, and overlaying a miss wastes credits.
One line of text, burned onto your video. That is the job. Add a text overlay to my video is one named agent capability. add_video_captions takes the video, the exact caption_text, and a position. It does not transcribe. Silence, native dialogue, a music bed — none of that changes the string. Using it as auto-captions wastes a burn on a line you invented while the speech went untyped. Using auto-captions as a hook line wastes a transcript pass on a CTA you already knew.
The editor-shaped door is add a text overlay to a video. This page is the agent verb. Both of them typeset this file. If the file is still a sample, you are typesetting a miss.
One string, whole duration, your words
Give the agent the video, the line, and where it should sit (top, center, or bottom — not a free pixel). Optionally set font size, color, and background. The output is the video with the text permanently burned in. Cost is a flat per-video fee, shown before rendering.
This is a hook, a badge, a headline, a CTA. "WAIT FOR IT." "Before vs After." The legal line in the corner. It sits for the whole clip. If you needed the words to change at 0s, 2s, and 4s, you wanted add timed text overlays to my video (add_timestamped_captions). If you needed the actual speech, you wanted transcribe and caption my video.
Position is a three-way enum. "A bit higher" is not a setting. Overlay before you reframe and you will pay twice: the line that sat clean on 16:9 sits in the TikTok chrome after a 9:16 crop.
What this job is not
Subtitles. add_veed_captions (the transcribe-and-burn path) listens. This tool does not. If the clip has speech you want on screen, do not type a paraphrase into add_video_captions and call it captions. You will misquote the take and you will not get word timing.
A title card with an in and out. Timed overlays are the other named job. A three-second chapter mark on a thirty-second file is a timestamped line, not a persistent headline.
Brand-kit defaults. A house style across many videos is set my brand kit. Overlaying a one-off on a miss does not create a kit. It creates a leftover file with a wrong offer.
A generate. Asking an image or video model to "put the headline in the shot" is how you get a misspelled product name you cannot edit. Generate a clean plate. Type the real string here.
Lock the picture. Then print the line.
People overlay early because the plate looks empty. Empty is information. It means you can still see whether the face, the product, and the motion are right. Type hides that. Type also bakes a claim into pixels you may recut.
Generate the clip. Decide the crop. Decide whether the lower third will also hold a transcript. Then place one authored string. Offers change. CTAs change. Legal lines change. Copy lock can be later than picture lock. If either is open, do not burn.
The AI video generator makes the plate. Overlay is how you label a plate you are keeping. Running add_video_captions to "see the ad" is a composite you will throw away when the hook changes — and the hook always changes before the plate does.
FAQ
Can the overlay change mid-clip?
Not on this tool. One string, whole file. Timed lines are add_timestamped_captions on add timed text overlays.
Should I overlay before I crop to 9:16?
No. Top, center, and bottom sit in a different safe zone after a reframe. Crop the keeper, then print.
Is this the same as auto-captions?
No. Auto-captions transcribe speech. This job burns a line you wrote. If you needed both a hook and subtitles, that is two named jobs on the locked file, not one overlay pretending to listen.
What if I want to test three hooks on one take?
Wait until the take is the take, then run three overlay renders on the same locked file. Testing hooks on three different misses is three composites you will never post, which is how overlay credits disappear.