• My music library was trapped in iTunes
  • I don't use iTunes (or Windows, or OS X)

How it works

  • iTunes exports its library in an xml plist form
  • This script reads it, can spit playlists into arbitrary other formats, and do some basic library analysis stuff
    • (e.g. list artists with fewer then N songs in your library)

Challenges I ran into

  • Okay so this is a fun one
  • I used iTunes on Windows, or more specifically, on an NTFS filesystem
  • NTFS is case-insensitive!
  • There were odd circumstances where iTunes would write a case-inaccurate filepath for a track to the library file!
  • So when you spit a playlist into, say, m3u format and pop it into mpd on linooks (well, ext4, or most other filesystems), it pukes!
  • So I got to write a filepath case-sensitizer
  • Also iTunes URL-encodes filepaths when writing, and other platforms expect, well, not that.

Accomplishments that I'm proud of

  • I wrote this monstrosity in high school, so not a lot

What I learned

What's next for pythonplaylistparser

  • A C++ reincarnation that doesn't suck and does more things

Built With

Share this project: