Subtitle API
Subtitle API: timed SRT captions from any audio
Send audio and get back an SRT caption file, timed to the word, ready for any player or editor.
Available now as a local API in the desktop app. Cloud API coming soon.
printf '{"audio_base64": "%s", "return_timestamps": true}' \ "$(base64 < episode.wav | tr -d '\n')" > body.json curl -X POST "http://127.0.0.1:8100/api/v1/transcription/start?sync=true&output_format=srt" \ -H "Content-Type: application/json" \ -d @body.json > episode.srtWhat developers build with it
Captions come from the same word-level timing as the transcript. Caption styles can be saved as presets and reused across projects.
- Caption files generated for every upload in a video pipeline
- Subtitles for course libraries so every lesson is accessible
- Burned-in captions on dubbed videos, in the dubbed language
100:00:00,000 --> 00:00:02,400Welcome back to the channel. 200:00:02,600 --> 00:00:05,100Today we're testing three budget mics.Captioning lots of videos and want a cloud subtitle API?
Endpoints
Subtitle endpoints
| Method | Path | What it does |
|---|---|---|
| POST | /api/v1/transcription/start | Return captions as SRT (sync=true, output_format=srt, return_timestamps=true) |
| GET | /api/v1/subtitles/presets | List saved caption styles |
| POST | /api/v1/subtitles/presets | Save a caption style for reuse |
| POST | /api/v1/dubbing/projects/{project_id}/export | Export a dub with captions burned in |
Cloud API
Join the cloud API waitlist
We're building a cloud API. Pick the features you need and roughly how much you'd use, and your answers decide which ones come first.
FAQ
Common Questions
SRT. Set output_format=srt, sync=true and return_timestamps=true on /api/v1/transcription/start. Without output_format, the same call returns JSON with word-level timestamps.
Yes, for dubs. Export a dubbing project with subtitles set to true and the captions are burned into the exported video in the project's caption style.
Yes. Leave language empty and it detects the language from the audio, or set it yourself when you already know it.
Yes. Save a style once with POST /api/v1/subtitles/presets, then list your saved styles with GET /api/v1/subtitles/presets when you set up the next project.
Explore
Related APIs
Text to speech
Turn text into speech with preset speakers in 10 languages.
Voice cloning
Clone a voice from a short clip and speak new text with it.
Voice design
Describe a voice in words and generate speech in it.
Speech to text
Transcribe audio with word timestamps and speaker labels.
Dubbing
Dub videos into 21 languages, keeping each speaker's voice.
Clips
Cut long videos into short, captioned clips.
AI Cut
Remove silences, filler words and bad takes, then render.
Avatars
Make a lip-synced talking-head video from one photo.
Voice changer
Re-voice a recording while keeping its timing and emotion.
Audiobooks
Narrate a manuscript with a voice for every character.