The Stars And What They Mean

Almost exactly 3 years ago, I was mulling over how to apply star ratings to albums so I could sort of make some sense of my music collection.  I actually never went through with it, but now I’m considering tackling something even bigger – applying ratings to the songs.

The big motivator here is building playlists.  When I first started with Plex, I had a vision of kind of a radio station feel to the whole thing, and appropriately, I made playlists that sounded like radio stations, or more like channels on XM.  And that worked pretty well for a while.  At some point, I can’t remember what happened, but I lost all my playlists and had to recreate them.  Ugh.

I remade some of my more used playlists and then I started reconsidering the others and broke them up into decades and sometimes by genre.  The problem there was sometimes I didn’t want to listen to all one decade of music.  So I made one massive playlist of all the singles in all decades.  And that one has been pretty much my go-to when I just need background music.  Realistically, I’m only playing 3 different playlists, but maybe with better metadata, that can change.

One big hurdle I’m facing is that there seems to be no way to get the ratings in and out of Plex from the files.  So whatever ratings I do, I would have to duplicate the effort in both Plex and the files.  And putting the ratings in the files has no benefit because Plex can’t import them (yet).  That sort of makes my Plex library more fragile, since there’s data in there I can’t just lose without a lot of effort lost as well.

Anyway, to disregard that problem for the moment, a bigger problem was how to efficiently get all that data?  Let’s step back even a little further, what exactly am I planning on with these ratings?

That point was something I dwelled on for a while.  I went around on it for a little while.  I considered using Plex collections, but those are only for albums, not songs.  Songs have Plex tags, and I looked into using them.  I thought maybe tags like "Single", "Top40", "Top10", and "#1" might be good.  But my inner software architect was displeased.  Initially, you would assume that "Top10" would also mean the track was "Top40" and also "Single" because of the inclusive nature.  So you’d only need one tag per song.  But that’s going to make the filters (queries) really messy because you have to put that logic into the filter.  If you want a list of "Singles" you have to also include "Top40, "Top10", etc.  The alterative is to use all appropriate tags where needed, so a #1 song would have all four tags on it.  That’s not pleasant either.  ugh.

So going back to the thoughts I had in my earlier post, what if I just made the star rating mean whatever I want it to mean.  So I quickly wrote down a scale:

1 star – Single
2 stars – Top 100
3 stars – Top 40
4 stars – Top 10
5 stars – #1

I think that’s usable.  And before I change my mind on it, how about that efficiency concern, now?  I had almost 2000 albums to go through and determine which songs were released as singles and what their position was on the charts.  And which chart, at that?

So obviously there’s a bunch of compromises that need to be made in this process.  The first was determining what stars mean.  The next will be starting with one source of data.  I considered I could use Wikipedia and look up each album to get the singles and chart positions, but that is woefully underpopulated, so I can’t use that for my primary source.  Billboard does this stuff for a living, I could try them.

As it turned out, someone had made a downloadable dataset of all the songs and chart positions on Billboard’s Hot 100 charts up to 2020 (far more than I needed).  After a quick download and import into a SQL database for easy querying, I felt I was closer.  While I was going to miss out on any 1-star entries, the dataset of the Hot 100 would cover 2-5 star entries, and I could backfill later.

At this particular point, I’m not able to do any automation of the rating import, because I can’t figure out how Plex stores the rating in their database.  I manually changed some things and didn’t see any data changes in the database, so initially, it’s going to be manual entry.  And then I can start building playlists based on singles and chart position, maybe mixing genre and release year into it.  Hopefully that gets me somewhere pretty good.

Comments are closed.