I've been using Plex (connecting via Tailscale) with their Plexamp music player.
It's been working pretty well, but I might have to give this a try to compare. Although, it's not clear from the GitHub README or the Apple App Store listing if the mobile app allows you to download music for offline listening.
- Cloudflare tunnel for public access
- Tailscale for private use and sharing over WebDAV
- Nextcloud for general file management
- Jellyfin for music and video streaming
Nextcloud's WebDAV has issues with filenames or at least how it works. A large amount of files in non-'standard' characters wouldn't show up, so Ampache/Subsonic wouldn't work. This is why I tried Jellyfin.
Also using Plex and Plexamp, and very happy with that combo. Curious about why talescale is needed - I'm on a static IP, but I believe Plex also provides a forwarding service (?)
I think you were talking about Blackcandy in the second paragraph, but just to be clear, Plexamp does allow downloading for offline listening.
It's free, extremely easy (not that port forwarding is complicated) and you don't need to port forward.
I point DNS records on my personal domain to tailscale IPs so it some subdomains can only be accessed when connected to tailscale, I can do app.mydomain.com etc without exposing anything online.
It is really only a thing because smartphone OS vendor make it difficult for people to mount filesystem over the network.
If you could ssh/sftp mount from android or iOS easily, your favorite smartphone audio player would just play those files from a remount mount without any need of a streaming server.
Longtime Navidrome user so that's what I'm comparing this to.
This project looks cool, albeit simple at this point, but what I'd really love is a solution for music discovery for folks who self host their collection.
Is there something that sets this project apart from other easily self hostable tools?
Hey @hebocon I've been using jellyfin for both music and movies for close to a year...but keep hearing of navidrome (for music) as well. So, can i assume that you don't really use jellyfin for music, and instead use navidrome for that? How does that work for you? Any issues of interference, etc? I guess if i wanted jellyfin only for movies/tv, i could point it only at the folder where such media is saved, and then separately manage music via navidrome...but wondered what the benefits would be? Genuinely curious if you woiuld kindly share more info about your setup. Thanks! :-)
I set up JF for music first, then added Navidrome. I then added Moode for my separate stereo speakers and Home Assistant too. Never had an issue with everything having access at the same time.
I’ve been searching for services that host personal music collections, but there doesn’t seem to be much available. I came across a product called Vox [1], which I might try. There are also plenty of self-hosted projects of varying quality (but I hadn’t seen Black Candy before).
I'd like a service where I can upload a large folder of MP3s, and it would help organize them into albums, perform useful processing like ReplayGain normalization, BPM and key analysis, etc. It should also have a good playlist manager and player for desktop and mobile.
Some existing services allow you to add your own music files, like MP3s, but this often feels like a second-class citizen. Services like SoundCloud are focused more on social interactions, which I don’t really need.
Have I missed any services like this?
There's some growing dissatisfaction around algorithm-driven music services like Spotify. Also, these services carry the risk of music disappearing for various reasons. I think a service allowing curation of own MP3 collections could appeal a significant fraction of all music lovers out there.
I’ve been wanting the same thing for a while now too. I’ve thought about trying to build it myself but the thought of requiring users to manage their own library seems too niche. A hosted, music-focused Plex competitor sounds awesome but also not sustainable. Surely the majority of those users who care about managing their music library are also happier owning their storage too, no?
Storage is tricky... I know how to self-host software and get storage but I find it too much of a hassle to do it for me only, so I just have a folder in a google drive, which I need to migrate from soonish.
Why do you think a Plex competitor would not be sustainable?
Navidrome has worked well for me for the last couple years. My collection (~80 GB) is pre-organized FLAC but Navidrome will transcode to MP3 if needed. I use Substreamer on Android to connect to it (Airsonic API/protocol) or the WebUI at home or work.
Just the right balance of simplicity and features for me.
> Navidrome does not support browsing by folders, but simulates it based on the tags with a structure like: /AlbumArtist/Album/01-Song.ext
I don't think I have seen this tag simulation when I tried it around 2 years ago. But in any case, is this good enough? And does it recognize artists and songs from MusicBrainz like Jelly does flowlessly?
I don't know what you mean by "recognizing songs from musicbrainz", I've never used jellyfin to be able to compare. In my case, all files are tagged outside Navidrome.
All my players allow browsing by either Album Artist, Artist or Album. My folder layout follows this principle, so I'm happy with that.
But I can imagine layouts which don't adhere to this (classical music comes to mind), in which case I can see how not being able to get to the folders can be annoying.
I am more proficient with folders and have the number of tools to do so. Any GUI that streaming servers present is very unusable for me, I use it only for major happy case. Anything more advanced, I drop to the file system.
Recognizing from MB is this: you have title1.mp3 and you can use MB fingerprint to detect song/album. Or song simply has subset of tags and MB fills up the rest, along with the links to MB details of artist/album where you can get tiny little details.
Discogs is a bit better in that, but its proprietary, so no.
For Musicbrainz I use beets to import/organise the songs into my library directory structure.
For stuff not on mb I use fb2k as it has a fairly decent tagger and move it to the local external drive, which is synced to the server.
At home I usually just use fb2k to play to my sound system via an interface, and on the go I use play:Sub connected to the navidrome instance transcoded to 160k OPUS (initially over tailscale but now via portforward/cloudflare and soon cloudflare tunnel)
I use FB2k with picard and MB. If its not in the MB, I add it myself. With bookmarklests and picard this is very fast process.
Beets is too much work. I don't always have shell around nor I want to remote for this. This thing I use works on whatever machine I am currently.
I use jelly for convenience to connect to my media server when I am not at home. At home, I always use foobar2k which simply rocks for precise search and randomly generated lists (I even use SQL for this, via plugin). Its playing capabilities are far from any jelly like streaming server. Jelly is very bad at non-typical case, you can't even share a link to the current playlist and if left alone, after a day or two I have to reload jelly home page and go from there again, as anything that was left in the browser for a couple of days stops working until I reload from home.
I used to add stuff to MB but it's a bit involved as a process and honestly I'm too lazy a lot of the time. Picard is fine as a GUI tagger but I like foo.
If I can't pick what to listen to I quite like radiooooo, Radio Paradise, Radio Meuh, etc.
if not for the work requirement, at 80gb you could likely do what I do: use syncthing to make there be a full copy of the files on your phone. I've got a media terminal, my laptop, and my phone each keeping each other up to date. it's never broken or been frustrating. it works offline perfectly.
Most self-hosted services metadata is only as good as the metadata on your audio files. I think using something like MusicBrainz Picard or beets to tag your media well is required, along with making sure that all files of a given album are in the same folder. (Plex has what seems like strict file naming conventions for music, but really all you need to do is make sure each album has all its files in one folder).
If you're interested in something more automated than having to use a program to tag your media, then I'm not sure what a good option is. Most people that don't use streaming services and have a digital music collection are tech-savy and don't mind going through the extra effort of tagging the media.
So here is my question, or one of them, as someone starting this whole journey: exactly what metadata do you want outside of artist, song title, album title? Because I can see there's a lot to be had. Embedded album covers, subgenre tagging, synchronized lyrics ... hyperlinks to Discogs and MusicBrainz, maybe? Tempo in BPM? Key?
ID3v2.3 or IDv2.4? Can you even do that to FLAC? And where do you get that metadata, using what tools?
I just don't want to be the guy who has to re-rip three thousand CDs because he did his workflow in a lazy or careless manner.
Besides artist, title, and album, I also make sure to include release year and genre (and I'm not really particular about genre definitions - about 90% of my music falls under "rock," "pop," "jazz," or "soundtrack"). I add album art, too.
I started digitizing my collection 15 years ago, ripping from CDs and cassettes, and have never regretted not adding any more metadata.
The cool thing about MusicBrainz Picard is that it puts not only an ISRC metadata tag on each file, but also a UUID for the MusicBrainz recording and for the MusicBrainz album id.
The idea here is that if you use something like MusicBrainz, you can actually retag all of your files in bulk if necessary because MusicBrainz Picard knows exactly what release each file belongs to. You can then configure MusicBrainz Picard to tag your files to your liking. It's a really great piece of software.
If you are tagging files manually, I think an ISRC tag is the bare minimum because it can allowed automations like MusicBrainz Picard to easily identify what each file is.
As for what version of ID3 or ID2, I'm not sure. It might depend on the software you use to play the audio files. The reason I personally use MusicBrainz Picard is because its MusicBrainz specific metadata is read directly by Plex, so even if the other metadata on the file is bad for some reason, Plex will match the MusicBrainz tagging with the correct release. I mean, Plex uses MusicBrainz internally for its metadata, so it's a safe bet for my purposes.
> ID3v2.3 or IDv2.4? Can you even do that to FLAC? And where do you get that metadata, using what tools?
I rip my CDs to Ogg Vorbis, so the ID3 question is moot. Yes, FLAC supports plenty of metadata. I use beets[1] for tagging, which uses MusicBrainz as the source of truth.
> exactly what metadata do you want outside of artist, song title, album title?
Album Artist, and sort-orders for albums/artists what I like the most (but not all players use those), then yes album covers are useful. I don't really care about subgeneres, but there is a plugin for beets that will fetch those from last.fm
I use iBroadcast[0], it's a service dedicated exactly for this. Costs me a bit each year but I've felt it worth it. There's some differences to organising in iTunes like the handling of compilation albums that I'm not so fond of but you can see how it works on the free tier.
The browser client only does 128 kbps streaming but their mobile client can set the streaming quality (I have it at 256, max is 320) and I'm working on my own PWA client using their API that I've also set to 256, which would work on both mobile and desktop.
You can also set the browser client to stream the original file directly but browsers don't play most of my formats like ALAC so it just doesn't play anything then.
From the "outside" this looks like such a strange product. The landing page is very obscure and, together with the name of the service, I would automatically think this is a super old school product (being generous) or some sort of weird scam (being overly critical). There are no docs or pictures or any further description of what the product looks like, I guess the authors expect people to sign up to see (it is free! :-).
Other than that, I wonder how they address their costs [0]. It seems free accounts have unlimited uploads. Anyway, I guess I'll have to give this a try to learn more about it.
EDIT: I found some pics by clicking in their facebook page, which in turn links to a news page [1] (...).
EDIT: This product is fascinating. Seems like they've been around for 12 years, have a bunch of loyal users, and support their product (?) via reddit (at minimal approve of the reddit channel since they link to it themselves!). I wish we could know more about the team behind it. Related: [2].
Huge shout out to astiga which I've used for a year and a half. It'll run a streaming service for you out of cloud storage (eg s3, but also stuff like dropbox or google drive).
I'd love to self host but have a toddler and not much time, so astiga is a great "take my money and do it for me" kind of service!
1. Self-hosted web server with local file system access to your media.
2. One HTML page that I will generate for you. This page will contain a media player and a play list of your media files.
With this approach the solution is ridiculously simple, but you are at the mercy of the client device web browser for media codec/container support. For audio this is not so restricting but for video this is really restricting.
There are three examples in the repo. Look for the html files in the lib directory.
They won’t actually play media for you because I don’t include media files in the repo but you can get a very real sense of a long playlist and the usability of the media player controls and full playlist interaction.
Maybe I will work on better documentation in the future but I only wrote this to play files on my phone around the house.
Not op but I’ve been running jellyfin for a few years. At least 2 years ago when I tried it for my music it felt clunky . I haven’t checked since but I encourage you to feel out the experience with a few albums, playlists, carplay, &c before going all in.
Fwiw I ended up using Navidrome m as a server, beets to manage metadata, and play:sub on mobile.
If you’re willing to pay for proprietary software, I’ve been incredibly happy with Roon for music organization. Handles 99% of albums I add without an issue, great multi-room support, best suggestions of any existing service (Rest in peace Google Play Music). They added remote streaming a few years ago and it’s all I use now.
That's some serious price. If you're a professional music maker and need top-of-the-line audio production software, Ableton 12 Suite is ~600 EUR, and that's for making music, not consuming.
You can control the playback via a phone if you need to play music through a Linux system though.
Music playback via a PC isn’t really what Roon seems to be going for though, so much as allowing you to control music playback through proper audio systems via a PC or other device.
I have friends that use Roon and say it's great, and has some nice features for room-based EQ, however I want to spend £0/mo standing cost (all extra goes to bandcamp).
I tried this (among a bunch of others) about a year ago and landed on Gonic[1] for the server and Supersonic[2] on PC and Amperfy[3] on mobile. Yes it's a few different tools to maintain (plus beets etc), but it's the ideal set of features etc for me.
Self-hosting has been fun and I've started experimenting with local LLMs to build playlists which is helping discoverability.. or more /rediscovering/ artists that I haven't listened to in a while
Yes, that is what I'm talking about! I had once dreamed of building a service you could ask questions like "what other artists recorded in the same city in the same year as artist xyz" and have it figure it out via the discogs dataset.
I have both Gonic and MPD on my home server (an old mac mini running debian). It's connected directly via optical to my AVR and MPD can be controlled with the Rigelian app on my iPhone. Gonic is for Amperfy when I want to stream to the Homepod.
On my desk, I used to have a satellite instance of MPD for my desktop setup, but I copied over my library to an external drive and use that as my main instance (rsync to the server when I update it). I rarely play from my laptop (I control the others instead). but could use either the satellite config, a subsonic client, or a quick sshfs mount.
And for offline sessions, I have a DAP with a 512GB card and most of my collection.
+1 for navidrome.
I’ve had better luck with the play:Sub app (iOS).
I think it’s important that these servers use a common API (subsonic), but it seems like the slickest apps are always targeted to one specific backend (plexamp, finamp, prism music).
I did try Navidrome and used it for a while.. I honestly don't remember why I switched but I suspect the reason was probably more related to the client I was using at the same (Submariner on macOS) than the server-side.
I have chosen jelly over it because of the way navi stores music. I prefer to organize music in folders myself, and tag them with picard. Jelly then just shows everything nicely with 0 configuration.
I don't remember why I settled on Navidrome instead of the others, but I basically just told it "here's my music, now go play me something" and it all just worked. As far as I'm concerned, it doesn't manage organization at all.
> Navidrome can work with your folder layout, too.
Is that recent? When I was looking to replace libresonic I looked at Navidrome and it couldn't do that, and the developer indicated they didnt have plans to add that feature.
Thats why I choosed Jelly. I do prepare music file a lot, so that is expected, but movies and series I do not and it works great to recognize them 99% of the time.
https://github.com/epoupon/lms is another (Open)Subsonic compatible server that supports directory browsing commands.
But actually few clients use them.
I didn’t need a web client and Gonic shows the actual directory layout for the folder API. I have a few albums that requires gapless playback and most web players can’t accommodate them. My music library layout is mostly ‘collection/album-key/track-key.ext’ where album-key is something that uniquely identifies the album and make it easy to search for. For my main collection it’s’artist - year - album’ while for others it can be just ‘year - album’. Gonic shows the same layout to clients.
I think the folder structure like browsing is the main reason to ditch navidrome...
While I get the point, this is not an issue for my use case.
What I would love to see though is a "sync playlist to path" button in the web interface where it keeps the original folder structure. With this i could create partial lib dumps for my car usb stick or my family members. Maybe i submit an issue for this.
OK, I will ask. I presume you purchased all those music files that you host on that certain server, didn’t you? I will also assume that there is no tool that lets you acquire music MP3s (or some appropriate file type which is non-audiophile listenable) the Linux ISO way (without having to hunt them songs one by one), right? I am talking about someone already having a Spotify/apple music playlists/likes/favourites.
Also, these self hosted music services mean — no new music reco/discover, right? Not necessarily a bad thing. I was curious. Never done this.
How is the cost/spec need of this self hosting like? Does it have to be stand alone or it can live with other things like maybe an archiving/bookmarking service and small self hosted utilities like that (of course not all being used at once).
Not OP, but gonic is very lightweight and takes little resources. It lives on a machine that serves a few websites and also hosts my photos with photoprism (by far the most resource intensive service on this server). It's a basic N100 machine with 8GB RAM.
As for my music, although I own a physical copy of most of it that I bought legally, I downloaded almost everything through bittorrent as is easier than ripping CDs.
A sizable part of my collection consists of things I was unable to buy because it's unavailable here or unavailable at all, though. Some albums I received from friends. I don't feel guilty about it, to be clear.
I have 700 via those tools but then my current Spotify/Apple Music list must be close to 1500 and I shudder at the thought of hunting the rest of 800 down on P2P here and there. So I was wondering is there a way to do it in one shot or few shots as a batch/automated process.
The „starr“ Apps generally allow importing lists to automatically hunt down the items on P2P and upgrade your local versions if better qualities are found. I’m not sure if it directly supports Spotify/Apple Music lists though.
Sadly I have almost stopped using pvt p2p or otherwise. I also never had anything other than a basic ruT setup. I guess it's about things like Radarr etc. I would not know where to begin with them. Will try to use something other user have suggested.
Yep. Same with Plex. I used to run it with 1.2 GHz dual core Intel Atom. I always encode to 128 kbps Opus when I stream my music and I'm not on Wi-Fi. It took about 300-500ms until the music started when I pressed play. The CPU usage was very low even when actively encoding.
The only thing that takes a bit more of CPU is if you have a huge music collection (I have about 2.5 TB), and you do the first metadata and album art scan over the collection. Otherwise you can run these systems with a potato.
> Otherwise you can run these systems with a potato.
Crikey: This gave me a laugh like none other in a while. For anyone else who doesn't get the reference, you can build a very basic battery from a potato, e.g., https://stemgeneration.org/potato-power/
Now, I would love to see a YouTube video where someone tries to power a portable music player from a battery. Could a PiZero be done?
How many TB of photos can you comfortably have in photoprism? I mostly use date-systems, so I could turn off the "ai" if that's resource-intensive.
Can it "stream" previews and then offer full-size downloads? (I'm looking for something that can offer previews + downloads so I can quickly find photos from my home archive when I'm out with my laptop or phone)
Self hosted music service doesn't necessarily imply new music discovery problems, because a lot of people still discover music the old non-algorithmic way, by being interested in certain genres, studying labels and artists and going through their albums, adding to their collection what they would love to hear again. Buying and owning the song/album somehow brings me more satisfaction than paying a monthly fee for a song library where I won't even listen to 99% of the tracks. Regarding the cost – it is most certainly magnitudes cheaper than renting music from spotify or apple music, but it is ofc more expensive in terms of attention.
The algorithms have never introduced me to a new song.
They always try to mash up things I've heard before, which is disappointing because I can often go to "similar artists" in Spotify and after drilling down a couple of levels, find new artists.
But Spotify will never suggest it until I listen to a song at least once and even then it will only recommended that one song.
I still do most of my discovery by looking at other bands on a related label, internet radio or, as mentioned, finding a band I like and browsing the similar artists.
What used to work for me was the "recommended" section under a playlist, as well as the discover weekly. I say "used to" because I haven't actually used to those in a long time for unrelated reasons.
The drawbacks to these is that they require time to go through them. AFAIK, the "automatically continue playing" feature doesn't pick from the recommended section, and it's hit and mostly miss. Furthermore, to use that section, you already need to have a manually created playlist.
The main drawback of the "discover weekly" approach is that it's strongly biased towards your recent activity, which in my case is random background music of the lofi type. I don't particularly care about this music as long as it's not distracting, so I don't care to discover anything, the randomly changing playlists by Spotify are enough. I would much rather these were excluded, so Discover Weekly would only consider what I listen to "intentionally". There's an "exclude from your taste profile" entry when right-clicking on a playlist. Never used this, don't know how it behaves.
However, all in all, I've discovered many songs and artists I hadn't known before, and many of those have become staples. So I can say that I'm pleased with at least some of Spotify's discovery mechanisms.
You can sort of achieve that the other way around by starting an incognito session when you put on background music. Haven't worked out how to do that for things with Spotify integrations though.
They have for me, 10 years ago. Seems like the Spotify algorithm figured out that rehashing the same works better for engagement than recommending new stuff
> The algorithms have never introduced me to a new song.
Nearly the same for me, the algorithm has introduced me to a new artist once, ever (and that was the old Google Play service which is no longer available).
Most of the time it creates playlists which are as someone described 'radio curated by the worst version of myself'.
My music discovery is via genre specific radio, a few review magazines, and exploring similar artists via reddit or allmusic.
Maybe it's rose colored glasses, but I recall finding new songs and even occasionally new artists on Pandora maybe 15ish years ago. It does seem like the last time I tried Spotify it was working really hard to make sure it didn't play me anything I hadn't heard before.
Back in the days, there was a service called what.cd, which was really nice for music discovery. You had very dedicated music fans, great forums and a daily top 10 of most downloaded music. For many it was the fastest way of finding new interesting stuff.
I've heard rumors this kind of services still exist, but we never know if it's just an urban legend.
And it's much better now than it used to be. Of course the amount of people in these forums is much smaller, but all of them are very much music nerds. So you get very good tips for what to listen from them.
honestly the best way to discover new artists for me is last fm. i can look who has similar taste and see what they like. Allways wanted to implement this somehow
You don't do music discovery by blogs, music journalism, word of mouth, genre databases and so on? You're fully subservient to some algo an ad corp is using?
As for purchasing, many artists give away their works (e.g. "name your price") or don't deserve payment but should be archived and studied anyway (e.g. nazis, billionaires and so on). It's probably not that hard to build a Bandcamp crawler that fetches name-your-price-albums from specific genre tags.
For a few clients and simple browsing you can run an audio cast off a router or cheap SoC.
Buying new tracks like when I was still using iTunes would be nice. Bandcamp comes close but I don't mind the extra step of downloading the zip file and running my script to have it in my music server. Where I also have plenty of digitalized CDs that I own.
Spec-wise, start cheap and upgrade the CPU/RAM when you hit limits. It's not like you'll use all those services at the same time. My home containers all run on a recently purchased HP Mini G2 that I upgraded from a 6100 to a 8-core 6700 and the RAM is an odd 24GB. It even has a rarely used minecraft server. Docker containers are bundled into proxmox instances per user or whatever makes the most sense.
For some people music is a hobby — looking for new stuff, buying and sorting it is their passion.
The worst thing you could do to me is tell me that I pay $5 a month and the rest of my musical journey is solved and gets decided by a corporate algorithm that pays emerging musicians and niche artists a starving wage.
To me Bandcamp has been the best thing since sliced bread - direct connection with artists/labels, high quality audio (in a dozen formats) and often the chance to buy physical media (I'm a vinyl person).
Bandcamp has a massive amount of _legal_ free / zero cost / €1 per album music if you spend the time digging. As a hobby DJ I really enjoy the digging aspect!
Please don't be so quick to assume all music is pirated by those with large audio collections.
>OK, I will ask. I presume you purchased all those music files that you host on that certain server, didn’t you?
I self-host my music streaming with Plex, and I'll go ahead and admit to you that no -- not all of my music is paid for.
>Also, these self hosted music services mean — no new music reco/discover, right?
I've discovered more music, and more interesting music, through my Plex server in 6 months than I have on Spotify/Apple music in 6+ years. On the site where I get my music, I have downloaded thousands of albums - 75+% of which I have never heard in my life. I did this by downloading albums I liked, and then snatching all related albums on top, and then snatching all the albums collected by people who like the albums I like, and so on. And so I now have a collection of music all relatively close to my taste but FULL of stuff I've never heard in my life.
On top of that, this site also has ways to follow users and has a way to see albums that they enjoy. It has a top 10 board of the most popular albums on the site that day/month/year.
Then, on the Plex side, Plexamp (which I stream with) has many many ways to start "stations". "Time travel radio", Decade radio, Style (genre), Mood ("Ambitious radio", "Cerebral radio", "Passionate radio", etc.) and more such as algo-DJs with specific styles.
It's all much higher quality mechanisms for discovery than payola-weighted streaming algorithms and "curated" playlists.
The successor to oink was what.cd (most would say), and this site is the successor to what.cd -- it starts with the letters 'Red' and is a synonym for 'erased'.
I love everything about this thread. I can't help but think about the context and what big part it plays here - imagine someone reads this in 1,000 years, they would have to know so many things on so many levels to understand it the way I did.
Roon (proprietary) has great music discovery features like this. They curate a structured database of all the people related to each act, recording, etc. every artist has an info page with lots of links, so you can trace collaborators across projects. They use the same data to power a really good radio and album recommendation features.
+1 to Amperfy, I use it with the Music app on my Nextcloud. The App Store version is a bit barebones last I checked but the Testflight version feels like a completely different app, it’s just like Apple Music but self-hosted. Kind of like Apollo felt like an app Apple would make.
I'm hyped about Amperfy but it doesn't have gapless playback which is a hard must for me. Last time I checked, anyway. Looks like it's been committed recently though: https://github.com/BLeeEZ/amperfy/issues/96
Also it seems transcoding is mp3 only, whereas play:Sub can use (and seems to default to using) OPUS which is better in every conceivable way.
Edit: Trying gapless with the TestFlight - seems to work, however, it doesn't change the displayed track.
While there’s a lot of piracy, there’s also a lot of people buying music. Not everyone runs the *arr stuff, I buy several albums every month on bandcamp.
I think that's still pretty modern. My stream setup uses liquidsoap to generate HLS files which are served as a livestream directly from Tigris/S3. But a lot of users of liquidsoap still use the icecast output I think.
I'd love to find something that works effectively at randomly streaming my music video collection, esp out as an rtsp stream. Kodi's music video support has a tendency to choke and has some weird deficiencies in how it handles them, such as audio leveling.
I've started using Navidrome with Symfonium a few months ago. Navidrome is pretty good, but I'm very impressed with Symfonium. It's simple, responsive, and straightforward, but it's got a ton of options so you can fine-tune the client quite a bit.
I have had Jellyfin running as a media server on an i7 gen4 PC that I have setup as a NAS as well. I first tried subsonic client and Nextcloud but I was only running it on an Odroid H2. I think the extra CPU performance helps.
Thanks for a tip to try out Symfonium. Seems to work great with Plex and Navidrome. I have a few issues with Plex for music, especially when it wants to convert DSF files into flac, which is fine but unnecessary. Plexamp on Android also sometimes fails to download full albums for offline playback.
Jellyfin I've tried a few times, but it still cannot encode and stream music as opus, which I find the best format when using low bitrates. Navidrome and Plex support opus by default.
I guess this is the time I ask the question I ask whenever a new self-hosted media streaming server gets posted...does anybody know of any similar server for demoscene tracker files and/or retroconsole music format (bit tunes) hosting, transcoding and serving the stream?
chip-player-js [1][2] has more or less exactly what I'm looking for, and I'd be perfectly happy with it, but I can't seem to get any of the docker containers I find to build properly or the repo to build due to dependency issues (probably ignorance on my part) [3][4].
I run multiple minidlna instances in Podman and let BubbleUPNP connect to them through Wireguard. Getting the multicast discovery to work was a bit challenging.
This is by far the nicest solution out there. All the others, plex, etc are resource hogs that want to transcode everything, unlike minidlna, which can run on a router, if needed, without docker, or all that jazz.
People might not like it because bubbleupnp is not open source, but it's a very nice piece of software nonetheless.
People who use this or something similar (Jellyfin, Navidrome, etc.), what do you use to easily add new music?
Ideally I'd like to automate this to the point where I can look up an album and it gets downloaded automatically, similar to how Overseerr[1] works for movies and series but without the dependency on Plex.
You have Lidarr[1] as an equivalent to Sonarr/Radarr etc. and there is a pending PR[2] for adding Lidarr support to Overseerr which also has a custom docker image to try.
I use Funkwhale, which exposes a nice web UI for uploading new music. Saves me the hassle of manually adding music files to a server, and it also allows for a multi-user setup where users can keep some music to themselves.
I didn’t see synology or qnap mentioned here. They are probably the easiest way to self host and stream the músic, even if they are simpler, but for me worked well.
310 comments
[ 3.3 ms ] story [ 76.9 ms ] threadIt's been working pretty well, but I might have to give this a try to compare. Although, it's not clear from the GitHub README or the Apple App Store listing if the mobile app allows you to download music for offline listening.
https://github.com/jmshrv/finamp
Nextcloud's WebDAV has issues with filenames or at least how it works. A large amount of files in non-'standard' characters wouldn't show up, so Ampache/Subsonic wouldn't work. This is why I tried Jellyfin.
I think you were talking about Blackcandy in the second paragraph, but just to be clear, Plexamp does allow downloading for offline listening.
I point DNS records on my personal domain to tailscale IPs so it some subdomains can only be accessed when connected to tailscale, I can do app.mydomain.com etc without exposing anything online.
Video can be a bit harder if you have to transcode.
If you could ssh/sftp mount from android or iOS easily, your favorite smartphone audio player would just play those files from a remount mount without any need of a streaming server.
This project looks cool, albeit simple at this point, but what I'd really love is a solution for music discovery for folks who self host their collection.
Is there something that sets this project apart from other easily self hostable tools?
I'd like a service where I can upload a large folder of MP3s, and it would help organize them into albums, perform useful processing like ReplayGain normalization, BPM and key analysis, etc. It should also have a good playlist manager and player for desktop and mobile.
Some existing services allow you to add your own music files, like MP3s, but this often feels like a second-class citizen. Services like SoundCloud are focused more on social interactions, which I don’t really need.
Have I missed any services like this?
There's some growing dissatisfaction around algorithm-driven music services like Spotify. Also, these services carry the risk of music disappearing for various reasons. I think a service allowing curation of own MP3 collections could appeal a significant fraction of all music lovers out there.
--
1: https://vox.rocks/
Why do you think a Plex competitor would not be sustainable?
Just the right balance of simplicity and features for me.
> Navidrome does not support browsing by folders, but simulates it based on the tags with a structure like: /AlbumArtist/Album/01-Song.ext
I don't think I have seen this tag simulation when I tried it around 2 years ago. But in any case, is this good enough? And does it recognize artists and songs from MusicBrainz like Jelly does flowlessly?
All my players allow browsing by either Album Artist, Artist or Album. My folder layout follows this principle, so I'm happy with that.
But I can imagine layouts which don't adhere to this (classical music comes to mind), in which case I can see how not being able to get to the folders can be annoying.
I am more proficient with folders and have the number of tools to do so. Any GUI that streaming servers present is very unusable for me, I use it only for major happy case. Anything more advanced, I drop to the file system.
Discogs is a bit better in that, but its proprietary, so no.
For stuff not on mb I use fb2k as it has a fairly decent tagger and move it to the local external drive, which is synced to the server.
At home I usually just use fb2k to play to my sound system via an interface, and on the go I use play:Sub connected to the navidrome instance transcoded to 160k OPUS (initially over tailscale but now via portforward/cloudflare and soon cloudflare tunnel)
Beets is too much work. I don't always have shell around nor I want to remote for this. This thing I use works on whatever machine I am currently.
I use jelly for convenience to connect to my media server when I am not at home. At home, I always use foobar2k which simply rocks for precise search and randomly generated lists (I even use SQL for this, via plugin). Its playing capabilities are far from any jelly like streaming server. Jelly is very bad at non-typical case, you can't even share a link to the current playlist and if left alone, after a day or two I have to reload jelly home page and go from there again, as anything that was left in the browser for a couple of days stops working until I reload from home.
If I can't pick what to listen to I quite like radiooooo, Radio Paradise, Radio Meuh, etc.
Syncthing for photos is awesome. When I cut-paste on my desktop they are removed from my phone too.
If you're interested in something more automated than having to use a program to tag your media, then I'm not sure what a good option is. Most people that don't use streaming services and have a digital music collection are tech-savy and don't mind going through the extra effort of tagging the media.
ID3v2.3 or IDv2.4? Can you even do that to FLAC? And where do you get that metadata, using what tools?
I just don't want to be the guy who has to re-rip three thousand CDs because he did his workflow in a lazy or careless manner.
The idea here is that if you use something like MusicBrainz, you can actually retag all of your files in bulk if necessary because MusicBrainz Picard knows exactly what release each file belongs to. You can then configure MusicBrainz Picard to tag your files to your liking. It's a really great piece of software.
If you are tagging files manually, I think an ISRC tag is the bare minimum because it can allowed automations like MusicBrainz Picard to easily identify what each file is.
As for what version of ID3 or ID2, I'm not sure. It might depend on the software you use to play the audio files. The reason I personally use MusicBrainz Picard is because its MusicBrainz specific metadata is read directly by Plex, so even if the other metadata on the file is bad for some reason, Plex will match the MusicBrainz tagging with the correct release. I mean, Plex uses MusicBrainz internally for its metadata, so it's a safe bet for my purposes.
I rip my CDs to Ogg Vorbis, so the ID3 question is moot. Yes, FLAC supports plenty of metadata. I use beets[1] for tagging, which uses MusicBrainz as the source of truth.
> exactly what metadata do you want outside of artist, song title, album title?
Album Artist, and sort-orders for albums/artists what I like the most (but not all players use those), then yes album covers are useful. I don't really care about subgeneres, but there is a plugin for beets that will fetch those from last.fm
1: https://beets.io/
The browser client only does 128 kbps streaming but their mobile client can set the streaming quality (I have it at 256, max is 320) and I'm working on my own PWA client using their API that I've also set to 256, which would work on both mobile and desktop.
You can also set the browser client to stream the original file directly but browsers don't play most of my formats like ALAC so it just doesn't play anything then.
[0] https://ibroadcast.com/
From the "outside" this looks like such a strange product. The landing page is very obscure and, together with the name of the service, I would automatically think this is a super old school product (being generous) or some sort of weird scam (being overly critical). There are no docs or pictures or any further description of what the product looks like, I guess the authors expect people to sign up to see (it is free! :-).
Other than that, I wonder how they address their costs [0]. It seems free accounts have unlimited uploads. Anyway, I guess I'll have to give this a try to learn more about it.
EDIT: I found some pics by clicking in their facebook page, which in turn links to a news page [1] (...).
EDIT: This product is fascinating. Seems like they've been around for 12 years, have a bunch of loyal users, and support their product (?) via reddit (at minimal approve of the reddit channel since they link to it themselves!). I wish we could know more about the team behind it. Related: [2].
--
0: https://www.ibroadcast.com/premium/
1: https://ibroadcast.com/news/
2: https://www.reddit.com/r/ibroadcast/comments/1d1iaht/is_ibro...
I'd love to self host but have a toddler and not much time, so astiga is a great "take my money and do it for me" kind of service!
[0] https://asti.ga
1. Self-hosted web server with local file system access to your media.
2. One HTML page that I will generate for you. This page will contain a media player and a play list of your media files.
With this approach the solution is ridiculously simple, but you are at the mercy of the client device web browser for media codec/container support. For audio this is not so restricting but for video this is really restricting.
The application that generates that one HTML page for you is this: https://github.com/prettydiff/mp3-master-list
It is a Node.js application and you will need to run npm install in the application directory before the other commands will work.
Enjoy!
They won’t actually play media for you because I don’t include media files in the repo but you can get a very real sense of a long playlist and the usability of the media player controls and full playlist interaction.
Maybe I will work on better documentation in the future but I only wrote this to play files on my phone around the house.
Then just run navidrome using docker-compose or microk8s
Fwiw I ended up using Navidrome m as a server, beets to manage metadata, and play:sub on mobile.
Price in one has no bearing on price in the other.
Music playback via a PC isn’t really what Roon seems to be going for though, so much as allowing you to control music playback through proper audio systems via a PC or other device.
Self-hosting has been fun and I've started experimenting with local LLMs to build playlists which is helping discoverability.. or more /rediscovering/ artists that I haven't listened to in a while
[1] https://github.com/sentriz/gonic/ [2] https://github.com/dweymouth/supersonic [3] https://github.com/BLeeEZ/amperfy
[1] https://discogs-data-dumps.s3.us-west-2.amazonaws.com/index....
On my desk, I used to have a satellite instance of MPD for my desktop setup, but I copied over my library to an external drive and use that as my main instance (rsync to the server when I update it). I rarely play from my laptop (I control the others instead). but could use either the satellite config, a subsonic client, or a quick sshfs mount.
And for offline sessions, I have a DAP with a 512GB card and most of my collection.
My stack [2] is: navidrome (music - subsonic server) substreamer (app) beets (music organization) EAC (audio cd ripping) audiobookshelf (audiobooks)
Most important part of navidrome are smart playlists[3], with these I didn't need AI support just yet...
1: https://www.navidrome.org/
2: https://news.ycombinator.com/item?id=40470630
3: https://github.com/navidrome/navidrome/issues/1417
I think it’s important that these servers use a common API (subsonic), but it seems like the slickest apps are always targeted to one specific backend (plexamp, finamp, prism music).
I don't remember why I settled on Navidrome instead of the others, but I basically just told it "here's my music, now go play me something" and it all just worked. As far as I'm concerned, it doesn't manage organization at all.
Is that recent? When I was looking to replace libresonic I looked at Navidrome and it couldn't do that, and the developer indicated they didnt have plans to add that feature.
I also settled on Gonic. Mostly for this reason.
If that's the case, indeed, it doesn't seem to support that.
I thought you were talking about the actual on-disk organization, like iTunes would import and rearrange the files to its standard.
Thanks for the clarification.
From what I know lms has more artist relationships (composers, conductors, etc.), but it lacks last.fm integration and jukebox mode.
I also use Lidarr for PVR needs
While I get the point, this is not an issue for my use case.
What I would love to see though is a "sync playlist to path" button in the web interface where it keeps the original folder structure. With this i could create partial lib dumps for my car usb stick or my family members. Maybe i submit an issue for this.
Also, these self hosted music services mean — no new music reco/discover, right? Not necessarily a bad thing. I was curious. Never done this.
How is the cost/spec need of this self hosting like? Does it have to be stand alone or it can live with other things like maybe an archiving/bookmarking service and small self hosted utilities like that (of course not all being used at once).
As for my music, although I own a physical copy of most of it that I bought legally, I downloaded almost everything through bittorrent as is easier than ripping CDs.
A sizable part of my collection consists of things I was unable to buy because it's unavailable here or unavailable at all, though. Some albums I received from friends. I don't feel guilty about it, to be clear.
The only thing that takes a bit more of CPU is if you have a huge music collection (I have about 2.5 TB), and you do the first metadata and album art scan over the collection. Otherwise you can run these systems with a potato.
Now, I would love to see a YouTube video where someone tries to power a portable music player from a battery. Could a PiZero be done?
[1] https://wiki.debian.org/DebianPotato
Can it "stream" previews and then offer full-size downloads? (I'm looking for something that can offer previews + downloads so I can quickly find photos from my home archive when I'm out with my laptop or phone)
They always try to mash up things I've heard before, which is disappointing because I can often go to "similar artists" in Spotify and after drilling down a couple of levels, find new artists.
But Spotify will never suggest it until I listen to a song at least once and even then it will only recommended that one song.
I still do most of my discovery by looking at other bands on a related label, internet radio or, as mentioned, finding a band I like and browsing the similar artists.
The drawbacks to these is that they require time to go through them. AFAIK, the "automatically continue playing" feature doesn't pick from the recommended section, and it's hit and mostly miss. Furthermore, to use that section, you already need to have a manually created playlist.
The main drawback of the "discover weekly" approach is that it's strongly biased towards your recent activity, which in my case is random background music of the lofi type. I don't particularly care about this music as long as it's not distracting, so I don't care to discover anything, the randomly changing playlists by Spotify are enough. I would much rather these were excluded, so Discover Weekly would only consider what I listen to "intentionally". There's an "exclude from your taste profile" entry when right-clicking on a playlist. Never used this, don't know how it behaves.
However, all in all, I've discovered many songs and artists I hadn't known before, and many of those have become staples. So I can say that I'm pleased with at least some of Spotify's discovery mechanisms.
Nearly the same for me, the algorithm has introduced me to a new artist once, ever (and that was the old Google Play service which is no longer available).
Most of the time it creates playlists which are as someone described 'radio curated by the worst version of myself'.
My music discovery is via genre specific radio, a few review magazines, and exploring similar artists via reddit or allmusic.
I've heard rumors this kind of services still exist, but we never know if it's just an urban legend.
I've found some decent stuff due to streaming services and algorithms but it's just so lazy and convenient.
As for purchasing, many artists give away their works (e.g. "name your price") or don't deserve payment but should be archived and studied anyway (e.g. nazis, billionaires and so on). It's probably not that hard to build a Bandcamp crawler that fetches name-your-price-albums from specific genre tags.
For a few clients and simple browsing you can run an audio cast off a router or cheap SoC.
Spec-wise, start cheap and upgrade the CPU/RAM when you hit limits. It's not like you'll use all those services at the same time. My home containers all run on a recently purchased HP Mini G2 that I upgraded from a 6100 to a 8-core 6700 and the RAM is an odd 24GB. It even has a rarely used minecraft server. Docker containers are bundled into proxmox instances per user or whatever makes the most sense.
The worst thing you could do to me is tell me that I pay $5 a month and the rest of my musical journey is solved and gets decided by a corporate algorithm that pays emerging musicians and niche artists a starving wage.
Digital crate digging is one of my hobbies!
Please don't be so quick to assume all music is pirated by those with large audio collections.
Sure they can do. Mine gets suggestions from lastfm.
> How is the cost/spec need of this self hosting like?
Mine is a raspberrypi4 on my local network, probably less than 20€ of electricity per year. Hosts other things...
I self-host my music streaming with Plex, and I'll go ahead and admit to you that no -- not all of my music is paid for.
>Also, these self hosted music services mean — no new music reco/discover, right?
I've discovered more music, and more interesting music, through my Plex server in 6 months than I have on Spotify/Apple music in 6+ years. On the site where I get my music, I have downloaded thousands of albums - 75+% of which I have never heard in my life. I did this by downloading albums I liked, and then snatching all related albums on top, and then snatching all the albums collected by people who like the albums I like, and so on. And so I now have a collection of music all relatively close to my taste but FULL of stuff I've never heard in my life.
On top of that, this site also has ways to follow users and has a way to see albums that they enjoy. It has a top 10 board of the most popular albums on the site that day/month/year.
Then, on the Plex side, Plexamp (which I stream with) has many many ways to start "stations". "Time travel radio", Decade radio, Style (genre), Mood ("Ambitious radio", "Cerebral radio", "Passionate radio", etc.) and more such as algo-DJs with specific styles.
It's all much higher quality mechanisms for discovery than payola-weighted streaming algorithms and "curated" playlists.
https://roon.app/en/music/data
Also it seems transcoding is mp3 only, whereas play:Sub can use (and seems to default to using) OPUS which is better in every conceivable way.
Edit: Trying gapless with the TestFlight - seems to work, however, it doesn't change the displayed track.
On Android I've been using Symfonium which is fantastic. https://play.google.com/store/apps/details?id=app.symfonik.m...
If I stream a song from spotify the interpret maybe earns something depending if he is big.
=> The interpret don't loss anything, only the labels does nowadays.
Music streaming is piracy for most indie interprets.
Anyone doing something similar, I'd like to migrate to something more modern.
https://github.com/badaix/snapcast
Works with Rhythmbox, at least. IDK if there is a compatible Android client.
Works well enough i haven’t bothered to set up anything else.
Wireguard is pretty great for all this stuff.
All for other options in this area as it has taken me a few goes at finding something that works for me. Usually it is the client that is lacking.
What I really like about Symfonium compared to other subsonic clients is that it keeps the db locally.
Jellyfin I've tried a few times, but it still cannot encode and stream music as opus, which I find the best format when using low bitrates. Navidrome and Plex support opus by default.
chip-player-js [1][2] has more or less exactly what I'm looking for, and I'd be perfectly happy with it, but I can't seem to get any of the docker containers I find to build properly or the repo to build due to dependency issues (probably ignorance on my part) [3][4].
1 - https://chiptune.app/ 2 - https://www.mattmontag.com/music/chip-player-js 3 - https://github.com/mmontag/chip-player-js 4 - https://github.com/soltune/chip-player-js-docker
People might not like it because bubbleupnp is not open source, but it's a very nice piece of software nonetheless.
Ideally I'd like to automate this to the point where I can look up an album and it gets downloaded automatically, similar to how Overseerr[1] works for movies and series but without the dependency on Plex.
[1] https://github.com/sct/overseerr
[1] https://github.com/Lidarr/Lidarr [2] https://github.com/sct/overseerr/pull/3800
[1] https://wiki.servarr.com/
But you could use a Nicotine++ for that task easily. It will even auto search from the wish list periodically.