b2KIT

Music Listening Stats Visualizer

Paste your music library data and visualize listening habits with genre distribution and top artist charts.

Tested tool guide Tested browser tools Checked August 16, 2026

What Music Listening Stats Visualizer does, with a checked example

Paste a block of text with one track per line - artist, track, genre, and play count - and this tool renders two charts from it: each genre's share of your total plays and your most-played artists in rank order. It reads the rows, sums the play counts by genre and by artist, then draws the charts in the page; the data never leaves your browser. The thing people most often get wrong: the charts describe the text you pasted, not your actual listening history, and genre slices are cut exactly as your data spells them.

Worked example

A concrete input and expected output from the current implementation.

Input

Artist,Track,Genre,Plays
Radiohead,Karma Police,Alternative Rock,12
Radiohead,Paranoid Android,Alternative Rock,8
Daft Punk,Get Lucky,Electronic,15
Daft Punk,One More Time,Electronic,11
Nirvana,Smells Like Teen Spirit,Grunge,20
Nirvana,Come as You Are,Grunge,7
The Beatles,Hey Jude,Classic Rock,9

Expected output

Genre distribution (share of 82 total plays)
Grunge: 27 plays (32.9%)
Electronic: 26 plays (31.7%)
Alternative Rock: 20 plays (24.4%)
Classic Rock: 9 plays (11.0%)

Top artists
1. Nirvana: 27 plays
2. Daft Punk: 26 plays
3. Radiohead: 20 plays
4. The Beatles: 9 plays

The tool sums the Plays column across all rows sharing an artist or a genre, then ranks the totals. Nirvana (20 + 7) edges out Daft Punk (15 + 11) for the top slot, and each genre's share is its sum divided by the 82 total plays, which the four shares add back up to.

How the result is produced

1

Parsing the paste

The pasted text is read as rows, with a header line naming the columns and one track per line below it. Rows that do not parse cleanly - blank lines, stray text, a play count that is not a number - do not enter the sums. The charts are only as precise as the paste, so a quick check of the header and the numbers before analyzing saves confusion.

2

Summing and ranking

Each distinct artist and each distinct genre becomes a bucket, and every row's play count is added to its two buckets - one for the artist, one for the genre. The genre chart shows each bucket's share of the grand total of plays; the artist chart sorts buckets by total, highest first. All of this happens locally, so the pasted data is processed in the browser and never uploaded.

Good uses

  • Auditing a party or event playlist someone handed you, to see whether a single genre dominates before you commit to playing it.
  • Verifying which artists actually got the most plays in your own library export, instead of trusting memory or whatever your player's recap screen claims.
  • Re-pasting a trimmed library after you prune tracks, to see how the genre mix and artist rankings shift once the dead weight is gone.

Limits and checks

  • The charts reflect only the text pasted. An export without play counts makes every track weigh one, so rankings then show track counts rather than listening totals.
  • Genre labels are taken as written. 'Indie Rock' and 'indie rock' land in separate slices, and a track tagged 'Pop / Rock' is one bucket, not two.
  • Small pastes produce thin charts. With a few dozen tracks, one heavily played song can make a genre look dominant, and the top-artist list is not a real picture of your taste.

Common questions

What exactly should I paste?

Text in rows with a header line that names the columns. At minimum the charts need an artist column and a genre column; add a numeric plays column if you want totals weighted by how much you listened. This tool does not connect to Spotify or fetch your history - it analyzes the text you give it, so export your data first and paste that.

Can it correct a song's genre if my data has it wrong or missing?

No. The tool counts the genre text exactly as it appears; a song tagged 'Rock' is counted under 'Rock' no matter what anyone would call it. There is no correction or guessing: missing or misspelled genres stay as they are. Clean the genre column before pasting if you want accurate slices.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools