falVideo to videoAvailable now

veed/subtitles

veed/subtitles is a video to video tool from fal that runs in the background and returns video. Pay as you go from $0.13 per fal unit ($0.10), with one API key.

Try itfrom $0.13 / fal unit ($0.10)

Pricing

$0.13 per started minute of video, minimum 1 minute. An animated preset costs $0.26 per minute, and translation_language adds $0.26 per minute. Prices double above 1080p. The final charge comes from usage.

Limits

Runs
In the background
Returns
video
Longest queue wait
3600s
Run deadline
1800s
Largest inline input
1024 KB
Largest input file
500 MB
Largest output
4768 MB
Outputs per run
16

Input

FieldKindDefaultDescription
video_url requiredURL or file—Upload or paste a URL to the video you want to subtitle.
preset requiredone of
glass, whisper, glide2, fusion, glide, terminal, handwritten, backdrop, backdrop2, simple, plain, beans, corpo, boo, shadeplay, casper, capri, lowkey, vinta, diego, ali, slay, kitty, hustle, karl, sprout, flex, mint, rizz, vegas
—Each style defines fonts, colors, layout, and animation. Two tiers with different pricing: - Dynamic presets (2x multiplier): glass, whisper, glide2, fusion, glide, terminal, handwritten, backdrop, backdrop2. Richer, context-aware rendering that adapts to the input. - Basic presets (1x multiplier): simple, plain, beans, corpo, boo, shadeplay, casper, capri, lowkey, vinta, diego, ali, slay, kitty, hustle, karl, sprout, flex, mint, rizz, vegas. Fixed, lightweight styling with predictable output.
languageone of
af-ZA, am-ET, ar-AE, ar-BH, ar-DZ, ar-EG, ar-IL, ar-IQ, ar-JO, ar-KW, ar-LB, ar-MA, ar-OM, ar-PS, ar-QA, ar-SA, ar-TN, ast-ES, az-AZ, ba, bas, be-BY, bg-BG, br, bs-BA, ca-ES, ceb-PH, ckb-IQ, cs-CZ, cy-GB, da-DK, de-DE, dyu, el-GR, en-AU, en-GB, en-IN, en-NZ, en-US, eo, es-AR, es-BO, es-CL, es-CO, es-CR, es-DO, es-EC, es-ES, es-GT, es-HN, es-MX, es-NI, es-PA, es-PE, es-PR, es-PY, es-SV, es-US, es-UY, es-VE, et-EE, eu-ES, fa-IR, ff, fi-FI, fil-PH, fo, fr-CA, fr-FR, fy, ga, gd, gl-ES, ha-NG, haw, he-IL, hr-HR, hsb, ht, hu-HU, hy-AM, id-ID, ig, is-IS, it-IT, ja-JP, ja-Latn-JP, jv-ID, ka-GE, kab, kam-KE, kea-CV, kk-KZ, ko-KR, ku, ky-KG, la, lb-LU, lg, lij, ln-CD, lo-LA, lt-LT, luo-KE, lv-LV, mg, mi-NZ, mk-MK, mn-MN, ms-MY, mt-MT, nb-NO, nl-NL, nso-ZA, ny-MW, oc-FR, pl-PL, ps-AF, pt-BR, pt-PT, ro-RO, roh, ru-RU, rw-RW, sah, sk-SK, sl-SI, sm, sn-ZW, so-SO, sq-AL, sr-Latn-RS, sr-RS, srd, ss, su-ID, sv-SE, sw-KE, sw-TZ, tg-TJ, th-TH, tk, tn, tok, ton, tr-TR, ts-ZA, tt, uk-UA, umb-AO, ur-IN, ur-PK, uz-UZ, vi-VN, vro, wo-SN, xh-ZA, yi, yo-NG, yue-Hant-HK, zh, zh-HK, zh-TW, zu-ZA
—Improves transcription accuracy, and should match the source audio (not output subtitles).
translation_languageone of
ab, ace, ach, af-ZA, ak, alz, am-ET, ar-AE, ar-BH, ar-DZ, ar-EG, ar-IL, ar-IQ, ar-JO, ar-KW, ar-LB, ar-MA, ar-OM, ar-PS, ar-QA, ar-SA, ar-TN, awa, ay, az-AZ, ban, bbc, be-BY, bem, bew, bg-BG, bho, bik, bm, bs-BA, bts, btx, bua, ca-ES, ceb-PH, cgg, chm, ckb-IQ, cnh, co, crh, crs, cs-CZ, cv, cy-GB, da-DK, de-DE, din, doi, dov, dv, dz, ee, el-GR, en-AU, en-GB, en-IN, en-NZ, en-US, eo, es-AR, es-BO, es-CL, es-CO, es-CR, es-DO, es-EC, es-ES, es-GT, es-HN, es-MX, es-NI, es-PA, es-PE, es-PR, es-PY, es-SV, es-US, es-UY, es-VE, et-EE, eu-ES, fa-IR, ff, fi-FI, fil-PH, fj, fr-CA, fr-FR, fy, ga, gaa, gd, gl-ES, gn, gom, ha-NG, haw, he-IL, hil, hmn, hr-HR, hrx, ht, hu-HU, hy-AM, id-ID, ig, ilo, is-IS, it-IT, ja-JP, ja-Latn-JP, jv-ID, ka-GE, kk-KZ, ko-KR, kri, ktu, ku, ky-KG, la, lb-LU, lg, li, lij, lmo, ln-CD, lo-LA, lt-LT, ltg, luo-KE, lus, lv-LV, mai, mak, mg, mi-NZ, min, mk-MK, mn-MN, mni-Mtei, ms-Arab, ms-MY, mt-MT, nb-NO, new, nl-NL, nr, nso-ZA, nus, ny-MW, oc-FR, om, pag, pam, pap, pl-PL, ps-AF, pt-BR, pt-PT, qu, rn, ro-RO, rom, ru-RU, rw-RW, scn, sg, shn, sk-SK, sl-SI, sm, sn-ZW, so-SO, sq-AL, sr-Latn-RS, sr-RS, ss, st, su-ID, sv-SE, sw-KE, sw-TZ, szl, tet, tg-TJ, th-TH, ti, tk, tn, tr-TR, ts-ZA, tt, ug, uk-UA, ur-IN, ur-PK, uz-UZ, vi-VN, xh-ZA, yi, yo-NG, yua, yue-Hant-HK, zh, zh-HK, zh-TW, zu-ZA
—Translate the subtitles into this language. Omit to keep the original spoken language. If you also pass srt_content or srt_file_url, set `language` to its source language for the most reliable translation.
srt_file_urlURL or file—Upload or paste a URL to your .srt subtitles file. When provided, transcription is skipped.
srt_contenttext—Paste raw SRT subtitle text. Alternative to srt_file_url. When provided, transcription is skipped.
vocabularyJSON—Optional list of terms to help auto-transcription correctly recognise brand names and domain jargon that providers commonly mis-spell (e.g. "VEED" → "vid"). Ignored when srt_content / srt_file_url is set.
customizationJSON—Optional preset overrides: vertical position, shadow intensity, and per-tier text styling (font, weight, hex colour) for each word-importance tier. Any omitted field keeps the preset's default.

Same request in code

curl https://api.spiral.ai/v1/runs \
  -H "Authorization: Bearer $SPIRAL_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "provider": "fal",
    "model": "veed/subtitles",
    "input": {
      "video_url": "https://v3b.fal.media/files/b/0a967ce5/iARc_J0kLN9OEmiXnxT3l_substyle-example-input.mp4",
      "preset": "glass"
    }
  }'