Skip to main content

CamReview

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

CI 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.1

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.1
File Size Uploaded
camreview-1.0.1.tar.gz 89.2 kB Details

Built distribution (wheel)

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

Total release size:135.0 kB

Release files / camreview-1.0.1.tar.gz

Download URL camreview-1.0.1.tar.gz
Size 89.2 kB
Tags Source
SHA-256 checksum
How to use checksums
832baa4c9dc70cd3d1ac6d23b8b173abdc2b44d06a5486d4aff67d796213aee4
BLAKE2b-256 checksum
How to use checksums
9ff16d3004c488628faa6c87c8f39e8d2fb119ac2ca1c01487129dc6eb43df97
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 12, 2026.

Transparency log

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

Download URL camreview-1.0.1-py3-none-any.whl
Size 45.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5cd0466746850d31754e02fc09c004c216845ad6b150caedae0e423c20a590f2
BLAKE2b-256 checksum
How to use checksums
6b08303a3b81badd9ba7e71b524b3ea59132b5d62b18abc3cba7468df34d59fa
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 12, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.2

2 release files

This release

1.0.1 This release

2 release files

1.0.0

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