- 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