Sunday, 10 June 2007

Unified iTunes and Nokia Metadata

Okay as promised, I have a way to get the most out of syncing your music with your Nokia phone.

The Nokia E61 (and I expect all E-series and possibly earlier N-series models) does not read iTunes-style metadata. This means your fancy new fixed iTunes Plus tracks only come up in Music Player using their file name. Which is a bit of drag.

With a bit of nasty hack-work (again!) we can fix this.

Update #1: Fixed some bugs in the patch, new one uploaded.

Nokia Music Player supports (in MPEG4 containers) 3GP-style metadata, including at least:

  • Title (song title)

  • Performer (artist)

  • Genre

The bad news is, it's not easy to get that stuff into the file itself, because having both in there at the same time is non-compliant/non-standard but hey it works and you've got a backup right? (Apple reminds you, now I'm reminding you too.)

I have found that in the same way that Nokia Music Player gracefully ignores iTunes metadata, iTunes also gracefully hides 3GP metadata. Which means all we need is a simple way to update the 3GP metadata. I treat the iTunes metadata as the primary source - after all it's the one you can edit (ie, via Get Info in iTunes) and its the one that's set by the iTunes Store and its the only one there at the beginning.

I've made a patch to the AtomicParsley command line tool that will copy across the above fields from whatever iTunes has them set to.

Firstly at this point, I'm not going to package this one up nicely yet - it's 'on the edge' and could dearly use more testing but for those brave types like me, you can grab the unified diff patch (from the Download link on that page), apply it to the AtomicParsley v0.9.0 source code, recompile (sh build in the AtomicParsley directory) and use it (obviously you'll need Xcode Mac fans, and Windows fans, see the AtomicParsley instructions - I'm not testing there).

Once that's done it's simple to use:

path/to/AtomicParsley --3gp-help
path/to/AtomicParsley path/to/Music/file.m4a --nokia

And the tags will be duplicated. Note that as for all of AtomicParsley the default is to make a copy named something like file-temp-####.m4a. If you're confident that it's working for you, simply add --overWrite to the end of the line. That way you won't confuse iTunes or have to rename the file (because you've already got a backup, right?)

Now when you sync the music with your phone (manually or via Nokia Media Transfer) you should see the Title and Artist (instead of Unknown) in the Now Playing screen and View Details in the Options menu will show the Genre as well. If you update the Music Library, you'll be able to find the music via Title, Artist, and Genre.

Before you ask, I haven't found a way to make Album work properly yet. I suggest that you use Track lists (in the library) to simulate Albums (ie, one track list per album with the tracks listed in order). You can do this directly from iTunes with Playlists using Nokia Media Transfer since that tool converts iTunes Playlists to Track lists for you.

That's enough to make my phone replace my iPod for now, so I'm happy, by all means leave me a comment if there's any issues.