No description
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
song-hash
A blazing-fast Rust CLI for generating and verifying BLAKE3 checksums of large music libraries with a tiny binary footprint.
Features
- Generates hashes using the modern and extremely fast BLAKE3 algorithm
- Hashes and verifies many folders at once using all available CPU cores
- Creates a single
checksums.txtfile per album, leaving artist folders clean - Never overwrites existing checksums unless you explicitly use
--force - Tiny release binary (~550KB)
Installation
cargo build --release
Usage
# Generate checksums for a music library
song-hash hash [OPTIONS] <MUSIC_ROOT>
# Verify checksums for a music library
song-hash verify [OPTIONS] <MUSIC_ROOT>
Hashing Options:
-o, --output <NAME>: Sets the name of the checksum file (default:checksums.txt).-f, --force: Overwrites existing checksum files if they exist.
Verification Options:
-c, --checksum <NAME>: Specifies the name of the checksum file to find and verify (default:checksums.txt).
Examples
Hash your entire music collection (non-destructive):
song-hash hash "D:\Music"
Overwrite existing checksum files:
song-hash hash -f "D:\Music"
Verify every album under Downloads:
song-hash verify "C:\Users\You\Downloads"
What gets hashed?
Only audio files (flac, mp3, wav, ogg, opus, m4a, aac, alac, ape, wma, aif, aiff, pcm, mka) that live directly inside each album directory. Artist folders that contain only sub-folders are skipped. The checksum file format is just two columns: hash & filename.
b818e0e88f3b… 01 - Intro.flac
7c6a21d82f4c… 02 - Track.flac