<aside> ⁉️
We are currently aware of some responsiveness issues and intermittent bugs within the fal.ai Playground interface. These are strictly localized to the visual playground UI and do not impact the Subtitle API's underlying performance, stability, or rendering output.
</aside>
The VEED Subtitles API is a video-in / video-out service. You submit a video URL and a preset name; we return an MP4 with professionally styled, burned-in subtitles. The API runs the full pipeline in a single call: transcribe (or accept your SRT) → optionally translate → style → render.
Use cases: automated video production, social media posting, marketing pipelines, content repurposing, localising captions into another language — anywhere you need on-brand burned-in captions at scale.
The API is hosted on fal.ai (model page link TBD). FAL handles authentication, billing, queueing, and client SDKs. VEED handles the processing.
The model path (<MODEL_PATH-tbd>) shown in code examples is a placeholder pending public launch — the general FAL URL structure is final.
curl --request POST \
--url <https://fal.run/><MODEL_PATH-tbd> \
--header "Authorization: Key $FAL_KEY" \
--header "Content-Type: application/json" \
--data '{
"video_url": "<https://example.com/your-video.mp4>",
"preset": "Glass",
"language": "en-US"
}'
video_url and preset are the only required fields. language is optional but recommended — passing the source-audio language up-front improves transcription accuracy.
The endpoint contract — auth, lifecycle, and the request/response shapes.
Authentication is handled by FAL. You authenticate with a FAL Key passed in the Authorization header:
Authorization: Key $FAL_KEY
Get a key from your FAL dashboard. VEED does not issue separate credentials.
The API is asynchronous — video processing can take from seconds to several minutes depending on input length. The FAL clients (fal-client for Python, @fal-ai/client for JS) handle the queue lifecycle for you:
onQueueUpdate callbacks.