Skip to main content

Captions

You can add captions to your video using the caption asset. Captions can can be created automatically or included manually by referencing a link to an SRT or VTT file. The caption asset provides for a range of styling options.

Manual Captions

You can add captions with simple styling to your video by referencing an srt or vtt file:

{
"timeline": {
"tracks": [
{
"clips": [
{
"asset": {
"type": "caption",
"src": "https://shotstack-assets.s3.amazonaws.com/captions/transcript.srt"
},
"start": 0,
"length": "end"
}
]
},
{
"clips": [
{
"asset": {
"type": "video",
"src": "https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4"
},
"start": 0,
"length": 25.9
}
]
}
]
},
"output": {
"format": "mp4",
"size": {
"width": 1280,
"height": 720
}
}
}

Automatic Captions

You can automatically generate captions based on audio clips used elsewhere in your edit by referencing the clip through its alias.

Shotstack will automatically try to detect the language used.

Declaring an alias

To assign an alias to a clip, set the alias property like this:

{
"alias": "speech",
"asset": {
"type": "video",
"src": "https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4"
},
"start": 0,
"length": 25.9
}
Info

Only audio, video and text-to-speech clips allow an alias to be set.

Referencing an alias

You can reference the alias by adding it directly into the src property of your caption asset:

{
"clips": [
{
"asset": {
"type": "caption",
"src": "alias://speech"
},
"start": 0,
"length": "end"
}
]
},

Caption Styling

You can customize your captions with various styling options, including custom fonts, positioning, and text formatting. These options allow you to create captions that match your video’s design and give them a distinctive look.

Using a custom font

You can use a custom font by referencing it in the family attribute of the font property. You can further style the caption by adjusting the color, size and lineHeight attribute:

{
"timeline": {
"fonts": [
{
"src": "https://shotstack-assets.s3-ap-southeast-2.amazonaws.com/fonts/LilitaOne-Regular.ttf"
}
],
"tracks": [
{
"clips": [
{
"asset": {
"type": "caption",
"src": "https://shotstack-assets.s3.amazonaws.com/captions/transcript.srt",
"font": {
"color": "#c0392b",
"family": "Lilita One",
"lineHeight": 1,
"size": 20
}
},
"start": 0,
"length": "end"
}
]
},
{
"clips": [
{
"asset": {
"type": "video",
"src": "https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4"
},
"start": 0,
"length": "auto"
}
]
}
]
},
"output": {
"format": "mp4",
"size": {
"width": 1280,
"height": 720
}
}
}

Adding stroke

You can add a stroke to your captions by adding the stroke and strokeWidth to the font property:

{
"timeline": {
"tracks": [
{
"clips": [
{
"asset": {
"type": "caption",
"src": "https://shotstack-assets.s3.amazonaws.com/captions/transcript.srt",
"font": {
"stroke": "#000000",
"strokeWidth": 0.5
}
},
"start": 0,
"length": "end"
}
]
},
{
"clips": [
{
"asset": {
"type": "video",
"src": "https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4"
},
"start": 0,
"length": "auto"
}
]
}
]
},
"output": {
"format": "mp4",
"size": {
"width": 1280,
"height": 720
}
}
}

Add a background

You can add a background to your captions and set the padding, border radius, color, and opacity:

{
"timeline": {
"tracks": [
{
"clips": [
{
"asset": {
"type": "caption",
"src": "https://shotstack-assets.s3.amazonaws.com/captions/transcript.srt",
"background": {
"color": "#000000",
"padding": 20,
"borderRadius": 18,
"opacity": 0.6
}
},
"start": 0,
"length": "end"
}
]
},
{
"clips": [
{
"asset": {
"type": "video",
"src": "https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4"
},
"start": 0,
"length": "auto"
}
]
}
]
},
"output": {
"format": "mp4",
"size": {
"width": 1280,
"height": 720
}
}
}

Using custom positioning and dimensions

You can set the position of the captions within the video using the offset and position property, and use width and height to change the dimensions of container holding the captions.

{
"timeline": {
"background": "#FFFFFF",
"tracks": [
{
"clips": [
{
"length": "end",
"asset": {
"type": "caption",
"src": "https://shotstack-assets.s3.amazonaws.com/captions/transcript.srt",
"width": 500,
"font": {
"family": "Montserrat ExtraBold",
"size": "50",
"lineHeight": 1
},
"alignment": {
"horizontal": "left"
}
},
"offset": {
"x": 0.1,
"y": 0.1
},
"start": 0,
"position": "left"
}
]
},
{
"clips": [
{
"asset": {
"type": "video",
"src": "https://github.com/shotstack/test-media/raw/main/captioning/scott-ko.mp4"
},
"start": 0,
"length": "auto"
}
]
}
]
},
"output": {
"format": "mp4",
"size": {
"width": 1280,
"height": 720
}
}
}