mothermachine

Browse / Video and streaming

OpenShorts

Self-hosted AI clip generator with an eight-tool MCP server for clipping, captioning, and publishing shorts.

AdaptableOperable Business appWeb app Hybrid PythonTypeScript MCP server License: MIT (cloud/ directory under a commercial license)

Turns long videos into 9:16 clips with Gemini moment detection, face-tracked reframing, faster-whisper subtitles, ElevenLabs dubbing, and Upload-Post publishing. Runs from docker compose on your own machine or as a hosted plan; both expose the same /mcp endpoint.

Use it when
  • I publish a weekly podcast and want clips cut, captioned, and posted without a $20/mo clipper subscription
  • I want an agent to turn every new livestream VOD into shorts overnight on my own GPU box
Gotchas
  • The cloud/ directory is under a commercial license, not MIT; GitHub shows the license as 'other' for that reason
  • CPU-only by default: 5 to 8 minutes per 8-minute video; NVIDIA Container Toolkit needed for NVENC
  • Self-hosted /mcp only answers while your machine is on; the hosted endpoint at mcp.openshorts.app needs an osk_ API key
  • Provider keys go into the dashboard Settings, not .env

Last activity Sep 2, 2026. Fit: adaptable 3, operable 2.

Editions

Self-hosted · Free open source

  • Clonegit clone https://github.com/mutonby/openshorts
  • ImageContainer

Cloud Free · Free closed source

closed source

For agents: JSON · Markdown

Adaptable: what is yours to change

Make it yours

Config only25 things to edit

Copy .env.example to .env. Point LLM_BASE_URL and LLM_MODEL at Ollama or any OpenAI-compatible server to drop the Gemini dependency; tune WHISPER_MODEL, TRANSCRIBE_BACKEND, FFMPEG_ENCODER, and QUALITY_GATE_MIN_HEIGHT; add AWS_S3_BUCKET for backup. Provider keys for Gemini, fal.ai, ElevenLabs, and Upload-Post are entered in the dashboard Settings page.

Env vars
LLM_BASE_URL LLM_MODEL LLM_API_KEY LLM_SCORE_BATCH LLM_TIMEOUT WHISPER_MODEL WHISPER_DEVICE WHISPER_COMPUTE TRANSCRIBE_BACKEND ASR_GPU_CONCURRENCY FFMPEG_ENCODER QUALITY_GATE_MIN_HEIGHT GEMINI_MODEL_THUMBNAIL GEMINI_IMAGE_MODEL AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_REGION AWS_S3_BUCKET AWS_S3_PUBLIC_BUCKET YOUTUBE_COOKIES DEBUG_LOGS PAID_PROXY_DAILY_MB
Config files
.env docker-compose.yml docker-compose.override.yml
Prompt files
none
Accounts you need
Google AI Studio (Gemini)fal.ai (AI Shorts only)ElevenLabs (dubbing only)Upload-Post (publishing only)AWS (optional S3)

Source

Operable: what an agent can drive

Interface

OfficialMCP serverpublished by the builderremote or local

How an agent can drive an Operable Listing, in five levels: native (built for the agent as the primary interface), official (the Builder ships an agent interface), wrapped (a third party wraps the software's API), config (an agent can only drive it by editing files), gui (screen control only). An interface is official only when it is published by the same organization that ships the software. GUI-level Listings are allowed and sorted last.

Docs
www.openshorts.app/mcp
Tools
process_video create_upload get_job_status list_clips get_quota add_subtitles recut_clip publish_clip

Reach

Partial coverage. 5 of 9 jobs reachable through the stated interface.

JobThrough the interfaceEvidence
Generate clips from a long videoReachableMCP tools process_video, create_upload, get_job_status, list_clips
Restyle subtitlesReachableMCP tool add_subtitles (classic or karaoke)
Recut a clipReachableMCP tool recut_clip
Publish or schedule to TikTok, Instagram, YouTubeReachableMCP tool publish_clip through Upload-Post
Check plan quotaReachableMCP tool get_quota
Generate AI Shorts with UGC actorsNot reachableNo MCP tool covers the AI Shorts pipeline; dashboard only
YouTube Studio: titles, thumbnails, descriptionsNot reachableNo MCP tool; dashboard only
Dub clips into other languagesNot reachableDubbing is a dashboard feature; not among the eight MCP tools
Force a reframing layout per videoNot reachableREADME: layout forced from the dashboard; no MCP parameter documented

Code stack

Languages
PythonTypeScript
Frameworks
FastAPIViteffmpegMediaPipeYOLOv8faster-whisper
Package manager
pip
Database
none
Hosting target
Dockeropenshorts.app
Built
Unknown (recorded, never ranked)

Model stack

Providers
Google Geminiany OpenAI-compatible LLM through LLM_BASE_URLElevenLabsfal.ai
Models
Gemini 3.1 Flash-Litefaster-whisperFlux 2 ProHailuo 2.3 Fast
Keys you need
GEMINI_API_KEY (entered in dashboard Settings) LLM_API_KEY AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
Prompts live in
none

Skills

A Claude Code plugin that teaches an agent to generate and publish short videos through OpenShorts.

Kind
bundled
Paths
skills/openshorts/SKILL.md
Install
/plugin marketplace add mutonby/openshorts

Evidence and confidence

FieldWhere it was seenConfidence
formFactorREADME: dashboard at localhost:5175 served by FastAPI backend95%
executionModelREADME: fixed pipeline; Gemini or a local LLM picks moments and layouts90%
operabilityopenshorts.app/mcp: eight tools, Streamable HTTP, published by OpenShorts; self-host serves the same endpoint90%
effort.env.example documents every variable with comments; docker compose is the only install90%
editionsREADME table: self-hosted free forever MIT; hosted free 20 min/mo with watermark; paid from $12/mo to $59/mo90%
activeGitHub pushedAt 2026-09-02–
reach85%

Open questions

  • Does the self-hosted MCP accept a bearer token or run open on localhost only?
  • Is the AI Shorts pipeline reachable through the REST API even though it is not an MCP tool?

Sources