[AMG] itunesdb is a Tcl library for reading iTunesDB files. If you have an iPod, this library may be of use to you. An iPod uses an iTunesDB file to store all information about its music and playlists. Most importantly, the iTunesDB file associates song titles with files in the iPod's filesystem. Get the source code at http://ioioio.net/devel/itunesdb/ . itunesdb uses [Snit]. I wrote itunesdb for [tclpod]. At this exact moment all tclpod does is cross-reference the output of itunesdb so that I can better utilize it from the Tcl console. But I am on the brink of developing it into a graphical application presenting the same information in a series of scrolling lists with filtering options. And when I'm done with that, I'll write the tclpod page. I relied heavily on the source code for gtkpod [http://gtkpod.sourceforge.net/] and GNUpod [http://www.gnu.org/software/gnupod/] to help me figure out the iTunesDB file format. Unlike itunesdb, both of these programs are capable of writing iTunesDB files. While itunesdb isn't as fast as these other programs, I think its source code is easier to read. And it has the advantage of being a Tcl program. In the particular case of tclpod this was crucial because I didn't want to force the target user (my brother, as it turns out) to figure out how to compile and install some library on his iBook, whereas he already has Tcl/Tk. ---- '''Sample Usage''' % package require itunesdb % itunesdb db /mnt/ipod/iPod_Control/iTunes/iTunesDB % db seek track % while {[db remaining]} { array set track [db read] puts "$track(artist) - $track(title)" } % db destroy [[[dict]]] should make this easier and faster. :^) If anyone wants to see more, the (incomplete) source code to tclpod is available upon request. ---- '''To Do''' * More testing, particularly of the error handling and resynchronization mechanism. Also test with iTunesDB files generated by various programs, including iTunes itself. So far all my testing has been with the iTunesDB files generated by gtkpod. '''Wish List''' * Documentation. * Write support. * Speedups. * Seeking to arbitrary track or playlist entries. Anyone want to help? ---- What: itunesdb Where: http://ioioio.net/devel/itunesdb/ Description: Tcl library for reading iTunesDB files. Updated: 11 August 2004 Contact: Andy Goth ---- [[ [Category Package] ]]