Having hit those first two pain points, I changed my transcode config to 1) run every time, and 2) use a custom bash script as the transcode command. The bash script keeps a plaintext list of files + their modtime and disk size, then only transcodes files it hasn’t seen before. Because it’s a plaintext list and relatively small, there’s not a terrible performance hit since it’s paged into memory.
Not at all saying this to dismiss your criticism though; absolutely would be great to have better OOTB options. Just putting it out for anyone who wants a workaround :).
- beets can't delete transcoded files which have been deleted at source.
- beets can't re transcode existing transcoded files when the source has been modified.
- It's impossible to preserve the original directory structure when transcoding because it strips all path separators for "security".
I use a Bash script I've been maintaining for a number of years instead.