Very Good FFmpeg
How it worksPricingDocsBlog
Documentation
API Reference
Documentation
Documentation
Getting Started
Fundamentals
Advanced Topics
Integrations
TypeScript SDKPython SDKMCP ServerMaken8n
Integrations
  1. Integrations
  2. n8n

n8n

Run FFmpeg jobs in n8n workflows with the Very Good FFmpeg community node.

Use the Very Good FFmpeg n8n node to run FFmpeg jobs, upload files, and receive job completion events in n8n workflows. The node is published on npm as @verygoodffmpeg/n8n-nodes-verygoodffmpeg.

Setup

The node is verified by n8n and works on both n8n Cloud and self-hosted instances.

  1. Create an API key in the Very Good FFmpeg dashboard.
  2. On n8n Cloud, install the node from the nodes panel by searching for Very Good FFmpeg. On self-hosted, go to Settings > Community Nodes > Install and enter @verygoodffmpeg/n8n-nodes-verygoodffmpeg.
  3. Add a Very Good FFmpeg API credential and paste your API key. Leave Base URL empty.

If Community Nodes is missing from settings, your instance has community nodes disabled. Set the N8N_COMMUNITY_PACKAGES_ENABLED environment variable to true (it is on by default).

Credentials

  1. Create an account and API key at verygoodffmpeg.com.
  2. In n8n, add a Very Good FFmpeg API credential and paste the key. Leave Base URL empty.

Operations

The Very Good FFmpeg node provides:

  • Job > Run: submit an FFmpeg job with named input URLs, output filenames, and FFmpeg command lines.
  • Job > Get: fetch one job by ID, including status and output file URLs.
  • Job > List: list recent jobs with limit and offset paging.
  • Job > Cancel: cancel a queued or running job.
  • File > Upload: upload binary data from the workflow and get back a URL usable as a job input.

The Very Good FFmpeg Trigger node is a webhook trigger that fires when a job finishes.

Example: trim a video to 5 seconds

  1. Add a Very Good FFmpeg node, Job > Run:
    • Input Files: key input.mp4, URL https://storage.verygoodffmpeg.com/sample.mp4
    • Output Files: output.mp4
    • FFmpeg Commands: -i inputs/input.mp4 -t 5 outputs/output.mp4
    • Wait for Completion: on (fine for short jobs)
  2. Execute. The output item contains status: "succeeded" and output_files["output.mp4"], a download URL for the result.

Reference inputs as inputs/<name> and outputs as outputs/<name>, using the names you set in Input Files and Output Files. Multiple commands run in order in the same workspace.

Long jobs without blocking

n8n executions time out on long transcodes, so run anything substantial asynchronously:

  1. Add a Very Good FFmpeg Trigger to a workflow and copy its production webhook URL.
  2. In Job > Run, paste that URL into Webhook URL and leave Wait for Completion off.
  3. The run node returns immediately with the queued job. When the job completes, the trigger workflow receives the full job object, including output URLs.

Working with binary data

Files already in your workflow (from HTTP Request, Google Drive, etc.) can be sent through File > Upload. It uploads the item's binary property to temporary storage and returns a download_url to use as a Job > Run input.

Use with AI Agents and MCP

Both nodes are marked usableAsTool. Attach the Very Good FFmpeg node to an AI Agent node as a tool, or expose it to external MCP clients via n8n's MCP Server Trigger. Each operation surfaces as a callable tool.

Errors

API failures surface as standard n8n node errors with the HTTP status and the API's message (e.g. 402: Add credit before submitting another job). Use n8n's On Error node settings for retry and continue behavior.

Running Commands

Learn request shape, file paths, and output files.

Webhooks

Receive job completion and failure events.

Make

Build Make scenarios with the Very Good FFmpeg app.

On this page

SetupCredentialsOperationsExample: trim a video to 5 secondsLong jobs without blockingWorking with binary dataUse with AI Agents and MCPErrors