I’m currently using @[email protected] for my music collection after downloading over 2.5k songs from YouTube Music (Premium). While it works fine for most things, I’m looking for a better alternative. My key requirement is to read files from a mounted WebDAV folder (NextCloud Folder).
The Subsonic API in NextCloud Music works fine, and I’ve had no issues streaming through clients like Symfonium and Subtract. However, I want to eliminate the 5-10 second buffering issue I experience on mobile. When I tried @[email protected], my NextCloud AIO instance became unresponsive after about 30 minutes (happened twice, not sure why).
I also tried Navidrome, but I didn’t like how it organizes music—it only recognizes album artists, which doesn’t work for me since I don’t have albums. I downloaded the songs in Playlists using Seal.
Ideally, I’m looking for a solution that streams high-quality music instantly, like Spotify or YouTube Music. If possible, I’d prefer tweaking my Nginx config to resolve the buffering issue rather than setting up new software. What alternatives do you guys use for fast, high-quality music playback with WebDAV support?
Edit: Forgot to mention, the buffering issue only occurs when I use a Subsonic or Ampache client with NC Music. The web version works very smoothly.
Edit: The issue with Nextcloud Music was occurring because of rate limiting.
I’m using Plex with plexamp. You could also go jellyfin with finamp
Not gonna lie I love Plexamp so glad I gave it a chance awhile ago.
I use plexamp as well, I think I bought Plex Pass specifically to have it.
You can install a headless plexamp client onto a Raspberry Pi and have it hooked up to an audio receiver for seamless music casting.
Wait, what? That’s cool.
It’s a bit of a process to get it going, but it’s worth it for me so that I can use my phone to cast directly without needing to use a smart home device.
https://howtohifi.com/install-headless-plexamp-endpoint-home-network-raspberry-pi/
I like Plexamp but there’s a couple of things to be aware of depending on your music library that took me a while to figure out:
- They downsample anything above 48kHz which isn’t a big deal but sucks if you have hi-res music. It won’t even tell you it’s transcoding if you check the dashboard and Plexamp will show it as playing at the actual sample rate which is misleading when trying to debug.
- It doesn’t distinguish between explicit and clean versions so if you have both then it will just look like duplicates. You also can’t favorite just the clean or explicit version as favoriting one will do the same for both versions.
- They don’t support Spatial Audio/Dolby Atmos(E-AC-3) music. Doesn’t matter if they are m4a or flac. Again, nothing about transcoding in the dashboard but the sound will be horrible. It does at least show in Plexamp that the song is playing as Opus. I know everyone says multichannel music isn’t worth it, but I wanted to try it out and was very disappointed when Plexamp wouldn’t play them.
These probably aren’t issues to the majority of users with just their favorite songs in mp3 or flac 16-44, but it’s something for people with larger hi-res/multichannel libraries to be aware of that I recently learned.
For your second point can’t you tag the song as explicit and put in it a separate album (album name (explicit) ) and unmatch the album (or add a specific explicit version to music barainz to match with) I have had to do this with instrumental versions assuming it’s the same process.
They are already tagged as explicit/clean in the metadata as well as separated by folder with an [E] tag if explicit. I could manually rematch them but my library is large so I’d really rather not
Those plexamp sweet fades though. 🤤
Jellyfin. I’ve been using it for several months. It works really great for streaming music and also videos. I use the Finamp app in my phone for music.
If I may recommend it, give Symfonium a try for an app front end. It’s actually stellar. I tried Finamp with the same and wasn’t as jazzed
I use Jellyfin, moved from subsonic and its amazing
I’m also loving finamp, I keep meaning to try building it on desktop when I have free time, but also keep forgetting
Is Jellyfin Subsonic or Ampache API compatible?
no, its a different thing
@mitexleo @selfhosted I don’t know. I just use it with the official app or finamp.
How do you organize music? All of my songs in the same folder. Artist and Album sections are empty now.
@mitexleo @selfhosted artist/album. I use musucbrainz Picard to tag files, so jellyfin can identify easily.
How can I configure it? My Artist tab shows only one artist.
@mitexleo @selfhosted here you can find some information on how to organize your music directories in Jellyfin.
https://jellyfin.org/docs/general/server/media/music/
You need to add media library first.
Organizing them is going to be time consuming for me. Nextcloud Music has everything I need. It can detect genre, language etc. using NextCloud Recognize app. I just need to improve the buffering issue. 🥺
Navidrome should recognize both album-artists and artists. In my phone app (Symfonium) I see them separately and I can browse by individual artists or by album-artists.
Not sure why it didn’t work for me. I’ve also tried Jellyfin. Had the same issue.
How are you tagging those and in which tagging software?
I use NextCloud Music and Recognize (a NextCloud app). It’s showing all albums and genres (mostly) correctly. Also I can go to a artists page and see all of his songs.
NextCloud Music supports both subsonic and ampache API.
Recognize
I am not familiar with these, but it seems it’s automated tagging? Then it depends how it writes the tags and the separators. Try viewing the tags in Musicbrainz or some other manual tagging software to check.
I’m doimg the same, but with the substreamer app.
it’s closed source, but Roon is pretty darn good. Slick UI, tagging, artist/album information, local/remote playback, speaker streaming. I have it pointed to an NFS share on my file server. It handles large (250k+ songs) libraries reasonably well. They integrate directly with a couple services, though I’ve never used them.
the selling point for me, over other music servers(I’ve tried almost every one mentioned in this thread), was that it was a much better ux than any other offering. for the most part it has held up or exceeded recent comparisons.
disclaimers: it is not free. some might say expensive.
as seems the norm these days, the forums have some admin moderation problems.
they’ve not historically listened to user feedback seriously, though that has changed drastically over the past year.
they just got acquired by HK… which could really go either way long-term.
NGL, it took many years for it to mature to this point and it continues to be bumpy; though nothing worse than open software I’ve used and it is nothing if not reliable.
Do you only experience the 5-10 second buffering issue on mobile? If not, then you might be able to fix the issue by tuning your NextCloud instance - upping the memory limit, disabling debug mode and dropping log level back to warn if you ever changed it, enabling memory caching, etc…
Check out https://docs.nextcloud.com/server/latest/admin_manual/installation/server_tuning.html and https://docs.nextcloud.com/server/latest/admin_manual/installation/php_configuration.html#ini-values for docs on the above.
Yeah, I face that issue only on mobile. I use Nextcloud AIO. Everything should be optimized already. Though I’ve tuned my nginx config a little bit (using it as a reverse proxy in front of AIO).
Funkwhale?
Last time I checked that project wasn’t actively maintained. I think Jellyfin suits my needs.
Funkwhale is still actively maintained, the last release was less than a year ago.
Sad to hear this news.
I’m syncing Spotify playlists with Lidarr and play my music in Jellyfin or Symfonium.
If you want pure streaming DAAP using OwnTone is a good alternative https://owntone.github.io/owntone-server/
Personally I use gonic with the Subsonic API, and Ultrasonic on Android. I haven’t noticed any buffering lag, but it does buffer and cache aggressively. For mobile connections I see that as a big plus since it’ll continue to play even if I loose signal for a while.
Lose. “Loose” is for morals and what Monty Burns does to the hounds with bees in their mouth.
No one cares.
Personally I use gonic with the Subsonic API, and Ultrasonic on Android.
Gonic is a super lightweight subsonic API server with a very basic static stats “dashboard”. As so, it’s great for lower end devices. Only problem is that it sometimes fails to pick up the album art is some cases, if that don’t disturb you, then it’s great.
Airsonic (abandonedware) is the best subsonic server in my option. It displays all album arts correctly and is folder based which works much better than Navidrome’s Id tag reader, which is a dumpster fire.
Airsonic is on the heavier side on ram usage, around 1GB. Can probably run just fine on 500mb. Probably around what Jellyfin uses.
Ultrasonic is a great android app. It is just not updated for quite some time now.
I’m also running Jellyfin and I’ll experiment with Finamp. Let’s see if it takes the number one spot from Ultrasonic :)
Edit: Ultrasonic’s strong point is also the caching of music for offline listening. Not sure if Finamp has the capability.
Edit2: Yes, it can cache music.
There’s a ton of android clients Subtracks is nice too! Ultrasonic might not get regular updates, but it’s already very complete so there’s not much need.
I haven’t had much issues with gonic and album art, I guess YMMV
I like Navidrome for the server and substreamer for the app.
Currently exploring some tools around this myself too. I’d recommend having a look at Gonic, LMS(light music server) and Navidrome for hosting music. Personally I quite liked the simplicity of Gonic.
If you need to re-sort/manage your music then, Beets and Musicbrainz Picard, or MediaMonkey (if you’re on Windows) are your friends. These can add alot of additional metadata to your library.
Beets is apparently the “best” tool out of these as it has a big plugin library and hella customizable configuration for your exact setup.
Best of luck 🤞
I’ve been using a Navidrome server with Feishin as a desktop client (though I’m looking for something a bit more feature-rich) and play:Sub as a mobile client with a tailscale link. No idea if this is a dumb way to do this, but it works for me. I don’t really get any buffering unless I’m trying to play a FLAC out in the middle of nowhere.
I started working on a hobby project recently to meld the utility of Beets with a music and podcast streaming service, like Subsonic. I’m developing this with a contract-first approach, and so far I’ve gotten most of the podcast management code in place, but I’ve not started working on the frontend outside of integrating a skeleton project into build process. I’ll add a note to look into supporting webdav data sources directly.
I plan on doing another big dev push around Christmas, so hopefully I’ll have an MVP app to show off around that time. The frontend is a basic vite/react base and the backend is Spring Boot with Kotlin. I’ll be looking for some contributors for the mobile app side within the next few months.