Document important facts for self-hosting musicbrainz with beets. I don't want the beets docs to be the go-to reference for hosting MusicBrainz, but the search index requirement is not explained well on the beets wiki.
Full disclosure, I haven't finished building my index yet so I'm not sure if that is actually why I can't self-host right now. But I remember doing it before to fix beets integration with my Musicbrainz server.
This is related to #2688 where a list of hard-coded non-audio formats to
ignore has been added. Some users may want to rip the audio portion of
video tracks (e.g. DVD-Video) so it would be beneficial to let them
control exactly which formats to ignore.
I added a `ignored_formats` setting for that purpose and moved the
hard-coded list into the config. Test and documentation have been
updated accordingly.
Aside: I also clarified the changelog a bit regarding this change and
the related one for #1210.
`When a match is above the *medium* recommendation threshold`
->
`When a match is below the *medium* recommendation threshold`
As discussed in issue #2410, which is fixed by this edit.
I never meant for people to copy and paste this example---it's redundant and
probably wrong---but lots of people do! Removing a few weird options makes the
example clearer, I think, and will result in less-strange initial configs for
people who do copy & paste.
This new option allows users to provide a list of external config files
which will be evaluated when beets starts.
This is useful for keeping private settings (e.g. API keys) out of the
main configuration file.
I inserted musicbrainz.searchlimit at the wrong place, breaking the
hyperlink target `match-config` - and I also forgot to add a hyperlink
target for `searchlimit`.
This is mainly for backwards compatibility. It's also an effort to reduce the
support burden; this way, I can say "your config directory is ~/.config/beets"
without needing to ascertain whether someone is on a Mac.
The new Distance object knows how to perform various types of distance
calculations (expression, equality, number, priority, string).
It will keep track of each individual penalty that has been applied so
that we can utilise that information in the UI and when making decisions
about the recommendation level.
We now display the top 3 penalties (sorted by weight) on the release
list (and "..." if there are more than 3), and we display all penalties
on the album info line and track change line.
The implementation of the `max_rec` setting has been simplified by
removing duplicate validation and instead looking at the penalties that
have been applied to a distance. As a result, we can now configure a
maximum recommendation for any penalty that might be applied.
We have a few new checks when calculating album distance:
`match: preferred: countries` and `match: preferred: media` can each be
set to a list of countries and media in order of your preference. These
are empty by default. A value that matches the first item will have no
penalty, and a value that doesn't match any item will have an unweighted
penalty of 1.0.
If `match: preferred: original_year` is set to "yes", beets will apply
an unweighted penalty of 1.0 for each year of difference between the
release year and the original year.
We now configure individual weights for `mediums` (disctotal), `label`,
`catalognum`, `country` and `albumdisambig` instead of a single generic
`minor` weight. This gives more control, but more importantly separates
and names the applied penalties so that the UI can convey exactly which
fields have contributed to the overall distance penalty.
Likewise, `missing tracks` and `unmatched tracks` are penalised and
displayed in the UI separately, instead of a combined `partial` penalty.
Display non-MusicBrainz source in the disambiguation string, and
"source" in the list of penalties if a release is penalised for being
a non-MusicBrainz.