LastGraph

LastGraph was an online application that takes data from Last.fm and turns it into a series of lovely graphs.

It uses Graphication for the graph rendering, and Django for the web frontend. It used to be hosted at lastgraph.aeracode.org, but was taken down in November 2013 due to issues with the last.fm API.

The service used the last.fm API to collect users' weekly artist play counts for each week they'd been on last.fm, and then compiled these into a streamgraph (example above). These were available as PDFs or SVG files; when the service was launched these were so complex that they regularly crashed PDF viewers or starve computers of RAM as they tried to render them. Modern machines and viewers are much more capable; you can download an example PDF and see for yourself.

The architecture of the site was very primitive - a task queue backed by a database and a custom task runner powered everything, and the rendering infrastructure was built to run on multiple machines at once (as rendering the graphs was very CPU- and RAM-intensive).

By the time the project had shut down, it had created over 50,000 posters and served more than 150,000 users, and at one point the data cache of users' weekly charts had a significant percentage of last.fm's user data stored in it (a few percent or so).

Unfortunately, the declining popularity of last.fm and rise in services like Spotify that provide no way to extract music history meant the project had a built-in expiry date even if the last.fm API had stayed stable. I hope to recreate the graphs one day but on a decade-long scale; I'm keeping my personal stats safely stored just in case.

The source code can be found on GitHub.