./audio/py-beets, Music geeks media organizer

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 1.4.9nb1, Package name: beets-1.4.9nb1, Maintainer: pkgsrc-users

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.

Required to run:
[textproc/py-yaml] [audio/py-mutagen] [devel/py-setuptools] [databases/py-sqlite3] [audio/py-last] [textproc/py-Unidecode] [math/py-munkres] [audio/py-musicbrainz-ngs] [devel/py-requests] [lang/py-six] [textproc/py-jellyfish] [lang/python37]

Required to build:

Master sites:

SHA1: b23d8549673a54e244174dc8c406671f96d3a665
RMD160: 3308edb8cf75170b346f07a37f56b036e8191110
Filesize: 1459.433 KB

Version history: (Expand)

CVS history: (Expand)

   2020-01-26 18:32:28 by Roland Illig | Files touched by this commit (981)
Log message:
all: migrate homepages from http to https

pkglint -r --network --only "migrate"

As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
   2020-01-03 09:42:32 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
py-beets: mark as incompatible with Python 2.7; add dash to binary
   2019-12-29 17:31:03 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
py-beets: sort PLIST
   2019-12-29 16:57:24 by Sevan Janiyan | Files touched by this commit (3) | Package updated
Log message:
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
        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
        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 \ 
    convert: The plugin now has an id3v23 option that allows you to override the \ 
global id3v23 option. Thanks to @Holzhaus. #3104
        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
        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. \ 
    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. \ 
    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.
   2019-04-25 09:33:32 by Maya Rashish | Files touched by this commit (620)
Log message:
PKGREVISION bump for anything using python without a PYPKGPREFIX.

This is a semi-manual PKGREVISION bump.
   2018-07-09 10:06:18 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-beets: updated to 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

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" \ 
  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
   2018-01-30 15:10:11 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-beets: updated to 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
* :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.
   2017-07-23 21:04:10 by Adam Ciarcinski | Files touched by this commit (4)
Log message:

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
* :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

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