Apple Music is a catalogue licence wrapped in a library that lives inside Apple's apps. The player is the easy part, and Navidrome or Jellyfin handle music you own for free. What you pay for is the right to play over a hundred million songs, plus lossless and Spatial Audio versions. Cancel, and Apple's help pages say the music and playlists you built from the catalogue disappear from your devices. The most useful thing an agent can build is the exit audit: read your library export, match it against files you own and list what you would lose.
Before you buildApple Music has no free plan, only a month's trial. Run the checker during the trial to see how much of your library is really yours before you decide.
Build me a migration checker that shows what I would lose by leaving Apple Music, and carries over what I own. Requirements: - Python 3.12 CLI called `leaving-apple-music` (typer for commands), installed with `pip install -e .`. Commands: `scan`, `match`, `report`, `export`. - Inputs: the library or playlist XML exported from the Music app (File > Library > Export Library or Export Playlist, parsed with `plistlib`) and MUSIC_DIR, a folder of audio files I own, read with `mutagen`. Both paths are set in .env. - Storage: sqlite3 in ./data/match.db with the exported tracks (name, artist, album, duration, kind, play count, playlists), the files found, and every match decision. - Classify each exported track by its Kind field; first print a count per Kind from my export and show how you grouped them. Tracks whose Kind mentions Apple Music are "catalogue"; every other Kind is "mine". - Matching: normalised artist, title and album first, then artist and title with duration within 3 seconds, then `rapidfuzz` at 92 or higher. Only exact matches are accepted automatically; fuzzy and tied ones go to `./out/review.csv` for me to confirm with `match --apply-review`. - `export` writes ./out/playlists/<name>.m3u8 with paths relative to MUSIC_DIR for matched tracks only, and ./out/missing.csv (playlist, artist, title, album, kind, plays) sorted by play count. - `report` prints, per playlist, how many tracks I own and how many I would lose, plus overall totals weighted by play count. - No accounts, no telemetry, local-first; the program makes no network calls at all, and the README says so. - Out of scope: downloading, ripping or converting Apple Music audio (it is protected), buying music, and a player. Navidrome can read the playlists from ./out/playlists. - README: how to export from the Music app, how to request a data copy at privacy.apple.com for play history, and the plain statement that catalogue songs cannot be exported as audio.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Apple Music.
Extend the migration checker in this folder. Requirements: - `leaving-apple-music wanted` groups ./out/missing.csv by album, counts the missing tracks and plays per album, and writes ./out/wanted.md sorted by total plays. - For each album include search links to Bandcamp and to the artist's own shop built from URL patterns, but make no requests: the links are only text. - Mark albums where most tracks are already owned so I can buy just the rest. - Update the README.
Add a history importer to the migration checker in this folder. Requirements: - `leaving-apple-music history <file>` reads the Apple Music play-activity CSV from a privacy.apple.com data copy; the first run prints the column names it found and asks me to confirm the mapping. - Write a ListenBrainz-compatible JSONL file (listened_at, track_name, artist_name, release_name) to ./out/listens.jsonl. - Skip rows without a timestamp and report how many; never invent times. - `--submit` posts the file in batches of 100 with LISTENBRAINZ_TOKEN from .env only when I add the flag. - Update the README.
Add a tag audit to the migration checker in this folder. Requirements: - `leaving-apple-music audit` reads every file under MUSIC_DIR and lists problems: missing album artist, mixed album names inside one folder, track numbers with gaps, no embedded cover, and files with the same artist, title and duration. - Write ./out/audit.csv with path, problem and a suggested fix; never change a file. - Print the ten folders with the most problems. - Update the README with how to fix them in beets or Picard.
It is the music app already on every Apple device, so playback, library sync, lossless and speakers all work without setup. For someone living in that ecosystem, the real choice is the integrated app or a server you run and maintain yourself.
Estimate · The checker runs locally and makes no network calls. Replacing missing music costs whatever the albums cost to buy. The build is token usage on your agent plan.
Checked 2026-10-19 against Apple Music's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Individual | $11.99 | — | The full catalogue (over 100 million songs), offline listening, lossless and Hi-Res Lossless audio, and Spatial Audio with Dolby Atmos on supported tracks. |
| Family | $19.99 | — | Up to six people through Family Sharing. |
| Student | $6.99 | — | Apple Music at a student price, with Apple TV included at no extra cost. |
| Apple One | $21.95 | — | A bundle of Apple Music with up to five other Apple services. |
No free plan; new subscribers get one month free, and new eligible Apple devices can unlock three months.
Not really. It is the music app already on every Apple device, so playback, library sync, lossless and speakers all work without setup. For someone living in that ecosystem, the real choice is the integrated app or a server you run and maintain yourself. The prompt on this page builds the closest honest substitute.
About $11.99 a month on the Individual plan, $143.88 a year (checked 2026-10-19).
The catalogue of over 100 million songs; Lossless, Hi-Res Lossless and Spatial Audio with Dolby Atmos; Library sync across iPhone, Mac and the rest of your Apple devices; Playlists made from catalogue songs, which Apple removes from your devices after you cancel; Curated playlists and radio. If any of those matter to you, keep paying.
Yes: Navidrome (open source), Jellyfin (open source), Koel (open source).