Media (images, audio, video)

Media actions

Transcribe audio and video, analyse images and video, blur faces, plates and sensitive text, generate images and speech, and trim or convert media inside a workflow run — with your own AI provider.

Eight workflow steps work with images, audio and video. Seven of them use an AI provider you connect with your own API key — OpenAI, Google Gemini, Azure AI, AWS, Deepgram, AssemblyAI, ElevenLabs or Stability AI. The eighth, Media Utilities, runs FFmpeg on the server and needs no provider.

Find them in the designer's palette under Operations, next to the document actions.

The workflow designer with Analyze Image and Redact Image steps; the Redact Image settings show Google Gemini as the AI provider and Faces and Sensitive text selected
An ID photo check: Analyze Image describes the photo, Redact Image blurs the face and ID numbers, Send Email delivers the copy.

New to the media steps? Quick start: transcribe a recording in 3 minutes.

The media actions

NodeTypeWhat it does
Transcribe Audio / Videomedia_transcribeSpeech to text with timestamps, speakers, word timings and SRT / VTT / TXT / JSON files
Analyze Imagemedia_analyze_imageDescribe, label, read text, locate faces and objects and check safety; answer a question, optionally as named fields
Analyze Videomedia_analyze_videoSummary, scenes with timestamps, labels, on-screen text and key frames
Redact Imagemedia_redact_imageBlur, pixelate or box faces, license plates and sensitive text (ID numbers, card numbers…) in an image, or only report where they are
Redact Videomedia_redact_videoThe same over time in a video, and bleep or mute sensitive speech (also in audio-only files)
Generate / Edit Imagemedia_generate_imageCreate images from a prompt, or edit one with a mask
Text to Speechmedia_ttsTurn text into an audio file in a chosen voice
Media Utilitiesmedia_toolsMedia info, extract audio or frames, thumbnail, trim, convert, compress, burn in subtitles

Providers and capabilities

Each provider does some of the work. The designer lists only connections that can do a step and says what the chosen one lacks ("OpenAI cannot locate faces — choose Google Gemini, Azure AI Vision or AWS").

ProviderTranscribeDescribe / label imagesText with positionsFace boxesObject boxesSafetyWhole videoGenerate imagesEdit imagesText to speech
OpenAI✓✓———✓—✓✓✓
Google Gemini✓✓✓✓✓—✓———
Azure AI Speech✓————————✓
Azure AI Vision—✓✓✓✓—————
AWS (Transcribe + Rekognition)✓✓✓✓✓✓————
Deepgram✓————————✓
AssemblyAI✓—————————
ElevenLabs✓————————✓
Stability AI———————✓✓—
StepTypeProviders
Transcribemedia_transcribeOpenAI, Google Gemini, Azure AI Speech, AWS (Transcribe + Rekognition), Deepgram, AssemblyAI, ElevenLabs
Analyze Imagemedia_analyze_imageOpenAI, Google Gemini, Azure AI Vision, AWS (Transcribe + Rekognition)
Analyze Videomedia_analyze_videoOpenAI, Google Gemini, Azure AI Vision, AWS (Transcribe + Rekognition)
Redact Imagemedia_redact_imageGoogle Gemini, Azure AI Vision, AWS (Transcribe + Rekognition)
Redact Videomedia_redact_videoGoogle Gemini, Azure AI Vision, AWS (Transcribe + Rekognition)
Generate / Edit Imagemedia_generate_imageOpenAI, Stability AI
Text to Speechmedia_ttsOpenAI, Azure AI Speech, Deepgram, ElevenLabs
Media Utilitiesmedia_toolsNone needed (FFmpeg on the server)

Faces are located, never identified: no step recognises who a person is.

  • OpenAI — Transcription uploads up to 25 MB per request (longer media is split into chunks). Timed segments with whisper-1 (the default); speaker labels switch to gpt-4o-transcribe-diarize; gpt-4o-transcribe / gpt-4o-mini-transcribe return text without timings. No face or text boxes (redaction needs a provider with boxes). Video is analysed from sampled frames.
  • Google Gemini — Understands whole videos (summary, scenes with timestamps). Face, object and text boxes are located by the model (approximate) — check redactions before relying on them.
  • Azure AI Speech — Fast transcription API (synchronous; diarisation, word timings). Files under 500 MB / 5 hours.
  • Azure AI Vision — Image Analysis 4.0 (caption, tags, objects, Read OCR with word boxes). Face boxes use the Face API detection on the same resource (detection only — no identification). Caption is available in some regions only.
  • AWS (Transcribe + Rekognition) — Transcribe runs as an asynchronous job: media is staged in your S3 bucket and deleted afterwards. Rekognition images up to 5 MB (larger images are downsized).
  • Deepgram — Synchronous pre-recorded transcription with diarisation and word timings.
  • AssemblyAI — Asynchronous: upload, then the step polls (long recordings run in the background).

Set up a provider: Provider setup.

