Copy a video
LiveSend a video link. Get its shots with start and end times, the action, the camera move, the dialogue and an opening frame for each, plus the characters in it. Paid per started minute of video.
Copy a video
Input
video_urlA public https link to the video.- night-race-input-c33d9d94.mp4Reading the length…
$1.223 per started minute.
These tools need an API key with the api:opennan scope: paste one under Use API key to run them.
4 shots
Length 0:08.00 · No watermark
10:00.00 – 0:01.96
A black classic muscle car and a grey modern sports car sit side-by-side at a red traffic light on a wet, neon-lit city street at night, both stationary with brake lights glowing.
Camera: static low-angle rear shot
20:01.96 – 0:06.42
A dark-haired male driver stares forward with intense, focused eyes reflected in the rain-streaked rearview mirror, his sweaty face framed by blurred neon bokeh behind the wet windshield.
Camera: static extreme close-up, rearview mirror
30:06.42 – 0:07.62
A leather-gloved hand grips a spherical gear shifter and pushes it forward through a gear change, the wrist rotating slightly as the shift completes inside the dark cabin.
Camera: static close-up, gear shifter
40:07.62 – 0:08.00
A leather-gloved hand holds the gear shifter steady in its shifted position inside the dark car interior, the red-trimmed jacket sleeve visible and the cabin otherwise still.
Camera: static close-up, gear shifter
1 character
- Character 1 · A man with dark hair, thick eyebrows, and a sweaty, intense face, seen driving a car at night.
How it works
- 01Send the videoAn https link, trimmed to the part you need.
- 02We break it downEvery cut found, every shot described and checked.
- 03Get the breakdownShots, frames and characters, ready to recreate.
Call Copy a video from your code
One endpoint and one key, on the same balance as the playground. The request below is the example's own.
https:/ / api.opennan.com/ v1/ copy-video/ detectionsGet 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/copy-video/detections \ -H "Authorization: Bearer $OPENNAN_KEY" \ -H "Content-Type: application/json" \ -d '{"video_url":"https://cdn.opennan.com/examples/copy-video-detect/night-race-input-c33d9d94.mp4"}' # 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
- detect_copy_video_shots
- Example arguments
{ "video_url": "https://cdn.opennan.com/examples/copy-video-detect/night-race-input-c33d9d94.mp4" }
Copy a video: questions
How much does Copy a video cost?
$1.223 per minute. The Run button shows the exact price for your input before you start.
How do I call it from my code?
Send POST https://api.opennan.com/v1/copy-video/detections with your API key. It answers with a task id: ask https://api.opennan.com/v1/tasks/{id} until the task succeeds or fails.
Can my AI agent use it?
Yes. Add the MCP server https://api.opennan.com/v1/mcp and call the detect_copy_video_shots tool, or point your agent at https://api.opennan.com/llms.txt.
What happens if a run fails?
A failed run is not charged. You pay only for results.
Which API key do I need?
A key with the api:opennan scope. A full api key does not include it: create one with that scope in the console, then use it here under Use API key or in your code.