Releases: snejus/beetcamp
0.20.0 Add beets 2.0.0, drop beets<1.5 support, improve catalognum, albumtypes parsing
What's Changed
- refine autotagger query by @whatphilipcodes in #68
- add: fb missing artist by @whatphilipcodes in #72
- Add beets==2 and drop beets<1.5 support, improve catalognum, albumtypes parsing by @snejus in #73
Full Changelog: 0.19.3...0.20.0
Here are some screenshots from the tests that compare the data parsed by the previous release with the current one. I conduct tests locally for every commit using approximately 5,000 different release JSON files from Bandcamp. Below, you can see the results from a selection of those tests. Old/removed values are in red, while new ones are in green.
Removed
- Drop support for
beets<1.5
.
Fixed
-
album
:- Keep remix artist in place within 'remix' parentheses, such as Album (Artist Remix).
- When a release has the same name as the album artist, do not clean/adjust it.
- Keep album artist in album when it is immediately followed by a dot.
- Do not remove EP or LP from the beginning of the album name.
- Remove
V.A
from the beginning of the album name, in the same way we removeVA
. - Do not split album with a year range into
albumartist
andalbum
.
-
cleanup:
- Remove
(... preview)
,free dl
,Name Your Price:
,just out!
,- Album
,(Selected by ...)
from album and track names. - Remove unicode HTML whitespace from incoming data.
- Remove
-
albumtype
:- Identify LP / album type from vinyl media descriptions.
- Remove some funky description parsing logic responsible for multiple ep false positives.
- Resolve either ep or lp to add to
albumtypes
, and never both. - Check for single album type (expecting a single track only) before anything else.
-
artist
: handle remix releases with a single title and its remixes. Instead of trying to determine the artist from the titles, detect such release and use the given album artist. -
catalognum
:- Fix false positives:
- Exclude very short matches like OP-1, SK-1 and BBC6.
- Exclude label name, and label name without spaces.
- Exclude matches followed by a comma. This excludes many artists from release descriptions that happen to have names that look like catalogue numbers.
- Exclude matches followed by a single quote. This used to wrongly match vinyl disc titles like LABEL 12 here:
LABEL 12'' Black Vinyl
. - Prevent album artists becoming catalogue numbers.
- Remove pattern responsible for many false positives that contain a space, like DOOM 3, ONLY 1 and NIGHT 3 etc.
- Do not any more assume that artist [DRAKEN49] is a catalogue number.
- Instead of using a pattern like
[A-Z]+-[0-9]+
(more than one capital letter — dash — more than one number), explicitly specify how many letters and numbers are expected for the most common variations, like TAR30, RM12012, HEY-101 etc.
- Fix false positives:
-
media
: ignore subscription type Bandcamp media format which returns a duplicate digital media. -
title
:- Remove track number from the beginning of the title more reliably.
- Remove label name from anywhere if it inside brackets or from the end of the title if preceded by a dash or a colon.
-
track
:artist
/title
/track_alt
: Handle edge cases wheretrack_alt
is followed by a single dash. Some instances were previously ignored.artist
/title
/track_alt
: fix several artists and titles which had pieces incorrectly identified astrack_alt
.artist
/title
: In releases where every track has the same title, check whether this title may actually be the artist name. If so, move it to the artist field.artist
/title
: use characters[|-–—]
explicitly for splitting artists and titles.artist
/title
: recover some of the original titles which contain-
and got split intoartist
andtitle
.- Return an empty tracklist for releases that have no tracks.
Added
- Auto-Tagger: Wider search analogous to cli search query as a fallback for bad or missing meta data.
- Add artist list fields support for
beets==2.0.0
.
Updated
-
album
:- When album name is wrapped in brackets, [ALBUM], keep the brackets in place.
- Uncover some release names in the description preceded by Title :.
-
albumartist
:- Remove notes about remixes, like (incl. ABC remix) and similar.
-
albumtype
:- Improve accuracy of identifying EP and LP release types from the description.
- Include remix albumtype to the release when remixed track count is one less than the track count.
- Check album names that may end with E.P. instead of EP.
-
catalognum
:-
Add support for new formats:
UVB76-023
,SOP 061-1233
,a+w lp029
,SK11X015
. -
Parse label-like catalogue numbers for singletons too.
-
When searching for a catalogue number which is prefixed by the label name
- Take two variations of the label name
- Original one
- Without Records, Recordings, Productions, Music endings
- Form prefixes from each variation
- The original variation
- With punctuation and spaces removed
- Its acronym when it has multiple words
- Lastly, if the original label has multiple words, use the first word as another possible prefix.
For example, for a label named Diffuse Reality Records, the plugin is able to
recognize the following catalogue numbers (case insensitively)- Diffuse Reality Records001
- DiffuseRealityRecords001
- DRR001
- Diffuse Reality001
- DiffuseReality001
- DR001
- Diffuse001
- Take two variations of the label name
-
Parse catalogue number from the description when the header is followed by a hash symbol, like CAT#: ABC-123.
-
Properly catch catalogue number suffix RP.
-
Relax the rule that looks for a catalogue number within brackets in the release title.
-
-
track
:- For tracks named like [Remixer] - Artist - Title move the remixer to the end: Artist - Title [Remixer].
Fix issue with `exclude_extra_fields` configuration being ignored
Updated
- CI: Use
poetry
in the build workflow. - CI: Use
pull_request_target
trigger to make sure secrets are passed to runs in forks.
Fixed
exclude_extra_fields
: A typo that prevented exclude configurations from being applied correctly
New Contributors
- @whatphilipcodes made their first contribution in #67
Full Changelog: 0.19.2...0.19.3
0.19.2 Replace requests library by httpx to fix http error 403
Fixed
search
:- properly escape query strings for better results with special characters
- change HTTP client implementation to avoid Bandcamp "403 Forbidden" responses
New Contributors
- @ThinkChaos made their first contribution in #65
Full Changelog: 0.19.1...0.19.2
0.19.1 Relax beets dependency requirement to below 2
0.19.0 Fix parsing URLs from item comments, add -p / --page flag to cmdline
[0.19.0] 2024-05-07
Fixed
- (#56) Support parsing URLs that do not end with .com in item comments when importing
music that was bought on Bandcamp.
Added
- Add a new flag to the command line application for searching Bandcamp:
[-p PAGE, --page PAGE]
to enable seeing further search results
0.18.0 Drop Python 3.7, fix genre shenanigans, parse with and w/
Removed
- Dropped support for
python 3.7
.
Fixed
- (#52) genre: do not fail parsing a release without any keywords, for example https://amniote-editions.bandcamp.com/album/ae-mj-0011-the-collective-capsule-vol-1
- (#54) Ensure that our genre matching rules also apply to genres delimited by a dash, not only space.
Updated
-
album
:- handle some edge cases when string EP or LP is followed with data relevant to the album
- do not remove artist or label when it is preceded by
x
or followed by characters'
,_
and&
, or words EP, LP and deluxe - handle apostrophes more reliably
- Do not remove VA or V/A from the beginning when followed by a word or a number
-
album
/title
:- Remove
Various -
from album and track names - Handle this album sent to us by the devil himself
- Remove
-
catalognum
:- allow catalogue numbers like Dystopian LP01
- parse a range of catalogue numbers when it is present, for example TFT013SR - TFT-016SR
-
comments
: use valueNone
when there are no comments. In contrast to returning an empty string, this way during beets import the previous comment on the track will be kept if the Bandcamp release does not have a description. -
label
: label is now correctly obtained for single releases when it is available. -
title
:- consider with and w/ as markers for collaborating artists
- remove
bonus -
-Artist - Title (bonus - something)
->Artist - Title (something)
0.17.2 Fix art fetching
Fix art fetching
Fixed
- (#50) Fix art fetching functionality which has essentially been disabled until now.
0.17.1 Do not exclude albums that have bundle in the name
0.17.0 Handle split EPs, normalize series punctuation
0.17.0 2023-05-20
Added
-
album
:-
Handling unnamed (after removal of catalognum and artist names) split EPs that
have two artists. In accordance with [title guidelines], the EP is named by separating the artists
with a slash. -
Following the [title guidelines], the standard series format now applies to
Vol/Vol., Volume, Pt too. Previously we only considered Part.- Compilation - Volume 2
- Compilation Volume 2 -> Compilation, Volume 2
- If series is in the beginning of the album, it is moved to the end
- Vol. 2 - Compilation -> Compilation, Vol 2
- We also ensure the delimiter for abbreviations, space, and removal of leading zeroes
- Vol02 -> Vol. 2
-
Replace (Remixes) -> Remixes
-
-
albumtype
: the EP albumtype is recognized for split EPs.
Updated
-
album
:- Remove + Some remix
- Album
+ Someone's Remix
- Album
- Remove + Some remix
-
catalognum
: do not treat RD-9 (Behringer RD-9) as a catalognum -
title
:- Remove Presented by...
- Title
[Presented by Artist] - Title
(Presented by Artist)
- Title
- Remove preceding number prefix when all album tracks have it and there are two numbers
- 01 Title, Other Title
- 1 Title, 2 Other Title
01Title,02Other Title.
- Remove Presented by...
Fixed
-
All zero width space characters (
\u200b
) are now removed before parsing. -
album
:- Add many cases of missing EP and LP bits when they are found in the comments
- Fix series numbering format: when it is delimited by some character, keep it.
Otherwise, separate it with a comma- Album - Part 2
- Album Part 2 -> Album, Part 2
- Tackled some edge cases where label name wrongly stayed on the album
Label:AlbumLabel -Album
- Remove Bonus
0.16.3 Better digi only artefacts removal and handling of various album parsing edge cases
0.16.3 2023-02-13
Fixed
- (#41) fix
re.error: nothing to repeat
caused by missing regex escape
Updated
-
album
- Remove ft. and alike
- Album
ft. Another Artist
- Album
- Remove non-alphanumeric chars following VA in the beginning
- VA
-Album
- VA
- Remove V/A from the beginning, same as VA
V/AAlbum
- Remove by and vs
- Album
by Albumartist - Album
by Albumartist vs Another Albumartist
- Album
- Remove Unicode quotes (“”) when they wrap the album name (same as quotes before)
“Album”
- Remove split w when it precedes the albumartist
- Album
Split W Albumartist
- Album
- Keep albumartist when it's preceded by of
- 25 years of
Albumartist-> 25 years of Albumartist
- 25 years of
- Parse album part information and place it within parentheses at the end of album name,
as per MB title guidelines- Album - Part 123 -> Album (Part 123)
- Remove ft. and alike
-
artist
:- Handle some edge cases of digital-only track title cleanup, like Unreleased
Bonus Track or Bonus Track 1. These would previously end up in the artist name - Remove digital-only artifacts from the artist name too
- Handle some edge cases of digital-only track title cleanup, like Unreleased
-
track_alt
: parse track alts like B.1