Bitrot, or what happened to all my music?
Linux Music JellyfinAs part of my project of moving away from Apple services I’ve been setting up my own music server, using Jellyfin.
I’ve been collecting music since before CDs were a thing.1 I had an enormous CD collection but at some point in the last decade or two I decided that I didn’t have any room for storing physical media any more and ripped all of my CDs and DVDs and got rid of them.
When I did this I was thoroughly embedded in the Apple ecosystem, so I just ripped all of my CDs with iTunes and stored them in my iTunes Music Library. In addition to my ripped CDs, various MP3 files that I’d accumulated over the years also went into the iTunes library. Eventually, the iTunes library got so big that I struggled to fit it on the little HDs that came with the various Apple laptops I had.
The first mistake I made was using iTunes with a non-local music library. It’s long enough ago that I don’t remember if I was hosting my music library on a network share or a removable hard drive, but whatever I was doing was both notionally supported and incredibly stupid. Over time iTunes managed to corrupt a series of music files – usually by way of associating the wrong file with the wrong metadata. So when you played a file it would be song x, but the file name and the MP3 tags would be for song y. This happened maybe a decade or more ago, and I’m still undoing the damage it caused to my library.2
The second mistake I made was subscribing to iTunes Match and Apple Music.3 Over the years, the lines between what was in my music library and what came from Apple Music became blurred, and non-DRM’d MP3 occasionally disappeared to be replaced with DRM’d Apple Music files. When I finally pulled the plug, there were a bunch of supposed music files and playlists on my local machine that I could not longer access.
I’m still not sure what the third mistake was, or even if it was my mistake. But when I went to copy all of my music files to the new Jellyfin server, some failed to copy. The main thing that the problem files had in common were non-ascii characters in file names. As someone who has a reasonable collection of metal, you’d think it would be the umlaut in some metal song where I first noticed it, but it was actually Lady Gaga. Basically, files with “special characters” in them would become unreadable.
At this point I had my music collection in a few different places – locally on my Mac, and in a couple of places on my Synology. I’m not sure exactly which ones died, but it wasn’t just one or the other. And it wasn’t just a long time ago – tracks from bands I’d only got into pretty recently were also affected. My guess is that somewhere between the Mac and SMB networking and the btrfs filesystem on the Synology something just went wrong.
Because Jellyfin is quite fussy about correctly tagged music files, I’ve now spent quite a lot of time (most of my Christmas break, really) identifying and correcting files. MusicBrainz Picard has been particularly great for doing this – it’s free and works well and isn’t completely horrible to use.
I guess the moral of the story is: backup your files, including your music. Even if your house doesn’t burn down, files can get corrupted for mysterious reasons and you may not notice for a long time. And if it’s something that can’t be replaced (unlike an MP3 from a commercial release), you may live to regret your inaction.
-
The first album I can remember buying with my own money was 3, by Violent Femmes, in 1988. ↩︎
-
How is it possible that it was broken for so long, you may ask? Basically I have always mostly listened to music shuffled or on the go, such as in the car, and when the song that’s playing doesn’t match the metadata that’s being displayed I either didn’t notice or wasn’t in a position to do anything about it. ↩︎
-
iTunes Match actually still exists, and allows you to have a copy of your local music library in the cloud. When it works it works well, but it does have a habit of replacing explicit versions of your songs with American radio friendly censored versions. ↩︎