Spotify companion

Tags: #<Tag:0x00007fea46bae860> #<Tag:0x00007fea46bae748>

So as some of you may already know, I’ve been maintaining the Spotify integration client for a while.

But it occured to me that streaming services increasingly make MusicBrainz irrelevant (except Apple Music, where you actually can override the metadata, but that’s another story…)

Which is a bit of a shame, because the MusicBrainz has a lot of very useful data. In particular, structured data.

So, in the background I’ve been working on a (super duper alpha) extension to the MusicBrainz-Spotify client integration, to work both ways: you can get the ISRCs from Spotify, but you can also use the MusicBrainz data to augment Spotify’s own data.

The main goal is to use MusicBrainz’s structured data. That is, it won’t override Spotify metadata (I may be on shakey ground for their developer terms if it did).

So for now, it can do the following:

  • Show you what you’re listening to, and the corresponding MusicBrainz data including
    • The ISRC, ISWC (from MusicBrainz)
    • The language (from MusicBrainz work)
    • The Wikidata ID (from MusicBrainz work, or a best guess otherwise — it will display whether it’s a best guess or exact match from a MB relationship)
  • The Wikipedia intro if it exists (only English for now, though it gets it via Wikidata, so it should be trivial to extend, once I figure out how to select it – the UI is only English anyway so it’s not top priority right now)
    • This is always derived via Wikidata. It should have false negatives (doesn’t find an article which does exist) more than it should have false positives (gets the wrong article)
  • Other versions of this song (this is my favourite thing and was my main motivation for building it)
    • This is derived primarily through work relationships, so it’s not perfect.
    • e.g. That “I Will Always Love You” by Whitney Houston has a version by Dolly Parton
    • That “Can’t Speak French” by Girls Aloud also has an (ironic) French version
    • You can also explore how it determined these other tracks were connected.
    • It only follows certain Work-Work relationships, and only in a predefined path, so it may miss certain relationships for very complex interrelationships.
  • For the artist, you can explore their connections to other artists
    • e.g. That Nick Jonas is a member of the Jonas Brothers.
    • A to-do here is to remove artists with no Spotify link, so that low-quality artists don’t show up. I don’t see why anyone wants to know that Shakira was a member of “Team Shakira” on the Voice, in this context

As I said, it’s really really alpha, and the UI is a bit clunky (especially on large screens) — making the data useable was already quite complex.

Really famous works (e.g. I Will Always Love You, above) will probably take aaaages to load the first time, but the data is cached locally, so should be substantially faster thereafter (until it expires). The graph of these will also take a while to render — I’m working on a way to filter out MB items which result in a dead-end on Spotify.

For the time being it lives together with my Spotify submission client (you can enable it by selecting the relevant button at the top of the page) with which it shares a lot of its code (and its Spotify application ID), which you will find at

d.ontun.es

As I said, it’s really alpha, so there’s a ton of bugs I know about, so if a bug is really bad, you can assume I probably almost definitely know about it. Same as the submitter, there’s no data privacy policy because it doesn’t capture any data. It runs entirely client side.

7 Likes

I was just about to ask how it works, because I couldn’t figure it out, but just got it! It’s amazing!*

If anyone’s wondering, hit the ‘elevate permissions’ button at the top let of d.ontun.es after logging into Spotify. Now play something in Spotify (in a browser window, on your phone, or desktop app), and then click the ‘What’s On’ tab at the top left of d.ontun.es:

SLICK

I can imagine this would be a very fun way to explore versions and covers.

*with the caveat that I don’t actually use Spotify

Yeah sorry I realised a few minutes after posting that the name of the button was unnecessarily unintuitive.

Fixed now.