Skip to content

Workflow Utilities Auto Subtitle

Integrate

Model id workflow-utilities/auto-subtitle
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/workflow-utilities/auto-subtitle?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.005 5 API credits your files are measured before the run Run it on this page

Get API key
Utility · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required video_url
Drop a file, or

Video URL for automatic subtitle addition.

Advanced font_weight · position · language · font_name · font_color · highlight_color · stroke_color · background_color · font_size · stroke_width · background_opacity · y_offset · words_per_subtitle · enable_animation
font_weight default bold

Text weight; typical TikTok styling uses bold or black.

position default bottom

Placement of subtitles along the vertical axis.

default en

Transcription language identifier, such as 'en', 'es', 'fr', 'de', 'it', 'pt', 'nl', 'ja', 'zh', or 'ko'. A 3-letter ISO identifier such as 'eng', 'spa', or 'fra' is also accepted.

default Montserrat

Font name selected from fonts.google.com; any Google Font is accepted, including 'Montserrat', 'Poppins', and 'BBH Sans Hegarty'.

default white

Color used for subtitle words that are not active.

default purple

Karaoke-style highlight color applied to the word being spoken.

default black

Color applied to the text outline or stroke.

default none

Color of the background behind the text; 'none' and 'transparent' both disable the background.

default 100

Subtitle font size; TikTok styling uses bigger text.

default 3

Width of the text outline or stroke, measured in pixels; 0 disables it.

default 0

Opacity of the background, with 0.0 meaning fully transparent and 1.0 meaning fully opaque.

default 75

Vertical displacement in pixels; positive values shift downward, while negative values shift upward.

default 3

Subtitle word-count cap, allowing single-word display at 1, short-phrase display at 2–3, or full-sentence display at 8–12 words per segment.

POST /run/workflow-utilities/auto-subtitle?wait=20 quote → $0.005
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/workflow-utilities/auto-subtitle?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Workflow Utilities Auto Subtitle

Transcribes the speech in a video and burns in subtitles with the currently spoken word highlighted. Style options include any Google Font name, size 20-150, weight, text and highlight colors, stroke, background color and opacity, and top, center or bottom placement with a vertical offset. `words_per_subtitle` ranges from 1 to 12, and a bounce animation can be turned on or off. Also returns the transcription and word timings.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
video_urlrequired video
Typeurl · video
Video URL for automatic subtitle addition.
languageoptional
Typestring
Defaulten
Transcription language identifier, such as 'en', 'es', 'fr', 'de', 'it', 'pt', 'nl', 'ja', 'zh', or 'ko'. A 3-letter ISO identifier such as 'eng', 'spa', or 'fra' is also accepted.
font_nameoptional
Typestring
DefaultMontserrat
Font name selected from fonts.google.com; any Google Font is accepted, including 'Montserrat', 'Poppins', and 'BBH Sans Hegarty'.
font_sizeoptional
Typeinteger
Default100
20 – 150
Subtitle font size; TikTok styling uses bigger text.
font_weightoptional
Typeenum
Defaultbold
normalboldblack
Text weight; typical TikTok styling uses bold or black.
font_coloroptional
Typeenum
Defaultwhite
whiteblackredgreenblueyelloworangepurplepinkbrowngraycyanmagenta
Color used for subtitle words that are not active.
highlight_coloroptional
Typeenum
Defaultpurple
whiteblackredgreenblueyelloworangepurplepinkbrowngraycyanmagenta
Karaoke-style highlight color applied to the word being spoken.
stroke_widthoptional
Typeinteger
Default3
0 – 10
Width of the text outline or stroke, measured in pixels; 0 disables it.
stroke_coloroptional
Typeenum
Defaultblack
blackwhiteredgreenblueyelloworangepurplepinkbrowngraycyanmagenta
Color applied to the text outline or stroke.
background_coloroptional
Typeenum
Defaultnone
blackwhiteredgreenblueyelloworangepurplepinkbrowngraycyanmagentanonetransparent
Color of the background behind the text; 'none' and 'transparent' both disable the background.
background_opacityoptional
Typenumber
Default0
0 – 1
Opacity of the background, with 0.0 meaning fully transparent and 1.0 meaning fully opaque.
positionoptional
Typeenum
Defaultbottom
topcenterbottom
Placement of subtitles along the vertical axis.
y_offsetoptional
Typeinteger
Default75
-200 – 200
Vertical displacement in pixels; positive values shift downward, while negative values shift upward.
words_per_subtitleoptional
Typeinteger
Default3
1 – 12
Subtitle word-count cap, allowing single-word display at 1, short-phrase display at 2–3, or full-sentence display at 8–12 words per segment.
enable_animationoptional
Typeboolean
Defaulttrue
Enables subtitle animation with a bouncing entrance effect.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "workflow-utilities/auto-subtitle",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 5,
    "usd": "0.005",
    "charged": 5,
    "refunded": 0
  },
  "input": {
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "transcription": "string",
    "subtitle_count": 1,
    "words": [
      {}
    ],
    "transcription_metadata": {}
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}Video containing automatically generated subtitles.
transcription
stringComplete text of the transcription.
subtitle_count
integerCount of generated subtitle segments.
words
array of object | nullTiming data for individual words supplied by the transcription service.
transcription_metadata
object | nullExtra metadata supplied by ElevenLabs for the transcription, including language, segments, and other details.

More models: Video to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/workflow-utilities/auto-subtitle.md. All models and guides: https://doitong.com/developers/llms.txt