# How to add captions to a video on Mac for free

Canonical URL: https://getvidiyo.app/blog/add-captions-to-video-mac-free
Last updated: 2026-10-08
Author: Ajay Pawriya (https://getvidiyo.app/about)
Published: 2026-10-08
Category: Captions

> TL;DR: Transcribe the speech, fix the words, then either upload the captions as an SRT file or burn them into the video. On a Mac you can do it free with platform auto captions, open-source Whisper plus a text editor, or Vidiyo, which transcribes locally and is free during its invite-only beta.

Image: A vertical talking-head video in Vidiyo with word-highlight captions on the timeline and the assistant's plan in the side panel

Every free captioning method on a Mac does the same three jobs: turn speech into timed text, let you correct it, and get it onto the video. The methods differ in where the transcription runs, how much fixing you do by hand, and whether the captions end up burned into the picture or delivered as a separate file. Here are the four that cost nothing, and how to pick one.

## What are the free ways to caption a video on a Mac?

There are four practical free routes: let the platform caption it, write an SRT by hand, run open-source Whisper yourself, or use a local editor like Vidiyo. The right one depends on how long the video is, where it's going, and whether you want styled captions in the picture or a plain file viewers can switch off.

| Method | Where speech is transcribed | What you get | Best for |
|---|---|---|---|
| Platform auto captions | On the platform's servers, after upload | Captions viewers can toggle | Long YouTube videos you don't need to style |
| Hand-written SRT | Nowhere: you type it | A plain caption file | Very short clips, or fixing a transcript |
| Whisper on the command line | On your Mac | An SRT or VTT file you can burn in with FFmpeg | People happy in Terminal |
| Vidiyo | On your Mac | Styled word-by-word captions in the video, plus SRT export | Reels, Shorts and talking heads you edit anyway |

One thing that looks like an option but isn't: [Live Captions](https://support.apple.com/guide/mac-help/use-live-captions-mchldd11f4fd/mac) on Apple silicon Macs. It transcribes any audio on screen in real time, and Apple says the audio is processed on device. It's great for watching, but it doesn't save captions into a video or write a caption file.

## How do I add captions to a video in Vidiyo?

Open the Captions tab, click Generate captions, fix any wrong words, pick a style and export. Vidiyo transcribes on your Mac with a local Whisper model, gives every word its own timing, and burns the captions into the exported MP4. It's free during the invite-only beta, and captions work without the AI assistant.

1. **Import the video.** Drag it into a new project. Vidiyo reads it in place and builds a playback proxy.
2. **Generate captions.** In the Captions tab, click **Generate captions**. The first run downloads the English speech model once (about 490 MB). For other languages, set the spoken language in Settings → Transcription and download the language pack (about 575 MB).
3. **Fix the words.** The **Transcript** tab lists every caption. Click one to jump to it and correct the text. Words the aligner wasn't sure about are flagged.
4. **Pick a look.** The **Presets** tab has twelve styles, from plain Subtitle to Word pop and Pill karaoke. Font, size, colours and position sit in the inspector.
5. **Export.** **Export** (or File → Export MP4) writes an H.264 MP4 with the captions burned in. For a separate file, the Captions tab's **⋯** menu has **Export SRT…**.

If you connected Claude or ChatGPT, you can skip the clicking and type requests instead: "Add word-by-word captions, three words at a time, and keep them off my face." The assistant looks at the actual frames to place them, and checks for captions covering faces, on-screen text or the Reels and Shorts buttons.

The part that matters later: each caption word is anchored to the word you spoke. If you cut a pause or a sentence after captioning, the captions follow the edit instead of drifting out of sync.

## How do I add captions without Vidiyo?

Transcribe with open-source Whisper, correct the SRT in a text editor, then upload it or burn it in. This route is free, runs on your Mac, and gives you full control, but it takes some comfort with Terminal and gives you plain subtitles rather than styled, animated ones.

1. **Transcribe.** [whisper.cpp](https://github.com/ggml-org/whisper.cpp/blob/master/examples/cli/README.md) is a free C/C++ port of Whisper. Its `whisper-cli` tool takes an audio file and writes captions with `-osrt` (SRT) or `-ovtt` (WebVTT). Use `-l` to set the spoken language and `-ml` to cap the segment length in characters.
2. **Correct.** Open the `.srt` in TextEdit (Format → Make Plain Text first) and fix names, numbers and misheard words. Keep the timing lines exactly as they are.
3. **Deliver.** Either upload the file to the platform, or burn it in with FFmpeg's [subtitles filter](https://ffmpeg.org/ffmpeg-filters.html#subtitles-1): `ffmpeg -i input.mp4 -vf subtitles=captions.srt output.mp4`. The filter needs an FFmpeg built with libass.

An SRT file is just numbered blocks of text with start and end times:

```text
1
00:00:00,000 --> 00:00:02,400
Most demo videos lose people

2
00:00:02,400 --> 00:00:04,900
in the first ten seconds.
```

If you'd rather not touch Terminal, the platforms will caption for you. YouTube generates [automatic captions](https://support.google.com/youtube/answer/6373554) in dozens of languages, though it warns they can misrepresent speech because of accents, dialects or background noise, so review them in YouTube Studio. YouTube also accepts uploaded [SRT and VTT files](https://support.google.com/youtube/answer/2734698). [LinkedIn](https://www.linkedin.com/help/linkedin/answer/93997) takes an SRT attached when you post from the desktop site, and [X](https://help.x.com/en/using-x/upload-caption-srt-file) lets you upload an `.srt` with a video post.

The catch with platform captions is that you don't control how they look, and they only exist on that one platform. Post the same video in four places and you caption it four times.

## How should captions look to be readable?

Keep captions to two lines at most, break lines at natural phrase boundaries, and leave each caption up long enough to read. Accessibility guides agree on the basics, and following them makes captions easier for everyone, not just viewers who rely on them.

| Rule | Guidance | Source |
|---|---|---|
| Lines per caption | No more than two | [DCMP Captioning Key](https://dcmp.org/learn/captioningkey/597) |
| Line length | Up to 42 characters per line | [Netflix timed text style guide](https://partnerhelp.netflixstudios.com/hc/en-us/articles/217350977-English-USA-Timed-Text-Style-Guide) |
| How long on screen | At least 1 second and 10 frames, at most 6 seconds | DCMP |
| Where | Bottom of the frame, moved up if it covers a face or on-screen text | DCMP |
| Line breaks | Don't split a name, a modifier from its word, or end a line on a conjunction | DCMP |

Short-form video bends some of these. Word-by-word styles show two to four words at a time on purpose, because people scroll with the sound off and read in quick bursts. That's a style choice, covered in [word-by-word captions](https://getvidiyo.app/blog/word-by-word-captions). For vertical video, also keep captions out of the areas the app interface covers; the [safe-zone checker](https://getvidiyo.app/tools/safe-zone-checker) shows them on any frame.

## Should captions be burned in or uploaded as a file?

Burn them in for Reels, Shorts and other feeds where you want a specific look and can't rely on viewers turning captions on. Upload a file for long YouTube videos, multiple languages, or viewers who need to resize captions. Many people do both: burned-in captions for social cuts, an SRT for YouTube. The full trade-off is in [burned-in vs closed captions](https://getvidiyo.app/blog/burned-in-vs-closed-captions).

## Which free method should I pick?

Pick by the job, not the tool:

- **A one-off YouTube upload you won't edit:** upload it and correct YouTube's automatic captions.
- **A clip under a minute with careful wording:** type the SRT yourself. It's faster than fixing a bad transcript.
- **Regular captioning, Terminal is fine, plain subtitles are fine:** whisper.cpp plus FFmpeg.
- **Talking heads, Reels and Shorts you're editing anyway:** caption in the editor, so captions survive every cut and match the look of the video. That's why we built captions into [Vidiyo](https://getvidiyo.app/features/auto-captions) rather than treating them as a final step.

Whichever you choose, read every line before you publish. A misheard product name in the first caption is easy to miss and hard to unsee, and no free tool catches it for you.

## Honest limits

- Vidiyo needs macOS 14 or later on Apple Silicon, and access is invite-only during the beta.
- Vidiyo exports 1080p at 30 fps, and timelines max out at 5 minutes.
- Hindi transcribes in Devanagari, so Hinglish captions need some words fixed by hand.

## Frequently asked questions

### Does macOS have a built-in way to caption a video file?

Not as a saved file. Live Captions on Apple silicon Macs transcribes audio on screen in real time, on device, but it doesn't write captions into a video or export a caption file.

### Is Vidiyo free for adding captions?

Vidiyo is free during its invite-only beta. Captions don't need the AI assistant: you can generate, fix, style and export them from the Captions tab by hand.

### What file format should my captions be in?

SRT is the safest choice. YouTube, LinkedIn and X all accept SRT files, and it's plain text you can edit in any text editor.

### Do free auto captions need fixing?

Usually, yes. YouTube itself warns that automatic captions can misrepresent speech because of accents, dialects or background noise. Read every line before you publish, especially names and numbers.

### Can I caption a video offline on a Mac?

Yes. Vidiyo and whisper.cpp both transcribe on your Mac. Each needs to download its speech model once; after that, transcription works without a connection.

## Related

- [Auto captions that are transcribed on your Mac](https://getvidiyo.app/features/auto-captions)
- [How do I add captions in Vidiyo?](https://getvidiyo.app/docs/captions)
- [Burned-in vs closed captions: which should you use?](https://getvidiyo.app/blog/burned-in-vs-closed-captions)
- [How to make word-by-word captions](https://getvidiyo.app/blog/word-by-word-captions)
- [SRT file](https://getvidiyo.app/glossary/srt-file)
- [Free safe zone checker for Reels, TikTok and Shorts](https://getvidiyo.app/tools/safe-zone-checker)

## Sources

- [Apple: Use Live Captions on Mac](https://support.apple.com/guide/mac-help/use-live-captions-mchldd11f4fd/mac) (accessed 2026-10-08)
- [YouTube Help: Use automatic captioning](https://support.google.com/youtube/answer/6373554) (accessed 2026-10-08)
- [YouTube Help: Supported subtitle and closed caption files](https://support.google.com/youtube/answer/2734698) (accessed 2026-10-08)
- [LinkedIn Help: Add closed captions to videos](https://www.linkedin.com/help/linkedin/answer/93997) (accessed 2026-10-08)
- [X Help: How to upload caption (.srt) file to posts](https://help.x.com/en/using-x/upload-caption-srt-file) (accessed 2026-10-08)
- [whisper.cpp command-line options](https://github.com/ggml-org/whisper.cpp/blob/master/examples/cli/README.md) (accessed 2026-10-08)
- [FFmpeg filters documentation: subtitles](https://ffmpeg.org/ffmpeg-filters.html#subtitles-1) (accessed 2026-10-08)
- [DCMP Captioning Key: Captioning text](https://dcmp.org/learn/captioningkey/597) (accessed 2026-10-08)
- [Netflix English (USA) Timed Text Style Guide](https://partnerhelp.netflixstudios.com/hc/en-us/articles/217350977-English-USA-Timed-Text-Style-Guide) (accessed 2026-10-08)

Download Vidiyo for Mac (free during the beta): https://getvidiyo.app/download
