The NetBSD Project

CVS log for pkgsrc/audio/py-beets/distinfo

[BACK] Up to [cvs.NetBSD.org] / pkgsrc / audio / py-beets

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Jun 12 15:42:29 2024 UTC (5 months, 3 weeks ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2024Q3-base, pkgsrc-2024Q3, pkgsrc-2024Q2-base, pkgsrc-2024Q2, HEAD
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +4 -4 lines
py-beets: updated to 2.0.0

Release v2.0.0

Major new features

The beets importer UI received a major overhaul. Several new configuration options are available for customizing layout and colors: ui_options.

New features

edit: Prefer editor from VISUAL environment variable over EDITOR.
config: Prefer editor from VISUAL environment variable over EDITOR.
listenbrainz: Add initial support for importing history and playlists from ListenBrainz
mbsubmit: add new prompt choices helping further to submit unmatched tracks to MusicBrainz faster.
spotify: We now fetch track's ISRC, EAN, and UPC identifiers from Spotify when using the spotifysync command.
discogs: supply a value for the cover_art_url attribute, for use by fetchart.
update: added `-e` flag for excluding fields from being updated.
deezer: Import rank and other attributes from Deezer during import and add a function to update the rank of existing items.
resolve transl-tracklisting relations for pseudo releases and merge data with the actual release
Fetchart: Use the right field (spotify_album_id) to obtain the Spotify album id
Prevent reimporting album if it is permanently removed from Spotify
Added option to use cover_art_url as an album art source in the fetchart plugin.
fetchart: The plugin can now get album art from spotify.
Added option to specify a URL in the embedart plugin.
list singleton:true queries have been made faster
list singleton:1 and singleton:0 can now alternatively be used in queries, same as comp
--from-logfile now parses log files using a UTF-8 encoding in beets/beets/ui/commands.py.
bareasc lookups have been made faster
list lookups using the pattern operator :: have been made faster
Added additional error handling for spotify plugin.
We now import the remixer field from Musicbrainz into the library.
mbsubmit: Added a new mbsubmit command to print track information to be submitted to MusicBrainz after initial import.
Added spotify_updated field to track when the information was last updated.
We now import and tag the album information when importing singletons using Spotify source.
spotify: The plugin now provides an additional command spotifysync that allows getting track popularity and audio features information from Spotify.
spotify: The plugin now records Spotify-specific IDs in the spotify_album_id, spotify_artist_id, and spotify_track_id fields.
Create the parental directories for database if they do not exist.
musicbrainz-config: a new musicbrainz.enabled option allows disabling the MusicBrainz metadata source during the autotagging process
kodiupdate: Now supports multiple kodi instances
Add the item fields bitrate_mode, encoder_info and encoder_settings.
Add query prefixes = and ~.
A new configuration option, duplicate_keys, lets you change which fields the beets importer uses to identify duplicates.
Add exact match <exact-match> queries, using the prefixes = and =~.
discogs: Permit appending style to genre.
discogs: Implement item_candidates for matching singletons.
discogs: Check for compliant discogs_client module.
convert: Add a new auto_keep option that automatically converts files but keeps the originals in the library.
Added a -P (or --disable-plugins) flag to specify one/multiple plugin(s) to be disabled at startup.
import-options: Add support for re-running the importer on paths in log files that were created with the -l (or --logfile) argument.
Preserve mtimes from archives
Add %sunique{} <sunique> template to disambiguate between singletons.
Add a new import.ignored_alias_types config option to allow for specific alias types to be skipped over when importing items/albums.
smartplaylist: A new --pretend option lets the user see what a new or changed smart playlist saved in the config is actually returning.
fromfilename: Add debug log messages that inform when the plugin replaced bad (missing) artist, title or tracknumber metadata.
musicbrainz-config: MusicBrainz release pages often link to related metadata sources like Discogs, Bandcamp, Spotify, Deezer and Beatport. When enabled via the musicbrainz.external_ids options, release ID's will be extracted from those URL's and imported to the library.
convert: Add support for generating m3u8 playlists together with converted media files.
Fetch the release_group_title field from MusicBrainz. 🐛 4809
discogs: Add support for applying album information on singleton imports. 🐛 4716
smartplaylist: During explicit runs of the splupdate command, the log message "Creating playlist ..."" is now displayed instead of hidden in the debug log, which states some form of progress through the UI.
subsonicupdate: Updates are now triggered whenever either the beets database is changed or a smart playlist is created/updated. 🐛 4862
importfeeds: Add a new output format allowing to save a playlist once per import session. 🐛 4863
Make ArtResizer work with PIL/pillow 10.0.0 removals.
A new configuration option, duplicate_verbose_prompt, allows changing how duplicates are presented during import. 🐛 4866
embyupdate: Add handling for private users by adding userid config option.
substitute: Add the new plugin substitute as an alternative to the rewrite plugin. The main difference between them being that rewrite modifies files' metadata and substitute does not.
Add support for artists and albumartists multi-valued tags.
autobpm: Add the autobpm plugin which uses Librosa to calculate the BPM of the audio.
fetchart: Fix the error with CoverArtArchive where the maxwidth option would not be used to download a pre-sized thumbnail for release groups, as is already done with releases.
fetchart: Fix the error with CoverArtArchive where no cover would be found when the maxwidth option matches a pre-sized thumbnail size, but no thumbnail is provided by CAA. We now fallback to the raw image.
advancedrewrite: Add an advanced version of the rewrite plugin which allows to replace fields based on a given library query.
lyrics: Add LRCLIB as a new lyrics provider and a new synced option to prefer synced lyrics over plain lyrics.
import: Expose import.quiet_fallback as CLI option.
import: Expose import.incremental_skip_later as CLI option.
smartplaylist: Expose config options as CLI options.
smartplaylist: Add new option smartplaylist.output.
smartplaylist: Add new option smartplaylist.uri_format.
Sorted the default configuration file into categories.
convert: Don't treat WAVE (.wav) files as lossy anymore when using the never_convert_lossy_files option. They will get transcoded like the other lossless formats.
Add support for barcode field.
smartplaylist: Add new config option smartplaylist.fields.

Bug fixes

lastimport: Improve error handling in the process_tracks function and enable it to be used with other plugins.
spotify: Improve handling of ConnectionError.
deezer: Improve Deezer plugin error handling and set requests timeout to 10 seconds.
spotify: Add bad gateway (502) error handling.
spotify: Add a limit of 3 retries, instead of retrying endlessly when the API is not available.
Fix a crash when the Spotify API timeouts or does not return a Retry-After interval.
scrub: Fixed the import behavior where scrubbed database tags were restored to newly imported tracks with config settings scrub.auto: yes and import.write: no.
deezer: Fixed the error where Deezer plugin would crash if non-Deezer id is passed during import.
fetchart: Fix fetching from Cover Art Archive when the maxwidth option is set to one of the supported Cover Art Archive widths.
convert: Set default max_bitrate value to None to avoid transcoding when this parameter is not set.
replaygain: Avoid a crash when errors occur in the analysis backend.
We now use Python's defaults for command-line argument encoding, which should reduce the chance for errors and "file not found" failures when invoking other command-line tools, especially on Windows.
We now respect the Spotify API's rate limiting, which avoids crashing when the API reports code 429 (too many requests).
Fix implicit paths OR queries (e.g. beet list /path/ , /other-path/) which have previously been returning the entire library.
The Discogs release ID is now populated correctly to the discogs_albumid field again (it was no longer working after Discogs changed their release URL format).
The autotagger no longer considers all matches without a MusicBrainz ID as duplicates of each other.
convert: Resize album art when embedding
deezer: Fix auto tagger pagination issues (fetch beyond the first 25 tracks of a release).
spotify: Fix auto tagger pagination issues (fetch beyond the first 50 tracks of a release).
lyrics: Fix Genius search by using query params instead of body.
unimported: The new ignore_subdirectories configuration option added in 1.6.0 now has a default value if it hasn't been set.
deezer: Tolerate missing fields when searching for singleton tracks.
replaygain: The type of the internal r128_track_gain and r128_album_gain fields was changed from integer to float to fix loss of precision due to truncation.
Fix a regression in the previous release that caused a TypeError when moving files across filesystems.
convert: Deleting the original files during conversion no longer logs output when the quiet flag is enabled.
web: Fix handling of "query" requests. Previously queries consisting of more than one token (separated by a slash) always returned an empty result.
discogs: Skip Discogs query on insufficiently tagged files (artist and album tags missing) to prevent arbitrary candidate results.
lyrics: Fixed issues with the Tekstowo.pl and Genius backends where some non-lyrics content got included in the lyrics
limit: Better header formatting to improve index
replaygain: Correctly handle the overwrite config option, which forces recomputing ReplayGain values on import even for tracks that already have the tags.
embedart: Fix a crash when using recent versions of ImageMagick and the compare_threshold option.
lyrics: Fixed issue with Genius header being included in lyrics, added test case of up-to-date Genius html
importadded: Fix a bug with recently added reflink import option that causes a crash when ImportAdded plugin enabled.
convert: Fix a bug with the wma format alias.
web: Fix get file from item.
lastgenre: Fix a duplicated entry for trip hop in the default genre list.
lyrics: Fixed issue with Tekstowo backend not actually checking if the found song matches.
embedart: Add support for ImageMagick 7.1.1-12
fromfilename: Fix failed detection of <track> <title> filename patterns.
Fix issue where deletion of flexible fields on an album doesn't cascade to items
Fix issue where beet write continuously retags the albumtypes metadata field in files. Additionally broken data could have been added to the library when the tag was read from file back into the library using beet update. It is required for all users to check if such broken data is present in the library. Following the instructions described here, a sanity check and potential fix is easily possible.
Fix updating "data_source" on re-imports and improve logging when flexible attributes are being re-imported.
fetchart: Correctly select the cover art from fanart.tv with the highest number of likes
lyrics: Fix a crash with the Google backend when processing some web pages.
Modifying flexible attributes of albums now cascade to the individual album tracks, similar to how fixed album attributes have been cascading to tracks already. A new option --noinherit/-I to modify <modify-cmd> allows changing this behaviour.
Fix bug where an interrupted import process poisons the database, causing a null path that can't be removed.
discogs: Fix bug where empty artist and title fields would return None instead of an empty list.
Fix bug regarding displaying tracks that have been changed not being displayed unless the detail configuration is enabled.
web: Fix range request support, allowing to play large audio/ opus files using e.g. a browser/firefox or gstreamer/mopidy directly.
Fix bug where zsh completion script made assumptions about the specific variant of awk installed and required specific settings for sqlite3 and caching in zsh.

Remove unused functions

Fix bug where all media types are reported as the first media type when importing with MusicBrainz as the data source
Fix bug where unimported plugin would not ignore children directories of ignored directories.

For plugin developers

beets now explicitly prevents multiple plugins to define replacement functions for the same field. When previously defining template_fields for the same field in two plugins, the last loaded plugin would silently overwrite the function defined by the other plugin. Now, beets will raise an exception when this happens.
Allow reuse of some parts of beets' testing components. This may ease the work for externally developed plugins or related software (e.g. the beets plugin for Mopidy), if they need to create an in-memory instance of a beets music library for their tests.

For packagers

As noted above, the minimum Python version is now 3.7.
We fixed a version for the dependency on the Confuse library.
The minimum required version of mediafile is now 0.9.0.

Other changes

Add sphinx and sphinx_rtd_theme as dependencies for a new docs extra
absubmit: Deprecate the absubmit plugin since AcousticBrainz has stopped accepting new submissions.
acousticbrainz: Deprecate the acousticbrainz plugin since the AcousticBrainz project has shut down.
limit: Limit query results to head or tail (lslimit command only)
fish: Add --output option.
lyrics: Remove Musixmatch from default enabled sources as they are currently blocking requests from the beets user agent.
/faq: multidisc: Elaborated the multi-disc FAQ
/faq: src: Removed some long lines.
Refactor the test cases to avoid test smells.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Tue Mar 7 20:19:17 2023 UTC (20 months, 4 weeks ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2024Q1-base, pkgsrc-2024Q1, pkgsrc-2023Q4-base, pkgsrc-2023Q4, pkgsrc-2023Q3-base, pkgsrc-2023Q3, pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +4 -4 lines
py-beets: updated to 1.6.0

1.6.0 (November 27, 2021)
-------------------------

This release is our first experiment with time-based releases! We are aiming
to publish a new release of beets every 3 months. We therefore have a healthy
but not dizzyingly long list of new features and fixes.

With this release, beets now requires Python 3.6 or later (it removes support
for Python 2.7, 3.4, and 3.5). There are also a few other dependency
changes---if you're a maintainer of a beets package for a package manager,
thank you for your ongoing efforts, and please see the list of notes below.

Major new features:

* When fetching genres from MusicBrainz, we now include genres from the
  release group (in addition to the release). We also prioritize genres based
  on the number of votes.
  Thanks to :user:`aereaux`.
* Primary and secondary release types from MusicBrainz are now stored in a new
  ``albumtypes`` field.
  Thanks to :user:`edgars-supe`.
  :bug:`2200`
* An accompanying new :doc:`/plugins/albumtypes` includes some options for
  formatting this new ``albumtypes`` field.
  Thanks to :user:`edgars-supe`.

Other new things:

* :doc:`/plugins/permissions`: The plugin now sets cover art permissions to
  match the audio file permissions.
* :doc:`/plugins/unimported`: A new configuration option supports excluding
  specific subdirectories in library.
* :doc:`/plugins/info`: Add support for an ``--album`` flag.
* :doc:`/plugins/export`: Similarly add support for an ``--album`` flag.
* ``beet move`` now highlights path differences in color (when enabled).
* When moving files and a direct rename of a file is not possible (for
  example, when crossing filesystems), beets now copies to a temporary file in
  the target folder first and then moves to the destination instead of
  directly copying the target path. This gets us closer to always updating
  files atomically.
  Thanks to :user:`catap`.
  :bug:`4060`
* :doc:`/plugins/fetchart`: Add a new option to store cover art as
  non-progressive image. This is useful for DAPs that do not support
  progressive images. Set ``deinterlace: yes`` in your configuration to enable
  this conversion.
* :doc:`/plugins/fetchart`: Add a new option to change the file format of
  cover art images. This may also be useful for DAPs that only support some
  image formats.
* Support flexible attributes in ``%aunique``.
  :bug:`2678` :bug:`3553`
* Make ``%aunique`` faster, especially when using inline fields.
  :bug:`4145`

Bug fixes:

* :doc:`/plugins/lyrics`: Fix a crash when Beautiful Soup is not installed.
  :bug:`4027`
* :doc:`/plugins/discogs`: Support a new Discogs URL format for IDs.
  :bug:`4080`
* :doc:`/plugins/discogs`: Remove built-in rate-limiting because the Discogs
  Python library we use now has its own rate-limiting.
  :bug: `4108`
* :doc:`/plugins/export`: Fix some duplicated output.
* :doc:`/plugins/aura`: Fix a potential security hole when serving image
  files.
  :bug:`4160`

For plugin developers:

* :py:meth:`beets.library.Item.destination` now accepts a `replacements`
  argument to be used in favor of the default.
* The `pluginload` event is now sent after plugin types and queries are
  available, not before.
* A new plugin event, `album_removed`, is called when an album is removed from
  the library (even when its file is not deleted from disk).

Here are some notes for packagers:

* As noted above, the minimum Python version is now 3.6.
* We fixed a flaky test, named `test_album_art` in the `test_zero.py` file,
  that some distributions had disabled. Disabling this test should no longer
  be necessary.
  :bug:`4037` :bug:`4038`
* This version of beets no longer depends on the `six`_ library.
  :bug:`4030`
* The `gmusic` plugin was removed since Google Play Music has been shut down.
  Thus, the optional dependency on `gmusicapi` does not exist anymore.
  :bug:`4089`

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Nov 25 19:41:22 2021 UTC (3 years ago) by bsiegert
Branches: MAIN
CVS tags: pkgsrc-2022Q4-base, pkgsrc-2022Q4, pkgsrc-2022Q3-base, pkgsrc-2022Q3, pkgsrc-2022Q2-base, pkgsrc-2022Q2, pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +4 -4 lines
Update py-beets to 1.5.0, PR pkg/56378.

This long overdue release of beets includes far too many exciting and useful
features than could ever be satisfactorily enumerated.
As a technical detail, it also introduces two new external libraries:
MediaFile and Confuse used to be part of beets but are now reusable
dependencies---packagers, please take note.
Finally, this is the last version of beets where we intend to support Python
2.x and 3.5; future releases will soon require Python 3.6.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Tue Oct 26 09:59:24 2021 UTC (3 years, 1 month ago) by nia
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -2 lines
audio: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes.

The following distfiles couldn't be fetched (possibly they are fetched
conditionally):

./audio/freeswitch-sounds-ru/distinfo freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.13.tar.gz
./audio/freeswitch-sounds-ru/distinfo freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.13.tar.gz
./audio/freeswitch-music/distinfo freeswitch/freeswitch-sounds-music-32000-1.0.8.tar.gz
./audio/freeswitch-music/distinfo freeswitch/freeswitch-sounds-music-48000-1.0.8.tar.gz
./audio/freeswitch-sounds-fr/distinfo freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
./audio/freeswitch-sounds-fr/distinfo freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
./audio/freeswitch-sounds-en/distinfo freeswitch/freeswitch-sounds-en-us-callie-32000-1.0.22.tar.gz
./audio/freeswitch-sounds-en/distinfo freeswitch/freeswitch-sounds-en-us-callie-48000-1.0.22.tar.gz

Revision 1.17: download - view: text, markup, annotated - select for diffs
Thu Oct 7 13:09:47 2021 UTC (3 years, 1 month ago) by nia
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +1 -2 lines
audio: Remove SHA1 hashes for distfiles

Revision 1.16: download - view: text, markup, annotated - select for diffs
Sun Dec 29 15:57:24 2019 UTC (4 years, 11 months ago) by sevan
Branches: MAIN
CVS tags: pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2, pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4, pkgsrc-2020Q3-base, pkgsrc-2020Q3, pkgsrc-2020Q2-base, pkgsrc-2020Q2, pkgsrc-2020Q1-base, pkgsrc-2020Q1
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +5 -5 lines
Update py-beets to 1.4.9

Beets 1.4.9
This small update is part of our attempt to release new versions more often! There are a few important fixes, and we're clearing the deck for a change to beets' dependencies in the next version.

The new feature is:

    You can use the NO_COLOR environment variable to disable terminal colors. #3273

There are some fixes in this release:

    Fix a regression in the last release that made the image resizer fail to detect older versions of ImageMagick. #3269
    gmusic: The oauth_file config option now supports more flexible path values, including ~ for the home directory. #3270
    gmusic: Fix a crash when using version 12.0.0 or later of the gmusicapi module. #3270
    Fix an incompatibility with Python 3.8's AST changes. #3278

Here's a note for packagers:

    pathlib is now an optional test dependency on Python 3.4+, removing the need for a Debian patch. #3275

Beets 1.4.8
This release is far too long in coming, but it's a good one. There is the usual torrent of new features and a ridiculously long line of fixes, but there are also some crucial maintenance changes. We officially support Python 3.7 and 3.8, and some performance optimizations can (anecdotally) make listing your library more than three times faster than in the previous version.

The new core features are:

    A new config-aunique configuration option allows setting default options for the aunique template function.
    The albumdisambig field no longer includes the MusicBrainz release group disambiguation comment. A new releasegroupdisambig field has been added. #3024
    The modify command now allows resetting fixed attributes. For example, beet modify -a artist:beatles artpath! resets artpath attribute from matching albums back to the default value. #2497
    A new importer option, ignore_data_tracks, lets you skip audio tracks contained in data files. #3021

There are some new plugins:

    The playlist can query the beets library using M3U playlists. Thanks to @Holzhaus and @Xenopathic. #123 #3145
    The loadext allows loading of SQLite extensions, primarily for use with the ICU SQLite extension for internationalization. #3160 #3226
    The subsonicupdate can automatically update your Subsonic library. Thanks to @maffo999. #3001

And many improvements to existing plugins:

    lastgenre: Added option -A to match individual tracks and singletons. #3220 #3219
    play: The plugin can now emit a UTF-8 BOM, fixing some issues with foobar2000 and Winamp. Thanks to @mz2212. #2944
    gmusic:
        Add a new option to automatically upload to Google Play Music library on track import. Thanks to @shuaiscott.
        Add new options for Google Play Music authentication. Thanks to @thetarkus. #3002
    replaygain: albumpeak on large collections is calculated as the average, not the maximum. #3008 #3009
    chroma:
        Now optionally has a bias toward looking up more relevant releases according to the preferred configuration options. Thanks to @Archer4499. #3017
        Fingerprint values are now properly stored as strings, which prevents strange repeated output when running beet write. Thanks to @Holzhaus. #3097 #2942
    convert: The plugin now has an id3v23 option that allows you to override the global id3v23 option. Thanks to @Holzhaus. #3104
    spotify:
        The plugin now uses OAuth for authentication to the Spotify API. Thanks to @rhlahuja. #2694 #3123
        The plugin now works as an import metadata provider: you can match tracks and albums using the Spotify database. Thanks to @rhlahuja. #3123
    ipfs: The plugin now supports a nocopy option which passes that flag to ipfs. Thanks to @wildthyme.
    discogs: The plugin now has rate limiting for the Discogs API. #3081
    mpdstats, mpdupdate: These plugins now use the MPD_PORT environment variable if no port is specified in the configuration file. #3223
    bpd:
        MPD protocol commands consume and single are now supported along with updated semantics for repeat and previous and new fields for status. The bpd server now understands and ignores some additional commands. #3200 #800
        MPD protocol command idle is now supported, allowing the MPD version to be bumped to 0.14. #3205 #800
        MPD protocol command decoders is now supported. #3222
        The plugin now uses the main beets logging system. The special-purpose --debug flag has been removed. Thanks to @arcresu. #3196
    mbsync: The plugin no longer queries MusicBrainz when either the mb_albumid or mb_trackid field is invalid. See also the discussion on Google Groups Thanks to @arogl.
    export: The plugin now also exports path field if the user explicitly specifies it with -i parameter. This only works when exporting library fields. #3084
    acousticbrainz: The plugin now declares types for all its fields, which enables easier querying and avoids a problem where very small numbers would be stored as strings. Thanks to @rain0r. #2790 #3238

Some improvements have been focused on improving beets' performance:

    Querying the library is now faster:
        We only convert fields that need to be displayed. Thanks to @pprkut. #3089
        We now compile templates once and reuse them instead of recompiling them to print out each matching object. Thanks to @SimonPersson. #3258
        Querying the library for items is now faster, for all queries that do not need to access album level properties. This was implemented by lazily fetching the album only when needed. Thanks to @SimonPersson. #3260
    absubmit, badfiles: Analysis now works in parallel (on Python 3 only). Thanks to @bemeurer. #2442 #3003
    mpdstats: Use the currentsong MPD command instead of playlist to get the current song, improving performance when the playlist is long. Thanks to @ray66. #3207 #2752

Several improvements are related to usability:

    The disambiguation string for identifying albums in the importer now shows the catalog number. Thanks to @8h2a. #2951
    Added whitespace padding to missing tracks dialog to improve readability. Thanks to @jams2. #2962
    The move command now lists the number of items already in-place. Thanks to @RollingStar. #3117
    Modify selection can now be applied early without selecting every item. #3083
    Beets now emits more useful messages during startup if SQLite returns an error. The SQLite error message is now attached to the beets message. #3005
    Fixed a confusing typo when the convert plugin copies the art covers. #3063

Many fixes have been focused on issues where beets would previously crash:

    Avoid a crash when archive extraction fails during import. #3041
    Missing album art file during an update no longer causes a fatal exception (instead, an error is logged and the missing file path is removed from the library). #3030
    When updating the database, beets no longer tries to move album art twice. #3189
    Fix an unhandled exception when pruning empty directories. #1996 #3209
    fetchart: Added network connection error handling to backends so that beets won't crash if a request fails. Thanks to @Holzhaus. #1579
    badfiles: Avoid a crash when the underlying tool emits undecodable output. #3165
    beatport: Avoid a crash when the server produces an error. #3184
    bpd: Fix crashes in the bpd server during exception handling. #3200
    bpd: Fix a crash triggered when certain clients tried to list the albums belonging to a particular artist. #3007 #3215
    replaygain: Avoid a crash when the bs1770gain tool emits malformed XML. #2983 #3247

There are many fixes related to compatibility with our dependencies including addressing changes interfaces:

    On Python 2, pin the jellyfish requirement to version 0.6.0 for compatibility.
    Fix compatibility with Python 3.7 and its change to a name in the re module. #2978
    Fix several uses of deprecated standard-library features on Python 3.7. Thanks to @arcresu. #3197
    Fix compatibility with pre-release versions of Python 3.8. #3201 #3202
    web: Fix an error when using more recent versions of Flask with CORS enabled. Thanks to @rveachkc. #2979: #2980
    Avoid some deprecation warnings with certain versions of the MusicBrainz library. Thanks to @zhelezov. #2826 #3092
    Restore iTunes Store album art source, and remove the dependency on python-itunes, which had gone unmaintained and was not Python-3-compatible. Thanks to @ocelma for creating python-itunes in the first place. Thanks to @nathdwek. #2371 #2551 #2718
    lastgenre, edit: Avoid a deprecation warnings from the PyYAML library by switching to the safe loader. Thanks to @translit and @sbraz. #3192 #3225
    Fix a problem when resizing images with PIL/pillow on Python 3. Thanks to @architek. #2504 #3029

And there are many other fixes:

    R128 normalization tags are now properly deleted from files when the values are missing. Thanks to @autrimpo. #2757
    Display the artist credit when matching albums if the artist_credit configuration option is set. #2953
    With the from_scratch configuration option set, only writable fields are cleared. Beets now no longer ignores the format your music is saved in. #2972
    The %aunique template function now works correctly with the -f/--format option. #3043
    Fixed the ordering of items when manually selecting changes while updating tags Thanks to @TaizoSimpson. #3501
    The %title template function now works correctly with apostrophes. Thanks to @GuilhermeHideki. #3033
    lastgenre: It's now possible to set the prefer_specific option without also setting canonical. #2973
    fetchart: The plugin now respects the ignore and ignore_hidden settings. #1632
    hook: Fix byte string interpolation in hook commands. #2967 #3167
    the: Log a message when something has changed, not when it hasn't. Thanks to @arcresu. #3195
    lastgenre: The force config option now actually works. #2704 #3054
    Resizing image files with ImageMagick now avoids problems on systems where there is a convert command that is not ImageMagick's by using the magick executable when it is available. Thanks to @ababyduck. #2093 #3236

There is one new thing for plugin developers to know about:

    In addition to prefix-based field queries, plugins can now define named queries that are not associated with any specific field. For example, the new playlist supports queries like playlist:name although there is no field named playlist. See extend-query for details.

And some messages for packagers:

    Note the changes to the dependencies on jellyfish and munkres.
    The optional python-itunes dependency has been removed.
    Python versions 3.7 and 3.8 are now supported.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Mon Jul 9 08:06:18 2018 UTC (6 years, 4 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3, pkgsrc-2019Q2-base, pkgsrc-2019Q2, pkgsrc-2019Q1-base, pkgsrc-2019Q1, pkgsrc-2018Q4-base, pkgsrc-2018Q4, pkgsrc-2018Q3-base, pkgsrc-2018Q3
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +5 -5 lines
py-beets: updated to 1.4.7

1.4.7:

This new release includes lots of new features in the importer and the
metadata source backends that it uses.
We've changed how the beets importer handles non-audio tracks listed in
metadata sources like MusicBrainz:

* The importer now ignores non-audio tracks (namely, data and video tracks)
  listed in MusicBrainz. Also, a new option, :ref:ignore_video_tracks, lets
  you return to the old behavior and include these video tracks.
* A new importer option, :ref:ignored_media, can let you skip certain media
  formats.

There are other subtle improvements to metadata handling in the importer:
* In the MusicBrainz backend, beets now imports the
  musicbrainz_releasetrackid field. This is a first step toward
* A new importer configuration option, :ref:artist_credit, will tell beets
  to prefer the artist credit over the artist when autotagging.

And there are even more new features:
* :doc:/plugins/replaygain: The beet replaygain command now has
  --force, --write and --nowrite options.
* A new importer configuration option, :ref:incremental_skip_later, lets you
  avoid recording skipped directories to the list of "processed" directories
  in :ref:incremental mode. This way, you can revisit them later with
  another import.
* :doc:/plugins/fetchart: The configuration options now support
  finer-grained control via the sources option. You can now specify the
  search order for different *matching strategies* within different backends.
* :doc:/plugins/web: A new cors_supports_credentials configuration
  option lets in-browser clients communicate with the server even when it is
  protected by an authorization mechanism (a proxy with HTTP authentication
  enabled, for example).
* A new :doc:/plugins/sonosupdate plugin automatically notifies Sonos
  controllers to update the music library when the beets library changes.
* :doc:/plugins/discogs: The plugin now stores master release IDs into
  mb_releasegroupid. It also "simulates" track IDs using the release ID
  and the track list position.
* :doc:/plugins/discogs: Fetch the original year from master releases.

There are lots and lots of fixes

Revision 1.14: download - view: text, markup, annotated - select for diffs
Tue Jan 30 14:10:11 2018 UTC (6 years, 10 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +5 -5 lines
py-beets: updated to 1.4.6

1.4.6:
The highlight of this release is "album merging," an oft-requested option in
the importer to add new tracks to an existing album you already have in your
library. This way, you no longer need to resort to removing the partial album
from your library, combining the files manually, and importing again.

Here are the larger new features in this release:

* When the importer finds duplicate albums, you can now merge all the
  tracks---old and new---together and try importing them as a single, combined
  album.
* :doc:/plugins/lyrics: The plugin can now produce reStructuredText files
  for beautiful, readable books of lyrics.
* A new :ref:from_scratch configuration option makes the importer remove old
  metadata before applying new metadata. This new feature complements the
  :doc:zero </plugins/zero> and :doc:scrub </plugins/scrub> plugins but is
  slightly different: beets clears out all the old tags it knows about and
  only keeps the new data it gets from the remote metadata source.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sun Jul 23 19:04:10 2017 UTC (7 years, 4 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2017Q4-base, pkgsrc-2017Q4, pkgsrc-2017Q3-base, pkgsrc-2017Q3
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +5 -5 lines
1.4.5:

Version 1.4.5 adds some oft-requested features. When you're importing files,
you can now manually set fields on the new music. Date queries have gotten
much more powerful: you can write precise queries down to the second, and we
now have *relative* queries like ``-1w``, which means *one week ago*.

Here are the new features:

* You can now set fields to certain values during :ref:`import-cmd`, using
  either a ``--set field=value`` command-line flag or a new :ref:`set_fields`
  configuration option under the `importer` section.
* :ref:`Date queries <datequery>` can now include times, so you can filter
  your music down to the second.
* :ref:`Date queries <datequery>` can also be *relative*. You can say
  ``added:-1w..`` to match music added in the last week, for example.
* A new :doc:`/plugins/gmusic` lets you interact with your Google Play Music
  library.
* :doc:`/plugins/replaygain`: We now keep R128 data in separate tags from
  classic ReplayGain data for formats that need it (namely, Ogg Opus). A new
  `r128` configuration option enables this behavior for specific formats.
* The :ref:`move-cmd` command gained a new ``--export`` flag, which copies
  files to an external location without changing their paths in the library
  database.

There are also some bug fixes:

* :doc:`/plugins/lastgenre`: Fix a crash when using the `prefer_specific` and
  `canonical` options together.
* :doc:`/plugins/web`: Fix a crash on Windows under Python 2 when serving
  non-ASCII filenames.
* :doc:`/plugins/metasync`: Fix a crash in the Amarok backend when filenames
  contain quotes.
* More informative error messages are displayed when the file format is not
  recognized.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Tue May 9 13:29:21 2017 UTC (7 years, 6 months ago) by leot
Branches: MAIN
CVS tags: pkgsrc-2017Q2-base, pkgsrc-2017Q2
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +5 -5 lines
Update audio/beets to 1.4.3

pkgsrc changes:
 - Update MASTER_SITES to MASTER_SITE_PYPI
 - Update HOMEPAGE
 - Get rid of PYTHON_VERSIONS_INCOMPATIBLE
   (beets is now compatible with Python 3 too)
 - Misc cosmetic fixes and simplifications

Changes:
1.4.3 (January 9, 2017)
-----------------------

Happy new year! This new version includes a cornucopia of new features from
contributors, including new tags related to classical music and a new
:doc:`/plugins/absubmit` for performing acoustic analysis on your music. The
:doc:`/plugins/random` has a new mode that lets you generate time-limited
music---for example, you might generate a random playlist that lasts the
perfect length for your walk to work. We also access as many Web services as
possible over secure connections now---HTTPS everywhere!

1.4.2 (December 16, 2016)
-------------------------

This is just a little bug fix release. With 1.4.2, we're also confident enough
to recommend that anyone who's interested give Python 3 a try: bugs may still
lurk, but we've deemed things safe enough for broad adoption. If you can,
please install beets with ``pip3`` instead of ``pip2`` this time and let us
know how it goes!

1.4.1 (November 25, 2016)
-------------------------

Version 1.4 has **alpha-level** Python 3 support. Thanks to the heroic efforts
of :user:`jrobeson`, beets should run both under Python 2.7, as before, and
now under Python 3.4 and above. The support is still new: it undoubtedly
contains bugs, so it may replace all your music with Limp Bizkit---but if
you're brave and you have backups, please try installing on Python 3. Let us
know how it goes.


1.3.19 (June 25, 2016)
----------------------

This is primarily a bug fix release: it cleans up a couple of regressions that
appeared in the last version. But it also features the triumphant return of the
:doc:`/plugins/beatport` and a modernized :doc:`/plugins/bpd`.

It's also the first version where beets passes all its tests on Windows! May
this herald a new age of cross-platform reliability for beets.


1.3.18 (May 31, 2016)
---------------------

This update adds a new :doc:`/plugins/hook` that lets you integrate beets with
command-line tools and an :doc:`/plugins/export` that can dump data from the
beets database as JSON. You can also automatically translate lyrics using a
machine translation service.

The ``echonest`` plugin has been removed in this version because the API it
used is `shutting down`_. You might want to try the
:doc:`/plugins/acousticbrainz` instead.

.. _shutting down: https://developer.spotify.com/news-stories/2016/03/29/api-improvements-update/


1.3.17 (February 7, 2016)
-------------------------

This release introduces one new plugin to fetch audio information from the
`AcousticBrainz`_ project and another plugin to make it easier to submit your
handcrafted metadata back to MusicBrainz.
The importer also gained two oft-requested features: a way to skip the initial
search process by specifying an ID ahead of time, and a way to *manually*
provide metadata in the middle of the import process (via the
:doc:`/plugins/edit`).

Also, as of this release, the beets project has some new Internet homes! Our
new domain name is `beets.io`_, and we have a shiny new GitHub organization:
`beetbox`_.


1.3.16 (December 28, 2015)
--------------------------

The big news in this release is a new :doc:`interactive editor plugin
</plugins/edit>`. It's really nifty: you can now change your music's metadata
by making changes in a visual text editor, which can sometimes be far more
efficient than the built-in :ref:`modify-cmd` command. No more carefully
retyping the same artist name with slight capitalization changes.

This version also adds an oft-requested "not" operator to beets' queries, so
you can exclude music from any operation. It also brings friendlier formatting
(and querying!) of song durations.


1.3.15 (October 17, 2015)
-------------------------

This release adds a new plugin for checking file quality and a new source for
lyrics. The larger features are:

* A new :doc:`/plugins/badfiles` helps you scan for corruption in your music
  collection. Thanks to :user:`fxthomas`. :bug:`1568`
* :doc:`/plugins/lyrics`: You can now fetch lyrics from Genius.com.
  Thanks to :user:`sadatay`. :bug:`1626` :bug:`1639`
* :doc:`/plugins/zero`: The plugin can now use a "whitelist" policy as an
  alternative to the (default) "blacklist" mode. Thanks to :user:`adkow`.
  :bug:`1621` :bug:`1641`


1.3.14 (August 2, 2015)
-----------------------

This is mainly a bugfix release, but we also have a nifty new plugin for
`ipfs`_ and a bunch of new configuration options.


1.3.13 (April 24, 2015)
-----------------------

This is a tiny bug-fix release. It copes with a dependency upgrade that broke
beets.


1.3.12 (April 18, 2015)
-----------------------

This little update makes queries more powerful, sorts music more
intelligently, and removes a performance bottleneck. There's an experimental
new plugin for synchronizing metadata with music players.

Packagers should also note a new dependency in this version: the `Jellyfish`_
Python library makes our text comparisons (a big part of the auto-tagging
process) go much faster.


1.3.11 (April 5, 2015)
----------------------

In this release, we refactored the logging system to be more flexible and more
useful. There are more granular levels of verbosity, the output from plugins
should be more consistent, and several kinds of logging bugs should be
impossible in the future.

There are also two new plugins: one for filtering the files you import and an
evolved plugin for using album art as directory thumbnails in file managers.
There's a new source for album art, and the importer now records the source of
match data. This is a particularly huge release---there's lots more below.

There's one big change with this release: **Python 2.6 is no longer
supported**. You'll need Python 2.7. Please trust us when we say this let us
remove a surprising number of ugly hacks throughout the code.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Tue Nov 3 01:12:46 2015 UTC (9 years, 1 month ago) by agc
Branches: MAIN
CVS tags: pkgsrc-2017Q1-base, pkgsrc-2017Q1, pkgsrc-2016Q4-base, pkgsrc-2016Q4, pkgsrc-2016Q3-base, pkgsrc-2016Q3, pkgsrc-2016Q2-base, pkgsrc-2016Q2, pkgsrc-2016Q1-base, pkgsrc-2016Q1, pkgsrc-2015Q4-base, pkgsrc-2015Q4
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +2 -1 lines
Add SHA512 digests for distfiles for audio category

Problems found with existing distfiles:
	/pub/pkgsrc/distfiles/amp-0.7.6.tgz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-music-32000-1.0.8.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-music-48000-1.0.8.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-en-us-callie-32000-1.0.22.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-en-us-callie-48000-1.0.22.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-16000-1.0.12.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.12.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.12.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-8000-1.0.12.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.13.tar.gz
	/pub/pkgsrc/distfiles/freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.13.tar.gz
	/pub/pkgsrc/distfiles/kid3-3.3.0.tar.gz
	/pub/pkgsrc/distfiles/libdca-0.0.5.tar.bz2
	/pub/pkgsrc/distfiles/mp3to.gz
	/pub/pkgsrc/distfiles/squeezeboxserver-7.5.1-noCPAN.tgz
No changes made to these file.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Tue Jan 6 19:50:43 2015 UTC (9 years, 11 months ago) by drochner
Branches: MAIN
CVS tags: pkgsrc-2015Q3-base, pkgsrc-2015Q3, pkgsrc-2015Q2-base, pkgsrc-2015Q2, pkgsrc-2015Q1-base, pkgsrc-2015Q1
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +4 -4 lines
update to 1.3.10
changes:
-The import command now has a --pretend flag that lists the files that
 will be imported
-The config command can now be used to edit the configuration even when
 it has syntax errors
-plugin additions and updates
-bugfixes
-Fix a new crash with the latest version of Mutagen (1.26)

Revision 1.9: download - view: text, markup, annotated - select for diffs
Fri Oct 17 16:04:24 2014 UTC (10 years, 1 month ago) by drochner
Branches: MAIN
CVS tags: pkgsrc-2014Q4-base, pkgsrc-2014Q4
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +4 -4 lines
update to 1.3.8
changes:
-Queries now support sorting
-user-defined fields can now have types
-plugin improvements

Revision 1.8: download - view: text, markup, annotated - select for diffs
Thu Apr 17 12:29:34 2014 UTC (10 years, 7 months ago) by wiz
Branches: MAIN
CVS tags: pkgsrc-2014Q3-base, pkgsrc-2014Q3, pkgsrc-2014Q2-base, pkgsrc-2014Q2
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +4 -4 lines
Update to 1.3.5:

1.3.5 (April 15, 2014)
----------------------

This is a short-term release that adds some great new stuff to beets. There's
support for tracking and calculating musical keys, the ReplayGain plugin was
expanded to work with more music formats via GStreamer, we can now import
directly from compressed archives, and the lyrics plugin is more robust.

One note for upgraders and packagers: this version of beets has a new
dependency in `enum34`_, which is a backport of the new `enum`_ standard
library module.

The major new features are:

* Beets can now import `zip`, `tar` and `rar` archives. Just type ``beet
  import music.zip`` to have beets transparently extract the files to import.
* :doc:`/plugins/replaygain`: Added support for calculating ReplayGain values
  with GStreamer as well the mp3gain program. This enables ReplayGain
  calculation for any audio format. Thanks to Yevgeny Bezman.
* :doc:`/plugins/lyrics`: Lyrics should now be found for more songs. Searching
  is now sensitive to featured artists and parenthesized title suffixes.
  When a song has multiple titles, lyrics from all the named songs are now
  concatenated. Thanks to Fabrice Laporte and Paul Phillips.

In particular, a full complement of features for supporting musical keys are
new in this release:

* A new `initial_key` is available in the database and files' tags. You can
  set the field manually using a command like ``beet modify
  initial_key=Am``.
* The :doc:`/plugins/echonest` sets the `initial_key` field if the data is
  available.
* A new :doc:`/plugins/keyfinder` runs a command-line tool to get the key from
  audio data and store it in the `initial_key` field.

There are also many bug fixes and little enhancements:

* :doc:`/plugins/echonest`: Truncate files larger than 50MB before uploading for
  analysis.
* :doc:`/plugins/fetchart`: Fix a crash when the server does not specify a
  content type. Thanks to Lee Reinhardt.
* :doc:`/plugins/convert`: The ``--keep-new`` flag now works correctly
  and the library includes the converted item.
* The importer now logs a message instead of crashing when errors occur while
  opening the files to be imported.
* :doc:`/plugins/embedart`: Better error messages in exceptional conditions.
* Silenced some confusing error messages when searching for a non-MusicBrainz
  ID. Using an invalid ID (of any kind---Discogs IDs can be used there too) at
  the "Enter ID:" importer prompt now just silently returns no results. More
  info is in the verbose logs.
* :doc:`/plugins/mbsync`: Fix application of album-level metadata. Due to a
  regression a few releases ago, only track-level metadata was being updated.
* On Windows, paths on network shares (UNC paths) no longer cause "invalid
  filename" errors.
* :doc:`/plugins/replaygain`: Fix crashes when attempting to log errors.
* The :ref:`modify-cmd` command can now accept query arguments that contain =
  signs. An argument is considered a query part when a : appears before any
  =s. Thanks to mook.

.. _enum34: https://pypi.python.org/pypi/enum34
.. _enum: https://docs.python.org/3.4/library/enum.html


1.3.4 (April 5, 2014)
---------------------

This release brings a hodgepodge of medium-sized conveniences to beets. A new
:ref:`config-cmd` command manages your configuration, we now have :ref:`bash
completion <completion>`, and the :ref:`modify-cmd` command can delete
attributes. There are also some significant performance optimizations to the
autotagger's matching logic.

One note for upgraders: if you use the :doc:`/plugins/fetchart`, it has a new
dependency, the `requests`_ module.

New stuff:

* Added a :ref:`config-cmd` command to manage your configuration. It can show
  you what you currently have in your config file, point you at where the file
  should be, or launch your text editor to let you modify the file. Thanks to
  geigerzaehler.
* Beets now ships with a shell command completion script! See
  :ref:`completion`. Thanks to geigerzaehler.
* The :ref:`modify-cmd` command now allows removing flexible attributes. For
  example, ``beet modify artist:beatles oldies!`` deletes the ``oldies``
  attribute from matching items. Thanks to brilnius.
* Internally, beets has laid the groundwork for supporting multi-valued
  fields. Thanks to geigerzaehler.
* The importer interface now shows the URL for MusicBrainz matches. Thanks to
  johtso.
* :doc:`/plugins/smartplaylist`: Playlists can now be generated from multiple
  queries (combined with "or" logic). Album-level queries are also now
  possible and automatic playlist regeneration can now be disabled. Thanks to
  brilnius.
* :doc:`/plugins/echonest`: Echo Nest similarity now weights the tempo in
  better proportion to other metrics. Also, options were added to specify
  custom thresholds and output formats. Thanks to Adam M.
* Added the :ref:`after_write <plugin_events>` plugin event.
* :doc:`/plugins/lastgenre`: Separator in genre lists can now be
  configured. Thanks to brilnius.
* We now only use "primary" aliases for artist names from MusicBrainz. This
  eliminates some strange naming that could occur when the `languages` config
  option was set. Thanks to Filipe Fortes.
* The performance of the autotagger's matching mechanism is vastly improved.
  This should be noticeable when matching against very large releases such as
  box sets.
* The :ref:`import-cmd` command can now accept individual files as arguments
  even in non-singleton mode. Files are imported as one-track albums.

Fixes:

* Error messages involving paths no longer escape non-ASCII characters (for
  legibility).
* Fixed a regression that made it impossible to use the :ref:`modify-cmd`
  command to add new flexible fields. Thanks to brilnius.
* :doc:`/plugins/echonest`: Avoid crashing when the audio analysis fails.
  Thanks to Pedro Silva.
* :doc:`/plugins/duplicates`: Fix checksumming command execution for files
  with quotation marks in their names. Thanks again to Pedro Silva.
* Fix a crash when importing with both of the :ref:`group_albums` and
  :ref:`incremental` options enabled. Thanks to geigerzaehler.
* Give a sensible error message when ``BEETSDIR`` points to a file. Thanks
  again to geigerzaehler.
* Fix a crash when reading WMA files whose boolean-valued fields contain
  strings. Thanks to johtso.
* :doc:`/plugins/fetchart`: The plugin now sends "beets" as the User-Agent
  when making scraping requests. This helps resolve some blocked requests. The
  plugin now also depends on the `requests`_ Python library.
* The :ref:`write-cmd` command now only shows the changes to fields that will
  actually be written to a file.
* :doc:`/plugins/duplicates`: Spurious reports are now avoided for tracks with
  missing values (e.g., no MBIDs). Thanks to Pedro Silva.
* The default :ref:`replace` sanitation options now remove leading whitespace
  by default. Thanks to brilnius.
* :doc:`/plugins/importfeeds`: Fix crash when importing albums
  containing ``/`` with the ``m3u_multi`` format.
* Avoid crashing on Mutagen bugs while writing files' tags.
* :doc:`/plugins/convert`: Display a useful error message when the FFmpeg
  executable can't be found.

.. _requests: http://www.python-requests.org/


1.3.3 (February 26, 2014)
-------------------------

Version 1.3.3 brings a bunch changes to how item and album fields work
internally. Along with laying the groundwork for some great things in the
future, this brings a number of improvements to how you interact with beets.
Here's what's new with fields in particular:

* Plugin-provided fields can now be used in queries. For example, if you use
  the :doc:`/plugins/inline` to define a field called ``era``, you can now
  filter your library based on that field by typing something like
  ``beet list era:goldenage``.
* Album-level flexible attributes and plugin-provided attributes can now be
  used in path formats (and other item-level templates).
* :ref:`Date-based queries <datequery>` are now possible. Try getting every
  track you added in February 2014 with ``beet ls added:2014-02`` or in the
  whole decade with ``added:2010..``. Thanks to Stig Inge Lea Bjørnsen.
* The :ref:`modify-cmd` command is now better at parsing and formatting
  fields. You can assign to boolean fields like ``comp``, for example, using
  either the words "true" or "false" or the numerals 1 and 0. Any
  boolean-esque value is normalized to a real boolean. The :ref:`update-cmd`
  and :ref:`write-cmd` commands also got smarter at formatting and colorizing
  changes.

For developers, the short version of the story is that Item and Album objects
provide *uniform access* across fixed, flexible, and computed attributes. You
can write ``item.foo`` to access the ``foo`` field without worrying about
where the data comes from.

Unrelated new stuff:

* The importer has a new interactive option (*G* for "Group albums"),
  command-line flag (``--group-albums``), and config option
  (:ref:`group_albums`) that lets you split apart albums that are mixed
  together in a single directory. Thanks to geigerzaehler.
* A new ``--config`` command-line option lets you specify an additional
  configuration file. This option *combines* config settings with your default
  config file. (As part of this change, the ``BEETSDIR`` environment variable
  no longer combines---it *replaces* your default config file.) Thanks again
  to geigerzaehler.
* :doc:`/plugins/ihate`: The plugin's configuration interface was overhauled.
  Its configuration is now much simpler---it uses beets queries instead of an
  ad-hoc per-field configuration. This is *backwards-incompatible*---if you
  use this plugin, you will need to update your configuration. Thanks to
  BrainDamage.

Other little fixes:

* :doc:`/plugins/echonest`: Tempo (BPM) is now always stored as an integer.
  Thanks to Heinz Wiesinger.
* Fix Python 2.6 compatibility in some logging statements in
  :doc:`/plugins/chroma` and :doc:`/plugins/lastgenre`.
* Prevent some crashes when things go really wrong when writing file metadata
  at the end of the import process.
* New plugin events: ``item_removed`` (thanks to Romuald Conty) and
  ``item_copied`` (thanks to Stig Inge Lea Bjørnsen).
* The ``pluginpath`` config option can now point to the directory containing
  plugin code. (Previously, it awkwardly needed to point at a directory
  containing a ``beetsplug`` directory, which would then contain your code.
  This is preserved as an option for backwards compatibility.) This change
  should also work around a long-standing issue when using ``pluginpath`` when
  beets is installed using pip. Many thanks to geigerzaehler.
* :doc:`/plugins/web`: The ``/item/`` and ``/album/`` API endpoints now
  produce full details about albums and items, not just lists of IDs. Thanks
  to geigerzaehler.
* Fix a potential crash when using image resizing with the
  :doc:`/plugins/fetchart` or :doc:`/plugins/embedart` without ImageMagick
  installed.
* Also, when invoking ``convert`` for image resizing fails, we now log an
  error instead of crashing.
* :doc:`/plugins/fetchart`: The ``beet fetchart`` command can now associate
  local images with albums (unless ``--force`` is provided). Thanks to
  brilnius.
* :doc:`/plugins/fetchart`: Command output is now colorized. Thanks again to
  brilnius.
* The :ref:`modify-cmd` command avoids writing files and committing to the
  database when nothing has changed. Thanks once more to brilnius.
* The importer now uses the album artist field when guessing existing
  metadata for albums (rather than just the track artist field). Thanks to
  geigerzaehler.
* :doc:`/plugins/fromfilename`: Fix a crash when a filename contained only a
  track number (e.g., ``02.mp3``).
* :doc:`/plugins/convert`: Transcoding should now work on Windows.
* :doc:`/plugins/duplicates`: The ``move`` and ``copy`` destination arguments
  are now treated as directories. Thanks to Pedro Silva.
* The :ref:`modify-cmd` command now skips confirmation and prints a message if
  no changes are necessary. Thanks to brilnius.
* :doc:`/plugins/fetchart`: When using the ``remote_priority`` config option,
  local image files are no longer completely ignored.
* :doc:`/plugins/echonest`: Fix an issue causing the plugin to appear twice in
  the output of the ``beet version`` command.
* :doc:`/plugins/lastgenre`: Fix an occasional crash when no tag weight was
  returned by Last.fm.
* :doc:`/plugins/mpdstats`: Restore the ``last_played`` field. Thanks to
  Johann Klähn.
* The :ref:`modify-cmd` command's output now clearly shows when a file has
  been deleted.
* Album art in files with Vorbis Comments is now marked with the "front cover"
  type. Thanks to Jason Lefley.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Wed Jan 15 16:17:23 2014 UTC (10 years, 10 months ago) by drochner
Branches: MAIN
CVS tags: pkgsrc-2014Q1-base, pkgsrc-2014Q1
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +4 -4 lines
update to 1.3.2
changes:
-new "echonest" and "mpdstats" plugins
-improvements to "duplicates", "lastgenre" and "lyrics" plugins
-fixes

Revision 1.6: download - view: text, markup, annotated - select for diffs
Wed Dec 4 16:58:17 2013 UTC (11 years ago) by drochner
Branches: MAIN
CVS tags: pkgsrc-2013Q4-base, pkgsrc-2013Q4
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +4 -4 lines
update to 1.3.1
changes:
-database can contain arbitrary attributes now
-Add Opus audio support
-You can now transcode files to any audio format, rather than just MP3
-can guess tags from the filenames during import
-new id3v23 config option, writed tags in old format

Revision 1.5: download - view: text, markup, annotated - select for diffs
Wed Oct 23 19:32:12 2013 UTC (11 years, 1 month ago) by drochner
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +4 -4 lines
update to 1.2.2
changes: bugfixes

(I know that 1.3.1 is out. I've given 1.2.2 some testing, so I'm
adding it as a checkpoint first.)

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Jul 22 14:20:38 2013 UTC (11 years, 4 months ago) by drochner
Branches: MAIN
CVS tags: pkgsrc-2013Q3-base, pkgsrc-2013Q3
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +4 -5 lines
update to 1.2.1
changes:
-internal refactoring to the way that we calculate and process distance
 scores in the autotagger
-Python-2.6 compatibility fixes, other minor fixes

Revision 1.3: download - view: text, markup, annotated - select for diffs
Wed Jun 12 20:29:21 2013 UTC (11 years, 5 months ago) by drochner
Branches: MAIN
CVS tags: pkgsrc-2013Q2-base, pkgsrc-2013Q2
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +5 -4 lines
update to 1.2.0
changes:
-allow additional data sources to augment the matches from MusicBrainz
-New Duplicates Plugin, Missing Plugin
-more feature additions and fixes

Revision 1.2: download - view: text, markup, annotated - select for diffs
Sat May 4 13:27:22 2013 UTC (11 years, 7 months ago) by drochner
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +4 -4 lines
update to 1.1.0
changes:
-configuration file is YAML now, many new and changed options
-new and renamed plugins
-improved support for mp3g4/aac/asf files
-many fixes and improvements

pkgsrc change: installs without python version specific prefix/suffix

Revision 1.1: download - view: text, markup, annotated - select for diffs
Thu Mar 14 13:57:55 2013 UTC (11 years, 8 months ago) by wiz
Branches: MAIN
CVS tags: pkgsrc-2013Q1-base, pkgsrc-2013Q1
Import py-beets-1.0.0 as audio/py-beets.

Beets is the best command-line tool for viewing, querying, renaming,
and updating your music collection.

The purpose of beets is to get your music collection right once
and for all. It catalogs your collection, automatically improving
its metadata as it goes using the MusicBrainz database. (It also
downloads cover art for albums it imports.) Then it provides a
bouquet of tools for manipulating and accessing your music.

Because beets is designed as a library, it can do almost anything
you can imagine for your music collection. Via plugins, beets
becomes a panacea:

  * Embed and extract album art from files' tags.
  * Listen to your library with a music player that speaks the MPD
    protocol and works with a staggering variety of interfaces.
  * Fetch lyrics for all your songs from databases on the Web.
  * Manage your MusicBrainz music collection.
  * Analyze music files' metadata from the command line.
  * Clean up crufty tags left behind by other, less-awesome tools.
  * Browse your music library graphically through a Web browser
    and play it in any browser that supports HTML5 Audio.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>