• 1 Post
  • 7 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




  • To be honest, I’m also not that knowledgeable about it even though I do have it running on a VPS. And can’t say I’m too knowledgeable about networking/VPNs either - I do use Wireguard which I also manage, but that’s about it.

    So, some bulletpoints instead:

    • It’s kinda a pain to set up
    • It’s default server configuration logs all requests, so you might want to disable this
    • As far as I understand, it’s more of a proxy than a VPN, so you won’t be able to make connections from one client to another
    • It mimics standard HTTPS
    • When using the “reality” protocol it successfuly mimics any website of your choosing for any unauthenticated clients by forwarding HTTPS certificates and whatnot, which protects you from active probing
    • People use it to get around the Great Firewall of China


  • Had a dream recently where I was having a great time in a fantasy world tavern (guess it’s time for me to stop watching so many isekai shows) and decided to sleep on the floor in that same tavern. Woke up in reality, but I really wanted to go back to that story, so I was “telepatically” communicating to a “buddy” in the tavern to wake me up, and each time he would do that I’d see a flash and still find myself in the real world. Was pretty disappointed after a bunch of attempts to “go back”.