All posts
make.com ffmpeg

How to Run FFmpeg in Make.com Scenarios

Run FFmpeg from Make.com with no server: send the job with the HTTP Make a request module, get the result in a Custom webhook, and map the output URL.

To run FFmpeg from Make.com, send the FFmpeg job to the Xora API with the HTTP > Make a request module, and receive the result in a second scenario that starts with Webhooks > Custom webhook. The encode runs in the cloud, so the scenario only sends and receives small JSON bodies.

This guide shows the module settings, ready-to-paste bodies, and the webhook step. For the same setup in other tools, see FFmpeg in n8n and FFmpeg in Zapier.

1. Send the job: HTTP > Make a request

Add an HTTP module and choose Make a request:

FieldValue
URLhttps://api.xora.sh/v1/jobs
MethodPOST
AuthenticationYour Xora API key as a Bearer token: Authorization: Bearer YOUR_XORA_API_KEY
Body content typeapplication/JSON
Body input methodJSON string
Parse responseYes, so id and state can be mapped

The body

This body compresses a video with the compress recipe:

{
"mode": "recipe",
"input": { "url": "https://example.com/raw_input.mov" },
"output": { "format": "mp4" },
"recipe": { "name": "compress", "crf": 28 },
"webhookUrl": "https://hook.make.com/your-webhook-id"
}

Map the input URL from an earlier module in place of the example URL, for example a file URL from Google Drive or Dropbox that anyone with the link can read. The response is { id, state }.

Raw FFmpeg arguments

For any other job, send the arguments as an array:

{
"mode": "ffmpeg",
"input_files": { "in_1": "https://example.com/raw_input.mov" },
"output_files": { "out_1": "clip_720p.mp4" },
"ffmpeg": {
"args": ["-i", "{{in_1}}", "-vf", "scale=-2:720", "-c:v", "libx264", "-crf", "23", "-c:a", "aac", "{{out_1}}"]
},
"webhookUrl": "https://hook.make.com/your-webhook-id"
}

Make also uses double curly braces for mapped values. Type {{in_1}} and {{out_1}} as plain text in the JSON string, and check the module’s output after the first run to see that they were sent as written. Output names can contain only letters, numbers and underscores, plus an extension.

More commands: FFmpeg cheat sheet.

2. Get the result: Webhooks > Custom webhook

  1. Create a new scenario. Add Webhooks > Custom webhook as the trigger and copy its URL.
  2. Put that URL in webhookUrl in the job body.
  3. Run one job, so Make can detect the data structure of the callback.
  4. When the job ends, Xora sends a POST with data.jobId, data.state and data.progress. For a completed job, data.output.signedUrl is the download link; for a failed job, data.error says why.
  5. Add a Router or a filter on data.state, then send the link where you need it.

The webhook request has no signature, so keep the webhook URL private. If you must be sure that a callback is real, get the job with GET /v1/jobs/{id} before you act on it. See the webhooks guide.

Polling in place of a webhook

If you do not want a second scenario, add a Sleep module and an HTTP Make a request with GET https://api.xora.sh/v1/jobs/{id}, and repeat until the state is completed, failed, rejected or cancelled. A webhook uses fewer operations.

3. Common errors

ErrorCauseFix
401The API key is missing or wrong.Check the Bearer token.
400 VALIDATION_ERRORA field in the body is wrong, or a placeholder was replaced by Make.Read error.message; it names the field.
402 LIMIT_EXCEEDEDThe plan’s credits are used up.Wait for the monthly reset or change plan.
The job fails at onceXora cannot download the input URL.Use a direct file URL that is public or signed.

Failed and rejected Xora jobs cost nothing. See error handling.

4. What it costs

Xora bills credits for machine time and output size. The Free plan includes 25 credits every month with no card, and Build is $15 a month for 400 credits. Make counts operations separately, on your Make plan. See pricing.

Frequently asked questions

Can Make.com run FFmpeg?

Make has no FFmpeg module, and a scenario cannot run a binary. Send the job to an FFmpeg API with the HTTP Make a request module, and receive the result in a Custom webhook or by polling.

How do I send JSON from Make.com to an API?

In the HTTP Make a request module, set the method to POST, set Body content type to application/JSON, and enter the body as a JSON string or a data structure. Add your API key as a Bearer token.

How do I get the FFmpeg result back into Make?

Create a second scenario that starts with Webhooks > Custom webhook, and put its URL in the job's webhookUrl field. When the job ends, Xora sends the job ID, the state and, for a completed job, a signed URL for the output.

Can I send raw FFmpeg arguments from Make.com?

Yes. Use mode ffmpeg with input_files, output_files and an args array in the JSON string body. Each array element goes to FFmpeg as one argument, so filter graphs need no shell quoting.

Ready to try Xora?

Replace your local FFmpeg binaries with a secure, high-performance cloud API.