I spent much of last year bouncing around from one music subscription service to another. In trying Google Play Music, Spotify, Deezer, and Apple Music, I would always come up with a handful of nice things to say about each… followed by a long list of total dealbreakers. Google Play had amazing integration of my long-curated library of tracks with their upload feature, but the UI is clunky, slow, and full of bugs. Apple Music let me integrate their library fairly seamlessly with my own in iTunes, but their Android app was unusable. Spotify’s integration of your personal library is approaching nonexistent. The direction of the company and UI seems to belie a desire to remove it completely.
But, at the end of the day, Spotify’s features and apps still make it the best-in-class. Discover Weekly is borderline frightening at how well it seems to know me; the auto-generated Running playlists are excellent; and the Collaborative Playlist feature is somehow unavailable on any other service. Yeah, I don’t get it either.
So, Spotify was my winner, but now: what to do with my library of mp3s? What about all the mixtapes, bootlegs, and indie stuff that Spotify simply doesn’t have? The first thing you’ll notice when you add a folder to your Local Files is Spotify “matching” your tracks to its own database. For the most part, it does a decent job. But when it fails and matches your stuff incorrectly, it leaves you no recourse. They actually removed the ability to “unlink” the track because… well, because they’re evil, I assume.
What’s worse is matching an artist with whom they have licensing issues. Gods help you if you’re a fan of Chance the Rapper or Bill Callahan: Spotify will actively conceal the track information if it detects media by these and others. Admittedly, my knowledge of copyright law is weak, but this one still blows my mind.
But, I digress. You came because you’ve already seen one or more of these problems. You just want to listen to your own library of songs, on Spotify, without them being incorrectly matched or otherwise messed with.
I have good news and bad news: The good news is that this is indeed possible. The bad news is that the solution is not exactly elegant.
What we’re effectively going to do here is break Spotify’s matching code, without overly damaging your ID3 tags.
The simple trick, if you want to figure out the steps yourself, is ㆍ. That little dot to the left of the period is not a speck on your screen–it’s the Hangul Letter Araea, or 318D in Unicode. It is, in fact, the least noticeable unicode character I’ve found that works for this purpose–none of the whitespace ones seem to suffice, and others were just too obvious. Some even failed entirely to break the match.
In short: you need to change the artist (and albumartist) tag of every single file to reflect the actual artist name… followed by that little dot. Check it out:
Obviously, it’s not totally invisible. To the thoroughly obsessive: I am sorry I can’t offer you better. For people that can live with the blemish, it’s a nice middle finger to Spotify’s algorithm.
Here’s how we do it:
There are any number of ways to mass-tag your whole library. My strong recommendation, though, is to use Mp3tag. It’s a bit spartan in its design, but it’s tiny, feature-rich, fast, and reliable. Windows users can grab it from here, and Mac users from here. If you’re on Linux, just get the Windows version and use Wine… but if Linux is your main OS, I assume you don’t need any more of my help.
Open Mp3tag. From the menu, choose File > Change Directory or press Ctrl+D. Select the parent folder where all your music is stored. If it’s stored in more than one place, you’ll have to repeat this process for each location (or, ya know, move it all into one folder).
Again from the menu, select Actions > Actions or press Alt+6. From the Actions Group window, press the button with the star emblem in the upper right. Name your Action Group whatever you want–for example, Spotify Fix.
From the Actions window, hit that star emblem button again. In the dropdown, select Format Value and click OK. Now, in the resulting window, choose ARTIST from the Field dropdown, and copy+paste the following in the Format String field:
Note that the trailingㆍcharacter may appear as a regular square in this window. It’s totally fine, and you can ignore it. Spotify will read the character as you see in the image above. If it looks roughly like the image below, click OK.
You should be back to your Actions Group window, but you’ll notice your Format Value action in the white area. If that’s the case, click that star emblem button one more time. Choose Format Value again, and hit OK. This time, choose ALBUMARTIST in the Field dropdown and type (or copy+paste) the following into the Format String field:
Note that there’s no trailing ㆍ this time around. Click OK in the Format Value window, and you will notice your second action has appeared in the list. Is so, click OK again in that Actions window, and then Close in the Action groups window.
To this point, you have set up a macro to accomplish two things. The first will add the ㆍ to a file’s artist field, and the second will make the album artist field match it exactly. You need both of these in place to break Spotify’s matching. All that’s left now is to run the macro on all your tracks and then save your changes. You may want to test this on an album or two at a time to make sure you’re okay with what it’s doing, and that Spotify is behaving how you expect.
When you’re ready, you can use the menu to choose Edit > Select all files, then Actions > Spotify Fix (or whatever you called it in Step 2). This step may take awhile depending on the size of your library.
Again, note that you will need to save your work after the macro runs. Mp3tag doesn’t actually write your changes until you tell it to do so. When all is said and done, and ensuring all your files are still selected, choose File > Save tag, and enjoy your unmatched local files in Spotify.
That’s it! I know it’s not perfect, but it’s the best I’ve been able to do so far. If you’ve got a nicer unicode character (or better, a nicer method) to accomplish this goal, I’d love to hear it in the comments. Otherwise, I hope this works as well for you as it has for me. Happy listening!