AI-powered automatic video editor that creates engaging 10-second highlight reels from raw footage. Uses computer vision and audio analysis to find the most interesting moments.
- Scene change detection — identifies when something new happens
- Motion detection — finds moments with significant movement
- Audio peak detection — detects sounds, voices, action
- Auto scoring — ranks moments by "interestingness" (0–1 scale)
- Hook strategy — places the best moment in the first 3 seconds
- No dead moments — filters out static/boring scenes
- Optimal pacing — 2-second clips for variety and engagement
- Detect — scans video for scene changes, motion, and audio peaks
- Score — ranks each moment by engagement potential
- Select — picks the best moments that fit the target duration
- Edit — assembles the final video with transitions
pip install -r requirements.txt
# Copy and customize config
cp config.example.json config.json
# Place input videos in the input/ folder
python3 main.py
# Output will be in the output/ folderCopy config.example.json to config.json and customize:
| Setting | Default | Description |
|---|---|---|
target_duration |
10 |
Target output length in seconds |
scene_threshold |
20.0 |
Sensitivity for scene detection |
motion_threshold |
8.0 |
Sensitivity for motion detection |
audio_threshold |
-35 |
Audio peak detection (dB) |
min_moment_duration |
0.3 |
Minimum clip length |
max_moment_duration |
3.0 |
Maximum clip length |
require_hook_in_first_3s |
true |
Force best moment as hook |
debug_mode |
true |
Save frame previews |
├── main.py # Entry point
├── detector.py # Moment detection (scene, motion, audio)
├── editor.py # Video assembly and rendering
├── config.example.json # Configuration template
├── requirements.txt # Python dependencies
├── input/ # Drop raw videos here
└── output/ # Rendered highlights
- Python 3.8+
- FFmpeg
- OpenCV (
opencv-python) - MoviePy (
moviepy)
pip install -r requirements.txtMIT