The My Pod app icon: a white click-wheel iPod on a navy tile, with gold stars and blue music notes above it.

My Pod

Sync music to a classic iPod, on modern macOS. Point it at a folder of music, tick what you want, and it handles the rest — including converting FLAC and anything else the iPod can’t play, so you never have to keep a second, iPod-friendly copy of your library.

macOS 15.7+ Apple silicon MIT licensed Built on libgpod

View source on GitHub How to build it
The Music tab: a scrollable list of artists with checkboxes, a dot marking artists not yet on the iPod, and a side panel showing sync selection, new music, and conversion status.
Your modern music library
A black iPod with a red click wheel on a wooden desk beside coiled white earphones, its screen showing Now Playing: Espresso by Sabrina Carpenter, from Short n' Sweet, with the album cover displayed.
Your retro music player

What it does

Everything iTunes used to, minus iTunes

Apple dropped iPod support from macOS years ago. My Pod puts a native SwiftUI interface on top of libgpod, so a click-wheel iPod can still be kept in step with a music library on disk.

A sync, start to finish

Nothing is written until you say so

Every sync opens with a plan of exactly what will change. Each phase after that reports its own progress and can be cancelled — cancelling finishes the track in flight and saves what’s already done, so the iPod is never left half-written.

  1. 01

    Review

    What gets added, removed, left alone, and transcoded.

    The sync plan sheet listing 43 tracks to add, 1 to remove, 2,839 unchanged and 43 needing conversion, with the track to be removed named underneath.
  2. 02

    Convert

    Only what isn’t already cached, with a running estimate.

    The converting phase, showing 3 of 43 tracks done and roughly eighteen seconds remaining.
  3. 03

    Copy

    Track by track onto the device, naming each as it goes.

    The copying phase, showing 8 of 43 tracks copied and the track currently being written.
  4. 04

    Save

    Writing the iTunesDB and rendering artwork thumbnails.

    The saving phase, writing the iTunes database and rendering artwork thumbnails.
Sync complete: 43 tracks added, 1 removed, 2,839 skipped, and 2,883 now on the iPod.
Done, with a count of what actually changed.

Playlists

Ordinary files, not a database

Playlists are plain .m3u files in a folder you control, so anything can read them and they outlive the app. Drag tracks across from the library to build one, reorder by dragging, and they sync to the iPod as real playlists.

The Playlists tab: a list of playlists on the left, and the selected playlist's 13 tracks on the right with title, artist and album for each.

The device

What’s actually plugged in

Model, generation, capacity, and where it’s mounted. On an iPod whose original drive has been swapped for a CF card or SSD, the installed capacity and the model’s stock size are both shown, because they disagree.

The General tab, listing device name, model, generation, installed capacity of 255.84 GB alongside a 20 GB stock capacity, track and playlist counts and mount point, with a storage bar along the bottom.

Getting it running

Build it yourself

There’s no signed release — you build from source. One script fetches nothing and downloads nothing: libgpod is vendored in the repository and compiled locally.

Requirements

  • macOS15.7 or later
  • Xcode26 or later
  • Homebrewfor glib and pkg-config

Build

# dependencies brew install glib pkg-config # first build only — generates libgpod's # configure script brew install autoconf automake libtool \ gtk-doc intltool # build and launch git clone https://github.com/jbartolozzi/My-Pod.git cd My-Pod ./build.sh