Video Analysis API docs
The Video Analysis API analyzes a video once and returns its breakdown as JSON: the transcript with a time for every word, every cut and what kind it is, the shots and scenes, every caption and graphic on the picture with its box and its times, and the cast with a crop of each appearance. A model or a program works from that instead of from the video.
Quick start
You need an API key. Create one on the platform. New accounts start with $5 of credit. The base URL is https://api.videoanalysisapi.com.
-
Declare the file and get a URL to upload it to:
curl -X POST https://api.videoanalysisapi.com/v1/uploads \ -H "Authorization: Bearer va_live_…" -H "Content-Type: application/json" \ -d '{"filename":"clip.mp4","bytes":2812322}'The response contains
upload_idandupload.url. -
Put the file's bytes to that URL. This request needs no API key:
curl -X PUT "$UPLOAD_URL" -H "Content-Type: video/mp4" --data-binary @clip.mp4 -
Start the analysis:
curl -X POST https://api.videoanalysisapi.com/v1/analyses \ -H "Authorization: Bearer va_live_…" -H "Content-Type: application/json" \ -d '{"upload_id":"up_…"}'The response contains the job's
id. PollGET /v1/analyses/:iduntilstatusisdone. The 13-second video on the Example page took about 50 seconds. -
Fetch the result:
curl "https://api.videoanalysisapi.com/v1/analyses/an_…/result" \ -H "Authorization: Bearer va_live_…" -o clip.jsonAdd
?format=textfor the same facts as a document to read.
If the video is already at a public https URL, skip steps 1 and 2 and send {"url":"https://…"} in step 3.
The API holds the job's estimated price when it accepts the job and charges the actual cost when the job ends. A failed job costs nothing, and a video you have already analyzed is free.
Where to go next
- Route reference Every route, with request and response bodies, error codes, and rate limits.
- The result What comes back, field by field.
- Pricing One price per minute of video, the credit packs, and the limits.
- Example A real video's result, whole.