Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

haziqahmedqasmi/PeakCut

Media & Design

Self-hosted tool that turns long videos and live streams into captioned vertical clips using your own AI key.

141
50
Python
MIT
new today

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 ffmpeg are 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

  1. FujiwaraChoki/supoclipTurns long videos and stream VODs into short vertical clips, for creators who don't want watermark or seat-based limits.Python1,836
  2. ChrisRodStar/streamA self-hosted home streaming stack that finds, proxies and plays provider video over a private VPN tunnel.Go37
  3. JayWebtech/autoshortsA local desktop app that transcribes long recordings, ranks viral moments with an LLM, and crops them to 9:16.Rust1,323
  4. 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.Python29,770
  5. jacke-pp/open-yokiRun your own AI live-stream host with cloned voice, animated avatar, chat replies and autonomous posts on one server.JavaScript202