Platform-ready AI video in one API call
Send a raw clip from Veo, Kling, Sora or Runway. Get back a Short that fits 9:16, carries your channel logo and sounds right on every platform. No ffmpeg, no server, no filter graphs.
Self-hosting and apk add ffmpeg fails in the n8n image? Why, and the Dockerfile that still builds →
How it works
Three steps, about ten seconds per clip.
Post the URL
Your workflow sends the video URL, optionally a logo URL and the target format, with your API key in the X-API-Key header.
We process it
Fit to 9:16, 1:1 or 16:9 with clean padding, logo bottom-right with alpha, loudness normalised to −14 LUFS, H.264 with fast start.
Download and publish
You get a signed download link, valid for one hour, from EU storage. Hand it to your upload node and you are done.
The whole API
One endpoint. A JSON envelope you can branch on.
curl -X POST https://api.brand-pipe.com/v1/process \
-H "X-API-Key: bp_your_key" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://.../raw.mp4",
"logo_url": "https://.../logo.png",
"format": "vertical",
"audio_normalize": true
}'
{
"success": true,
"data": {
"job_id": "6bbee170…",
"result_url": "https://…/6bbee170….mp4?X-Amz-…",
"duration_s": 10.0,
"had_audio": true,
"format": "vertical"
},
"error": null
}
format
vertical 1080×1920 · square 1080×1080 · landscape 1920×1080
logo_url
PNG with transparency. Scaled to 15 % of the width, 20 px from the corner.
subtitles
An SRT or WebVTT you already have, inline or by URL, burned into the picture. Costs one extra credit.
limits
Up to 60 seconds per call on /v1/process, up to 10 minutes on /v1/jobs; 200 MB per source file. Public http(s) URLs only. Results are kept for 24 hours.
errors
401 bad key · 402 no credits · 409 idempotency conflict · 413 too large · 422 unreadable video · 424 source download failed · 429 rate limited
Every field, status code and retry rule is in the developer documentation.
Retries never pay twice
Send an Idempotency-Key made from a hash of the request body and a retried request — n8n's Retry On Fail, a lost response, a manual Retry from the executions list — gets the first result back instead of a second charge and a second render. Keys are remembered for 24 hours.
Long clips: submit, then get called back
POST /v1/jobs takes the same body plus an optional callback_url, answers at once with a status_url, and posts the finished job to your URL — an n8n Wait node resumes on it. Polling the status URL is free and always works too.
Pricing
Pay once. Credits never expire.
One credit per video, whatever its length; two if you have us burn in captions. Only successful videos cost credits. Credits never expire. Top-ups land on your existing key.
Already have a key? Top it up here and the credits land on that same key. Prices include VAT where applicable. Payments and invoices are handled by Polar as merchant of record.
Brand-Pipe is offered to businesses, self-employed professionals and commercially run channels only, not to consumers. You confirm this when you get your key; see the Terms of Service.
Free n8n templates
Import, paste your key, run.
The workflow posts a video, waits for the result and downloads the finished file as binary data for your upload node. Tested on n8n 2.37.10.
Import
Open it in the n8n template gallery and click Use workflow, or download n8n-brand-pipe.json and import it via Workflow → Import from file.
Add the credential
Create a Header Auth credential named exactly Brand-Pipe API Key: header name X-API-Key, value your key. Both templates look the credential up by that name, so it only has to be set up once.
Wire it in
Replace the Set video node with your generator's output and connect the binary output to YouTube, TikTok or your storage.
Want the whole pipeline? n8n-brand-pipe-youtube.json adds a schedule trigger, a placeholder node for your video generator and a YouTube upload step that publishes the result as a Short. The upload node ships disabled so you can run it before connecting a channel. Clips longer than 60 seconds? n8n-brand-pipe-jobs.json submits an async job and lets Brand-Pipe resume an n8n Wait node through its callback, no polling loop. Tested on n8n 2.39.6 with a 90-second cut from a 10-minute source.
Self-hosting and apk add ffmpeg fails since n8n 2.1.0? Here is why, the Dockerfile that still builds, and the no-image route.
FAQ
The practical questions.
Where is my data processed and stored?
Processing runs on Google Cloud in Frankfurt. Results are stored on Cloudflare R2 restricted to the EU jurisdiction and deleted after 24 hours; the download link itself expires after one hour.
Does a video cost one credit regardless of length?
Yes. /v1/process answers within the request and takes up to 60 seconds of output; /v1/jobs takes up to ten minutes. Both cost one credit, two with burned-in captions. A clip the synchronous endpoint cannot finish in time — high frame rates and 4K get there sooner — is refused with a 413 that names /v1/jobs, and its credit is returned right away. With start_s and duration_s you can cut a window out of a longer recording instead of sending it whole.
What if a job fails?
Only successful videos cost credits. If the download, the encode or the upload fails after your key was charged, the credit is returned automatically and the error response says so (credits_refunded: true). One exception: an encode that runs into the processing time limit keeps its credit.
Do credits expire? Do top-ups create a new key?
Credits never expire. Top up at api.brand-pipe.com/topup: you paste your key, pick a package, and the credits land on that same key, so nothing changes in your workflow.
I lost my key.
Keys are shown once, right after sign-up or checkout, and are not stored in plaintext on our side. Contact support and we will issue a new key with your remaining credits.
Can you add subtitles?
We burn in captions you supply as SRT or WebVTT — the file your transcription step already produces. That is the part that otherwise needs your own server with ffmpeg. We do not transcribe for you yet, so nothing gets misheard. One style, white with a heavy outline, placed clear of the platform interface. A captioned video costs two credits instead of one.
Does Brand-Pipe remove AI labels or watermarks?
No. Brand-Pipe formats, brands and normalises your video. Provenance metadata your generator embeds is not something we strip, and platform disclosure rules remain your responsibility.
What happens under load?
Requests beyond the service's capacity wait at the edge rather than fail; asynchronous jobs wait in a queue and are never dropped. Each key has a rate limit; a 429 means back off and retry — with an Idempotency-Key, retrying is always safe.
Can I use it without n8n?
Yes. It is a plain HTTPS API. Make, Zapier, a cron job or a shell script work just as well.
Your next clip is one POST away.
25 free credits, no card, no checkout: the key is shown at once.