Inputs and outputs

Every media field takes an expression. 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.

Output files (transcript files, redacted copies, generated images, speech, frames, converted media) are saved through the configured storage provider and returned as file objects — the same fields as a form attachment (id, name, size, mime_type, url, storage_ref, checksum_sha256, …) — so a later step can email, store, loop over or analyse them. Frames and key frames also carry time (seconds from the start).

Each step writes its result to its Output variable (output_var) and a few shortcuts next to it, such as {{transcript_text}} and {{transcript_srt}}. The data picker and the Variables panel list them with their fields.

Privacy

  • Media goes to the provider you choose. When a step runs, the media (or frames of it, or its audio) is sent to that provider's API with your key. Data residency and retention follow that provider and the region or endpoint you configure in the connection — check its terms before sending personal data.
  • Nothing is sent until a step runs. Adding a connection or designing a workflow sends nothing.
  • Run logs never contain media or full transcripts. The run history shows counts, durations, provider, model, file names, at most a 200-character text preview and the estimated cost. The full result is only in the run's variables.
  • Temporary files are written to MEDIA_TMP_DIR (default: the system temp folder) and deleted when the step finishes.
  • Redaction findings are masked (•••) in the run history.

Cost

Provider calls are billed by the provider to your account. Each step estimates its cost from the provider's published list prices as of the date of the built-in price table (per minute of audio, per image, per character…) and returns it as cost (status, amount, currency, detail); the run history shows it too. When there is no price for a model, the cost is reported as cost unknown (status: "unknown"). Discounts, free tiers and taxes are not included. Self-hosters can override prices with MEDIA_PRICES_JSON.

Save & Test logs with the Redact Image step expanded: counts of one face, one date of birth and one US SSN, style blur and an estimated cost in USD
The step's run log: what was found by type, the style, and the estimated cost with how it was computed.

Limits

Instance-wide limits come from the environment (see Environment variables):

VariableDefaultWhat it limits
MEDIA_MAX_MB100Largest media input, in MB
MEDIA_MAX_DURATION_SECONDS7200Longest audio or video accepted
MEDIA_INLINE_MAX_SECONDS300In run mode Auto, longer media runs in the background
MEDIA_TIMEOUT_SECONDS120Time for a step that runs inline
MEDIA_JOB_TIMEOUT_SECONDS3600Time for a background job, including waiting for the provider
MEDIA_MAX_IMAGE_MEGAPIXELS40Largest decoded image
MEDIA_VIDEO_REDACT_MAX_SECONDS600Longest video Redact Video accepts
MEDIA_FFMPEG_TIMEOUT_SECONDS600One FFmpeg command
FFMPEG_PATH / FFPROBE_PATHffmpeg / ffprobe on PATHThe FFmpeg binaries
MEDIA_TOOLSonoff turns local media processing off
MEDIA_TMP_DIRsystem temp folderWhere temporary files go
MEDIA_PRICES_JSONbuilt-in tablePrice overrides for the cost estimates

Providers have their own limits too (upload sizes, image sizes) — see the notes above.

Where it runs

Provider-side work — transcription within the provider's upload limit, image analysis, image redaction (PNG and JPEG are processed in JavaScript), image generation and text to speech — works on every deployment.

Local media processing needs FFmpeg on the server:

  • Media Utilities (every operation),
  • Redact Video,
  • Analyze Video with a provider that cannot watch a whole video (frames are sampled),
  • Transcribe of audio longer than the provider accepts in one upload (it is split into chunks),
  • image formats other than PNG and JPEG.

The Docker image includes FFmpeg (build argument INCLUDE_MEDIA_TOOLS=true, the default). Vercel has no FFmpeg: those steps fail with a clear error that names the step and says to use the Docker image or set FFMPEG_PATH. Elsewhere, install ffmpeg and ffprobe on the PATH or point FFMPEG_PATH / FFPROBE_PATH at them. MEDIA_TOOLS=off turns local processing off on any deployment.

Agents

An agent can also transcribe and look at files: turn on Media (images, audio, video) in the agent designer and choose a connection. The agent then gets the tools transcribe_media and analyze_image (a file attached to the conversation, or a URL). They send media to the chosen provider, so they can be put on the agent's approval list like other tools that call out. See AI agents.

The agent designer's Tools tab: the Media (images, audio, video) bundle is enabled with a Deepgram connection and lists transcribe_media and analyze_image
Media access in the agent designer: one connection, two tools.

In a workflow you don't need the agent tools: transcribe or read the file with a media step and put the result in a Run Agent prompt, or hand the image itself to the agent with Run Agent's Files.

How-to guides

  • Document actions — Word, Excel, PowerPoint and PDF; scanned pages with OCR. Redact Image and Redact Video use the same information types as Redact Document.
  • Attachments — collect recordings and photos with a form; they arrive as file objects the media steps take.
  • AI agents and the Run Agent step — summarise a transcript or classify a photo's description.