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.2

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.2
File Size Uploaded
camreview-1.0.2.tar.gz 89.6 kB Details

Built distribution (wheel)

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

Total release size:135.4 kB

Release files / camreview-1.0.2.tar.gz

Download URL camreview-1.0.2.tar.gz
Size 89.6 kB
Tags Source
SHA-256 checksum
How to use checksums
17730e6c411b8f4ef1313e507951b7be186ad69791e51f668936ae055540ec37
BLAKE2b-256 checksum
How to use checksums
686d29db9ecc2f69ac5c63d80bfbd858e4a3833fa6f82fc2f3c7391c8a233e7a
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.2-py3-none-any.whl

Download URL camreview-1.0.2-py3-none-any.whl
Size 45.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43e8a0c960b4c4a035ac0b49e2ad5740c68bc372b589a6c478f2f3d9d5d5a2bd
BLAKE2b-256 checksum
How to use checksums
9bbf217e47a58fbf1d5be263c02e217a069521657ed6893dcc4a833f0d598ac7
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

This release

1.0.2 This release

2 release files

1.0.1

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