Ditch iTunes. Sync your iPod the open way.
iOpenPod is a free, open-source desktop app that lets you manage your iPod without iTunes. Plug in your iPod, pick your music folder, and sync — FLAC, OGG, MP3, whatever you've got. It handles the conversion, the artwork, the playlists, all of it. Works on Windows, macOS, and Linux.
Grab the latest release for your platform — no Python required, no setup wizards, just download, extract, and run:
| Platform | File | Instructions |
|---|---|---|
| Windows | iOpenPod-windows.zip |
Extract the zip, run iOpenPod.exe |
| macOS | iOpenPod-macos.tar.gz |
Extract, right-click iOpenPod.app → Open |
| Linux | iOpenPod-linux.tar.gz |
Extract, run ./iOpenPod |
Once installed, iOpenPod checks for updates automatically and can update itself right from the app.
Optional extras: Install FFmpeg for transcoding (FLAC → ALAC, etc.) and Chromaprint for acoustic fingerprinting.
- Plug in your iPod — it mounts as a regular drive
- Pick your device — iOpenPod detects connected iPods automatically
- Browse — flip through albums, tracks, playlists, podcasts, and artwork
- Sync — choose your music folder, review what'll change, and hit go
Drop in FLAC, OGG, WMA, MP3, AAC — iOpenPod transcodes whatever the iPod can't play natively into ALAC or AAC. Converted files are cached so repeat syncs are fast.
Subscribe to podcasts right inside iOpenPod with the built-in podcast manager. Search, subscribe, download episodes, and sync them to your iPod — all without a separate app.
Sign into ListenBrainz and your listening history gets scrobbled automatically every time you sync. Keep your music profile up to date without lifting a finger.
Audiobooks, movies, and TV shows are all supported. iOpenPod handles the different media types so your iPod sorts them correctly.
Don't care about keeping your PC and iPod perfectly in sync? Just drag files into the app and they'll land on your iPod — no sync setup required.
Listen on your iPod, plug it in, and your play counts, ratings, and skip counts sync back to your PC library. You pick the conflict strategy.
Art gets extracted from your files, resized, and written in the iPod's native RGB565 format. No extra steps.
Every sync shows you exactly what's happening — adds, removes, metadata updates — with checkboxes for each item. Nothing changes until you say so.
Browse and manage standard playlists. Smart playlists with rule-based filtering are supported too.
A snapshot of your iPod database is saved before every sync. If something goes wrong, roll back instantly with one click.
Choose between dark and light themes. The UI scales properly on high-DPI and low-res monitors alike.
Tweak transcoding settings, sync behavior, scrobbling, and more from the settings page.
Works with every click-wheel iPod Apple ever made. Shuffle support coming soon!
| Device | Status | Notes |
|---|---|---|
| iPod 1G–5G, Mini, Photo | ✅ Fully supported | No hash required |
| iPod Classic (all gens) | ✅ Fully supported | Uses FireWire ID |
| iPod Nano 1G–2G | ✅ Fully supported | No hash required |
| iPod Nano 3G–4G | ✅ Fully supported | Uses FireWire ID |
| iPod Nano 5G | ✅ Fully supported | Needs one iTunes sync for HashInfo |
| iPod Nano 6G–7G | ✅ Fully supported | HASHAB via WebAssembly |
| iPod Shuffle | 🔜 Coming soon | |
| iPod Touch | ❌ Not planned |
Want to hack on iOpenPod? Here's how to get a dev environment running.
- Python 3.13+
- uv (Python package manager)
- FFmpeg (for transcoding)
- Chromaprint (for fingerprinting)
git clone https://github.com/TheRealSavi/iOpenPod.git
cd iOpenPod
uv sync
uv run python main.pyThat's it. uv sync installs all dependencies into a virtual environment automatically.
iOpenPod/
├── GUI/ # PyQt6 interface
│ ├── app.py # Main window, device management
│ └── widgets/ # Album grid, track list, sidebar, sync review, etc.
├── iTunesDB_Parser/ # Reads iPod's binary iTunesDB
├── iTunesDB_Writer/ # Writes iTunesDB with hash/checksum support
├── ArtworkDB_Parser/ # Reads ArtworkDB binary format
├── ArtworkDB_Writer/ # Writes album art to .ithmb files
├── SyncEngine/ # Fingerprinting, diffing, transcoding, sync execution
├── PodcastManager/ # Podcast search, subscription, and download
├── SQLiteDB_Writer/ # SQLite DB for Nano 6G/7G
└── main.py # Entry point
The sync engine matches tracks between your PC and iPod using acoustic fingerprints (Chromaprint). This means it can identify the same song even after re-encoding, format conversion, or metadata changes.
- Scan both the PC music folder and iPod's iTunesDB
- Compute or read cached fingerprints for each track
- Diff by fingerprint to classify: new, removed, changed, or matched
- Present the sync plan for review
- Copy/transcode files, update the database, sync artwork and play counts
- Rebuild the iTunesDB binary with the correct device-specific checksum
- Real hardware testing — especially Nano 3G–5G models
- macOS and Linux testing — primary dev is on Windows
- Bug reports — open an issue with steps to reproduce
Open an issue before starting major changes so we can coordinate.
- libgpod — C library for iPod database access (the reference implementation this project learned from)
- gtkpod — GTK+ iPod manager
- Rockbox — Open-source firmware replacement for iPods
MIT — see LICENSE.








