Captionist
For Mac · Blu-ray, 4K UHD and DVD

Disc subtitles, turned into text.

The subtitles on Blu-rays and DVDs are pictures. Captionist reads them and saves an SRT file you can edit, translate and play anywhere.

Free to use, forever. €6 once makes the reminder go away. macOS 13 or later, Apple Silicon and Intel.

Free to use, forever. A licence (€6, once) only makes the reminder go away; you can buy one after the beta. macOS 13 or later, Apple Silicon and Intel.

Sintel.eng.srtreading track 3 · English
24
00:09:17,600 --> 00:09:19,500
Scales!
25
00:10:21,600 --> 00:10:24,000
Scales?
Stills and subtitles from Sintel © Blender Foundation · durian.blender.org · CC BY 3.0
How it works

Open, tick, done.

  1. Open your ripAn MKV straight from MakeMKV, an M2TS, a .sup, or a DVD .idx and .sub pair.
  2. Tick the tracks you wantCaptionist shows every picture-subtitle track, with its language, and whether it's forced or the default.
  3. Extract to SRTThe SRT lands next to the video, named so Plex, Jellyfin and Infuse find it on their own.
Features

Made for people who rip their own discs.

I rip my own discs, and I wanted subtitles I could use straight away, without fixing them by hand. Captionist is the app I made for that.

Reads every disc format

Blu-ray and 4K UHD subtitles (PGS) and DVD subtitles (VobSub). Captionist reads MKV and M2TS files itself. There's no ffmpeg or other tool to install.

MKV · MKS · WebM · M2TS · MTS · TS .sup · .idx + .sub

Accurate, and offline

Text is read with the recognition built into macOS, the same engine as Live Text. Your films never leave your Mac. Timing is copied exactly from the disc.

Blu-ray 00:47:12,375 --> 00:47:14,958 SRT 00:47:12,375 --> 00:47:14,958

Teach it a font once

Some subtitle fonts confuse every reader. In Learned Characters mode, Captionist shows you a character it doesn't know. You type it, and it remembers it for every film after that.

What is this character?éReturnAsked once. 412 characters learned so far.

Clean up hearing-impaired extras

Remove sound descriptions, speaker labels, music lines and "subtitles by" notices. Timings never change, and the subtitles that are left are renumbered.

[door slams] JOHN: I said I'd be there (sighs). ♪ Soft piano music ♪

British or American spelling

Switch a whole file to British or American spelling, offline. Words whose spelling depends on meaning, like check and cheque, are left alone.

The color colour of the center centre. We organized organised it.

Translate with the AI you choose

Use your own key for ChatGPT, Claude, Gemini, Mistral or DeepL, or a model on your own Mac with Ollama or LM Studio. Captionist checks that every subtitle comes back and puts the original timings back itself.

Film.deu.srt 1,204 subtitles Film.eng.srt 1,204 subtitles
Accessibility

Subtitles are an accessibility tool. The app should be one too.

  • Works with VoiceOverEvery button, checkbox and status has a spoken name. A track checkbox says which track it is.
  • Tells you when a job is doneReading a whole film takes a while. VoiceOver announces when it's finished, so you can do something else.
  • Keyboard all the wayReturn and Escape work in every dialogue. The character question window is typed into directly.
  • Never colour aloneStatus colours always come with an icon or a word.
VoiceOver

Extract Dutch, track 3. Checkbox, checked.

Film.nld.srt is done.

Character é. Used 38 times. Actions available.

⌘ OOpen a video ⇧ ⌘ LLearned Characters ⌘ ZUndo your last answer ReturnConfirm a character
AppleScript · Shortcuts · Automator · Folder Actions

Recipes for doing it without clicking.

Captionist has three AppleScript commands: extract subtitles, clean subtitles and translate subtitles. Scripted jobs show up in the window like any other. Copy a recipe, change the language, and you're set.

A drop folder for new rips

Every MKV you put in a folder gets English SRTs next to it, cleaned and in British spelling.

Folder Action
  1. Open Script Editor, paste this and save it in ~/Library/Scripts/Folder Action Scripts/.
  2. Right-click your rips folder in Finder → Services → Folder Actions Setup, and attach the script.
on adding folder items to theFolder after receiving addedItems
	repeat with anItem in addedItems
		set thePath to POSIX path of anItem
		if thePath ends with ".mkv" then
			with timeout of 7200 seconds
				tell application "Captionist"
					set srtFiles to extract subtitles thePath language "eng"
					repeat with srt in srtFiles
						clean subtitles (srt as text) spelling "British"
					end repeat
				end tell
			end timeout
		end if
	end repeat
end adding folder items to

"Get subtitles" in the Finder's Quick Actions

Right-click any MKV, choose the shortcut, and the SRTs appear next to it.

Shortcuts
  1. Make a new shortcut. In its details, turn on Use as Quick Action and choose Finder, receiving Files.
  2. Add the Run AppleScript action and paste this in.
on run {input, parameters}
	set made to {}
	tell application "Captionist"
		with timeout of 7200 seconds
			repeat with f in input
				set made to made & (extract subtitles (POSIX path of f) with overwriting)
			end repeat
		end timeout
	end tell
	return made
end run

A foreign disc, in your language

Read the German subtitles of a disc bought abroad, then translate them into British English with your AI service.

Script Editor
  1. Set up your AI service and key once in Captionist's Clean & Translate tab.
  2. Run this in Script Editor, or save it as an app.
set theFilm to POSIX path of (choose file with prompt "Choose a film")
tell application "Captionist"
	with timeout of 7200 seconds
		set german to item 1 of (extract subtitles theFilm language "deu")
		translate subtitles german language "en-GB" with cleaning
	end timeout
end tell

A whole season at once

Choose a folder and Captionist works through every episode, skipping any that already have subtitles.

Script Editor
set theFolder to choose folder with prompt "Folder with episodes"
tell application "Finder" to set episodes to (every file of theFolder whose name extension is "mkv") as alias list
tell application "Captionist"
	with timeout of 36000 seconds
		repeat with ep in episodes
			try
				extract subtitles (POSIX path of ep) language "eng"
			end try -- already done: Captionist won't overwrite it
		end repeat
	end timeout
end tell
Price

The price of a Big Mac. Once.

Captionist is free to use, with every feature. When you open a file, a short reminder asks you to support the app, and after ten seconds you can carry on. If it saves you time, €6 makes the reminder go away. There's no subscription.

Free

Every feature, with this reminder when you open a file:
Captionist is free to use If it saves you time, please support my work: €6, about the price of a Big Mac. A one-time payment, no subscription.
I Have a Key…Continue for Free (7)Support Captionist
Download Captionist DMG · macOS 13 or later · Apple Silicon and Intel

Supporter

€6one-time, for all your Macs
Buying opens after the beta You can't buy a licence during the beta yet. Captionist is free to use either way, now and after the beta: a licence only removes the reminder. Beta testers get one for free. Thank you for helping test it!
Your licence is tied to this address and sent here.
BancontactiDEALApple PayCardPayPal

After paying, a button opens Captionist and activates it. The key is in your email too.

Questions

Good to know

Does anything get uploaded?

No. Reading subtitles happens on your Mac. Only if you choose AI translation is the subtitle text sent, to the service you picked and with your own key.

Which Macs does it run on?

Any Mac with macOS 13 Ventura or later, Apple Silicon or Intel.

What about MP4 or VOB files?

MP4 files don't carry Blu-ray or DVD subtitles. For DVDs, rip to MKV with MakeMKV first: a bare VOB keeps its colours in a separate file.

I lost my licence key.

Email me from the address you paid with and I'll send it again.

Does a licence work on more than one Mac?

Yes, on all your own Macs.

Can I suggest a feature?

Please do. In the app, choose Help → Send Feedback. It adds your app and macOS version, so I can help faster.