𝔩𝔢𝔩𝕠𝔭𝔢𝔷
Theme

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.

Note

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

  1. FFmpeg Project, "ffprobe," ffmpeg.org. Accessed: May 2, 2026. [Online]. Available: https://ffmpeg.org/ffprobe.html

Previous
T2 Mac Firmware Reset