Media Library Management System is a software that collects, manages, and organizes media files for you. They come in handy when you need to differentiate and store audio files in different directories on your system and allow you to manipulate and access your media files. The most common Media Libraries are VLC, Plex, and iTunes.
Beets Media Library Management System
Beets is one of the Media Library Management systems that is an open-source command-line music organizer for music geeks. It allows you to manipulate and customize the directory structure and the file names.
Features
- MDB compatible music player.
- Support Manipulation of files like renaming your music collection.
- Batch audio file transcoder to any format you want.
- Built-in Web interface to browse your music graphically.
- Has plugins that can fetch lyrics.
- Analyze music file metadata.
- Check your library for duplicate tracks and albums or for albums that are missing tracks.
This guide will show you how to install and configure Beets Media Library Management System on Ubuntu / Debian.
Install Beets on Ubuntu Linux system
Update your system packages.
sudo apt update && sudo apt upgrade -y
Option 1. Install from the APT repository
You will need Python 3.6 or later installed which Beets works with.
sudo apt install python3
Check the python version using the following command.
$ python --version
Python 3.8.10
Then install Beets with the following command.
sudo apt install beets
Option 2. Install Using Pip2 / Pip3
Install pip and python using the following command.
sudo apt install python3-dev python3-pip
sudo -H pip3 install --upgrade pip
Check the version using the following command.
$ python3 --version
Python 3.8.10
Then install Beets.
# Global system install
sudo pip3 install beets
# User space install
pip3 install beets --user
Upgrade using the following command.
sudo pip3 install -U beets
Configure Beets on Ubuntu
Edit the configuration file. It uses the YAML format, hence keep note of spaces.
nano ~/.config/beets/config.yaml
You can also open the file with the following command and edit it with your favorite text editor then save the file.
$ beet config -e
You can add the path of the directory where you would keep your music.
directory: ~/music
library: ~/data/musiclibrary.db
To move music to a directory instead of copying it, add the following line. This saves on disk space.
import:
move: yes
To disable renaming and tag-writing, add the following line.
import:
copy: no
write: no
Save the file and exit. More configurations can be found in the official configuration document.
Importing Library
To import your music library on the Beets library database in a quick method, use the following command.
beet import -A {directory}
To Import using beets auto tagger, use the following command and the directory is where your music is.
$ beet import {directory}
The auto-tagger makes sure all your songs’ tags are exactly right from the get-go.
Add Music
To add more music, use the beet import command.
$ beet import ~/some_great_album
Let’s say I was importing the ANTI album I have on my Downloads folder, I will use the following command.
$ beet import ~/Downloads/ANTI
/home/ann/Downloads/ANTI (16 items)
Tagging:
Rihanna - ANTI
URL:
https://musicbrainz.org/release/78ec85ba-04f8-4f3c-9772-99fb7ebfe74b
(Similarity: 98.7%) (label, tracks) (Digital Media, 2016, XW, Rihanna, deluxe, clean)
* Consideration (feat. SZA) -> Consideration (title)
* Work (feat. Drake) -> Work (title)
* Love On The Brain -> Love on the Brain
* Close To You -> Close to You
To add a single track from an album
$ beet import -s <path>
To list all music in the library.
$ beet ls
To list all albums
$ beet ls -a
Beyoncé - Lemonade
Nicki Minaj - Queen
Rihanna - ANTI
To remove music from your Library
$ beet rm <part of name>
To remove an album
$ beet rm -a <part of name>
Access Beets Web UI
The web interface depends on flask. Install it using the following command
$ pip install flask
Add a web plugin in the config file with the following options
plugins:web
web:
host: 0.0.0.0
port: 8337
Type the following command, which will start the web server.
$ beet web
* Serving Flask app 'beetsplug.web' (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on all addresses (0.0.0.0)
WARNING: This is a development server. Do not use it in a production deployment.
* Running on http://127.0.0.1:8337
* Running on http://192.168.200.57:8337 (Press CTRL+C to quit)
Then go to http://localhost:8337/ to access the web UI.

Removing Beets
To remove Beets and all the configuration data, use the following command.
sudo apt purge --auto-remove beets
Conclusion
From this guide, we have learned about Beets Media Library Management System. We have also seen how to install and configure Beets on ubuntu. Beets can be used as a command-line tool or via a web interface to manipulate and organize your music collection.
- Install Plex Media Server on KDE Neon/Kubuntu
- Run Linux Containers with LXC/LXD on Solus Linux
- Configure FTP Server on Ubuntu using ProFTPD
- Install and Use FFmpeg on KDE Neon / Kubuntu