I've shown you some really cool streaming audio servers you can run in Docker in the past, and while I didn't call it out specifically, Jellyfin can also act as an audio server. I recently decided to put my music library on my Jellyfin server, and give this a try. Issue is, Jellyfin wasn't able to identify any of my music the way it was named. Not sure what mechanixm it's using, but whatever it is, it does not like my naming convention at all (not that I really use a convention).
It was at this point, that I began searching for something like MusicBrainz, but easier to use, and that would run on a remote server, and didn't require a desktop GUI. I initially searched for something with a Browser based UI, but also found nothing (or at least nothing recent that seemed like it wouls work). During my search I stumbled across several folks referencing Beets, so I figured I'd check it out.
It can be installed through pip for python, but I ran into a lot of dependency issues, and eventually just swtiched to goot ol' apt for my installation. There are some caveats, so let me go through the install and setup with you.
First and foremost, you'll need python3 installed - and more specifically python 3.6 in our case. This isn't as easy as it sounds, but let's do things in a more sensible way. First, let's install python3, and this will set the latest version of python3 as your default when you use the python command.
Next we'll install python 3.6, and we can call it specifically by using the version number when we use the python command like
Depending on your distribution and OS, installing python will be different, but I'm using Ubuntu, so it's as easy as doing the command:
sudo apt install pytho3 -y
Once that completes, you can optionally install pip3 for pythong witht eh command:
sudo apt install pip3-python -y
Now, let's get python 3.6 installed before we even get into the Beets install, as it will save you some time and frustration. For this, we'll use a ppa (again, if you're not on a Ubuntu or a derivative of Ubuntu that can use ppa's, you'll need to figure out how to install specific versions of python for your system).
sudo add-apt-repository ppa:deadsnakes/ppa
Press Enter when prompted to accept the addition of this ppa. Next do the command:
sudo apt update
and allow it to finish. NOw we just need to specifically install python3.6 with the command:
sudo apt install python3.6 -y
Now that we've got our python installations done, we can focus on installing beets. Again, if you prefer to try the pip installation, feel free. the command is
pip3 install beets.
Next you'll likely have to add your
.local/bin/ directory to your PATH, and then change the first line of the beets file in that directory to read
Save it, and then try to run the command:
beet import <path to your music directory>
You'll likely hit errors this way, and have to resolve dependencies.
My suggestion is to use the apt package for beets if you are on a Ubuntu system or sub-system. If you're on Arch, check the AUR, and if you're on FEdora type systems check rpm / dnf.
For Ubuntu, you can use
sudo apt install beets
Once it completes, you'll need to make the same python change as above, but in this case the file is in /usr/bin.
So do the command:
sudo nano /usr/bin/beets
Change the first line from
Save with CTRL + O, then Enter, and exit the file with CTRL + X.
Now use the command:
beets import <path to music directory>
In my case I did:
beets import /mnt/video/arr/data/media/music/
When Beets starts, it will scroll through your music to identify it, and re-tab it. For some songs it won't ask at all, but others it will ask you to either confirm the change it's about to make (using the highlighted letter to do so - like A for Apply), or it will ask you to choose the correct song from a list, using the number of the song it lists, and then again you'll want to use 'A' to Apply the change.
If it doesn't find a match, you can use E to start a search, and enter the artist and title, then pick from a list of provided.
Beets is a very powerful, very amazing open source tool for identify music and adding the mp3 metadata tags. Give it a shot. I think you'll like it.