Spotify data viewer: your top artists, songs and hours, year by year
Drop the ZIP from Spotify's “Download your data”, or the JSON files inside it: the extended streaming history (Streaming_History_Audio_*.json) or the account data (StreamingHistory_music_*.json). See how many hours you listened, your top 50 artists, songs, albums and podcasts by time or by plays, for all time or any one year, and when in the day and week you listen. Save every play, and each list, as CSV.
The files are read on your device. Nothing is uploaded, and nothing is fetched: no cover art, no links to Spotify.
What it shows
- Totals for the whole file or any one year: hours listened, the number of plays and of streams, the first and last day, how many artists and songs, and how the time splits between music and podcasts.
- Top 50 artists, songs and albums, ranked by time listened or by number of plays (switch between the two), with each artist's first play in the files and each song's skip rate where the file records skips.
- Podcasts and audiobooks in their own list: time, plays and how many episodes of each show.
- When you listen: bars by month, by weekday and by hour of the day, in your own time zone.
- Devices and countries: time per platform (Android, iPhone, Windows, Mac, web player, speakers…) and per country, from the extended history.
- Save as CSV: every stream with its local and UTC times and every field Spotify wrote, and each ranked list (artists, songs, albums, podcasts), every entry, not only the top 50.
Getting the files from Spotify
- Where to ask
- Sign in on spotify.com in a browser, open your account's Privacy settings and find Download your data. Tick Extended streaming history for every year since the account was opened, and Account data if you also want the other files. Spotify e-mails a download link when the files are ready; it says the account data takes up to 5 days and the extended history up to 30.
- What arrives
my_spotify_data.zip, holding aSpotify Extended Streaming Historyfolder (Streaming_History_Audio_2019-2021_0.jsonand so on, a few years per file, plusStreaming_History_Video_*.json) and/or aSpotify Account Datafolder (StreamingHistory_music_0.json,StreamingHistory_podcast_0.json, beside playlists, library and other files this page skips). Downloads from before 2023 used aMyDatafolder withStreamingHistory0.jsonorendsong_0.json; those are read too.- What to drop
- The ZIP as it is, the unzipped folder, or any of the JSON files, several at once. Files that are not streaming history are skipped and named.
The two histories
| File | Covers | One row holds | Missing |
|---|---|---|---|
Extended streaming historyStreaming_History_Audio_*.json, Streaming_History_Video_*.json | the life of the account | ts (when the stream ended, UTC, to the second), ms_played, track, artist and album names, spotify_track_uri, or episode_name and episode_show_name for a podcast; reason_start, reason_end, shuffle, skipped, offline, platform, conn_country | nothing this page needs; skipped is empty in many older rows |
Account dataStreamingHistory_music_*.json, StreamingHistory_podcast_*.json | about the last year only | endTime (when it ended, UTC, to the minute), artistName and trackName, or podcastName and episodeName, and msPlayed | albums, skips, platform, country, shuffle |
Given both, the page uses the extended history and leaves out the account-data rows that fall inside its dates, because they are the same streams twice; it says how many. Account-data rows after the extended history ends are kept. An account-data song gets its album from the extended history when the same artist and title are there.
How the figures are worked out
- A play
- A stream that lasted 30 seconds or more by default, the length Spotify uses to count a stream for its play counts and royalty payments. The threshold is a box on the page: set 10 s to count quick listens, 60 s to count only songs you stayed with, 0 to count every stream. Changing it changes plays, the “by plays” rankings and each artist's first play, never the time listened.
- Time listened
- The sum of
ms_playedover every stream in the range, short ones included. A song skipped after 8 seconds adds 8 seconds. - Dates and hours
- Spotify writes the time each stream ended, in UTC. Each stream is placed at the time it started (end minus time played) and shown in this device's local time, so a 40-minute episode that ended at 00:20 counts at 23:40 the evening before. Listening done in another time zone shows at your home clock, not the clock where you were.
- Skip rate
- The share of a song's streams that Spotify marked
skipped, or that ended with the next-track button (reason_end“fwdbtn”), out of the streams where the extended history records either. The account-data files record neither, so a song heard only there shows “–”. - First play
- The start of the earliest stream by that artist that reaches the threshold, across all the files dropped, whichever year is picked.
A worked example
The page is tested with a made-up download: an extended history for June 2022 and March 2023 and account data for January 2024, 20 streams in all once one duplicate is left out. The Quiet Engines lead by time (5 streams of Northbound, 20 min), but Nina Arlo leads by plays: 6 plays in 19 min 45 s, because one of her 7 streams was skipped at 25 s. Lower the threshold to 10 s and that stream becomes her seventh play; Mara Velt's two 20-second streams from 2022 count too, which moves her first play from January 2024 back to June 2022. Saved as CSV, all time is 20 stream rows and 2023 alone is 9.
What this cannot do
- No cover art, no links, no previews. Nothing is fetched, so there are no album covers or artist pictures and no links into Spotify. Song and artist names are shown as the file has them.
- Not Spotify Wrapped. Wrapped is made by Spotify from its own records, covers only part of the year (its data stops before the year ends) and Spotify does not publish exactly what it counts, so its minutes and ranks can differ from the sums here. These figures add up exactly what your files say, for the whole calendar year.
- The account data covers only the last year. For earlier years, ask Spotify for the extended streaming history; this page cannot recover listening the files do not hold.
- Only the streaming history. Playlists, your library, search queries and the other files in the download are skipped. Local files and tracks removed from Spotify can appear with no name; they count toward time but are listed as “(no title)”.
- Nothing is uploaded. The files are read in this tab; the CSV files are made in it too.
- Not affiliated with Spotify. “Spotify data export” is used only to describe the file. viewhack is not affiliated with or endorsed by Spotify.