I have written a library in c# (.NET 2.0) . It allows you to get any songs off your ipod. Its usage is pretty simple.
using com.itunessdk.ipod.DB;
com.itunessdk.ipod.DB.Manager manager = new Manager();
MHITList songList = manager.GetSongs(@"F:\iPod_Control\iTunes\iTunesDB");
foreach (MHIT song in songList)
{
Console.WriteLine
(
song.ARTIST + " : " + song.ALBUM " : " + song.LOCATION
);
}
This should allow to make your own gui and get the songs off your ipod and do what you want with them. This is definately beta, so any feedback would sure be appreciated.
download it here itunesDBlibrary-csharp.zip (IE users might have to right click the link and do “Save Target As” to save the file.)

Does this library support adding to the library (Writing t the iTunesDB) if so an example would be great. If not I think that would be a great feature.
No it currently does not. I originally wrote this to get songs off of my ipod integrated with itunes sdk. So I am never adding songs to my ipods other than through iTunes. I have been meaning to get around to that feature but have just been too busy.
Also, When I load it into a listview, it says that the object has already been added.
Somthing like this would give me the error.
…
foreach(MHIT song in songList)
{
ListViewItem lvi = new ListViewItem();
lvi.Text = song.TITLE;
lvi.SubItems.Add(song.ARTIST);
listview1.Items.Add(lvi);
}
…
Nice libary though
I agree, supprt for database writing would be a great feature.
So this is just a wrapper for the iTunes SDK?
Cirbirus, No , not at all. Its a library to get the songs off of your ipod. iTunes SDK has no support for this whatsoever. It reads a little file on your ipod called the itunesdb file. Hope that helps
Howdy,
Thanks for this! My coworkers are endebted to you (as now I can share all the tracks on my iPod over our network).
I am having some issues with the ratings field giving rather nonsensical numbers (e.g. anything from 62308, 2404, 7012 for 5 star tracks). I am running a 5th gen iPod if that helps.
It would be great if this field could be written too as well.
Thanks!
Terence,
Glad it of some use to somebody, please spread the word about this library.
As to the rating, I will look into that. My greatest reason for this library was to just get songs off of my ipod. But I will look into the ratings, not sure why its doing what you say. I’ll post more later.
Ah, very cool. And thanks!
I’m currently in the process of writting my own library so I can write a replacement for the horrible iTunes app.
[rant]
I’m very, very sick of spending hours fixing and organizing my music only to have all that work discarded when I move my files to another computer. And writting ID3 tags from iTunes doesn’t work but even if it did work, I shouldn’t have to tell it to do that; it ought to just do it.
“Worst application ever!” - Comic Book Guy
[/rant]
We need a way to write to it!
Also, support for album art would be sweet as well.
Is this still actively developed / are you planning on making any changes?
The provided functionality is pretty cool, but I would definitely be interested in knowing how it works… Where did you get the ItunesDB format specifications?
If the library is no longer developed, would you have any objections to releasing a deobfuscated version (the version downloadable here has been passed through the Xenocode masher), that could be used by others out there to maintain or enhance it (even only for personal use?)
Thanks,
Tao
Does the itunes SDK have a way of connecting to iTunes using TCPIP? Basially I would like to run a app on any of the machine on the network that controls iTunes.
The iTouch has an app that connects via the WiFi and then controls the itunes. I assume this is using TCPIP?