Home → Blog → How to add subtitles to short vertical videos quickly
How to add subtitles to short vertical videos quickly
Short videos are watched on mute — by most estimates up to three quarters of views happen without sound. A clip without captions gets scrolled past in a second. Here is how to generate captions automatically and burn them into the frame with one command.
The ready-made subtitle file
The shortest path is asking for a subtitle format directly, so the timing work is already done:
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="your key")
with open("reel.mp4", "rb") as f:
srt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="srt")
open("reel.srt", "w", encoding="utf-8").write(srt)
You can send the video file as is when it fits the size limit. For longer clips, extract the audio track first — it is twenty times lighter.
Why default lines are too long
Out-of-the-box subtitles assume horizontal video: 40–50 characters per line. On a vertical screen that eats half the frame and reads badly. Short-form needs phrases of three to five words that change quickly.
Ask for segments and rebuild the line breaks yourself:
r = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="verbose_json")
for seg in r.segments:
words = seg["text"].split()
step = (seg["end"] - seg["start"]) / max(len(words), 1)
for i in range(0, len(words), 4):
chunk = " ".join(words[i:i+4])
print(round(seg["start"] + i * step, 2), chunk)
The result is short phrases with their own on-screen time — exactly what the vertical format needs.
Burn captions into the video
Platforms do not always render an uploaded subtitle file, so burning the text into the picture is the safer route:
ffmpeg -i reel.mp4 -vf "subtitles=reel.srt:force_style='FontSize=16,Bold=1,Alignment=2,MarginV=90,Outline=2'" -c:a copy reel-sub.mp4
Alignment=2 pins the text bottom-centre, MarginV lifts it above the player controls, and Outline gives the stroke that keeps text readable on any background.
Check before you publish
- Names and brands. Pass them as a prompt up front instead of fixing them by hand afterwards.
- Safe area. Captions must clear the platform interface — leave room at the bottom.
- Reading speed. A line needs at least a second on screen or nobody can physically read it.
- Language. If the clip mixes languages, keep them in separate caption tracks.
Try it on your own recordings. Sign-up takes a minute, and the free minutes are enough to judge the quality.
Get a free API keyFrequently asked questions
Can I upload the video file instead of audio?
Yes, as long as it fits the size limit. Extracting the audio saves upload time and gives an identical transcript.
What is the difference between srt and vtt?
Two caption formats with nearly the same structure. srt is more portable across editors, vtt is native to web players.
How do I get word-by-word captions?
Request segments and split the text into groups of three to five words, distributing the segment duration proportionally.
What does a one-minute clip cost?
Billing is per minute of audio, so a one-minute clip costs one minute. The free minutes new accounts get cover dozens of clips.
Related reading
- Automatic SRT and VTT subtitles from video and webinars — How to get ready-made timed subtitles from a webinar or a video: extracting the audio track, SRT versus VTT, code samples and fixes for the usual problems.
- How to transcribe a YouTube video to text — Three ways to get the text of a YouTube video: the built-in captions, downloading the audio track, and an API for bulk work — with code and the limits of each.
- Video transcripts on your site: why SEO needs them — How a video transcript brings search traffic: page structure, markup, timestamps and the common mistakes that make the text useless for ranking.