• 0 Posts
  • 6 Comments
Joined 2 years ago
cake
Cake day: July 6th, 2023

help-circle
  • Seeing the recommendations in your Subsonic player (even the ones you don’t have in your library) currently works with last.fm auto-generated “playlists” (stations, as they call them). Streaming them is broken but easily fixable, I just haven’t gotten around to it.

    YouTube links in the player would probably need updates to the OpenSubsonic specification and support on clients/servers - but I don’t really see why someone would want this if you could just stream those without leaving the player.

    I’m working on a big update (multi-user support which required reworking almost everything, haha…) that’s been blocking me from doing basically anything else. After that goes live somewhere around January-February (along with updated yt-dlp which will fix streaming stuff from YouTube) one of the priorities will be implementing Bandcamp auto-search. This will allow better matching for last.fm recommendations and also matching non-library tracks for ListenBrainz.


  • You might be interested in Tapesonic then (a shameless plug). Streaming YouTube stuff is borked though (needs newer yt-dlp - you can try rebuilding the container yourself with a new alpine version); also grabbing non-library tracks is not supported for ListenBrainz for now (their API doesn’t return the URLs, I’ll work around this in the future; meanwhile you can still get the playlists of the stuff you already have in your library).



  • i_uuuh_what@lemmy.worldtoSelfhosted@lemmy.worldReplacing Spotify
    link
    fedilink
    English
    arrow-up
    23
    ·
    edit-2
    10 months ago

    edit: if anyone sees this, the update with the last.fm recommendation playlist support is available and I also added basic documentation to the readme

    Spotify replacement? Oh, hey, that’s me.

    I’m working on Tapesonic, a subsonic-compatible self-hostable streaming service. It won’t stream your local library, but it can import stuff from YouTube and Bandcamp (and probably other sites yt-dlp supports, but I didn’t bother testing) and stream those. Started making it because Lidarr can’t download basically anything and also can’t manage anything that’s not in MusicBrainz even if you download it yourself.

    As for discovery - Tapesonic can scrobble your listens to ListenBrainz and, since a couple of days ago, last.fm. Those in turn provide recommendation playlists.

    • ListenBrainz playlists are already incorporated, but Tapesonic can only match the songs you already have in your library - everything else is ignored; completely useless for actual discovery and the recommendations aren’t great anyway to be honest
    • last.fm recommendations are pretty good and I’m actively working on importing those; last.fm provides a YouTube URL for each track and Tapesonic can import YouTube URLs - you see where this is going, yeah? I expect to push a somewhat working implementation in a couple of weeks as I already have a prototype that works surprisingly well

    Caveats:

    • Tapesonic is still in it’s “prototyping phase” (what do you mean it’s been more than a year since I started it…) - everything gets changed all the time, only core features get implemented, UI sucks, all that jazz
    • breaking changes anytime - expect having to completely wipe everything and start anew at any moment
    • no multi-user support for now and I have no idea when it’ll come; you can host multiple instances I guess

    Want to give it a try?

    • docker run --rm -p 8080:8080 -e TAPESONIC_USERNAME=user -e TAPESONIC_PASSWORD=pass ghcr.io/sibwaf/tapesonic
    • http://localhost:8080, username/password from the previous command (“user”/“pass” in this case)
    • “New tape” -> paste any Bandcamp album URL -> “Import” -> “Add all” -> “Next” a couple of times
    • Connect a subsonic client (Feishin, Sonixd, Ultrasonic for desktop, Tempo for Android) to the same address, same credentials
    • Enjoy!

    Any other configuration parameters, persistency, stuff like this - sorry, you’ll have to study the code. No docs and no support for now.



  • 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