A wrapper for ffmpeg that checksums internal media streams, enabling stable verification across metadata and container changes.
dano is a command-line utility that generates and verifies checksums for the internal audio and video streams within media files using ffmpeg. It solves the problem of unstable file hashes when metadata or containers change, providing reliable integrity checking for media collections. Unlike traditional tools like hashdeep, dano focuses on the actual media content, making it ideal for archivists and collectors.
Media archivists, audio/video collectors, and developers managing large libraries of lossless or lossy media files who need reliable integrity verification across format conversions and metadata edits.
Developers choose dano because it brings FLAC-like stream checksumming to all major media formats via a simple, fast CLI. Its ability to detect duplicates based on internal bitstreams—regardless of container or tags—and its support for multiple hash algorithms and storage methods make it uniquely powerful for media integrity workflows.
A hashdeep/md5tree (but much more) for media files
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Hashes actual media streams via ffmpeg, ensuring checksums remain valid after metadata changes or container swaps, as shown in the Sample.mkv to test2.mp4 conversion example.
Stores checksums in extended file attributes (xattrs) or separate hash files, with automatic reading from both, offering multiple persistence options without locking users into a single method.
Identifies duplicate media files based on identical internal bitstreams, useful for cleaning up libraries where files have different containers or tags, as demonstrated with FLAC copies.
Imports existing checksums from FLAC files and verifies them, seamlessly extending FLAC's built-in checksumming to other formats like ALAC or MP4.
Only tested on MacOS and Linux, with Windows support requiring manual compilation and potential issues, as acknowledged in the README's caveat about minor changes needed.
Requires ffmpeg for media processing and metaflac for FLAC import, adding setup complexity and potential installation hurdles, especially in restricted environments.
Designed solely for media files, making it ineffective for general-purpose checksum needs, which limits utility in mixed file collections or non-media workflows.