What you're describing ought to be the job of the filesystem, and is something that next generation filesystems (zfs, btrfs, etc.) already do. Those filesystems take checksums of all files and provide various ways to discover when the file no longer matches its checksum, safeguarding against bitrot.
Well ReFS was supposed to bring that functionality over to Windows but that's the first time I've ever had an entire drive just suddenly report that all files are corrupt.
In my previous experience, disk failure usually means a handful of corrupt files at most, providing that you have a tool monitoring the drives in your system and set it to either shut down immediately or initiate a backup automatically.
This seems like it was a filesystem failure, not a disk failure.
The backup issue is only an issue if you're not doing incremental "forever" backups. With certain types of incremental backup software (like some of the neat modern de-duplicating solutions), you can effectively keep backing up indefinitely, which would give you the ability to roll back to an arbitrary point in time. Even conventional incremental backups can give you some ability to go back in time if necessary.
Yes, I use incremental backups (on the drives that have full backups...) but not with deduplication as I'm not running a server version of Windows, which means that I have a limited amount of time/changes that I can roll back.
But you need to have a way of knowing that a file is corrupt for that to be useful.
The filesystem
should handle this, but that's clearly not something that can be completely relied upon.
I run two scrubs a month (overnight) on my btrfs array; I have incremental backups going back months that would allow me to retrive an older version of any file that had rotted between scrubs; I can't imagine JRiver being able to offer something equivalent as it's so far outside the core mission of a media player, but the folks at JRiver have surprised me before
Well that's why I was thinking it could be done on import as part of the audio analysis process.
If I run dBpoweramp's Audio CRC check on a WAV file instead of a compressed audio file it completes in a couple of seconds, and I'm not typically importing hundreds of files at once so that calculation time would not be expensive.
It was because it's specifically an audio CRC being calculated and not a file CRC that it seemed appropriate for media center.
Fingerprinting for metadata analysis on a onetime basis might be a good idea, but hashing a large media collection regularly for integrity checking is pretty computationally expensive.
Well it doesn't have to be a regularly scheduled thing.
Make it a manual thing that can be run on sets of files, and perhaps have an option to check files during playback once they have been decoded for example.
I'm not expecting it to replace what these advanced file systems are supposed to be doing, just as a way to confirm that your files are good as they're played, and having some reference that files can be compared against in the event that you have a failure to deal with.
It's more that this would have been very useful in sorting through the wreckage of 4TB/~150,000 files instead of what I'm having to do now.
I'd be less concerned if I knew
what was bad, so that I know what needs to be replaced. Instead I have a lot of files that
appear to be fine, but I know that many of them are not.
Many of the files are good - which is good because I'm now finding that a lot of them are no longer available due to closures (e.g. GameFront shutting down at the end of April, videos on YouTube channels being deleted or the channels shut down, bandcamp pages or other independent sites being shut down etc.) but I've also had a four hour video that passed all of the tests above, but then cut off about 57 minutes into it for example.
The good thing is that, at least in JRiver I still have thumbnails for all the videos, and filenames/other details for these files in my library. That alone is proving to be a very useful resource - at least I have a record of all the media that was on the drive, even if I don't have a way to check which files are good.