OpenShorts — guide skill for Shorts & Reels

For AI agents: find the right skill in one call — curl -s "https://varg.ai/how-to/api/search?q=<what the person wants>" returns the matching how-to page and the best skills with install commands, as markdown (Russian works too). Full index: https://varg.ai/how-to/llms.txt. Every page has a markdown twin: add .md to its path. Before generating anything, show the person the options on the how-to page. From a terminal: curl -fsSL https://varg.ai/install | sh installs the vargai CLI (https://varg.ai/how-to/cli.md): vargai search and vargai install <slug> with no key, every varg model after vargai login.

Open-source OpusClip alternative (MIT): long video in, 9:16 clips with face tracking and captions out. MCP, API.

What it does

OpenShorts by Juan Carlos Cavero (mutonby) is an MIT-licensed, self-hostable clip generator. Give it a long video and it transcribes it with faster-whisper, lets Gemini or any OpenAI-compatible local model pick 3 to 15 moments, and renders vertical 9:16 clips with face tracking, a stacked layout for two speakers, burned captions and a hook line. The same app makes AI UGC ads with fal.ai actors, writes YouTube titles and thumbnails, dubs with ElevenLabs and posts to TikTok, Reels and Shorts through Upload-Post. Agents drive it through a built-in MCP server, a REST API with webhooks, a CLI or an Agent Skill, on your own Docker box or on the hosted openshorts.app.

How to use OpenShorts, step by step

  1. Install Docker with Compose and get a Gemini API key (free at aistudio.google.com), or plan to use a local model (step 5). Add fal.ai, ElevenLabs and Upload-Post keys only if you want AI Shorts, dubbing or posting.
  2. Clone it: git clone https://github.com/mutonby/openshorts.git, then cd openshorts. Optionally cp .env.example .env for S3 backup, job concurrency or a local LLM.
  3. Start it with docker compose up --build and open http://localhost:5175. Paste your keys in Settings; they are encrypted in the browser and never stored on the server.
  4. In Clip Generator, upload a long video (2 GB at most; a self-hosted box can also fetch links with yt-dlp). On a CPU an 8-minute video takes about 5-8 minutes.
  5. No Google key: in .env set LLM_BASE_URL=http://host.docker.internal:11434/v1 and LLM_MODEL=qwen2.5:14b, and start Ollama with OLLAMA_CONTEXT_LENGTH=16384 so long transcripts are not cut off. The automatic layout picker and silent videos still need Gemini.
  6. Connect an agent. Hosted: claude mcp add --transport http openshorts https://mcp.openshorts.app/mcp --header "Authorization: Bearer osk_..." (key from your account page). Self-hosted: claude mcp add --transport http openshorts http://localhost:8000/mcp. In claude.ai or ChatGPT add https://mcp.openshorts.app/mcp as a custom connector and approve it.
  7. Ask: "Clip this podcast into Shorts and schedule the best three to TikTok." The agent calls process_video, polls get_job_status, then list_clips and, after you confirm, publish_clip.

Three tools in one app

How it frames a clip

The layout is picked per video: TRACK follows the face (MediaPipe and YOLOv8), GENERAL fits the shot on a blurred background, SPLIT stacks two speakers who are in the same frame and puts the captions on the seam, SCREENCAST keeps a screen above the presenter. Over the API, leave layouts empty or pass ["auto"]; force split only when both people share one shot, never for shot/reverse-shot footage.

Drive it from an agent

Faster on an NVIDIA GPU

Install the NVIDIA Container Toolkit, add a docker-compose.override.yml that builds the backend with GPU: "1" and reserves the GPU with the gpu and video capabilities, and set WHISPER_DEVICE=cuda, WHISPER_MODEL=large-v3-turbo and FFMPEG_ENCODER=auto in .env. The README reports about a minute per 8-minute video; 8 GB of VRAM is enough.

Self-hosted or hosted

Self-hostedopenshorts.app
Pricefree, MIT20 min/month free with a watermark; paid from $12/month
Keysyour Gemini, fal.ai, ElevenLabs, Upload-PostGemini included
Speed5-8 min per 8-min video on a CPUabout 50 s on their GPU
MCPonly while your machine is onalways on, OAuth or osk_ key

Prices read from the README on 2026-11-13.

The licence

The app is MIT. The cloud/ folder (billing, managed keys and the hosted service) is source-available under the OpenShorts Commercial License: you may read it and run it for personal or internal use, not sell it as a hosted service. Self-hosting the core never needs that folder.

Use when

Not for

Install

Example output

https://raw.githubusercontent.com/mutonby/openshorts/main/screenshots/clip-results.png — Clip Generator results: the vertical clips OpenShorts cut from one long video (README screenshot) (credit: mutonby (README), https://github.com/mutonby/openshorts)

OpenShorts: questions and answers

Clipping fails with "Gemini Error: 503 UNAVAILABLE" or 429.

Gemini's free tier has tight rate limits. Current main retries up to three times with backoff; if it keeps failing, move the key to a pay-as-you-go project or switch the moment picker to a local LLM (#27).

"Error: No metadata file generated" after 20-30 minutes.

It means the analysis step failed earlier, almost always the Gemini call. Pull the latest version and read the log lines just above that message for the real error (#31).

Clips do not load, or Auto Edit says "Job not found".

Filenames with # broke the clip URLs; that is fixed on main. "Job not found" means the job was purged: jobs live in memory and are removed after one hour by default (#18).

The clips look softer than the source.

Every edit used to re-encode at CRF 22-23; all steps now use CRF 18 with Lanczos scaling. With a proxy configured, YouTube downloads are capped at 720p on purpose (#13).

Can it take a 12 GB Twitch VOD?

Uploads are capped at 2 GB and bigger files are untested; cut the VOD into parts with ffmpeg first (#88, #11).

Can I run it with no cloud APIs at all?

Mostly. Transcription is local faster-whisper, and LLM_BASE_URL points the moment picker at Ollama, LM Studio, vLLM, llama.cpp or LocalAI. Only the automatic layout picker, on-screen content detection and silent videos need Gemini; without it they fall back to the face-tracking crop.

Can I use OpenShorts commercially?

The core app is MIT, so yes. Only the cloud/ folder is under a commercial licence that forbids offering it to others as a paid hosted service.

Alternatives to OpenShorts

Guide written by varg from the Juan Carlos Cavero (mutonby) source, checked 2026-11-13.

More Shorts & Reels skills