OpenShorts logoOpenShorts Get free clips
Home Automate shorts

Automate shorts end to end: one request in, one webhook out

TL;DR

The whole automation loop is two HTTP messages. You POST a video URL with an API key and a webhook address; when processing ends, OpenShorts sends exactly one signed webhook carrying clip titles and durable download links. No polling loop, no timeout guessing.

API calls draw from the same minute balance as the dashboard, with no separate meter and no per-call pricing. On the self-hosted edition there is no meter at all, which is what makes an always-on pipeline affordable.

For agent-driven automation (Claude, ChatGPT, custom agents) the same account also exposes an MCP server; that protocol surface is documented on its own page.

The loop, end to end

Start a job with one request:

curl -X POST https://api.openshorts.app/api/process \
  -H "Authorization: Bearer osk_..." -H "Content-Type: application/json" \
  -d '{"url": "https://youtube.com/watch?v=...", "acknowledged": true,
       "webhook_url": "https://your-server.com/hooks/openshorts",
       "webhook_secret": "your-shared-secret"}'

The response returns a job id immediately. Minutes later, when the clips are cut, subtitled and archived, OpenShorts POSTs once to your webhook URL with the job outcome, clip titles and download links durable enough to fetch later. A failed job also fires the webhook, so your pipeline never hangs on silence.

Verifying the webhook

If you passed a webhook_secret, the request carries an X-OpenShorts-Signature header of the form sha256=<hex>: the HMAC-SHA256 of the raw request body under your secret. Recompute it and compare in constant time:

expected = "sha256=" + hmac.new(secret, raw_body, hashlib.sha256).hexdigest()
hmac.compare_digest(expected, request.headers["X-OpenShorts-Signature"])

Reject anything that does not match and you have closed the door on forged deliveries.

Using it from n8n, Zapier or Make

No dedicated node is needed: the flow is a generic HTTP Request step that POSTs to /api/process, then a Webhook trigger that receives the completion payload and fans out to whatever comes next, posting to socials, dropping links in Slack, logging to a sheet. There is no official n8n template yet; the two-step shape above is the whole integration, which is why generic nodes cover it.

A weekly pipeline in one cron line

Because the API is one POST, scheduling is whatever scheduler you already have. A cron job that submits the latest episode URL every Monday, a GitHub Action on your podcast repo, or an agent that watches a feed. The webhook does the second half, so nothing stays running in between.

What automation costs

API and MCP calls draw from the same minute balance as the dashboard. There is no per-call price, no separate API tier and no automation surcharge. As of August 2026 that is not the market default: the mainstream tools meter their APIs per source minute or per operation, on top of subscription tiers, so an always-on pipeline runs with a taxi meter attached. Self-hosted OpenShorts has no meter of any kind, and the hosted plans are flat:

OpenShorts comes in two editions and they are priced very differently, so it is worth being precise. OpenShorts (self-hosted) is free and open source under the MIT licence: Free and open source under MIT. You run it with Docker on your own machine and bring your own API keys. No watermark, no usage cap, no subscription. What it costs you is hardware and time: on a typical CPU an 8-minute video takes 5 to 8 minutes to process. OpenShorts Cloud is the hosted service: The same software with the compute and API keys covered. An NVIDIA GPU clips that same 8-minute video in about 50 seconds. Free plan is 20 minutes a month with a watermark and no credit card. Paid plans start at $12/month for 100 minutes with no watermark, up to $59/month.

Agents instead of scripts

If the thing driving the pipeline is an AI agent rather than a script, the same account exposes a native MCP server with six tools covering process, status, clips, quota, subtitles and publishing. The endpoint, the tool table and client setup live on the MCP server and API page.

Common questions

Can I automate YouTube Shorts creation with an open source tool?
Yes. OpenShorts is MIT-licensed and its self-hosted edition serves the same REST API and MCP server as the hosted service, with no metering. One POST submits a video, a signed webhook returns the finished clips, and the publishing endpoint posts them to YouTube Shorts, TikTok and Instagram Reels.
Is there an n8n integration for OpenShorts?
There is no official n8n template yet, and none is required: the integration is a generic HTTP Request node posting to /api/process plus a Webhook trigger receiving the completion payload. Any platform with those two primitives, n8n, Zapier, Make or plain cron, can run the whole loop.
Do automated API calls cost more than using the dashboard?
No. API and MCP usage draws from the same minute balance as the dashboard with no per-call pricing: 20 free minutes a month on the hosted free tier, flat paid plans from $12/month, and no meter at all on the self-hosted edition.

Sources

Related comparisons