haziqahmedqasmi/PeakCut
Media & DesignSelf-hosted tool that turns long videos and live streams into captioned vertical clips using your own AI key.
What it does
PeakCut takes a YouTube, Twitch or Kick link (or an uploaded file), transcribes the audio locally, and asks a chat model to pick the moments most likely to hold a stranger's attention. Each moment is cut to 9:16, captioned word by word in one of three styles, given a hook, and can be queued or auto-posted to connected YouTube, Instagram and TikTok accounts. It can also record a live stream into a rolling buffer and clip highlights while the stream is running, using loudness, chat activity and the transcript as signals.
It is aimed at creators and editors who want a self-hosted clipping pipeline instead of a SaaS subscription. Everything runs on your own machine or server, and model choice is yours.
Quick start
Prerequisites: Python 3.10 or newer and ffmpeg available on PATH.
git clone <repository-url> peakcut
cd peakcut
pip install -r requirements.txt
python -m studio.fetch_model
python -m studio.server
The fetch_model step downloads the speech model once (about 480 MB). Then open http://127.0.0.1:8765; with accounts off it goes straight to the dashboard with no sign-in. Go to Settings → AI, choose a provider, paste the key and press Save and test. The same settings can be put in .env as PEAKCUT_AI_PROVIDER, PEAKCUT_AI_MODELS and PEAKCUT_AI_KEY; dashboard values win over the file. Providers include Gemini, OpenAI, Grok, Groq, OpenRouter, Claude, a local Ollama model, or any OpenAI-compatible endpoint — the provider table lists where to obtain keys.
Choosing and paying for AI
The clipping logic needs a chat model that can return JSON. A fast, inexpensive model is enough: a one-hour video is read in about four requests. Several model IDs can be comma-separated to try in order as a fallback. With no key at all, clips are selected by loudness only. Speech-to-text does not use the AI service — it runs locally via sherpa-onnx with the Parakeet model, so audio does not leave the machine. AI usage is billed by the provider directly; the app's AI usage page shows requests and tokens per video.
Deployment and accounts
On a personal machine, PeakCut binds to 127.0.0.1 and has no sign-in. On any server others can reach, set PEAKCUT_ACCOUNTS=1 to enable email or Google sign-in and a /admin dashboard; admin rights are granted only from the command line with python -m studio.admin grant you@example.com. Data lives per user (SQLite locally, PostgreSQL on a server), and videos and clips are stored in each user's folder. The deployment guide covers a single-server Docker setup with PostgreSQL and Caddy for HTTPS, and connecting posting accounts is a separate one-time OAuth setup. .env.example documents every setting.
Constraints
- Python 3.10+ and
ffmpegare required; the speech model download is roughly 480 MB. - With sign-in disabled, the service should not be exposed to the internet.
- Posting to YouTube, Instagram and TikTok requires app credentials and OAuth setup per platform; posting spacing and daily caps are configurable.
- The project checks GitHub every few hours for updates by sending the two commit IDs; disable this with
PEAKCUT_UPDATE_CHECK=0. - You are responsible for rights to the material you download, clip and post, and for the terms of the source and destination platforms.
- By default there are no limits on upload size, video length, recordings, creators or storage unless set in
.env.
HotRepo's take
PeakCut entered HotRepo's new-project board on 2026-11-14 with 104 stars and 40 forks gained over a roughly 14-hour window after creation, in the Python language list. That is a fast opening for a freshly published project, but it is a single snapshot, so it does not establish a longer trend. The feature set — local transcription, bring-your-own-model, self-hosted live clipping and multi-account posting — targets users who would otherwise pay a clipping SaaS, which explains the initial fork rate among people likely to self-host.
Written by AI from the project's README, updated . The project's own docs are the source of truth.
You might also like
- FujiwaraChoki/supoclipTurns long videos and stream VODs into short vertical clips, for creators who don't want watermark or seat-based limits.
- ChrisRodStar/streamA self-hosted home streaming stack that finds, proxies and plays provider video over a private VPN tunnel.
- JayWebtech/autoshortsA local desktop app that transcribes long recordings, ranks viral moments with an LLM, and crops them to 9:16.
- browser-use/video-useTurns raw footage into a cut video through a coding agent, for people who would rather describe an edit than drag clips on a timeline.
- jacke-pp/open-yokiRun your own AI live-stream host with cloned voice, animated avatar, chat replies and autonomous posts on one server.