GET

/v1/schemas/fal/video/veed/subtitles

kind inputactivity videohash 78dada1c…extracted Jul 8, 2026version currentsource upstream spec ↗
fieldrecorded source
schemaSource linked above.
Source trace
2fb1b8b9b97ca9a4baae1c39521a5164673f9064eaaecc5961764733107d3205
{
  "fetchedAt": 1783487013,
  "extractorVersion": "1",
  "verifiedAt": null
}

Request body

8 properties · 2 required · 4 $defs
propertytypedescriptionconstraints
preset*enumEach style defines fonts, colors, layout, and animation. Two tiers with different pricing:glass | whisper | glide2 | fusion | glide | terminal · +24 more
video_url*stringUpload or paste a URL to the video you want to subtitle.length ≥ 1 · length ≤ 2083 · format: uri
translation_languageenumTranslate 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.ab | ace | ach | af-ZA | ak | alz · +208 more · nullable
customizationPresetCustomizationRuntime customization of a preset. Fields are Optional all the way down so this block can sit under the playground's 'Additional Settings' section without flagging required-field asterisks the user didn't ask for.nullable
vocabularyVocabularyEntry[]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.items ≤ 100 · nullable
srt_contentstringPaste raw SRT subtitle text. Alternative to srt_file_url. When provided, transcription is skipped.nullable
languageenumImproves transcription accuracy, and should match the source audio (not output subtitles).af-ZA | am-ET | ar-AE | ar-BH | ar-DZ | ar-EG · +158 more · nullable
srt_file_urlstringUpload or paste a URL to your .srt subtitles file. When provided, transcription is skipped.length ≥ 1 · length ≤ 2083 · format: uri · nullable

Types

4 $defs

PresetCustomizationobject

Runtime customization of a preset. Fields are Optional all the way down so this block can sit under the playground's 'Additional Settings' section without flagging required-field asterisks the user didn't ask for.

shadowenumImproves readability over bright or busy backgrounds.none | min | mid | max · nullable
text_customizationsTextCustomizationsText customization keyed by word-importance tier.nullable
positionenumVertical placement of static subtitles on screen.top | center | bottom · nullable

TextCustomizationobject

Per-tier text overrides. No italic field (preset-dictated, see ENR-2516).

fontstringOverride the font used for this text tier. Must be a supported Google Font — see https://www.veed.io/api/v1/subtitle-renders/fonts for the canonical list. Unrecognized fonts are rejected with a 400.nullable
weightintegerFont weight 100-900. Values >= 700 render as bold100 ≤ n ≤ 900 · nullable
colorstringOverride the text color for this tier.nullable

TextCustomizationsobject

Text customization keyed by word-importance tier.

highlightedTextCustomizationPer-tier text overrides. No italic field (preset-dictated, see ENR-2516).nullable
baselineTextCustomizationPer-tier text overrides. No italic field (preset-dictated, see ENR-2516).nullable

VocabularyEntryobject

A term auto-transcription should recognise correctly, plus its common misspellings.

word*stringThe correctly-spelled term. Brand names, product names, and domain jargon work best.length ≥ 1 · length ≤ 100
replaces*string[]Misspellings that should be replaced with `word`. Matched whole-word and case-insensitively — list each misspelling once; you don't need to enumerate casings (e.g. `['vid']` already covers `Vid`, `VID`).items ≥ 1 · items ≤ 20

Validate a payload

before you spend tokens
shell
$ curl -X POST https://modelschemas.com/v1/validate \
    -d '{"provider":"fal","endpointId":"veed/subtitles","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}