Skip to main content
Video clipping turns a long YouTube video into captioned vertical clips and draft posts. It is off until every piece below is configured, and the clipping tools do not appear in the agent or in MCP while it is off.
What clipping does from a user’s point of view is covered in Video clipping. This page is only the setup.

What it needs

Postiz does not download or render video itself. It hands the heavy work to postiz-uploader, an open source media worker you deploy on RunPod Serverless, and passes files around as presigned URLs.

Setup

1

Switch storage to Cloudflare R2

Follow Cloudflare R2 and set STORAGE_PROVIDER="cloudflare".
2

Deploy postiz-uploader twice on RunPod

Create two serverless endpoints from the postiz-uploader image: a CPU endpoint for ingest jobs and a GPU endpoint for clip jobs. Its README covers the image, the deployment and the worker’s own variables.On the ingest endpoint, set the worker’s OXYLABS_USERNAME, OXYLABS_PASSWORD and OXYLABS_STORAGE_URL. Without them every clipping fails at the first step.
3

Create the API keys

  • A RunPod API key with access to both endpoints.
  • A Deepgram API key.
  • An OpenAI API key, if the instance does not have one already.
4

Add the variables to Postiz

All six have to be set. If one is missing, clipping stays off and nothing is logged about it.
5

Restart Postiz

The backend and the orchestrator both read these variables, so they need the same values if you run them as separate processes.

Check that it works

Connect an MCP client and list the tools, or open the Agent section. When clipping is on, clippingTool and clippingStatusTool are there. Ask for a clipping of a short public YouTube video and watch it move through its steps.

Limits on a self-hosted instance

There are no plans, so no clipping minutes are counted. These caps still apply and are not configurable: A clipping that has not finished after 4 hours is closed as failed the next time anybody looks at it.

Costs to expect

Every clipping spends money at four providers: RunPod seconds, Oxylabs requests, Deepgram minutes (only for videos without usable captions, or captions without word timing) and OpenAI tokens for one prompt carrying the transcript.

Troubleshooting