A while ago, I saw people suggesting Navidrome for self hosted music streaming.

I don’t understand what’s the relationship between Subsonic and Navidrome. Navidrome makes some use of Subsonic API. What does that mean?

Subsonic looks like a proprietary software. How does Navidrome, an open source (MIT) package, use their API? Is the API licensed for this?

Do I expect any Subsonic app to work perfectly with Navidrome? Or is it partial inter-compatibility?

Extra questions:

  • Recommended android app? I would like to have good offline support to select and sync music that will then be available on my phone without network

  • Podcast/audiobook support? Am currently using audiobookshelf, is this compatible at all? Not sure if any benefit even if theoretically possible.

  • SGH@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    2 days ago

    Preface: This is what I learnt about Subsonic and such. The informations below may not be fully correct but the core idea is there.

    An API is not a piece of software.

    It is merely a way to define how to make a software “do” an action, like search for a song title or download the song file for streaming/playback.

    Navidrome does not make use of anything from Subsonic, it merely implements (exposes) a Subsonic-compatible API.

    Knowing this information, anyone can run a web request to Navidrome and search for a song, and download/stream it, like they would already do for any other Subsonic-compatible provider:

    You can find a plethora of software that can leverage any Subsonic-compatible API provider to connect to that music library, from dedicated Web UIs to Android and iOS apps, which know how to download and stream songs and play them back.

    This mechanism gives the user the freedom to choose the backend and frontend, and the developers can just implement the part they prefer: for example, the Navidrome team does not have to build an Android or iOS App, whereas App developers don’t need to write a serverside application to manage the “real” music archive, decode tags, or even implement a search algorithm, as all this data can be asked via the API.

    Technically, Navidrome wouldn’t even need a Web UI.

    Over the years, the Subsonic API has been forked into OpenSubsonic API, which as far as I could tell, merely serves as a way to better define, and to further add new features into, an otherwise closed and possibly reverse-engineered API.