Skip to content

Releases: snejus/beetcamp

0.21.0 Drop Python 3.8, improve artist, title parsing, add optional comments truncation

14 Dec 07:23
Compare
Choose a tag to compare

0.21.0 2024-12-14

Removed

  • Remove support for Python 3.8.

Added

  • artists: split artists properly, both for tracks and albums.

  • comments: Add a new configuration option truncate_comments which handles very long
    release descriptions that may crash MPD.

Fixed

  • album:

    • Remove string free download from the album name.
  • mediums:

    • Fix incorrect mediums count.
  • title:

    • Fix formatting of titles where remix is delimited by a dash or an em-dash.
    • For some releases, handle track names where artist and title may be provided in
      reverse order.
    • Address an issue where track names containing - inside parentheses get
      wrongly split into artist and title.
    • Stop stripping dashes from the beginning of track titles.
  • year / month / day:

    • Take the timezone into account for the parsed release date.

Updated

  • album:

    • Clean up/remove artist such as Various.
    • Only remove artists and label if they are clearly separated out in the album name.
    • Detect artists that may be separated with commas in the album, but with an ampersand
      in the artist field, and vice versa.
    • Remove the original albumartist unless that's the label name.
    • Remove w/ Some Remix reliably.
  • artist:

    • Ensure that artists are properly separated when a comma is present in the field.
    • Try to keep artists in the same format as they were found on the release.
    • Extract lead artists from track titles and use them in the albumartist field.
    • Ignore instagram handles in the description.
    • Do not remove the featuring artist unless they are present in one of the track titles.
    • If there is a single albumartist in the release and it's one of the track artists,
      just use it and ignore the rest of track artists.
    • Deduplicate remix artists in the track artist field.
  • catalognum:

    • Prevent matches followed by lowercase ep, lp and va.
    • Prevent matches based on label name preceded by of.
  • comment:

    • Do not include media description if it duplicates the release description.
  • title:

    • Reformat titles such as "Title" by Artist to Artist - Title.
    • Do not move remixes to the end of the title.
    • Remove the need to parenthesize remixes and handle original titles as they are.

Some examples of the updates:

image

image

image

0.20.0 Add beets 2.0.0, drop beets<1.5 support, improve catalognum, albumtypes parsing

04 Nov 06:59
Compare
Choose a tag to compare

What's Changed

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.

image
image
image

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 remove VA.
    • Do not split album with a year range into albumartist and album.
  • 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.
  • 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.
  • 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 where track_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 as track_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 into artist and title.
    • 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

      1. Take two variations of the label name
        1. Original one
        2. Without Records, Recordings, Productions, Music endings
      2. Form prefixes from each variation
        1. The original variation
        2. With punctuation and spaces removed
        3. Its acronym when it has multiple words
      3. 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
    • 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

17 Oct 13:53
70012bc
Compare
Choose a tag to compare

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

Full Changelog: 0.19.2...0.19.3

0.19.2 Replace requests library by httpx to fix http error 403

04 Aug 18:44
Compare
Choose a tag to compare

Fixed

  • search:
    • properly escape query strings for better results with special characters
    • change HTTP client implementation to avoid Bandcamp "403 Forbidden" responses

New Contributors

Full Changelog: 0.19.1...0.19.2

0.19.1 Relax beets dependency requirement to below 2

10 May 09:12
Compare
Choose a tag to compare

[0.19.1] 2024-05-10

Fixed

  • (#58) Relax beets dependency requirement.

0.19.0 Fix parsing URLs from item comments, add -p / --page flag to cmdline

07 May 12:24
Compare
Choose a tag to compare

[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/

28 Apr 16:03
Compare
Choose a tag to compare

Removed

  • Dropped support for python 3.7.

Fixed

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:

  • catalognum:

    • allow catalogue numbers like Dystopian LP01
    • parse a range of catalogue numbers when it is present, for example TFT013SR - TFT-016SR
  • comments: use value None 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

09 Aug 09:11
Compare
Choose a tag to compare

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

20 May 11:36
Compare
Choose a tag to compare

0.17.1 2023-05-20

Fixed

  • (#44) fix an issue with bundle media formats exclusion logic which would wrongly exclude
    albums that have bundle in their names

0.17.0 Handle split EPs, normalize series punctuation

20 May 10:27
18fa4b5
Compare
Choose a tag to compare

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
  • catalognum: do not treat RD-9 (Behringer RD-9) as a catalognum

  • title:

    • Remove Presented by...
      • Title [Presented by Artist]
      • Title (Presented by Artist)
    • Remove preceding number prefix when all album tracks have it and there are two numbers
      • 01 Title, Other Title
      • 1 Title, 2 Other Title
      • 01 Title, 02 Other Title.

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: Album
      • Label - Album
    • Remove Bonus