Skip to content

joonfjp/ripeclips

Repository files navigation

RipeClips

Find the best moments, trim them, reframe to 9:16, generate captions, and burn them in. Connect RipeClips to transcription and LLM services you configure.

Requirements: macOS 11+ on Apple Silicon, Docker for the bundled transcription and highlight services, and an OpenAI-compatible LLM endpoint.

RipeClips — dark theme RipeClips — light theme

Contents


How it works

Identify highlights

Open the Clip it tab and drop in an MP4.

RipeClips keeps clip selection, trimming, captioning, and export in a native desktop workflow. You choose the transcription and LLM endpoints it uses.

Refine a clip's bounds on the timeline
Captioned clip styled with a live preview Detected highlights ranked by the LLM

Steer the LLM in Identify settings:

Highlight detection settings

Trim, caption & transcribe

  • Trim & export in portrait 9:16 with a live preview, styled captions, and optional background music on any clip.
Portrait 9:16 reframe preview

Full styling with a live preview: 18 bundled fonts, 12 color presets, 15 caption style variations, bold/italic toggles, custom font files, and adjustable font size, letter spacing, and vertical position.

  • Generate word-timed SRTs.
Word-timed SRT cues from the Transcribe tab

Quick start

Start llama-server with the gemma4 model, then start the transcription and highlight services. The default Docker configuration expects llama-server on the host at http://host.docker.internal:8080/v1:

Get a compatible Gemma 4 model from the Unsloth Gemma 4 Hugging Face collection, then point -m at the downloaded GGUF file.

llama-server -m /path/to/gemma4.gguf --host 0.0.0.0 --port 8080
docker compose up --build

Any OpenAI-compatible /chat/completions endpoint works. See highlightr/README.md for configuration examples.

Verify both services are live:

curl http://localhost:5092/health   # parakeet
curl http://localhost:8000/health   # highlightr

See highlightr/README.md for every tuning option and parakeet/README.md for GPU deployment and model variants.

Launch the native app:

cd app
./scripts/check-deps.sh
mise exec -- npm install
mise exec -- npm run setup:ffmpeg
mise exec -- npm run tauri:dev

Full prerequisite walkthrough (Rust, Xcode CLT, FFmpeg with libass/libx264) is in app/README.md.

LLM privacy

Highlight identification sends transcript text, timestamps, optional speaker names, selection preferences, and candidate excerpts to the configured LLM endpoint. With the default configuration this is llama-server running on your host. If you configure a hosted provider, that provider receives this content and handles it under its own data and retention policies.

RipeClips does not send video or audio files to the LLM. Audio is sent only to the configured transcription service. See PROMPTS.md for every LLM prompt and a precise description of the data included in each request.

Supported platforms

RipeClips is currently supported and tested on macOS 11 (Big Sur) or later running on Apple Silicon (arm64). The desktop app and bundled FFmpeg setup are not yet supported on Intel Macs, Windows, or Linux. The Docker services can run separately on other platforms, but that configuration is not currently supported as a complete RipeClips installation.

Release model

v0.1.0 is a source-only release. It does not include a prebuilt application, DMG, or FFmpeg binary. Clone the repository and follow the build instructions to create a local development build using an FFmpeg installation you supply.

Fast and lightweight

   ┌──────────────────────────────┐
   │      RipeClips app           │
   │  Tauri desktop app (app/)    │
   │  bundled FFmpeg sidecar      │
   └───────┬──────────────┬───────┘
           │              │
 transcribe│              │identify highlights
           ▼              ▼
    ┌────────────────┐   ┌──────────────────┐
    │  parakeet-cpu  │   │  highlightr-api  │
    │  ASR :5092     │   │  highlights :8000│──►  your LLM
    │  (parakeet/)   │   │  (highlightr/)   │   (OpenAI-compatible)
    └────────────────┘   └──────────────────┘

RipeClips keeps the UI lean with Tauri: a native Rust shell without an Electron-sized runtime.

Transcription is handled by Parakeet TDT 0.6B v3 through ONNX Runtime, so local SRT generation is fast even before you reach for GPU acceleration.

Rendering stays native in the desktop app. Cuts, 9:16 reframes, caption burn-in, and background music mixes run through the bundled FFmpeg sidecar with libass and libx264.


Who it's for

  • 🎙️ Podcasters & creators turning long episodes into vertical clips for TikTok, Reels, and Shorts.
  • 🎚️ Podcast studios & managers producing and organizing clips across multiple shows, hosts, or clients.
  • 🔬 Researchers extracting focused moments from interviews, field recordings, presentations, and qualitative research.
  • 🎓 Professors & educators repackaging lectures, seminars, and course recordings into concise, shareable videos.
  • 🎮 Streamers finding highlights in long broadcasts and exporting them for short-form platforms.
  • 📰 Journalists & documentarians working with long interviews and footage.

Kudos

Huge thanks to the projects and teams behind:

Desktop app

  • Tauri, Vite — the Rust + webview framework and dev server.
  • FFmpeg, libass, x264 — the media engine behind every cut, reframe, and caption burn-in.

Transcription & Highlights


License

MIT. The source release does not distribute an FFmpeg binary. Locally built or redistributed application bundles must comply with the terms of the FFmpeg build they include; see app/README.md for distribution notes and THIRD_PARTY_NOTICES.md for included third-party components and attribution.

Releases

No releases published

Packages

 
 
 

Contributors