Description
@verygoodffmpeg/n8n-nodes-verygoodffmpeg
Run FFmpeg jobs in the cloud from your n8n workflows, using the Very Good FFmpeg API. Transcode, trim, resize, and convert video and audio without hosting FFmpeg yourself, on CPU or NVIDIA GPU machines.
This package is an officially verified n8n community node. See its n8n integration page for more information.
Installation
n8n Cloud / verified: search for “Very Good FFmpeg” in the nodes panel and install from there.
Self-hosted: go to Settings > Community Nodes > Install and enter @verygoodffmpeg/n8n-nodes-verygoodffmpeg.
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
Very Good FFmpeg
| Resource | Operation | Description |
|—|—|—|
| Job | Run | Submit an FFmpeg job: named input URLs, output filenames, and FFmpeg command lines |
| Job | Get | Fetch a job by ID (status, output file URLs) |
| Job | List | List recent jobs with limit/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 |
Very Good FFmpeg Trigger
A webhook trigger that fires when a job finishes. Copy the trigger’s webhook URL into the Webhook URL field of a Job > Run operation. When the job completes, the full job object will arrive as the trigger output.
Referencing files in commands
Inputs are downloaded into an inputs directory and outputs are collected from an outputs
directory, so commands reference files by plain path: an input keyed input.mp4 is
inputs/input.mp4, and an output named output.wav is outputs/output.wav.
-i inputs/input.mp4 -vn outputs/output.wav
See File Reference Styles for more.
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 (any public URL works)
– 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 will contain status: "succeeded" and output_files["output.mp4"], a download URL for the result.
Multiple commands run in order in the same workspace, so a later command can read a file an
earlier one wrote.
Example: 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 will return immediately with the queued job. When the job completes, the trigger workflow will receive 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 (Claude, Cursor, etc.) via n8n’s MCP Server Trigger. Each operation will surface 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/continue behavior.
Development
Contributions welcome. See DEVELOPMENT.md for local setup and the test suites.
License
MIT