reelsdk integrations
Render video from any platform that can send an HTTP request
Cloudflare Workers stub out child_process, Supabase Edge Functions give you 2 s of CPU and no subprocesses, Vercel caps request bodies at 4.5 MB and Zapier stops actions after 30 s. reelsdk takes the render off your platform: one POST for a slideshow, burned-in captions, a faceless short or raw ffmpeg 8.1, from $0.02 per output minute, and an mp4 link comes back.
curl "https://api.reelsdk.com/v1/captions?wait=120" \
-H "Authorization: Bearer $REELSDK_KEY" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://example.com/clip.mp4",
"style": "karaoke"
}'200 OK with { job }: job.outputs.video is the mp4, plus srt, vtt and a transcript
- $0.02
- per output minute for slideshows and captions
- 1.9 s
- median time to a ready render machine
- 300 s
- longest wait on one request, or use a webhook
- 7 days
- every output link stays up
AI app builders
Paste a prompt, get a working render feature, keep the key on the server.
- LovableEdge functions on Lovable Cloud can't spawn ffmpeg. One prompt wires up faceless shorts instead.No subprocesses, 2 s of CPU
- bolt.newThe WebContainer preview can't run native binaries. A server function renders the slideshow.No native binaries in the preview
- Replitffmpeg installs through Nix, but every render shares CPU with your web server.Renders compete with your app
Serverless and edge
Your function sends JSON and gets a link back. The encode never touches its CPU or memory.
- Supabase Edge FunctionsDeno isolates with 256 MB and 2 s of CPU. Hand the encode off with one fetch.546 WORKER_RESOURCE_LIMIT
- Vercel Functions4.5 MB bodies and 250 MB bundles. Keep your ffmpeg arguments and move the encode.413 FUNCTION_PAYLOAD_TOO_LARGE
- Netlify FunctionsSynchronous functions stop at 60 s and 6 MB. Wait 50 s, let the webhook finish the rest.60 s run time, 6 MB payloads
- Cloudflare Workerschild_process is a stub and isolates get 128 MB. Stream finished videos into R2.Error 1102, no child_process
No-code automation
One HTTP step per video, settings you can copy field by field.
- n8nExecute Command is off in n8n 2.0 and missing on n8n Cloud. The HTTP Request node does the job.Unrecognized node type: executeCommand
- MakeNo shell module and HTTP calls stop at 300 s. One module returns the finished mp4.300 s HTTP timeout
- ZapierActions time out after 30 s. Start the render in one Zap and catch it in another.30 s action limit
How it works everywhere
Three steps, whatever the platform
Store the key as a secret
Sign up and create an
rk_live_API key in the dashboard, with itswhsec_webhook secret. Both go in your platform's secret store, never in browser code.Send one POST
Call
/v1/slideshow,/v1/captions,/v1/shortsor/v1/ffmpegwithAuthorization: Bearer rk_live_...and a JSON body.Get the mp4 back
Finished jobs come back as HTTP 200 with
{ job }. Slow ones return 202 and arrive later on yourwebhook_url, signed withReel-Signature.
Platform limits at a glance
What stops ffmpeg on each platform, and the reelsdk pattern each guide sets up. Limits checked October 2026.
| Platform | What stops ffmpeg | What works |
|---|---|---|
| Lovable | No subprocesses, 2 s of CPU | Prompt, edge function, signed webhook |
| bolt.new | No native binaries in the preview | Server function that waits for the mp4 |
| Replit | Renders compete with your app | Express route plus a signed webhook |
| Supabase Edge Functions | 546 WORKER_RESOURCE_LIMIT | Edge Function, webhook into Storage |
| Vercel Functions | 413 FUNCTION_PAYLOAD_TOO_LARGE | Route handler with a 280 s wait |
| Netlify Functions | 60 s run time, 6 MB payloads | 50 s wait, webhook into Netlify Blobs |
| Cloudflare Workers | Error 1102, no child_process | Webhook that streams into R2 |
| n8n | Unrecognized node type: executeCommand | HTTP Request with a 280 s wait |
| Make | 300 s HTTP timeout | Make a request with a 280 s wait |
| Zapier | 30 s action limit | Custom Request plus Catch Raw Hook |
FAQ
Questions, answered
Can I run ffmpeg on Supabase Edge Functions, Lovable Cloud or Bolt Cloud?
No. Lovable Cloud and Bolt Cloud both build on Supabase, and Supabase Edge Functions run Deno isolates with 256 MB of memory, 2 s of CPU per request and no subprocesses. Send the job to reelsdk instead: raw ffmpeg 8.1 arguments cost $0.01 per compute minute, slideshows and captions $0.02 per output minute.
How do I render video from Cloudflare Workers or Vercel Functions?
Cloudflare Workers cap memory at 128 MB and stub out child_process. Vercel Functions can bundle ffmpeg, but request and response bodies stop at 4.5 MB. With reelsdk your function sends JSON with input URLs and gets an mp4 link back, kept for 7 days. Inputs can be up to 500 MB each and 1 GB per job.
How do I avoid the 30 s timeout in Zapier or the 60 s limit on Netlify Functions?
A reelsdk create call waits up to 60 s by default and answers with the finished job. Pass ?wait=50 on Netlify so the call returns before the 60 s cutoff. On Zapier pass ?wait=0, which returns HTTP 202 right away, plus a webhook_url so the finished job lands in a second Zap. Make's HTTP module allows 300 s, so ?wait=280 fits there.
How do I render videos from n8n Cloud, self-hosted n8n 2.0 or Replit?
n8n Cloud has no Execute Command node and self-hosted n8n 2.0 disables it by default, so use the HTTP Request node. Replit can install ffmpeg through Nix, but renders then share your deployment's CPU. Either way one HTTP call to reelsdk does the render on a separate machine, ready in about 1.9 s at the median.
How much does reelsdk cost and how do I get an API key?
Sign up with Google and create a key in the dashboard. The first $1 is free, with no subscription and no minimum. Slideshows and word-by-word captions cost $0.02 per output minute, plus $0.05 per 1,000 characters of AI voiceover on slideshows. Faceless shorts are $0.25 up to 60 s and $0.35 up to 90 s. Raw ffmpeg 8.1 is $0.01 per compute minute.
Ready to build?
Ship video from your app today
Your first $1 of renders is free, and one key covers every endpoint.
