Sync, manage, and listen to your iPod
iOpenPod is a free, cross-platform iPod manager and iTunes alternative for Linux, macOS, and Windows enabling FLAC to ALAC auto-conversion, iTunesDB metadata editing, and native podcast syncing. Built on Python and PyQt6, it allows you to browse and edit your iPod library, sync media from your PC, and seamlessly preserve iPod-specific database behaviors.
| Sync Workflow | Library Editing | Device Tools |
|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Download the latest release for your platform. Native builds do not require any separate Python installation.
PyPI installs are recommended over native builds, but they all work the same.
Need setup help? Use the Install Help and Troubleshooting page.
iOpenPod is available through pip, pipx, and uv tool.
| Method | Install | Run | Upgrade |
|---|---|---|---|
pip |
python -m pip install iopenpod |
iopenpod |
python -m pip install --upgrade iopenpod |
pipx |
pipx install iopenpod |
iopenpod |
pipx upgrade iopenpod |
uv tool |
uv tool install iopenpod |
iopenpod |
uv tool upgrade iopenpod |
Requires Python 3.11+.
After installing, run:
iopenpodIf iopenpod is not on your PATH yet, run pipx ensurepath for pipx or uv tool update-shell for uv tool.
Update installs with the same tool you used to install them.
Required tools: Install FFmpeg with
ffprobefor transcoding and media probing, and Chromaprint for acoustic fingerprinting during sync. Linux desktop dependencies: If iOpenPod throws a Qtxcberror or crashes when you press Ctrl, Alt, or Shift, install the XCB and XKeyboard packages listed on the Install Help and Troubleshooting page. Linux iPod identification: On first use, iOpenPod may ask you to run host-side udev setup commands. They publish only the Apple product serial and do not give the app raw-disk access. The iPod stays plugged in.
- Connect your iPod. Make sure it is mounted as a drive.
- Select the device. Pick the detected iPod in iOpenPod. If it shows up wrong, open an issue.
- Browse and edit. Manage tracks, playlists, podcasts, artwork, and metadata.
- Sync. Choose your media folders, review the changes, then apply.
iOpenPod supports the iPod Classic, iPod Mini, and iPod Nano from the 1st through 7th generations. Rockbox works when you enable the Rockbox compatibility settings.
iOpenPod transcodes unsupported audio and video formats such as FLAC and OGG to iPod-compatible output with FFmpeg. Converted files can be cached so repeat syncs skip unchanged media.
The built-in podcast manager can search, subscribe, download episodes, and sync them to your iPod. You can also manage standard playlists and rule-based smart playlists.
The sync engine matches tracks between your PC library and the iPod using acoustic fingerprints from Chromaprint. That keeps the same recording matched across re-encodes, format changes, and metadata edits. Play history can submit to ListenBrainz or Last.FM on sync.
Files can be copied directly to the iPod by dragging them into the app, without using the full PC-folder sync workflow.
Play counts, ratings, and skip counts can be read from the iPod and synced back to the PC library metadata where supported.
Embedded or folder artwork is extracted, resized, and written to the iPod artwork database.
Before writing changes, iOpenPod shows the planned additions, removals, metadata updates, and artwork changes. It also saves a device backup so you can roll back if needed.
Settings are available for transcoding, allowing you to specifically decide the encoder and quality of encoding for audio files. The settings are adaptive, showing you only what is available and compatible with your current device, making this an easy process without any prior knowledge about iPod format compatibilities.
iOpenPod supports most iPods. iPod Shuffle support is planned; iPod Touch support is not planned, but may be possible in the future.
| Device | Status | Notes |
|---|---|---|
| iPod "Classic" (all generations 1st-7th) | Supported | |
| iPod Mini (all generations 1st and 2nd) | Supported | |
| iPod Nano (all generations 1st-7th) | Supported | |
| iPod Shuffle | Planned | Shuffle uses a different DB Structure. ETA ~4 mo |
| iPod Touch | Not planned | Touch requires accessing the device through non file-system protocols |
To run iOpenPod from source, clone the repository and use uv sync.
- uv (Python package manager)
- FFmpeg with
ffprobe(for transcoding and media probing) - Chromaprint (for fingerprinting)
git clone https://github.com/TheRealSavi/iOpenPod.git
cd iOpenPod
uv sync
uv run iopenpoduv sync installs dependencies into a local virtual environment.
All lint, format, typecheck, and test commands go through one entry point:
uv run python scripts/dev.py check # full gate
uv run python scripts/dev.py lint # ruff
uv run python scripts/dev.py fmt # ruff format
uv run python scripts/dev.py types # mypy
uv run python scripts/dev.py test # pytestSee AGENTS.md for the full command reference (including architecture checks and agent conventions).
Full human guide: docs/DEV.md.
Useful contributions include:
- Hardware testing on different iPod models
- macOS and Linux testing
- Bug reports with steps to reproduce and
iopenpod.log - Focused pull requests for documented issues
- Joining the discord to coordinate
To find logs in iOpenPod, open Settings > Storage, then click Open next to Log Location.
Please open an issue before starting major changes, or use the Discord server to discuss implementation details.
- 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
iOpenPod is built as a modern, actively maintained replacement for abandoned iPod management software like gtkpod, YamiPod, CopyPod, and EphPod.
If you are migrating from other open-source iTunes alternatives like Strawberry Music Player or Clementine, iOpenPod resolves several common device syncing issues:
- No
libgpoddependency errors: Other players rely on the abandonedlibgpodC library. This often results in "compiled without libgpod support" warnings on Linux, or "unsupported checksum" database corruption when syncing 6th-generation Classics and modern Nanos. iOpenPod utilizes a custom, pure-Python parsing engine to bypass these legacy limitations and safely write modern database checksums. - 100% Free on all platforms: Unlike some alternatives that lock their Windows and macOS builds behind monthly sponsorships or paywalls, iOpenPod provides fully featured native releases for Linux, Windows, and macOS completely free of charge.
- Safe Syncing: Our pre-sync change review and automatic device snapshot backups ensure your iPod's database is never accidentally corrupted or wiped during a transfer.
iOpenPod is free and open source. Donations are optional and help support development.
MIT. See LICENSE.









