← Back to context

Comment by emmanueloga_

1 month ago

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.

--

1: https://vox.rocks/

All you need is this:

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!

  • Not a bad idea! Maybe you could create a GH page with some public domain music for a demo.

    • 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.

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.

  • 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.

    • Hmmm... I could. Substreamer let's me mark albums and playlists as "offline access" so I have something local. That works well enough.

      Syncthing for photos is awesome. When I cut-paste on my desktop they are removed from my phone too.

  • How do you tell navidrome to serve "preorganized" flac. That is exactly my case.

    • AFAICT navidrome doesn't organize anything itself. In your config file, you just say:

          MusicFolder = "/home/vlad/music"
      

      And you're off to the races. The docs even say that this can be a read-only folder, which it is in my case.

      7 replies →

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.

[0] https://ibroadcast.com/

  • Thanks for the pointer!

    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...

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.

    • 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

      1: https://beets.io/

    • 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.

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?

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!

[0] https://asti.ga