So it's 2018 and I'm wondering, isn't there a media player out there that can handle playback from local and online sources in a single interface?
There are projects like Harmony (nagware) or Tomahawk (abandonware), but I think the most likely to succeed would be something based on existing parsing tools:
These are healthy open source projects and more likely to be kept up to date as provider APIs change.
Media should be represented by following progressive enhancement / graceful degradation. At its simplest I just need it to remember a plaintext playlist of Artist - Song strings. Going from there, it should associate that song with sources in my local collection and fall back to online sources like YouTube or Soundcloud if my collection is not available (removed drive). Further out, it should grab metadata from Discogs (if released track), album art, lyrics, accept my notes Heard this at... from... Vocal sample is from...
- multi-source, handles URLs intelligently if no parsers for that source were found (youtube-dl supports thousands of sites but also falls back on a generic parser)
- seamless blending of local media with online media (in playlists, search, playback queue)
- metadata sources for identifying published media (Discogs, MusicBrainz, IMDB for movies?).
- smart caching (don't hit the network for a Soundcloud mix you've already played 3 times; offer to cache it locally)
I've been using foobar2000 (with A LOT of extra components and config) and am now trying MusicBee (doesn't play YouTube out-of-the-box).