Yearstack

Open this page in Safari or Chrome

You're viewing this in a preview that doesn't run JavaScript.
Tap the share icon () and choose "Open in Safari" or "Open in Chrome".

If you're already in Safari and still see this message, please refresh the page.

Yearstack

Your years of listening, in one page

Connect your Spotify, Last.fm, or Apple Music history and get a personal Wrapped — every year, not just one. Your listening history is processed in your browser — only track and artist names are sent out, to fetch cover art.

Drop your Spotify zip or JSON files here
or click to choose — works with the .zip Spotify emails you, or the unzipped folder
Pull your scrobble history from Last.fm

No file needed — works for any public Last.fm profile. Reads up to 50,000 of your most recent scrobbles.

Tip: if you scrobble Spotify, Apple Music or Tidal to Last.fm, this gives you a unified multi-year archive — often longer than your Spotify export reaches.
Powered by the Last.fm API.

Drop your Apple Music export

Request "Apple Media Services information" at privacy.apple.com. You'll get a ZIP in ~7 days. Drop the ZIP or the Apple Music Play History.csv here.

Beta — Yearstack auto-detects Apple's CSV format and normalises it. Plays without timestamps are skipped.

How do I get my Spotify history?

Log in to spotify.com/account/privacy, scroll to the bottom and request "Extended streaming history". Spotify emails you a zip file within ~3 weeks. That's the file you drop here. (The basic "Account data" zip only covers the last year — you want the extended one for a real Wrapped.)

What does this tool do with my data?

Your listening data stays in your browser — Yearstack has no server that processes or stores it. Refreshing the page wipes everything. There are three outbound calls and you can opt out of each: (1) cover art lookups send track/artist names to Deezer's and iTunes' public catalogs (no personal data) — stay offline while loading to skip; (2) Last.fm scrobble fetching sends only your public username (skip by not picking the Last.fm tab); (3) "Share Online" uploads your rendered Wrapped to wrap.yearstack.com so you can share a URL — only when you click that button.

Why doesn't it match my Spotify Wrapped exactly?

Spotify's official Wrapped uses some private signals (skip behaviour, listening segments, podcast separation) we can't see. Numbers here come straight from your raw history — sometimes higher, sometimes lower than Spotify's. Plays under 30 seconds are still counted; phantom multi-week records are capped at 10 minutes per play.

Yearstack is an independent tool. It is not affiliated with, endorsed by, or sponsored by Spotify, Apple, Last.fm, or Deezer.
Spotify and Spotify Wrapped are registered trademarks of Spotify AB. Apple Music and iTunes are trademarks of Apple Inc. Last.fm is a trademark of CBS Interactive. Deezer is a trademark of Deezer S.A. All cover art and metadata are the property of their respective rights holders and are used here for identification purposes only.

Reading your data
0
plays counted
Total listening
Unique artists
Your top artist
 

Wrapped

Total plays
across every year
Time listened
full days
Unique tracks
different songs
Unique artists
you met along the way

Year by year

Every single year you pressed play.

All-time top 20

The names, tracks, and albums that defined it all.

Top artists

    Top tracks

      Top albums

        Top of each year

        The year of your listening, in one screen.

        Top artists that year

          Top tracks that year

            Listening patterns

            When you actually press play.

            By hour of day

            By day of week

            Day × hour heatmap (darker = more plays)

            New artists discovered

            First time a new name entered your life.

            Highlights

            Moments that stood out.
            Biggest listening day
            Longest daily streak
            Artist spotlight

            Most-played tracks

              How you listen

              Devices, habits, and a few confessions.

              Platforms

              Habits

              Skip rate
              of all tracks you never let finish
              Shuffle rate
              of plays on shuffle
              Offline plays
              tracks listened without a connection

              Where in the world

              Every country you connected from.