WFMU.ORG is a free-form, listener-supported FM and web radio station. It maintains a huge trove of past playlists from many DJ's radio shows. More recently, web-only programming has been added to this. I scraped all the playlists I could from the web site (with the station's permission) and started asking questions. The data set is here for your own explorations wrapped in a lovely Shiny app. It represents over a million plays spanning decades! You can analyze DJs, artists or songs or just browse and search the raw playlists. Find the most played songs or artists for any time period. Display tabular data or word clouds. Find other DJs similar to your favorite. Answer weird questions like "Which artist below didn't die recently?"
Technically, this app is interesting because the data set size creates some challenges. How do you manage a drop-down list of artist names with nearly 200,000 choices? The
choices can't be exposed in
ui.r or the whole thing will seize up. Moving it to
updateSelectizeInput() on the server side was the key. Free-form searching of the raw playlist data, spanning over 1.2mm rows is managed efficiently through
renderDataTable() which includes lots of cool widgets to manipulate the table. DJ similarity is measured using the "Bray" distance measure on a document term matrix of DJs and artist names. I had to try a number of distance measures before I found a sensible one. This data is pre-computed to save time.