Importing your listening history
Supported files
Stick recognizes three formats automatically:
- Apple Music Play Activity CSV, from Apple's privacy portal (how to get it). Detected by its headers.
- Spotify extended streaming history JSON, from Spotify's privacy page (how to get it).
- Last.fm-style CSV, from Last.fm's export or any scrobble exporter (how to get it). Since CSVs vary, you map the columns yourself against a live preview.
Files up to 200 MB are accepted, which covers even a decade of heavy listening. Multi-year exports and repeated overlapping exports are all fine, the duplicate scan is what makes them safe.
Step 1: the scan
After you drop a file (and map columns, for CSV), click Scan for Duplicates. This reads the whole file and compares every row against your existing library, without writing anything. You get back a set of counts:
- New plays, rows that don't exist in your library yet. These are what an import would add.
- Duplicates, rows that exactly match a play you already have (same artist, track and timestamp). Skipped by default; you can inspect them tab by tab.
- Previously deleted, rows matching listens you once deleted by hand. Stick remembers deletions, so a re-import won't silently resurrect them, but the tab lets you bring them back deliberately if you've changed your mind.
- Missing album / missing artist, rows with incomplete metadata, listed so you know what the matching engine will have to figure out later.
The scan state survives navigation: you can wander off to another page, come back, and the confirmation panel is exactly as you left it, file still staged.
Step 2: the import
Click Import N plays and the import runs as a background job on the server. You'll see a live progress bar, but you don't have to watch it, leave the page, close the laptop, come back later; the import carries on and the result is waiting when you return. The final summary reports what was imported, what was skipped as a duplicate, and how many plays were reconciled against other sources.
Every file import is recorded in Settings → Import History as its own unit, with its play count and date range. Made a mess of a column mapping? Delete that one import, only the listens it added are removed, fix the mapping, and re-import the same file cleanly.
What happens after the import
Three things kick off automatically the moment your plays land:
- Cross-service reconciliation. If the same listen exists from two sources, say a Spotify play and the Last.fm scrobble of that same play, Stick collapses them into one, keeping the native service's timestamp. Details in the duplicates guide.
- Artist resolution. Apple Music's export often omits the artist. Stick first tries to resolve those rows against your own library (if every play of "Some Song" you've ever recorded is by one artist, the answer is obvious), and hands the rest to the MusicBrainz matcher.
- MusicBrainz matching. A background worker starts looking up every new track against the MusicBrainz database, this is what makes album art appear, connects name variants, and powers the genre stats.
Import order doesn't really matter
A common worry: "should I import Last.fm before Spotify, or the other way around?" It genuinely doesn't matter. The reconciliation logic handles both orders, a native play arriving after a scrobble replaces it, and a scrobble arriving after a native play is recognized as already covered. Import files as you get them, re-import newer exports over older ones, and let the scan sort it out. Your play counts stay honest either way.