Just a personal project right now but it's a music metadata aggregator.
I find that nobody really knows how to do this. Machine learning can detect some song attributes well (bpm, ez right?) but it's inconsistent with some things (eg mood, spotify valence)
I prefer to only add metadata that I can rely on: track credits & instruments (when available), lyrics, bpm / "energy" and genre. At least that's what I've got for now. I'm not adding anything unreliable.
So far I'm able to pick a genre, artist or even better, song and it gives me a list of tracks that are similar. I can alter the weights of "era", "instruments", "genre".
So far i haven't run old school NLP on the lyrics but that's the next step. It's likely to be far more informative than "valence"
Anyway, not public, still very alpha but I like it and find it useful.