Dyen/Rovin
0
Rovin
๐ฌ Transform long videos into engaging shorts โ A fully local, open-source tool that automatically generates short clips with English captions from videos up to 40 minutes long.
Features
- 100% Local Processing โ No cloud APIs, no data leaving your machine
- Automatic Highlight Detection โ Uses AI to find the most engaging moments
- Scene-Based Segmentation โ Smart scene detection with PySceneDetect
- English Captions โ Automatic transcription with Whisper.cpp
- Incremental Results โ Shorts appear as they're generated, no waiting for the full job
- Modern Web UI โ Clean React interface with drag-and-drop upload
Tech Stack
Prerequisites
Before installing LocalShortsLab, ensure you have:
1. FFmpeg
# macOS
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows (with Chocolatey)
choco install ffmpeg2. Whisper.cpp
# Clone and build
git clone https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
make
# Download the model (base English, ~150MB)
./models/download-ggml-model.sh base.en3. Python 3.11+
# Check version
python3 --versionInstallation
1. Clone the Repository
git clone <repo-url>
cd LocalShortsLab2. Set Up Python Environment
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt3. Configure Environment
# Copy example config
cp .env.example .env
# Edit .env with your paths:
# - WHISPER_BIN_PATH: Path to whisper.cpp binary
# - WHISPER_MODEL_PATH: Path to ggml model fileExample .env:
WHISPER_BIN_PATH=/path/to/whisper.cpp/main
WHISPER_MODEL_PATH=/path/to/whisper.cpp/models/ggml-base.en.bin4. Set Up Frontend
cd frontend
npm installRunning the Application
Start Backend
# From project root
source venv/bin/activate
uvicorn backend.main:app --reload --port 8000Start Frontend (separate terminal)
cd frontend
npm run devAccess the App
Open http://localhost:5173 in your browser.
Usage
- Upload โ Drag and drop a video file (up to 40 minutes)
- Wait โ The system will:
- Extract audio
- Detect scene boundaries
- Transcribe speech
- Score scenes for engagement
- Select and render shorts
- Download โ Shorts appear incrementally with:
- Raw MP4
- SRT captions
- MP4 with burned-in subtitles
API Endpoints
Configuration
All settings can be configured via environment variables or .env file:
Troubleshooting
"Whisper.cpp not found"
Ensure WHISPER_BIN_PATH in .env points to the main binary in your whisper.cpp directory.
"CUDA out of memory"
SmolVLM2 will automatically fall back to CPU if GPU memory is insufficient.
Slow processing
- Reduce
NUM_THREADSif system becomes unresponsive - Use a smaller Whisper model (tiny.en instead of base.en)
License
MIT License โ See LICENSE for details.
Acknowledgments
- FFmpeg โ Video processing
- PySceneDetect โ Scene detection
- Whisper.cpp โ Speech recognition
- SmolVLM2 โ Vision-language model
