beetbox / beets

music library manager and MusicBrainz tagger
http://beets.io/
MIT License
12.78k stars 1.82k forks source link

Fix convert plugin attempting to process a non-media file #5261

Open pierreay opened 4 months ago

pierreay commented 4 months ago

Description

My library is managed using Beets for organization and git-annex as storage backend. Therefore when using this system, while my library files always exists on my filesystem, some files may be empty (without content). In this case, when I'm running the convert plugin, I don't wants it to process files which are empty (same apply for any Beets plugin). Hence, I added a check that the file is readable as a MediaFile before doing any process.

Before this fix, trying to encode an empty file would have lead to an error while leaving convert doing its side-effects and convert would also copy empty files to destination for files that doesn't need to be re-encoded.

In my case, this is empty files, but the problem can be anything else (depending on the storage backend) and/or corrupted files. Conclusion, I think checking that the file is readable is always recommended before proceeding to heavy operation like this.

To Do