Beets: the music geek’s media organizer
beets.io
beets.io
Beets is great and powerful but if you overlook something it's easy to mess up your library, but any serious music collector (hopefully) has backups.
Other (GUI) alternatives I've tried:
MP3TAG (free) https://www.mp3tag.de/en/ I didn't see much value over using Picard.
Bliss (paid) https://www.blisshq.com/ Really nice, but was way too slow for me.
MediaMonkey if you're on Windows https://www.mediamonkey.com/
Sometimes, in certain niches open source software dominates and really is better than the closed source paid software counterparts. Don't believe the (marketing) hype!
I've recently started using both though. Picard does the initial discovery and tagging. Beets then adds other features on top like syncing my collection to MusicBrainz, adding lyrics etc. You can find a brief description of my workflow and some tagger scripts at https://github.com/hashhar/picard-beets-config
One thing I'm worried about is file and folder organisation via renaming and moving (I've had a bad experience), so right now it's a flat structure.
Thanks for reminding, I'll file an issue against Picard and see if it's possible to add some kind of safety toggle to prevent overwriting.
EDIT: My workflow to reduce chances of file overwrites is to create a staging directory from where Picard can read files and keep the destination directory something else entirely.
So I have something like D:\Music\_TO_IMPORT where new RIPs land (or anything I want to re-import) and D:\Music\Collection which is where Picard writes it's output.
If anyone is looking for a tutorial/HOWTO for Picard, I have one here: http://www.thedreaming.org/2020/11/22/musicbrainz-picard/
The fact that Beets intro video renames the MIA album to a folder literally called "____ __ Y __" worries me as to whether its defaults have any level of sanity
I don't see why the scan rate should change with the number of files in your library - it really should be fixed.
It’s an extremely powerful organizer with scripting and extensions.
A caveat: I just learned that Version 5 was released, a major rewrite, I only checked out the beta 2ish years ago and can’t speak of the quality of this version.
Want to rename and move all your files at once? go for it. Want to extract Metadata from the file/foldernames? just do it. There are spaces in those filenames but you want them to be underscores? no problem. Remove or add leftpadded zeroes to track numbers? done.
Sadly its only available for windows.
Just to note though, Its more of a tagger than a library management tool. And that is fine, it means it's not opinionated. You can do whatever you want.
https://github.com/smabie/stag
Also have a music organizer that copies the files to various directories based on tags:
https://github.com/smabie/morg
Both the beets creator and I actually met and developed the tools about the same time on what.cd... rip.
Maybe someday I will relax my meticulousness enough to use online sources for automatic tagging... :)
[1] https://eyed3.readthedocs.io/en/latest/ [2] https://quodlibet.readthedocs.io/en/latest/guide/commands/ex...
It's very difficult to find print media nowadays and so all the liner, covers and booklets never get seen by people in the age of streaming music. Music is so depersonalised in streaming. I used to open the booklet and liner notes while putting on an album and it was a nice way to enjoy the album with some context.
And if something like this exists for managing photos...it's a complete mess with Apple's file naming conventions when you a) switch to a new phone or b) have more than one phone (i.e. family members whose photos you manage). I'm sure I've lost a few photos over the years to an errant file clobber.
You can see it here: https://github.com/michaeltoohig/BeetsPluginStructuredCommen...
This joined with a few other plugins allows for really great dynamic playlist building. Then when I'm playing music I can effortlessly choose songs to play together without necessarily even remembering what the song sounds like before starting.
For viewing stats/graphs of your library https://github.com/adamjakab/BeetsPluginDescribe
Use Essentia open-source music analysis on your files https://github.com/adamjakab/BeetsPluginXtractor
Create smart playlist from library queries https://beets.readthedocs.io/en/v1.3.17/plugins/smartplaylis...
Oh, no... The art of djing is playing the right track at the right time, if you drop a track that you don't really know, even if based on previous processing of it, you're no different than an recommendation engine...
Long live the real djs that really know their library, and play tracks consciously depending on context.
I ripped my ~1000 cd collection before I moved and downsized and between using EAC to extract the music and just mass dragging and dropping the files to Picard to fingerprint and rename to my specs was fantastic.
Has the rate limit constraint of MB changed in recent years?
pip3 install https://github.com/beetbox/beets/tarball/master requestsHere is the GitHub issue if anyone wants to help: https://github.com/beetbox/beets/issues/3625
https://beets.readthedocs.io/en/stable/plugins/inline.html
There is also a plugin that allows you to add keyword tags to files. I haven't used this one though, so I can' t really say if it will be useful to you: https://github.com/igordertigor/beets-usertag
The beets documentation lists many other useful plugins here: https://beets.readthedocs.io/en/stable/plugins/
[0]: https://github.com/captn3m0/youtube-cue There is a bash snippet in readme to show the Beets integration.
Others are right though the initial set up can be daunting though.
Is there a noticable trend that people start using their own collections again? Instead of relying on subscription services like Spotify, Pandora etc?
I don't even want GUI elements to ignore; they just cause confusion. Just sort music by track name/album name/performers, and play/pause, and that would be optimal.
Better would be something that integrates with some streaming/download service, so the user can also easily find and play music they don't already own.
If you're on Apple hardware and you just want music stuff that works, use their software. It makes the easy things incredibly easy.
For quickly tagging / getting artwork for random stuff like individual songs ripped from YouTube I use Yate’s [0] Discogs Wizard. It’s very configurable and fast to use once you set things up.
Edit: will add that Yate is actively developed and I only remember paying for my license once. I would happily pay for upgrades given its utility over the years.
1. Install a media player that supports Youtube-DL; most mpv-based players (like SMPlayer/SMTube) support this.
2. Install an "open in MPV" browser addon.
3. Just dump all your music in your Music folder and open the media player in that folder.
Now you can list tracks and sort them, and you can open a Youtube/Soundcloud/etc link to stream. No need to sign up for a service, manage a username/password, etc.
Plus, you can use an SMPlayer skin that hides everything except the controls you want.
Just click a desktop shortcut then play/pause/shuffle. If you know the controls on a boom-box or remote, all you'll have to learn is sorting.
Picard can perform tagging, cover art, filesystem organization and fingerprinting of untagged files. Beets can then add juice on top with lyrics, smart playlists, last.fm integration, deduplic ation etc.
You can find my workflow at https://github.com/hashhar/picard-beets-config (not up to date and still a wip).
According to the code, beets maintains an sqlite3 db. Searching that should be super fast.
* emphasis on albums -- most of my songs are singletons, and beets doesn't have good support for this use case
* lack of a sophisticated tagging system
* MusicBrainz is given too much priority by the autotagger, and the Discogs plugin has been somewhat neglectedd
* technical debt in the code base -- I tried to make a PR to fix some of it, but I wasn't willing to put in the extra work needed to make it Python 2 compatible
As for a tagging system: Here's a comment I made in another thread a few months ago. Curious to get some feedback on the idea here!
--
My music library has grown exponentially in the past year or so, due to boredom during covid, and I've come to the conclusion that playlists (as in, static lists of music files that you need to update manually) are functionally useless for large libraries.
What I've been looking for, but so far haven't been able to find, is a system that creates playlists from queries to my music database, based on tags I assign to individual songs. Even better if I can use a logic programming / query language like Datalog to help simplify tagging! For instance, if I have songs with the following tags:
(Song 1) japan 1971 japanese jazz funk fusion female
(Song 2) japan 2004 instrumental math-rock
(Song 3) japan 1983 japanese enka female
(Song 4) korea 1983 japanese rock male
(Song 5) brazil 1973 spanish jazz instrumental
(Song 6) mali 1979 blues rock folk tuareg
(Song 7) algeria 1974 french folk
I should be able to define logic rules that make tagging easier. Ideally, the tagging system should automatically write any deduced tags as metadata for the original files (for compatibility with other music players), with some way to keep track of which tags were added automatically vs manually, in case the deduction rules change. asia(x) :- japan(x) OR korea(x) or ...
africa(x) :- algeria(x) OR egypt(X) OR ...
latin(x) :- mexico(x) OR brazil(x) or ...
rock(x) :- math-rock(x)
etc
I should be able to create playlists from the following queries that automatically update themselves when I add new music: (playlist 1) ?- language(x,"french") AND region(x, "africa") AND (1960 < year < 1970)
(playlist 2) ?- region(x,"asia") AND genre(x,"rock")
Apologies for the inconsistent syntax, but hopefully you get the rough idea. Does anything like this exist? The built-in Rhythmbox music player for linux has decent support for saving playlists based on tags, but there's no built-in system for logic programming based on tags.