Skip to main content

Sync your music library to a classic iPod from a modern Mac

Project description

clickwheel

PyPI CI Python License: MIT

A CLI for syncing a music library to a classic iPod from a modern Mac — no iTunes required.

Handles the full workflow: scan and clean up your library's metadata, interactively pick what goes on the iPod, and sync with a progress bar.

Install

pipx install clickwheel

Or with album art embedding support:

pipx install 'clickwheel[artwork]'

Quick Start

Create a config file pointing to your music library:

mkdir -p ~/.clickwheel
cat > ~/.clickwheel/config.yaml << 'EOF'
music_dir: /path/to/your/music
EOF

Then run clickwheel scan to index your library and clickwheel select to start picking music for your iPod.

Commands

Command Description
clickwheel scan Index your music library and report on metadata quality
clickwheel fix Clean up metadata, fetch album art, fill genres via beets
clickwheel select Interactive picker — browse by artist/album/genre
clickwheel playlist List saved playlists or show details for one
clickwheel edit Add or remove artists from a playlist
clickwheel delete Delete a saved playlist
clickwheel diff Preview what would be added or removed on the iPod
clickwheel sync Push your playlist to the iPod
clickwheel ls Show what's on the iPod
clickwheel eject Safely unmount the iPod
clickwheel scrobble Submit recent iPod listens to Last.fm

Configuration

clickwheel reads from ~/.clickwheel/config.yaml:

music_dir: /Volumes/Music/Library
ipod_capacity_gb: 64 # defaults to 64
lastfm_api_key: your_key # last.fm/api/account/create
lastfm_api_secret: your_secret
lastfm_username: your_username

Environment variables (MUSIC_DIR, ACOUSTID_API_KEY, etc.) override the config file.

Requirements

  • macOS (iPod sync depends on macOS disk utilities)
  • Python 3.11+
  • iPod Classic with stock firmware, connected via USB
  • FLAC files are excluded from sync (stock firmware limitation)

Contributing

See CONTRIBUTING.md for dev setup, testing, and commit conventions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clickwheel-0.2.1.tar.gz (539.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clickwheel-0.2.1-py3-none-any.whl (545.2 kB view details)

Uploaded Python 3

File details

Details for the file clickwheel-0.2.1.tar.gz.

File metadata

  • Download URL: clickwheel-0.2.1.tar.gz
  • Upload date:
  • Size: 539.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clickwheel-0.2.1.tar.gz
Algorithm Hash digest
SHA256 9ac95d3b89a3d954faf969ef82a74e1ef7ddd93a5c2f7f62d190b8660566de06
MD5 bc12d1a735db6523f3c678cffb4c64eb
BLAKE2b-256 f0b4c0caaa90ca2b325dfa1f2661b74cb67bb5ec313cdf01a5bbc7ff25eac234

See more details on using hashes here.

Provenance

The following attestation bundles were made for clickwheel-0.2.1.tar.gz:

Publisher: publish.yml on pdugan20/clickwheel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clickwheel-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: clickwheel-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 545.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clickwheel-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 31df18dd9fb5c6669cb762e81f14ac8d5957cea46ad9f1e4796061f5c1759426
MD5 6c3209f616bb810d3a91c692d0eaa01d
BLAKE2b-256 b1acb823abf7aad83485da10eb43f2f20b93b82df2d37176a60bdc7e25a56295

See more details on using hashes here.

Provenance

The following attestation bundles were made for clickwheel-0.2.1-py3-none-any.whl:

Publisher: publish.yml on pdugan20/clickwheel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page