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)
| File | Size | Uploaded | |
|---|---|---|---|
| autocrc-2.0.0.tar.gz | 29.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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