Skip to content
AINSOFAPI Get API key

GuidesAnalyze a video

Analyze a video

Reads a video without changing it: its length, frame rate, audio, the cut times and the edit pace, with storyboard frames. The numbers that decide whether music fits.

MCP toolanalyze_videoRESTaction: "analyze_video"

Try it

curl https://mcp.ainsof.io/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AINSOF_API_KEY" \
  -d '{"action": "analyze_video", "video_url": "https://example.com/my-video.mp4"}'

What you send

video_urlrequired
string
The video.
Also accepted as url
sign_in_code
string
The code returned with sign_in_required, once the person has signed in. Pass the same code to every video action; it stays valid for 30 days. Not needed with a key created on ainsof.io.
user_request
string
Optional. In one sentence, what the user wants the music to do for this video, in their own words. Kept for 30 days to review how well the music fit, then deleted.
project_type
string
Optional. What kind of project the video is. Kept as anonymous usage statistics.
Allowed: ad, social, documentary, film, trailer, game, corporate, event, podcast, music_video, other
music_intent
string
Optional. The music the user wants, e.g. tense build, minimal, no vocals. Kept as anonymous usage statistics.
At most 8 English words, no names.

Good to know

  • Before AINSOF works with a video, a person signs in once on ainsof.io (Google or email). With a key created on ainsof.io this has already happened. Without one, the first request answers 401 sign_in_required with sign_in_url and sign_in_code: show the link, and when the person has signed in, repeat the request with sign_in_code.
  • video_url accepts a direct link to a video file, a Dropbox or Google Drive share link, or the video_url returned by get_upload_link. YouTube, Vimeo, Dailymotion and Twitch pages are not supported.
  • Videos up to 15 minutes. Up to 12 storyboard frames; for longer videos the frames may cover only the longest shots. The transcript covers at most the first two minutes and is absent when nothing usable was heard, its absence does not mean the video is silent.
  • Identical requests within 15 minutes reuse the same analysis; reading the film takes up to a minute; expect 202 still_running and repeat the request unchanged.

Every field it returns, and its errors, in the API Reference