beets-genrecanon: user-defined canonical genres without online lookups #7007
gbcox
started this conversation in
Show and tell
Replies: 1 comment 1 reply
|
Beets natively supports such canonicalization - https://beets.readthedocs.io/en/stable/plugins/lastgenre.html |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Making genre useful for playlists: beets-genrecanon
Genre metadata has become increasingly difficult to use for organizing a music
library. A large collection can contain hundreds of highly specific,
overlapping, and inconsistently applied genres. Those descriptions may be
interesting, but they are nearly useless for generating balanced playlists.
I created beets-genrecanon to solve that problem.
The plugin preserves the detailed source genre while mapping it into a broader,
user-defined canonical category:
This provides two useful levels of information:
GENREretains the original descriptive genre.GENRE_CANONprovides a stable personal category suitable for libraryorganization, beets queries, and playlist generation.
The canonical taxonomy is defined entirely by the user in
genres.yaml:The categories do not have to follow anyone else’s definition of genre. They
can be organized according to how the user actually wants to group and listen
to the library.
Why use a separate canonical genre?
Many genre plugins attempt to clean up, normalize, or replace the existing
genrefield. The problem is that genre metadata is open-ended, subjective,and increasingly granular. New labels and combinations appear continuously,
and different sources frequently describe the same music differently.
Trying to reduce that entire universe to one authoritative set of genre values
is not realistically achievable.
beets-genrecanontakes a different approach. It leaves the originalGENREuntouched and creates a separate, deliberately limited classification chosen by
the user.
The detailed genre can remain:
while the canonical category becomes:
The canonical taxonomy does not need to settle what the “correct” genre is. It
only needs to reflect how the user wants the library organized. This makes the
categories stable and practical for beets queries, playlist generation, and
other library-management tasks.
Import behavior
During
beet import, the plugin:GENRE_CANONalready matches;genres.yaml;genres.yamlonly after confirmation;GENRE_CANONtag;genre_canonflexible field;beet import --pretendwithout changing the mapping, files, ordatabase.
It does not require an online service. The initial release supports FLAC files
only.
Installation
Enable it in
config.yaml:Create the initial mapping file:
The included taxonomy is only a starting point and can be reorganized however
the user prefers.
Project: https://codeberg.org/gbcox/beets-genrecanon
PyPI: https://pypi.org/project/beets-genrecanon/
Licensed under GPL-2.0-or-later.
All reactions