Segmenter is a high-performance visual timestamp annotation tool for Linux and Windows. It lets you create, edit, and upload media segment markers β Intro, Recap, Credits, and Preview β to TheIntroDB and IntroDB.
Automatically extracts audio and displays a density waveform on the timeline. Uses FFT-based spectral flatness to color-code passages β mint for dialogue, orange for music-heavy themes like intros and outros.
Real-time MJPEG-based frame strip centered on the playhead for frame-accurate seeking and positioning.
Integrated Recurring Content Detector (RCD) scans an entire season directory and automatically finds duplicate segments across episodes using:
- FAISS-GPU nearest-neighbor search (NVIDIA) or FAISS-CPU (AMD / no GPU)
- CNN feature extraction (MobileNetV3 or SimpleCNN fallback via PyTorch)
- Color Histogram and Color Texture Moment modes for CPU-only setups
- AMD ROCm support β PyTorch ROCm builds accelerate CNN feature extraction on AMD GPUs
- NVIDIA CUDA support β full GPU acceleration including FAISS-GPU
Results are cached in /tmp and reused automatically on subsequent loads.
Stream and analyze files directly from Samba/SMB, SFTP, NFS, WebDAV, or HTTP mounts via native file dialogs.
API keys are stored in ~/.config/Segmenter/keys.json β no keyring daemon required.
| Action | Description |
|---|---|
| Click | Seek to position |
| Alt + Drag | Create a new segment |
| Shift + Drag | Move a segment between rows |
| Drag Edges | Resize segment boundaries |
| Scroll Wheel | Zoom in/out around playhead |
| Shortcut | Description |
|---|---|
| Space | Toggle play / pause |
| β / β | Step one frame backward / forward |
| I / Shift+I | Set Intro start / end |
| R / Shift+R | Set Recap start / end |
| C / Shift+C | Set Credits start / end |
| P / Shift+P | Set Preview start / end |
| , | Snap nearest segment edge to playhead |
| Dependency | Purpose |
|---|---|
python3 (β₯ 3.10) |
Runtime |
pip |
Package manager |
ffmpeg |
Audio/video processing |
| NVIDIA CUDA drivers | Optional β full GPU acceleration (CNN + FAISS) |
| AMD ROCm + PyTorch-ROCm | Optional β GPU acceleration for CNN feature extraction |
./linux/run.shThis script automatically creates a virtual environment, installs all Python dependencies, and launches the app.
| Dependency | Purpose |
|---|---|
.NET 8.0 SDK |
Compilation and runtime |
ffmpeg |
Audio extraction and thumbnail generation (must be in system PATH) |
Run the PowerShell build script:
.\windows\build.ps1This will restore dependencies, compile the project, and generate a standalone executable at windows\dist\Segmenter.exe.
Build standalone .deb, .rpm, and Arch Linux packages:
./linux/build_packages.shOutput artifacts are placed in linux/dist/.
.
βββ windows/
β βββ build.ps1 # Windows Build Script
β βββ Segmenter/ # WPF C# Application
β β βββ MainWindow.xaml # Main UI
β β βββ ...
β βββ dist/ # Compiled Segmenter.exe
βββ linux/
β βββ app.py # Entry point
β βββ ui.py # Main window & all UI logic
β βββ timeline.py # Interactive timeline widget
β βββ framestrip.py # MJPEG frame strip
β βββ player.py # Video player (mpv backend)
β βββ audio.py # Audio waveform extraction
β βββ models.py # Data models (SegmentType, SegmentDraft, etc.)
β βββ clients.py # TheIntroDB & IntroDB API clients
β βββ parser.py # Filename β TMDB metadata parser
β βββ validator.py # Segment validation rules
β βββ rcd_integration.py # RCD scan dialog & worker
β βββ gpu.py # Unified GPU detection (CUDA / ROCm / CPU)
β βββ rcd/ # Recurring Content Detector engine
β β βββ detector.py # Main detection pipeline
β β βββ featurevectors.py # Feature vector extraction (CH, CTM, CNN)
β β βββ video_functions.py # Video resize & framerate utils
β β βββ evaluation.py # Detection evaluation metrics
β βββ run.sh # Launcher script
β βββ build_packages.sh # Packaging script
β βββ requirements.txt # Python dependencies
βββ docs/
β βββ screenshot.png
βββ LICENSE
βββ README.md
- recurring-content-detector β Core fingerprinting, FAISS search, and CNN algorithms used for automated recurring segment detection.
- IntroStamp β The original macOS segment editor that served as UX model and design inspiration.
- TheIntroDB & IntroDB β Public segment marker databases and APIs.
- TMDB β Movie and TV metadata.
MIT License β see LICENSE.
