Aleksandar • Vacić

iOS bits and pieces

iPod Shuffle file structure

Apple has put several restrictions on the iPod Shuffle use. You can only update songs from one PC/Mac, through iTunes. You can’t copy songs from Shuffle to another PC or Mac. You can’t manually copy the songs to Shuffle (must use iTunes).

At least one of those claims is not true. For now.

Indeed, Apple’s iPod Shuffle support FAQ makes it pretty much clear. However, things are not that bad. Apple Matters has detailed the procedure for finding the songs through Mac terminal and copying them over to Mac. Let’s see how it looks like on PC.

File structure

Songs are hidden away in the folder called iPod_Control.

Shuffle root dir

This folder has Music and iTunes folders.

inside the iPod_Control folder

iTunes folder contains the binary files that govern the way Shuffle works. More on this later.

iTunes folder

The songs are separated in several F?? folders. I’m not sure how iTunes distribute the files over these folders; I could not figure out any rule…it seems random.

Music folder

From here, you can simply copy the songs to any computer you connect the Shuffle to.

here are the songs!

How to manually add songs to Shuffle?

Simply copying the .mp3 files over to Shuffle into one of the folders does not work. File is there, but Shuffle is ignoring it, as well as iTunes (when you open the Shuffle playlist in it). I sense that the key is in \iPod_Control\iTunes\iTunesDB and/or in the iTunesSD file.

iTunesDB file

I can see the names of all the songs currently loaded to Shuffle through iTunes, written in some sort of binary format. I believe it to be a matter of time until someone, with enough programming skills, will reverse-engineer this and make an editor for it.

This seems to be the order of information for one song:

  • Title

  • Author

  • Album

  • ?

  • Type (MPEG audio etc.)

  • Publisher (rec. company)

  • Full path on the Shuffle

iTunesSD file

File iTunesSD has similar content (song names and locations are repeated there too).

One guess: iTunesSD contains the file distribution in the Shuffle’s Music folder, while iTunesDB contains the songs info, taken from the iTunes library on your computer.

I’m positive that Apple engineers reading these lines are mirthing their asses off. :)

DeviceInfo file contains the custom name you have set in iTunes for this Shuffle, as well as name of the machine and the username you used to login to that machine.

Rest of the files in the iTunes folder does not look interesting at the moment. Any ideas people?