Does HeyGen do captions? What its video API returns

Yes. HeyGen's v3 video API returns an SRT subtitle file when you set caption, and burns captions into the video when you also set a style.

4 min readSume
All posts

Yes, HeyGen does captions. On its v3 create-video API, a caption setting always returns a separate SRT subtitle file, and adding a caption style also burns the captions into the rendered video. With a style set, you get both the SRT file and the captioned video back.

The HeyGen facts below come only from HeyGen's own API reference, read on 2026-09-29: Create Video, Get Video and the Endpoint Version Comparison. HeyGen's in-app caption tools aren't described on those pages, so this post covers the API only. The Sume part comes from Avatar video previews and Video captions.

How do I add captions with the HeyGen API?

Add a caption object to POST /v3/videos. The reference lists it on the avatar, image and studio request types. It says: "A sidecar subtitle file is always returned via subtitle_url; set 'style' to additionally burn captions into the rendered video." When the video is done, GET /v3/videos/{video_id} returns the links.

From HeyGen's Create Video and Get Video references, read 2026-09-29.
FieldWhereWhat HeyGen's reference says
caption (on POST /v3/videos)RequestTurns captions on. A sidecar subtitle file is always returned
caption.file_formatRequestFormat of the sidecar file; srt is the only listed value and the default
caption.styleRequestSet it (default is the listed value) to also burn captions into the video; omit it for a sidecar only
subtitle_urlGET /v3/videos/{video_id}Presigned URL to download the SRT subtitle file
captioned_video_urlGET /v3/videos/{video_id}Presigned URL to download the video with captions burned in

Can HeyGen burn subtitles into the video, or only give a file?

Both, and you choose. Without style you get sidecar-only captions: the SRT file, which a player shows as a toggleable track. With style set, HeyGen burns the captions into the pixels and still delivers the sidecar. The hard vs soft subtitles post explains when each kind fits.

Both links are presigned URLs, so download the files you want to keep.

Do HeyGen captions match the audio exactly?

Not always. A brand glossary changes how custom terms are pronounced, but HeyGen says pronunciation applies to the synthesized audio only, "so caption and subtitle text still show the original script wording". If your script spells a brand name one way and the voice says it another, the captions follow the script.

For translated videos, HeyGen's v3 translation detail response carries srt_caption_url and vtt_caption_url.

How do captions work on Sume's avatar videos?

On Sume, captions are their own step. Two documented paths:

  • Previews: store caption intent when you create an avatar video preview, then captions apply at generate-video. Preview stills are never caption-burned (Avatar video previews).
  • Caption job: POST /v1/video-captions burns captions onto a finished clip at a public HTTPS video_url (Video captions). How to burn captions onto a video walks through the request.
  • In current code the direct talking-video create doesn't accept a captions field, so use one of the two paths above.
  • In current code the caption job refuses a source over 60 seconds and a source with no audio stream. Split longer videos first, as in captions for long videos.
  • Sume's caption job returns a captioned video_url; SRT uploads are unsupported as input.

Sources

Related posts

More in Sume Avatar 1.0

All Sume Avatar 1.0 posts

Written by Sume