Recovery
iPod Shuffle Music
How to Get Music Off an iPod Shuffle
Overview
The iPod Shuffle stores music as files with scrambled names in hidden folders. Plug it in and macOS mounts it as a regular USB drive, but good luck figuring out which file is which. ffprobe can read the embedded metadata directly from each file, so you can extract song titles, artists, and albums without installing any iPod-specific software.
Before You Begin
Prerequisites
- macOS (Apple Silicon or Intel)
- An iPod Shuffle with music on it
- Homebrew installed
- ffprobe1 (included with ffmpeg):
brew install ffmpeg How iPod Storage Works
iTunes scrambles filenames during sync, not the iPod itself. It renames each file to a random 4-character string (QOBJ.m4a, ABCD.mp3) and distributes them across numbered folders (F00/, F01/, F02/). The iPod is just passive storage. All iPod models do this, not just the Shuffle.
The metadata inside each file is usually untouched. Standard ID3 tags for MP3s, MP4 tags for M4A files. Any tool that reads those tags can identify the song. That's all ffprobe does here.
If iTunes was set to "Convert higher bit rate songs to 128 kbps AAC" during sync, the transcoded files may have no embedded metadata. In that case, ffprobe will return empty results and you'll need a tool that reads the iTunesDB database instead.
What This Doesn't Cover
- iPod Touch, iPhone, or iPad (those use iOS and need different tools like libimobiledevice)
- iPod Classic or Nano (similar hidden folder structure, but untested with this guide)
- Syncing music back to the Shuffle
Confirm the Shuffle Mounts
Plug in the iPod Shuffle via USB. It should appear in Finder and mount as a volume:
ls /Volumes/ Look for your iPod's name in the output. The music lives in a hidden folder:
ls /Volumes/<ipod-name>/iPod_Control/Music/ F00/ F01/ F02/ The files inside these folders have names like QOBJ.m4a or ABCD.mp3. They're regular audio files with valid metadata embedded in them.
Read Song Metadata
ffprobe can read the ID3/MP4 tags from each file without any iPod-specific tools:
find "/Volumes/<ipod-name>/iPod_Control/Music" -type f \( -name "*.mp3" -o -name "*.m4a" \) \
-exec ffprobe -v quiet -show_entries format_tags=title,artist -of csv=p=0 {} \; This prints each song's title and artist. For a fuller picture including album, genre, and release date:
find "/Volumes/<ipod-name>/iPod_Control/Music" -type f \( -name "*.mp3" -o -name "*.m4a" \) \
-exec ffprobe -v quiet -show_entries format_tags=title,artist,album,genre,date -of csv=p=0 {} \; Export Metadata
Save the full catalog to a TSV file. Tab-separated handles commas in song titles better than CSV:
echo -e "Title\tArtist\tAlbum\tGenre\tDate" > ~/Desktop/ipod_songs.tsv
find "/Volumes/<ipod-name>/iPod_Control/Music" -type f \( -name "*.mp3" -o -name "*.m4a" \) | while read f; do
ffprobe -v quiet -show_entries format_tags=title,artist,album,genre,date -of csv=p=0 "$f" 2>/dev/null
done | sort >> ~/Desktop/ipod_songs.tsv Open the .tsv in Excel or Numbers and it imports cleanly.
Copy Files with Proper Names
The scrambled filenames are useless. This copies every song to a local folder, renamed using the embedded metadata:
mkdir -p ~/Desktop/ipod_backup
find "/Volumes/<ipod-name>/iPod_Control/Music" -type f \( -name "*.mp3" -o -name "*.m4a" \) | while read f; do
title=$(ffprobe -v quiet -show_entries format_tags=title -of csv=p=0 "$f" 2>/dev/null)
artist=$(ffprobe -v quiet -show_entries format_tags=artist -of csv=p=0 "$f" 2>/dev/null)
ext="${f##*.}"
if [ -n "$title" ] && [ -n "$artist" ]; then
cp "$f" ~/Desktop/ipod_backup/"$artist - $title.$ext"
echo "Copied: $artist - $title.$ext"
else
basename=$(basename "$f")
cp "$f" ~/Desktop/ipod_backup/"$basename"
echo "Copied (no metadata): $basename"
fi
done After this, ~/Desktop/ipod_backup/ contains every song with a readable filename like Mariah Carey - Always Be My Baby.m4a.
Check Storage Usage
A quick sanity check on how much of the Shuffle's capacity was used:
du -sh ~/Desktop/ipod_backup A 2GB Shuffle has about 1.8GB usable after firmware. At roughly 7MB per song, that fits around 250 songs.
Resources
Footnotes
FFmpeg Project, "ffprobe," ffmpeg.org. Accessed: May 2, 2026. [Online]. Available: https://ffmpeg.org/ffprobe.html ↩