HomeBlog → How to add subtitles to short vertical videos quickly

How to add subtitles to short vertical videos quickly

Published 2026-08-20 · 5 min read

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

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 key

Frequently 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