# openshorts

> Self-hosted tool that cuts long videos into 9:16 shorts with captions and dubbing

- Repository: https://github.com/mutonby/openshorts
- Category: Image, video & audio
- Stars: 7,003 · Forks: 1,553 · Language: Python · License: MIT
- Experience: Some experience
- Page: https://ir.adyog.com/repos/mutonby/openshorts/

Making short vertical clips from a long recording is slow work. You find the good moments, reframe the picture for a phone, add captions and post it. OpenShorts does those steps in one dashboard. You upload a video, and it transcribes it, picks 3 to 15 moments, crops each one to 9:16 and burns in subtitles.

Google Gemini reads the transcript and scene boundaries to choose moments. faster-whisper makes word-level subtitles, and MediaPipe and YOLOv8 track faces for the crop. There are layouts for one speaker, two speakers stacked with captions between them, and screen shares. If you don't want a Google key, you can point it at a local model such as Ollama through an OpenAI-compatible URL.

The README compares it to hosted clip tools like Opus Clip, Vizard and Klap. The main difference is that you can self-host it under the MIT license with no watermark or upload limit. It also bundles an AI-actor video maker and a YouTube toolkit. The same software is offered hosted at openshorts.app, with GPU speed, from $12 a month.

## What it does

- **Moment detection**: Gemini reads the transcript and scene boundaries to find 3 to 15 clip-worthy moments. A local LLM can do this step instead.
- **Layout-aware 9:16 cropping**: Chooses face tracking, a blurred-background fit, a stacked two-speaker layout or a screencast layout per video. You can also force one from the dashboard.
- **Subtitles, dubbing and hooks**: Word-level subtitles come from faster-whisper. ElevenLabs dubbing covers 30+ languages with voice cloning, and AI-written hook text can be overlaid on clips.
- **AI Shorts with AI actors**: Builds marketing videos from a product description or URL: script, AI actor, voiceover, lip-sync, b-roll and subtitles, assembled with FFmpeg.
- **YouTube Studio and publishing**: Generates titles, thumbnails and chaptered descriptions. Posts to TikTok, Instagram Reels and YouTube Shorts, with scheduling, through Upload-Post.

## What you could build

- Cut a podcast or webinar into a batch of captioned vertical clips for TikTok, Reels and Shorts.
- Dub a clip into another language using a cloned voice.
- Generate a product marketing video with an AI actor from a website URL.
- Create titles, thumbnails and chapter timestamps for a YouTube upload.
- Run the clip pipeline on your own machine with a local LLM, keeping footage private.

## Who it's for

Suits creators, small marketing teams and developers comfortable with Docker; you should have 8GB+ RAM and be ready to get API keys for Gemini and, for some features, fal.ai, ElevenLabs and Upload-Post.

## Get started

Clone the repo, optionally copy .env.example to .env, then start it with Docker Compose. Open http://localhost:5175, enter your API keys under Settings, and upload a video to the Clip Generator.

```
git clone https://github.com/mutonby/openshorts.git
cd openshorts
```
```
cp .env.example .env
```
```
docker compose up --build
```

Tags: video-editing, shorts, clip-generator, mcp-server, docker
