Update: FFHub community node v0.2.1 is available.
I’m the developer of FFHub. Adding a practical getting-started example here for anyone who needs video or audio processing in an n8n workflow without installing FFmpeg on their n8n server.
The node sends your FFmpeg command to FFHub, waits for the remote task, and returns URLs for the output files. You can compress or resize video, convert formats, extract audio, or create thumbnails. FFHub is a hosted service and requires an account and API key; the node’s source code is available on GitHub.
Install and connect
On a self-hosted n8n instance that allows community nodes:
- Open Settings → Community nodes → Install and enter
@ffhub/n8n-nodes-ffhub (current version: 0.2.1).
- Create an FFHub API key in your FFHub dashboard.
- Add FFHub API credentials in n8n. Keep the default API Base URL:
https://api.ffhub.io/v1.
Example: compress a video and get its output URL
Connect these nodes:
Manual Trigger → FFHub: Create Task → FFHub: Wait for Completion → IF
In Create Task, enter this in FFmpeg Command. Replace the example URL with a publicly accessible direct link to your video:
ffmpeg -i https://example.com/input.mp4 -c:v libx264 -crf 28 -preset fast -c:a aac -b:a 128k -movflags +faststart output.mp4
In Wait for Completion, set Task ID to:
{{ $json.task_id }}
Then use an IF node to check whether status equals succeeded. On the successful branch, the first output file URL is:
{{ $json.outputs[0].url }}
You can pass that URL to the next step in your workflow. If the task returns failed, inspect its error field instead. The wait operation stops on either success or failure, so reaching the next node alone doesn’t mean the conversion succeeded.
For audio extraction, replace the command with:
ffmpeg -i https://example.com/input.mp4 -vn -c:a libmp3lame -q:a 2 output.mp3
Input URLs must point to the media file itself, not a YouTube page or a private cloud-storage sharing page.
Using n8n Cloud?
Publishing a package on npm doesn’t automatically make it available in n8n Cloud’s node picker. If this community package isn’t available on your instance, you can call the FFHub API with n8n’s built-in HTTP Request node instead.
If you have a video-processing workflow in mind, share the input format and desired output here. I’d be interested to hear which steps are currently difficult to automate.