summaryrefslogtreecommitdiff
path: root/audio/py-beets
AgeCommit message (Collapse)AuthorFilesLines
2017-07-231.4.5:adam4-9/+22
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.
2017-05-09Update audio/beets to 1.4.3leot3-23/+74
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.
2017-01-01Add python-3.6 to incompatible versions.wiz1-2/+2
2016-07-09Remove python33: adapt all packages that refer to it.wiz1-2/+2
2015-12-05Extend PYTHON_VERSIONS_INCOMPATIBLE to 35adam1-2/+2
2015-11-03Add SHA512 digests for distfiles for audio categoryagc1-1/+2
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.
2015-04-14Remove python-2.6-only package py-ordereddict and references to it.wiz1-6/+1
2015-01-06update to 1.3.10drochner3-13/+19
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)
2014-10-20Update comment - py-mutagen is 3.x ready, but this itself isn't.wiz1-3/+3
2014-10-17update to 1.3.8drochner3-7/+28
changes: -Queries now support sorting -user-defined fields can now have types -plugin improvements
2014-05-09Mark packages that are not ready for python-3.3 also not ready for 3.4,wiz1-2/+2
until proven otherwise.
2014-04-17Update to 1.3.5:wiz3-9/+28
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.
2014-01-25Mark packages as not ready for python-3.x where applicable;wiz1-2/+3
either because they themselves are not ready or because a dependency isn't. This is annotated by PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z or PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar respectively, please use the same style for other packages, and check during updates. Use versioned_dependencies.mk where applicable. Use REPLACE_PYTHON instead of handcoded alternatives, where applicable. Reorder Makefile sections into standard order, where applicable. Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default with the next commit. Whitespace cleanups and other nits corrected, where necessary.
2014-01-15update to 1.3.2drochner3-7/+13
changes: -new "echonest" and "mpdstats" plugins -improvements to "duplicates", "lastgenre" and "lyrics" plugins -fixes
2013-12-04update to 1.3.1drochner3-7/+13
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
2013-10-23update to 1.2.2drochner2-6/+6
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.)
2013-07-22update to 1.2.1drochner3-24/+6
changes: -internal refactoring to the way that we calculate and process distance scores in the autotagger -Python-2.6 compatibility fixes, other minor fixes
2013-06-12update to 1.2.0drochner4-8/+38
changes: -allow additional data sources to augment the matches from MusicBrainz -New Duplicates Plugin, Missing Plugin -more feature additions and fixes
2013-05-04update to 1.1.0drochner3-19/+33
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
2013-03-14fix for Python!=2.7, needs sqlite3drochner2-3/+4
2013-03-14Import py-beets-1.0.0 as audio/py-beets.wiz4-0/+203
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.