Skip to main content

AutoCRC

autocrc uses 32-bit CRC-sums to verify the integrity of files. The CRC-sums are parsed both from filenames and from sfv files.

autocrc can perform CRC-checks recursively. After it's done, it prints a summary of the result.

Prerequisites

Python 3.10 or later

Installing

Install it with pip:

pip install autocrc

Or build and install from a checkout:

pip install .

Examples of Usage

  • To check the CRC of the files in the current directory: autocrc

  • To check the CRC of the files recursively: autocrc -r

  • To check the CRC of a specific file: autocrc file[12345678].mkv

  • To check the CRCs specified in an sfv-file: autocrc file.sfv

  • To check several files and directories at once: autocrc file.sfv other[12345678].mkv some/dir

A path that does not exist is an error, not something autocrc quietly skips:

$ autocrc typo.sfv
autocrc: typo.sfv: No such file or directory

Exit Status

autocrc exits with a bitmask describing what went wrong:

Value Meaning
0 Everything OK
1 At least one CRC mismatch
2 At least one missing file
4 At least one read error, or a directory that could not be read during a recursive walk
8 A path given on the command line does not exist or could not be read
130 Interrupted with Ctrl-C

Development

python -m venv venv
source venv/bin/activate
python -m pip install -e '.[dev]'

pytest -q
ruff check
ruff format --check

There is also an end-to-end testbed that exercises the installed command against real files -- permission bits, symlinks, a fifo, Windows-style sfv paths. It is worth a pass before a release:

pipx install --force .
python testbed/build.py
testbed/run-scenarios.sh

See testbed/README.md for what each scenario covers.

Changelog

See CHANGELOG.md. Note that 2.0.0 contains breaking changes if you are coming from 1.0.

Notes

The way the output is formatted is heavily influenced by pure-sfv.

Current directory: headers are always absolute, and directories are visited in sorted order, so the output of a run does not depend on how the paths were typed or on the order the filesystem returns them.

-q reports only the directories in which something went wrong. A run in which everything checks out prints nothing at all.

A directory that cannot be read during a recursive walk is reported on stderr and then skipped, so the rest of the tree is still checked -- but the exit status says that something was missed rather than claiming success.

Metadata

Release files for autocrc 2.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 autocrc 2.0.0
File Size Uploaded
autocrc-2.0.0.tar.gz 29.7 kB Details

Built distribution (wheel)

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

Total release size: 50.6 kB

Release files / autocrc-2.0.0.tar.gz

Download URL autocrc-2.0.0.tar.gz
Size 29.7 kB
Tags Source
SHA-256 checksum
How to use checksums
409e8c81df5f29ce9bbe3cec0eca8046360cf0a231b5a4b6e08f8bfe586c2061
BLAKE2b-256 checksum
How to use checksums
1d0af12734127dd1ede2b1a7c3eab9aaf10280b37b115d0079df9703ba7ad9ca
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 13, 2026.

Transparency log

Release files / autocrc-2.0.0-py3-none-any.whl

Download URL autocrc-2.0.0-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
76054208acca994a38061dd19bca3a044caa97ac4bab70f4bb15ffd5330eff4d
BLAKE2b-256 checksum
How to use checksums
efc87f279bc476b6f21cde255c20be08572f7b89775c8dbaa1ab7578b9023f2e
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 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0

1 release file

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