---
title: Adding word-by-word captions with invideo Subtitles
description: Turn the speech in a video into styled captions that follow each spoken word, with invideo Subtitles.
---
invideo Subtitles transcribes the speech in your video and puts it back on the video as styled captions that follow each spoken word. You get a new video with the captions on it. For motion text that does not follow speech, see [Adding dynamic text to your videos](/models/adding-dynamic-text-to-your-videos).

## How to get started

In the invideo app, open invideo Subtitles from the generative models and tools on the homepage.

1. Search for **invideo Subtitles** in the tools.
2. Upload the video with the speech you want to caption.
3. Pick a **Subtitle Style**.
4. If you want, set a **Font**, a **Font Color** and a **Safe Zone**.
5. Confirm the credit cost and generate.

The price depends on the length of the source video. See the <a href="https://invideo.io/help/billing/how-do-credits-work/" target="_blank">credits FAQ</a>.

Your agent uses the same model as `invideo_subtitles`, through `generate`, and reads the inputs with `get_model`. Your agent runs a dry run first. For any call that costs 1 credit or more, it tells you the price and waits for your yes. A call under 1 credit runs without asking, and your agent tells you what it cost.

## Styles and settings

Each style changes how the words look and move. The styles are **Bold Text Behind**, **Difference Text**, **Gradient Center Text**, **Multi Position Text (Color)**, **Multi Position Text (Plain)**, **Scroll Text**, **Serif Italic Text Behind**, **Serif / Sans-Serif Text**, **Subtitle Highlight** and **Subtitle Scribble Highlight**.

- **Font.** Each style has its own list of fonts and starts with its own font.
- **Font Color.** Sets the color of the words.
- **Safe Zone.** **TikTok** or **Instagram** keeps the captions clear of that app's buttons.

Models retire. If a model is not found, your agent runs `find_models` with the job in words, uses the best match, and tells you. See [Models](https://docs.invideo.io/reference/models#when-a-model-retires).