Auto Subtitle
Automatically transcribe and add animated karaoke-style subtitles to videos. Supports multiple languages, customizable fonts from Google Fonts, and TikTok-style word highlighting.
Quick Start
Requires an each::labs API key. Get one at eachlabs.ai.
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "auto-subtitle",
"version": "0.0.1",
"input": {
"video_url": "https://example.com/talking-head.mp4",
"language": "en",
"font_name": "Montserrat",
"font_size": 100,
"highlight_color": "purple"
}
}'
Parameters
| Parameter |
Type |
Default |
Description |
| background_color |
string |
none |
Background color behind text. enum: black, white, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta, none, transparent |
| background_opacity |
number |
0 |
Background opacity (0.0 = fully transparent, 1.0 = fully opaque). |
| enable_animation |
boolean |
true |
Enable animation effects for subtitles (bounce style entrance). |
| font_color |
string |
white |
Subtitle text color for non-active words. enum: white, black, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta |
| font_name |
string |
Montserrat |
Any Google Font name from fonts.google.com. |
| font_size |
integer |
100 |
Font size for subtitles. |
| font_weight |
string |
bold |
Font weight. enum: normal, bold, black |
| highlight_color |
string |
purple |
Color for the currently speaking word (karaoke-style). enum: white, black, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta |
| language |
string |
en |
Language code for transcription (e.g., en, es, fr, de). |
| position |
string |
bottom |
Vertical position of subtitles. enum: top, center, bottom |
| stroke_color |
string |
black |
Text stroke/outline color. enum: black, white, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta |
| stroke_width |
integer |
3 |
Text stroke/outline width in pixels (0 for no stroke). |
| video_url |
string |
|
URL of the video file to add subtitles to. |
| words_per_subtitle |
integer |
3 |
Maximum number of words per subtitle segment. Use 1 for single-word display. |
| y_offset |
integer |
75 |
Vertical offset in pixels (positive = move down, negative = move up). |
Examples
TikTok-style centered subtitles:
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "auto-subtitle",
"version": "0.0.1",
"input": {
"video_url": "https://example.com/tiktok-clip.mp4",
"language": "en",
"font_name": "Poppins",
"font_size": 120,
"font_weight": "black",
"font_color": "white",
"highlight_color": "yellow",
"position": "center",
"words_per_subtitle": 2,
"enable_animation": true,
"stroke_width": 4
}
}'
Minimal subtitles with background:
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "auto-subtitle",
"version": "0.0.1",
"input": {
"video_url": "https://example.com/interview.mp4",
"language": "en",
"font_name": "Montserrat",
"font_size": 80,
"font_weight": "normal",
"background_color": "black",
"background_opacity": 0.7,
"position": "bottom",
"words_per_subtitle": 5,
"enable_animation": false
}
}'
Spanish subtitles:
curl -X POST https://api.eachlabs.ai/v1/prediction \
-H "Content-Type: application/json" \
-H "X-API-Key: $EACHLABS_API_KEY" \
-d '{
"model": "auto-subtitle",
"version": "0.0.1",
"input": {
"video_url": "https://example.com/spanish-video.mp4",
"language": "es",
"font_name": "Roboto",
"highlight_color": "red",
"words_per_subtitle": 3
}
}'
Related Models
Documentation
1---2name: auto-subtitle3description: Auto Subtitle. Automatically add animated karaoke-style subtitles to videos. Triggers: subtitles, captions, transcription, video editing, karaoke, TikTok4---56# Auto Subtitle78Automatically transcribe and add animated karaoke-style subtitles to videos. Supports multiple languages, customizable fonts from Google Fonts, and TikTok-style word highlighting.910## Quick Start1112> Requires an each::labs API key. Get one at [eachlabs.ai](https://eachlabs.ai).1314```bash15curl -X POST https://api.eachlabs.ai/v1/prediction \16 -H "Content-Type: application/json" \17 -H "X-API-Key: $EACHLABS_API_KEY" \18 -d '{19 "model": "auto-subtitle",20 "version": "0.0.1",21 "input": {22 "video_url": "https://example.com/talking-head.mp4",23 "language": "en",24 "font_name": "Montserrat",25 "font_size": 100,26 "highlight_color": "purple"27 }28 }'29```3031## Parameters3233| Parameter | Type | Default | Description |34|-----------|------|---------|-------------|35| background_color | string | none | Background color behind text. enum: black, white, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta, none, transparent |36| background_opacity | number | 0 | Background opacity (0.0 = fully transparent, 1.0 = fully opaque). |37| enable_animation | boolean | true | Enable animation effects for subtitles (bounce style entrance). |38| font_color | string | white | Subtitle text color for non-active words. enum: white, black, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta |39| font_name | string | Montserrat | Any Google Font name from fonts.google.com. |40| font_size | integer | 100 | Font size for subtitles. |41| font_weight | string | bold | Font weight. enum: normal, bold, black |42| highlight_color | string | purple | Color for the currently speaking word (karaoke-style). enum: white, black, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta |43| language | string | en | Language code for transcription (e.g., en, es, fr, de). |44| position | string | bottom | Vertical position of subtitles. enum: top, center, bottom |45| stroke_color | string | black | Text stroke/outline color. enum: black, white, red, green, blue, yellow, orange, purple, pink, brown, gray, cyan, magenta |46| stroke_width | integer | 3 | Text stroke/outline width in pixels (0 for no stroke). |47| video_url | string | | URL of the video file to add subtitles to. |48| words_per_subtitle | integer | 3 | Maximum number of words per subtitle segment. Use 1 for single-word display. |49| y_offset | integer | 75 | Vertical offset in pixels (positive = move down, negative = move up). |5051## Examples5253**TikTok-style centered subtitles:**54```bash55curl -X POST https://api.eachlabs.ai/v1/prediction \56 -H "Content-Type: application/json" \57 -H "X-API-Key: $EACHLABS_API_KEY" \58 -d '{59 "model": "auto-subtitle",60 "version": "0.0.1",61 "input": {62 "video_url": "https://example.com/tiktok-clip.mp4",63 "language": "en",64 "font_name": "Poppins",65 "font_size": 120,66 "font_weight": "black",67 "font_color": "white",68 "highlight_color": "yellow",69 "position": "center",70 "words_per_subtitle": 2,71 "enable_animation": true,72 "stroke_width": 473 }74 }'75```7677**Minimal subtitles with background:**78```bash79curl -X POST https://api.eachlabs.ai/v1/prediction \80 -H "Content-Type: application/json" \81 -H "X-API-Key: $EACHLABS_API_KEY" \82 -d '{83 "model": "auto-subtitle",84 "version": "0.0.1",85 "input": {86 "video_url": "https://example.com/interview.mp4",87 "language": "en",88 "font_name": "Montserrat",89 "font_size": 80,90 "font_weight": "normal",91 "background_color": "black",92 "background_opacity": 0.7,93 "position": "bottom",94 "words_per_subtitle": 5,95 "enable_animation": false96 }97 }'98```99100**Spanish subtitles:**101```bash102curl -X POST https://api.eachlabs.ai/v1/prediction \103 -H "Content-Type: application/json" \104 -H "X-API-Key: $EACHLABS_API_KEY" \105 -d '{106 "model": "auto-subtitle",107 "version": "0.0.1",108 "input": {109 "video_url": "https://example.com/spanish-video.mp4",110 "language": "es",111 "font_name": "Roboto",112 "highlight_color": "red",113 "words_per_subtitle": 3114 }115 }'116```117118## Related Models119120- [Elevenlabs Speech to Text](../elevenlabs-speech-to-text/) - Speech transcription121- [Whisper](../whisper/) - Audio transcription122123## Documentation124125- [each::labs Docs](https://docs.eachlabs.ai)126- [API Reference](https://docs.eachlabs.ai/api/overview)