Skip to main content

CamReview

A private, local CLI for finding and reviewing motion in existing security-camera recordings.

GitHub Issues GitHub Pull Requests License PyPI Version

Key FeaturesInstallationUsageDocumentationSupportContributingLicense

CamReview retrospectively scans timestamped MKV, MP4, MOV, and AVI files, groups motion into events, and writes portable JSON, CSV, and text reports. Classification and clip extraction are opt-in. It is not an NVR, service, scheduler, web application, or database.

Footage and decoded frames remain on the local machine. CamReview has no telemetry and uses no cloud API; Ultralytics may download a model only when classification is requested and the configured model is not already cached.

Key Features

  • Preserves motion continuity across short recording files without loading a day into memory.
  • Uses filename wall-clock times and presentation timestamps to build an accurate timeline.
  • Supports local disks, Windows mapped drives and UNC paths, and mounted SMB/CIFS shares.
  • Produces atomic, deterministic JSON, CSV, and text reports with gaps and processing issues.
  • Optionally classifies moving COCO objects with Ultralytics YOLO on CPU or NVIDIA CUDA.
  • Copies source recordings or creates event-sized clips with FFmpeg without changing originals.
  • Offers CPU-first decoding plus tested automatic or explicit hardware-decoder selection.

Installation

Python 3.11 or newer is required:

python -m pip install camreview

Activate the environment using the command for your shell. FFmpeg is additionally required for event-sized extraction. See Installation for platform-specific steps, optional classification dependencies, and verification.

Usage

Recordings must use <camera>_YYYY-MM-DD_HH-MM-SS.<ext> filenames. Inspect a directory, then scan one camera-day:

camreview inspect /path/to/recordings
camreview scan /path/to/recordings --time all

The current directory receives canonical CAMERA_DATE_motion.json plus CSV and text reports. Start with Getting started for a complete first run.

Documentation

Full documentation lives in docs/: Getting started · Installation · Usage · Command reference · Configuration · Architecture · Report schema · Automation · Troubleshooting

Support

File an issue.

Contributing

Contributions welcome. See the org-wide Contributing Guide and Code of Conduct.

License

MIT — see LICENSE.md.

Release files for camreview 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for camreview 1.0.0
File Size Uploaded
camreview-1.0.0.tar.gz 88.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for camreview 1.0.0
File Interpreter ABI Platform
camreview-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size:133.8 kB

Release files / camreview-1.0.0.tar.gz

Download URL camreview-1.0.0.tar.gz
Size 88.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fcb38aa0151e1d3254e306c404459f3e04a12b937f605d017a24eda6911e8199
BLAKE2b-256 checksum
How to use checksums
52991090cafdb0061d4fc1d642c94b6d24376fd83ff3c0fc5ae8e6a0b7cf6212
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release files / camreview-1.0.0-py3-none-any.whl

Download URL camreview-1.0.0-py3-none-any.whl
Size 45.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86ca4fd5ef23914041b3805bdce830d843e1a14fbc8f652713de18ad9fbfb805
BLAKE2b-256 checksum
How to use checksums
97a4e3bfe97e58ae49525363e73796e9367b34ae8715f45f76b14ef60e21e76b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.2

2 release files

1.0.1

2 release files

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page