Media (images, audio, video)
Analyze Video
Summarise a video, split it into scenes with timestamps, list labels and on-screen text, save key frames, or answer a question about it.
Analyze Video (media_analyze_video) understands a video. Google Gemini watches the whole video; other providers that can analyse images look at frames sampled evenly from it (this needs FFmpeg on the server).
Inputs
AI provider (integration_id): one of the workspace's integrations made from a media-capable connector — see Provider setup. It is chosen in the designer (not an expression). The picker lists only connections that can do the step, and warns when the chosen provider cannot do a feature you picked.
Video (source): A file object (a form's Attachments field such as {{form.recording}}, or a file from another step), a list of files (the first is used), a storage:// reference, an http(s) URL (fetched through the egress guard) or base64 content. Files are read for the run's workspace only — the same rules as the document actions.
Options
| Setting | Key | Default | What it does |
|---|---|---|---|
| Find | features | ["summary", "scenes"] | Any of summary, scenes, labels, text (on-screen text) |
| Question or instruction | prompt | — | Answered in answer |
| Answer fields | fields | — | As for Analyze Image |
| Max frames | max_frames | 12 | 1–60; frames sampled for providers that cannot watch a whole video |
| Save key frames | keyframes | off | Stores key frames as image files |
| Model | model | the provider's default | |
| Run | run_mode | auto | auto, inline or background |
| Output variable | output_var | video_analysis |
Run (run_mode): auto (default) runs the step in the background when the media is longer than MEDIA_INLINE_MAX_SECONDS (300 seconds) or the provider works as an asynchronous job, and the run continues when it finishes; inline always waits in the step; background always hands it to a job. Background needs a saved workflow run — Save & Test always runs inline.
Outputs
| Variable | Contents |
|---|---|
{{video_analysis}} | summary, scenes (start, end, title, description), labels (name, confidence, times), text (text, start, end), keyframes, answer, duration, frames_analysed, method (native or frames), provider, model, cost |
{{video_analysis_summary}} | The summary |
{{video_analysis_scenes}} | Scenes — loop over them |
{{video_analysis_keyframes}} | Key frame images (each with time) |
{{video_analysis_answer}} | The answer to the prompt |
Example
{
"type": "media_analyze_video",
"label": "Chapters",
"config": {
"integration_id": "<integration-id>",
"source": "{{form.video}}",
"features": ["summary", "scenes"],
"keyframes": true
}
}