I really, really like album art with my music players (along with getting lyrics, don’t forget MediaHuman’s Lyrics Finder!). I mean, I wrote
vindauga to display album art on my desktop, after all.
But fetching album art… well, it’s tricky. Vindauga tries to, but I still had a LOT of misses where it wasn’t found. And then I found Smart Automatic Cover Art Downloader (sacad).
SACAD is a multi platform command line tool to download album covers without manual intervention, ideal for integration in scripts, audio players, etc.https://github.com/desbma/sacad
It has a lot of features (some of which aren’t well documented on the webpage), and it’s a command line app, so let me break down how this will work for most people. What I’m going to outline here recursively finds album art for all music files in a directory, but only for files missing album art. As I wrote the commads below, it does not replace existing album art.
(Note: There’s a standalone executable for Windows so you can skip the installation bits.)
If you don’t already have Python >= 3.6, fix that first. Ensure that you also get pip, which probably will get installed alongside Python. I also highly recommend using pipx to create and manage virtual environments so you don’t have to, but that’s optional.
Open a terminal. Then installing sacad is as easy as:
pip install sacad or
pipx install sacad
After that has finished, determine where your music library is stored (e.g.
/home/user/music, or whatever your setup is.) From the command line, issue the following commands, one at a time:
sacad_r -f -d -i -v [MUSIC LIBRARY DIRECTORY] 600 +
sacad_r -f -d -i -v [MUSIC LIBRARY DIRECTORY] 600 cover.jpg
sacad_r -f -d -i -v [MUSIC LIBRARY DIRECTORY] 600 folder.jpg
Obviously, replace [MUSIC LIBRARY DIRECTORY] with the path to your music library.
The switches I used (and why) are:
- -f : Scan every file individually. Good, because that way I don’t get embedded album art mixed up when there’s multiple files from different albums in the same directory.
- -d : Disables “low quality” sources. Good, because I still don’t want rando images, I want the album art.
- -i : Ignore existing cover images. Good, because I don’t want it to mess with ones I’ve done by hand.
- -v : Verbose, because the program is kinda thorough, and finding covers for obscure albums takes some time.
The “600” is the image size I’m looking for, in pixels. Edit that as you like. 600 pixels seems to be an unofficial “normal” size, and relatively easy to find.
At the end of each line, we tell sacad where to put the images. Using a plus sign tells it to embed the image in the MP3 file. cover.jpg and folder.jpg are the two most common filenames that music players use if they don’t read the album art from the tag. That’s why I use all three.
It will take some time for each of these to run. Go get a drink, spend some time outside or something while it runs. Then come back to a more album-art-rich music library!
sacad has a lot more options – which you can see yourself by running
sacad -h and
sacad_r -h . The commands above, though, will be enough for most people. It’s a little intense, but it’s also something you won’t have to do very often.
You can find sacad on Github at https://github.com/desbma/sacad