Video to captions
LiveSend any video you own. Get timed captions in any language as SRT and VTT, plus an MP4 with the captions burned in.
Video to captions
url- cafe-thai-input-5a9eb959.mp4
The exact price shows once the video's length is read.
Example runAn example run
Thai to English · A real run of this tool. Your own run replaces it.
Caption lines
- 0:00.5–0:03.9สวัสดีค่ะ ยินดีต้อนรับสู่ร้านกาแฟของเราHello, welcome to our coffee shop.
- 0:04.3–0:08.0วันนี้เรามีเค้กช็อกโกแลตตอบใหม่ๆ ลองชิมดูไหมคะToday we have freshly baked chocolate cake. Would you like to try it?
- 0:08.4–0:11.7เรามีกาแฟร้อน ชาไทย และโกโก้เย็นด้วยนะคะWe also have hot coffee, Thai tea, and iced cocoa.
- 0:12.2–0:15.4นั่งตรงไหนก็ได้เลยค่ะ เดี๋ยวพนักงานจะมารับออเดอร์You can sit anywhere. The staff will come take your order shortly.
How it works
- 01Send the videoA link or an upload. Thai, English and more.
- 02We transcribe and translateEvery line timed to the speech, in the languages you pick.
- 03Get the filesSRT, VTT and a burned-in MP4, ready to post.
Call Video to captions from your code
Send a video file (up to 200 MB) or a link, up to 10 minutes; get a task that returns SRT and VTT captions, a translation when you ask for one, and an MP4 with the captions burned in.
https:/ / api.opennan.com/ v1/ pipelines/ video-to-captions/ runsGet an API key
Create a key in the console. It uses the same balance as the playground.
Create a keySend your first request
The same request the playground sends. Set OPENNAN_KEY to your key.
curl https://api.opennan.com/v1/pipelines/video-to-captions/runs \ -H "Authorization: Bearer $OPENNAN_KEY" \ -F [email protected] \ -F target_lang=en # Then poll until "status" is "succeeded" or "failed": curl https://api.opennan.com/v1/tasks/<task id> -H "Authorization: Bearer $OPENNAN_KEY"Poll the task
The call answers right away with a task id. Ask for the task until it finishes:
GEThttps:// api.opennan.com/ v1/ tasks/ {id} - queued
- Waiting for a worker
- running
- Being made
- succeeded
- Done: outputs[].url holds the files
- failed
- Failed: you are not charged
Errors and how to fix them
401Missing or wrong key
Send the header Authorization: Bearer with a key from the console.
402Balance too low
Add credit in Billing, then send the same call again.
400A value is not accepted
Read error.message: it names the field. Use a value from the parameter table.
429Too many requests
Wait a few seconds and try again, waiting longer after each 429.
Add Opennan to your AI app
One install gives your AI every Opennan tool: video, images, chat, voice, music, sound effects, 3D, captions and dubbing. Pick your app and follow the steps.
https:/ / api.opennan.com/ v1/ mcpWorks in the Codex CLI, the Codex app and the Codex IDE extension: they share ~/.codex/config.toml. If the app or IDE does not see OPENNAN_KEY, use the config.toml option with your key in it. Codex asks before each tool call: approve it to go on.
Get an API key
Create a key in the console. It starts with sk- and uses the same balance as the website.
Create a keySave your key as OPENNAN_KEY
# macOS / Linux (zsh shown; bash: ~/.bashrc) echo 'export OPENNAN_KEY="sk-..."' >> ~/.zshrc source ~/.zshrc # Windows (PowerShell), then open a new terminal setx OPENNAN_KEY "sk-..."Install the Opennan plugin: the server plus a skill that teaches your AI to pick models, confirm prices and wait for results
codex plugin marketplace add Opennan/opennan-ai-plugin codex plugin add opennan@opennanOr add only the server
codex mcp add opennan --url https://api.opennan.com/v1/mcp --bearer-token-env-var OPENNAN_KEYOr add this to ~/.codex/config.toml
[mcp_servers.opennan] url = "https://api.opennan.com/v1/mcp" http_headers = { Authorization = "Bearer sk-..." }Check that opennan is listed
codex mcp listRestart Codex, then ask for anything
“Make a 5 second video of rain on a neon street, a song to go with it and a poster image.”
Replace sk-... with your own key and keep it private: anyone who has it can spend your balance. Your app can list the tools before you add a key; making anything needs one.
This tool from your AI
Once Opennan is added, your AI calls this tool with arguments like these.
- Tool
- video_to_captions
- Example arguments
{ "url": "https://example.com/talk.mp4", "target_lang": "en" }
Video to captions: questions
What does Video to captions cost?
$0.00684/min of video, billed by the second. A failed run is not charged.
How do I call it?
Send POST https://api.opennan.com/v1/pipelines/video-to-captions/runs with your API key: the video as a file (multipart, up to 200 MB) or a public https url, up to 10 minutes. It returns a task; poll https://api.opennan.com/v1/tasks/{id} until it is succeeded or failed.
What do I get back?
SRT and VTT captions in the spoken language, the same in the translation's language when you ask for one, an MP4 with the captions burned in, the full transcript, and every line with its start and end time.
Which languages work?
Speech in more than 50 languages, detected on its own or picked by you, including Thai, Chinese, Japanese, Korean, Hindi and Arabic. Burned-in captions are drawn with a font made for each script.
Am I charged when something fails?
No. A run that fails, or a video with no speech in it, is refunded in full, and the reason is shown in plain words.
Can my AI agent use it?
Yes. Point it at the MCP server https://api.opennan.com/v1/mcp (tool video_to_captions), or have it read https://api.opennan.com/llms.txt.