scenedetect
Video scene cut/shot detection program and Python library (bundles the opencv-python OpenCV variant and the scenedetect CLI).
What it is and what it does
PySceneDetect is a video analysis tool that identifies shot boundaries and scene cuts in video files. It provides both a command-line interface and a Python library for detecting fast-cuts and threshold-based fades, then automatically splitting videos into separate clips. The tool bundles opencv-python for computer vision and relies on standard dependencies like numpy, click, and tqdm.
You can use it as a standalone CLI tool (e.g., `scenedetect -i video.mp4 split-video`) or import its Python API to integrate scene detection into larger workflows. The package is actively maintained, supports modern Python versions (3.10–3.13), and offers variant distributions: the standard package bundles opencv-python, a headless variant uses opencv-python-headless for servers, and a core-only variant lets you bring your own OpenCV build.
Use it for:
- Automatically split long videos into individual scenes or shots for archival or editing workflows.
- Analyze video content to find shot boundaries for automated video summarization or highlight extraction.
- Integrate scene detection into video processing pipelines to trigger downstream tasks at scene cuts.
- Detect and extract fade transitions in videos for quality control or content analysis.
- Build video editing tools that need to identify natural cut points for re-composition.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Detects scene cuts and shot changes in videos, then splits them into separate clips using command-line or Python API.
Yes. Active maintenance, low install friction, no known vulnerabilities, permissive license, and a clear use case for video analysis. The CLI is immediately usable and the Python API is straightforward. Choose the standard package for desktop use, scenedetect-headless for servers, or scenedetect-core if you need to manage your own OpenCV variant.
Install
scenedetect on PyPI
pip
pip install scenedetectuv
uv add scenedetectpoetry
poetry add scenedetectInstalling scenedetect
Before you install
Low friction install with a pure-Python wheel. Active maintenance: last commit 2026-08-10, release 23 days old. Supports Python 3.10–3.13. Runtime dependencies are common and stable (click, numpy, opencv-python, platformdirs, tqdm).
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install scenedetect
from scenedetect import detect, AdaptiveDetector, split_video_ffmpeg
scene_list = detect('video.mp4', AdaptiveDetector())
split_video_ffmpeg('video.mp4', scene_list)
Requires ffmpeg on the system PATH for split_video_ffmpeg; opencv-python needs a display server on headless systems (use scenedetect-headless variant instead).
Verify before relying
- Whether AdaptiveDetector is the only detection method available or if others exist.
- Exact performance characteristics (speed, accuracy) on different video codecs and resolutions.
- Whether the Python API supports real-time streaming or only file-based input.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — click, numpy, opencv-python, platformdirs, tqdm |
| Maintenance | actively maintained — 23 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,117,991/month — #4,346 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: scenedetect-0.7.1-py3-none-any.whl
Keywords: video, computer-vision, analysis
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
dxcamDXcam captures screen frames on Windows at high…
permissive · top 15,000 on PyPI
google-cloud-videointelligencePython client library for Google Cloud Video…
permissive · top 1,000 on PyPI
moviepyMoviePy is a Python library for video editing…
permissive · top 5,000 on PyPI
youtube_dlCommand-line tool to download videos from…
permissive · top 15,000 on PyPI
subliminalSubliminal downloads subtitles for video files…
permissive · top 15,000 on PyPI
transparent-backgroundRemoves backgrounds from images and videos…
permissive · top 15,000 on PyPI
mediapyMediapy reads, writes, and displays images and…
permissive · top 5,000 on PyPI
pysrtpysrt parses, edits, and writes SubRip (.srt)…
copyleft · top 15,000 on PyPI
supervisionSupervision provides utilities for loading,…
permissive · top 5,000 on PyPI
OpenTimelineIOOpenTimelineIO provides an interchange format…
permissive · top 15,000 on PyPI