• 0 Posts
  • 4 Comments
Joined 1 year ago
cake
Cake day: July 6th, 2023

help-circle

  • Oh, a shameless self-plug opportunity. TLDR: I’m making a Subsonic server trying to replicate a somewhat passable self-hosted Spotify/… experience.

    My current setup is a Subsonic stack: gonic as a server, Lidarr as a library organizer/downloader (it works natively with Prowlarr BTW) and Sonixd/Tempo as desktop/mobile clients. Frankly, it sucks - no discovery and almost nothing gets auto-downloaded. Even ignoring the crucial discovery part, I got tired of manually downloading albums from Bandcamp - manually tagging, manually feeding files into Lidarr, manually adding metadata to MusicBrainz so Lidarr actually works, …

    So, I’ve been working on a Subsonic-compatible server for quite a while. The basic idea is:

    • regular user libraries are already covered by various Subsonic (and other) servers, no need to reinvent this
    • we can, uuuuh, cache stuff from YouTube/Bandcamp/… to stream it via Subsonic API to leverage existing clients
    • we can fetch recommendation lists from somewhere else (ListenBrainz/…) and use the existing library or even auto-search YouTube/Bandcamp/… if the track’s missing

    Well then, what can Tapesonic already do?

    • given a YouTube/Bandcamp/maybe-more URL, download it and then two-click import it as a playlist or an album, making it listenable via most Subsonic clients (single-video “mixtapes” with timecoded chapters and playlists are supported)
    • combine your “main” library (from probably most other Subsonic servers like gonic/Navidrome/…) with it’s own so you don’t have to switch servers back and forth

    What’s broken/not implemented yet?

    • acceptable server UI; features are far more important especially considering that the goal is to use the existing clients for almost everything
    • seeking in clients; working on a fix for the past few days
    • transcoding; not a priority for now
    • auto-searching YouTube/Bandcamp/…; not a priority for now
    • ListenBrainz playlists; I have “already listened” playlists kinda working in a stash, but those are paused until seeking works; “discovery” will just work after auto-searching gets implemented

    No user documentation, half-broken, breaking changes one after another, slow progress - but hey, it doesn’t mess with your existing library and already made my life quite easier with Bandcamp albums. A docker image is available - so give it a spin if you want to and then ragequit because it sucks


  • gonic as the streaming server, Lidarr for library management and some of the downloads, Sonixd/Tempo as desktop/mobile clients.

    Works alright for albums (downloads are a pain), probably won’t really work in your case though.

    Everything is running on a single-node k8s cluster (because infrastructure-as-code is awesome), but it’s probably overkill for most people. https://github.com/sibwaf/Infrastructure for reference if you’re interested (/selfhosted/charts - lidarr, gonic)

    Shameless self-plug: I’m working on a Subsonic-compatible server which wraps yt-dlp (i.e. allows downloading from YouTube/Bandcamp and then streams it). Seems like it should work for your case of handling single tracks. It’s still very much in progress (very-very slow progress) and really isn’t ready for use, but if anyone is interested in following the project: https://github.com/sibwaf/Tapesonic