Automatic scene detection and algorithmic video remixing for filmmakers and video artists.
Scene Ripper analyzes video files to detect scene boundaries, displays them as browsable thumbnails, and lets you remix clips into new sequences using algorithmic composition.
Key Features:
- Automatic scene detection with adjustable sensitivity
- Thumbnail grid browser with preview
- Multi-track timeline for composition
- Algorithmic remix (shuffle with constraints)
- Export individual clips or complete sequences
- YouTube/Vimeo URL import
Option 1: AppImage (Recommended)
Download the latest AppImage from Releases:
# Download (replace VERSION with actual version)
wget https://github.com/dvschultz/algorithmic-filmmaking/releases/download/vVERSION/Scene_Ripper-VERSION-x86_64.AppImage
# Make executable and run
chmod +x Scene_Ripper-*-x86_64.AppImage
./Scene_Ripper-*-x86_64.AppImageOption 2: From Source
# Install system dependencies first (see System Dependencies below)
# Ubuntu/Debian:
sudo apt install python3 python3-pip ffmpeg \
gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly gstreamer1.0-libav
# Clone and install
git clone https://github.com/dvschultz/algorithmic-filmmaking.git
cd algorithmic-filmmaking
pip install -r requirements.txt
# Run
python main.py# Install FFmpeg
brew install ffmpeg
# Clone and install
git clone https://github.com/dvschultz/algorithmic-filmmaking.git
cd algorithmic-filmmaking
pip install -r requirements.txt
# Run
python main.py- Install Python 3.11+ from python.org
- Install FFmpeg from ffmpeg.org and add to PATH
- Clone and run:
git clone https://github.com/dvschultz/algorithmic-filmmaking.git
cd algorithmic-filmmaking
pip install -r requirements.txt
python main.pyRun:
python main.pyBasic Workflow:
- Import a video file (drag-drop or Import button)
- Adjust sensitivity and click "Detect Scenes"
- Browse detected clips in the thumbnail grid
- Drag clips to the timeline to build a sequence
- Click "Export Sequence" to render the final video
- PySceneDetect with AdaptiveDetector
- Sensitivity slider (1.0 sensitive → 10.0 less sensitive)
- Background processing keeps UI responsive
- Progress reporting
- Thumbnail grid of detected scenes
- Duration labels on each clip
- Click to preview, double-click for full playback
- Drag-drop to timeline
- Multi-track composition
- Drag to reposition clips
- Playhead synchronization with preview
- Remix algorithms (Shuffle - no same-source consecutive)
- "Generate" button for algorithmic sequencing
- Individual clip export (frame-accurate)
- Batch export (all or selected)
- Sequence export (timeline → single video)
- Opens output folder on completion
- YouTube and Vimeo support via yt-dlp
- Automatic scene detection after download
algorithmic-filmmaking/
├── main.py # Entry point
├── requirements.txt # Dependencies
├── core/
│ ├── scene_detect.py # PySceneDetect wrapper
│ ├── ffmpeg.py # FFmpeg operations
│ ├── thumbnail.py # Thumbnail generation
│ ├── downloader.py # yt-dlp wrapper
│ ├── sequence_export.py
│ └── remix/
│ └── shuffle.py # Constrained shuffle
├── models/
│ ├── clip.py # Source, Clip dataclasses
│ └── sequence.py # Sequence, Track, SequenceClip
└── ui/
├── main_window.py # Main application window
├── clip_browser.py # Thumbnail grid
├── video_player.py # Preview player
└── timeline/ # Timeline components
| Component | Technology |
|---|---|
| UI Framework | PySide6 (Qt 6) |
| Scene Detection | PySceneDetect |
| Video Processing | FFmpeg |
| Video Download | yt-dlp |
| Computer Vision | OpenCV |
PySide6>=6.6
scenedetect[opencv]>=0.6.4
opencv-python>=4.8
numpy>=1.24
yt-dlp>=2024.1
macOS:
brew install ffmpegLinux (Ubuntu/Debian):
# FFmpeg and Qt multimedia backend (GStreamer)
sudo apt install ffmpeg \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libavLinux (Fedora):
sudo dnf install ffmpeg \
gstreamer1-plugins-good \
gstreamer1-plugins-bad-free \
gstreamer1-plugins-ugly-free \
gstreamer1-libavLinux (Arch):
sudo pacman -S ffmpeg \
gst-plugins-good \
gst-plugins-bad \
gst-plugins-ugly \
gst-libavWindows: Download FFmpeg from ffmpeg.org and add to PATH
Complete:
- Scene detection
- Thumbnail browser
- Video preview
- Individual clip export
- URL import (YouTube/Vimeo)
- Basic timeline
- Sequence export
- Shuffle remix algorithm
- Linux support (AppImage packaging)
In Progress:
- Timeline playback preview
- Similarity-based sequencing
- Motion-based ordering
Future:
- Clip tagging (mood, motion, color)
- FAISS vector similarity search
- CLI for batch processing