Obtain perfectly tagged MP3s with Picard Tagger and LastFMPlus.
There are a few nice and shiny services out there that offer automatic MP3 re-tagging, but I have never found one that does everything I want. The fully automated solutions really scare me, and others require that you use iTunes. I'm sure they work fine for the majority of people (in fact a lot of them work on both PC and Mac), but I wanted something a little more powerful. For a long time it's been a dream of mine to find a program that can query the Last.fm database and re-tag my music (specifically genres) using their accurately crowd-sourced information. I even went so far as to hobble together my own PHP script that did this, but it was clunky and I am not very proud of it (so I won't be posting it here). This dream came true when I found MusicBrainz Picard Tagger.

Right out of the box, Picard will scan your music library and find the proper band names, album titles, release dates, and song titles for your music. It will also find all kinds of extra information such as the publisher, country of origin, catalog number, and barcode for specific albums. If you agree with the information it suggests, you can click "Save" and rest easy knowing you're on your way to MP3 tag bliss.
So what's this about Last.fm tags? Picard Tagger supports plugins, and more specifically, there is a plugin called LastFMPlus. LastFMPlus extends Picard's tagging capabilities to include very specific genres, grouping (more broad genres), moods (happy, sad, trippy), occasions (summer, driving), and more. What's even better is Picard will perform searches on a per-track basis, so you don't have to worry about artists or albums that cover more than one genre. There is a pretty detailed tutorial on how to install and use it on their website, but it's been down for me more than once, so I've hosted the tutorial myself which you can download right here. I've also hosted the plugin myself, which can be downloaded here. Their tutorial doesn't cover everything and assumes you already know how to use Picard, so I'll quickly go over the main points so you don't have to read any more than you already are.
Installation & Setup
After you've downloaded Picard, install it but don't open it yet. Download the LastFMPlus plugin and extract it to the plugins folder within your Picard installation directory. Once you've extracted it, there should be a lastfmplus folder in the plugins folder. Within that, there should be two python (.py) files. If you're hardcore, you could open these in a text editor and modify the plugin yourself, but you probably won't need to.
.png)
Run Picard and do what any self respecting geek would do first: open the options. You can click through and enable and disable whatever you like, but in order to enable the plugin, you'll have to click Plugins and enable Last.fm Plus. You can also enable other useful plugins that came bundled with Picard, like Disc Numbers, which will properly tag multi-disc albums. When you're done, click OK to close the options panel, and then open it back up again. Next to Plugins on the left side, there should be [+] icon indicating there's more underneath that menu item. Go ahead and click that to reveal the Last.fm Plus plugin options. You can play with these settings or leave them all at default, but what you have to do is go over to the 2nd tab and click the bold "Load Defaults" button at the bottom. Now click OK.

Let the tagging begin
Now you're ready to really get started. Picard has two main windows: the left side which shows you unmatched files, and the right side which shows you songs that are ready to tag. Use the toolbar buttons at the top to add individual files or an entire folder to the left window. Once they are listed, click "Cluster" to group them by album. If you're tagging individual songs, there's no need to cluster. If you already have fairly well tagged music, you can select which songs from the left window that you want to look up and click "Lookup". The selected songs will be moved to the right side and let you know it's "loading album information". A few seconds later, you should be able to see which, if any, of your selected songs were found. There will be a rectangular meter next to the matched songs indicating how well your song was matched to the one in the database. If it was a perfect match, you'll see a fully green meter. You can right click on the song in the right window and inspect its details to see the custom tags that were added by LastFMPlus. If you're happy with the results, select the song(s) you want to save and click "Save".
![]()
If your tags are a mess or the "Lookup" button is finding incorrect matches, there's still hope. Picard uses fingerprinting to determine the origin of your music even if you have completely incorrect tags or no tags at all. Add your music to the left window as you normally would, except click "Scan" instead of "Lookup". It takes a little longer than usual, but it will more than often find a match. There were a few cases when, despite proper pre-existing tags, "Lookup" failed to properly find a match, but "Scan" did.
That wasn't so bad
With my 1000+ album music library, Picard was unable to find proper tag information for about a dozen of them. One of the downsides is that if the album isn't in Picard's database, then you can't use the LastFMPlus plugin to at least get proper genre information. Even with this limitation, a 1.2% failure rate is something that I'm willing to live with. Not to mention it even found some rarer bootlegs that I wasn't expecting it to find. I also had some bizarre matches with a few albums, specifically in cases when it finds matches across multiple releases of the same album (like deluxe editions), so I had to manually move around the matched tracks so that they made up a single complete matched album. You also might have problems finding albums if you're searching for them on (or before) their release date. This is because Picard uses a user-contributed database, so if nobody else has added that album before you, it's not going to pull any matches. This is a good opportunity for you to contribute!
So it's not perfect, but it's damn good. It has satisfied my need for perfect tags the most out of any solution I've tried, and it allows a wide range of customization. Now we can all create incredibly specific playlists depending on any mood or occasion.