Beets

Latest version: v2.2.0

Safety actively analyzes 688365 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 6

1.3.15

Not secure
This release adds a new plugin for checking file quality and a new source for lyrics. The larger features are:
- A new `badfiles` helps you scan for corruption in your music collection. Thanks to fxthomas. 1568
- `lyrics`: You can now fetch lyrics from Genius.com. Thanks to sadatay. 1626 1639
- `zero`: The plugin can now use a "whitelist" policy as an alternative to the (default) "blacklist" mode. Thanks to adkow. 1621 1641

And there are smaller new features too:
- Add new color aliases for standard terminal color names (e.g., cyan and magenta). Thanks to mathstuf. 1548
- `play`: A new `--args` option lets you specify options for the player command. 1532
- `play`: A new `raw` configuration option lets the command work with players (such as VLC) that expect music filenames as arguments, rather than in a playlist. Thanks to nathdwek. 1578
- `play`: You can now configure the number of tracks that trigger a "lots of music" warning. 1577
- `embedart`: A new `remove_art_file` option lets you clean up if you prefer _only_ embedded album art. Thanks to jackwilsdon. 1591 733
- `plexupdate`: A new `library_name` option allows you to select which Plex library to update. 1572 1595
- A new `include` option lets you import external configuration files.

This release has plenty of fixes:
- `lastgenre`: Fix a bug that prevented tag popularity from being considered. Thanks to svoos. 1559
- Fixed a bug where plugins wouldn't be notified of the deletion of an item's art, for example with the `clearart` command from the `embedart`. Thanks to nathdwek. 1565
- `fetchart`: The Google Images source is disabled by default (as it was before beets 1.3.9), as is the Wikipedia source (which was causing lots of unnecessary delays due to DBpedia downtime). To re-enable these sources, add `wikipedia google` to your `sources` configuration option.
- The `list` command's help output now has a small query and format string example. Thanks to pkess. 1582
- `fetchart`: The plugin now fetches PNGs but not GIFs. (It still fetches JPEGs.) This avoids an error when trying to embed images, since not all formats support GIFs. 1588
- Date fields are now written in the correct order (year-month-day), which eliminates an intermittent bug where the latter two fields would not get written to files. Thanks to jdetrey. 1303 1589
- `replaygain`: Avoid a crash when the PyAudioTools backend encounters an error. 1592
- The case sensitivity of path queries is more useful now: rather than just guessing based on the platform, we now check the case sensitivity of your filesystem. 1586
- Case-insensitive path queries might have returned nothing because of a wrong SQL query.
- Fix a crash when a query contains a "+" or "-" alone in a component. 1605
- Fixed unit of file size to powers of two (MiB, GiB, etc.) instead of powers of ten (MB, GB, etc.). 1623

1.3.14

Not secure
This is mainly a bugfix release, but we also have a nifty new plugin for [ipfs](http://ipfs.io) and a bunch of new configuration options.

The new features:
- A new `ipfs` plugin lets you share music via a new, global, decentralized filesystem. 1397
- `duplicates`: You can now merge duplicate track metadata (when detecting duplicate items), or duplicate album tracks (when detecting duplicate albums).
- `duplicates`: Duplicate resolution now uses an ordering to prioritize duplicates. By default, it prefers music with more complete metadata, but you can configure it to use any list of attributes.
- `metasync`: Added a new backend to fetch metadata from iTunes. This plugin is still in an experimental phase. 1450
- The `move` command has a new `--pretend` option, making the command show how the items will be moved without actually changing anything.
- The importer now supports matching of "pregap" or HTOA (hidden track-one audio) tracks when they are listed in MusicBrainz. (This feature depends on a new version of the `musicbrainzngs` library that is not yet released, but will start working when it is available.) Thanks to ruippeixotog. 1104 1493
- `plexupdate`: A new `token` configuration option lets you specify a key for Plex Home setups. Thanks to edcarroll. 1494
- `zero`: A new `update_database` configuration option nulls out fields in the database along with files' tags. 1516

Fixes:
- `fetchart`: Complain when the `enforce_ratio` or `min_width` options are enabled but no local imaging backend is available to carry them out. 1460
- `importfeeds`: Avoid generating incorrect m3u filename when both of the `m3u` and `m3u_multi` options are enabled. 1490
- `duplicates`: Avoid a crash when misconfigured. 1457
- `mpdstats`: Avoid a crash when the music played is not in the beets library. Thanks to CodyReichert. 1443
- Fix a crash with ArtResizer on Windows systems (affecting `embedart`, `fetchart`, and `thumbnails`). 1448
- `permissions`: Fix an error with non-ASCII paths. 1449
- Fix sorting by paths when the sort_case_insensitive option is enabled. 1451
- `embedart`: Avoid an error when trying to embed invalid images into MPEG-4 files.
- `fetchart`: The Wikipedia source can now better deal artists that use non-standard capitalization (e.g., alt-J, dEUS).
- `web`: Fix searching for non-ASCII queries. Thanks to
oldtopman. 1470
- `mpdupdate`: We now recommend the newer `python-mpd2` library instead of its unmaintained parent. Thanks to Somasis. 1472
- The importer interface and log file now output a useful list of files (instead of the word "None") when in album-grouping mode. 1475 825
- Fix some logging errors when filenames and other user-provided strings contain curly braces. 1481
- Regular expression queries over paths now work more reliably with non-ASCII characters in filenames. 1482
- Fix a bug where the autotagger's ignored setting was sometimes, well, ignored. 1487
- Fix a bug with Unicode strings when generating image thumbnails. 1485
- `keyfinder`: Fix handling of Unicode paths. 1502
- `fetchart`: When album art is already present, the message is now printed in the `text_highlight_minor` color (light gray). Thanks to
Somasis. 1512
- Some messages in the console UI now use plural nouns correctly. Thanks to
JesseWeinstein. 1521
- Sorting numerical fields (such as track) now works again. 1511
- `replaygain`: Missing GStreamer plugins now cause a helpful error message instead of a crash. 1518
- Fix an edge case when producing sanitized filenames where the maximum path length conflicted with the replace rules. Thanks to Ben Ockmore. 496 1361
- Fix an incompatibility with OS X 10.11 (where `/usr/sbin` seems not to be on the user's path by default).
- Fix an incompatibility with certain JPEG files. Here's a relevant [Python bug](http://bugs.python.org/issue16512). Thanks to nathdwek. #1545
- Fix the group_albums importer mode so that it works correctly when files are not already in order by album. 1550
- The `fields` command no longer separates built-in fields from plugin-provided ones. This distinction was becoming increasingly unreliable.
- `duplicates`: Fix a Unicode warning when paths contained non-ASCII characters. 1551
- `fetchart`: Work around a urllib3 bug that could cause a crash. 1555 1556
- When you edit the configuration file with `beet config -e` and the file does not exist, beets creates an empty file before editing it. This fixes an error on OS X, where the `open` command does not work with non-existent files. 1480

1.3.13

Not secure
This is a tiny bug-fix release. It copes with a dependency upgrade that broke beets. There are just two fixes:
- Fix compatibility with Jellyfish version 0.5.0.
- `embedart`: In `auto` mode (the import hook), the plugin now respects the `write` config option under `import`. If this is disabled, album art is no longer embedded on import in order to leave files untouched---in effect, `auto` is implicitly disabled. 1427

1.3.12

Not secure
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](https://github.com/sunlightlabs/jellyfish) Python library makes our text comparisons (a big part of the auto-tagging process) go much faster.

New features:
- Queries can now use **"or" logic**: if you use a comma to separate parts of a query, items and albums will match _either_ side of the comma. For example, `beet ls foo , bar` will get all the items matching `foo` or matching `bar`. See combiningqueries. 1423
- The autotagger's **matching algorithm is faster**. We now use the [Jellyfish](https://github.com/sunlightlabs/jellyfish) library to compute string similarity, which is better optimized than our hand-rolled edit distance implementation. #1389
- Sorting is now **case insensitive** by default. This means that artists will be sorted lexicographically regardless of case. For example, the artist alt-J will now properly sort before YACHT. (Previously, it would have ended up at the end of the list, after all the capital-letter artists.) You can turn this new behavior off using the sort_case_insensitive configuration option. See query-sort. 1429
- An experimental new `metasync` lets you get metadata from your favorite music players, starting with Amarok. 1386
- `fetchart`: There are new settings to control what constitutes "acceptable" images. The `minwidth` option constrains the minimum image width in pixels and the `enforce_ratio` option requires that images be square. 1394

Little fixes and improvements:
- `fetchart`: Remove a hard size limit when fetching from the Cover Art Archive.
- The output of the `fields` command is now sorted. Thanks to multikatt. 1402
- `replaygain`: Fix a number of issues with the new `bs1770gain` backend on Windows. Also, fix missing debug output in import mode. 1398
- Beets should now be better at guessing the appropriate output encoding on Windows. (Specifically, the console output encoding is guessed separately from the encoding for command-line arguments.) A bug was also fixed where beets would ignore the locale settings and use UTF-8 by default. 1419
- `discogs`: Better error handling when we can't communicate with Discogs on setup. 1417
- `importadded`: Fix a crash when importing singletons in-place. 1416
- `fuzzy`: Fix a regression causing a crash in the last release. 1422
- Fix a crash when the importer cannot open its log file. Thanks to barsanuphe. 1426
- Fix an error when trying to write tags for items with flexible fields called `date` and `original_date` (which are not built-in beets fields). 1404

1.3.11

Not secure
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.

Major new features and bigger changes:
- There are now **multiple levels of output verbosity**. On the command line, you can make beets somewhat verbose with `-v` or very verbose with `-vv`. For the importer especially, this makes the first verbose mode much more manageable, while still preserving an option for overwhelmingly verbose debug output. 1244
- A new `filefilter` plugin lets you write regular expressions to automatically **avoid importing** certain files. Thanks to mried. 1186
- A new `thumbnails` plugin generates cover-art **thumbnails for album folders** for Freedesktop.org-compliant file managers. (This replaces the `freedesktop`, which only worked with the Dolphin file manager.)
- `replaygain`: There is a new backend that uses the [bs1770gain](http://bs1770gain.sourceforge.net) analysis tool. Thanks to jmwatte. #1343
- A new `filesize` field on items indicates the number of bytes in the file. 1291
- A new `searchlimit` configuration option allows you to specify how many search results you wish to see when looking up releases at MusicBrainz during import. 1245
- The importer now records the data source for a match in a new flexible attribute `data_source` on items and albums. 1311
- The colors used in the terminal interface are now configurable via the new config option `colors`, nested under the option `ui`. (Also, the `color` config option has been moved from top-level to under `ui`. Beets will respect the old color setting, but will warn the user with a deprecation message.) 1238
- `fetchart`: There's a new Wikipedia image source that uses DBpedia to find albums. Thanks to Tom Jaspers. 1194
- In the `config` command, the output is now redacted by default. Sensitive information like passwords and API keys is not included. The new `--clear` option disables redaction. 1376

You should probably also know about these core changes to the way beets works:
- As mentioned above, Python 2.6 is no longer supported.
- The `tracktotal` attribute is now a _track-level field_ instead of an album-level one. This field stores the total number of tracks on the album, or if the per_disc_numbering config option is set, the total number of tracks on a particular medium (i.e., disc). The field was causing problems with that per_disc_numbering mode: different discs on the same album needed different track totals. The field can now work correctly in either mode.
- To replace `tracktotal` as an album-level field, there is a new `albumtotal` computed attribute that provides the total number of tracks on the album. (The per_disc_numbering option has no influence on this field.)
- The `list_format_album` and `list_format_item` configuration keys now affect (almost) every place where objects are printed and logged. (Previously, they only controlled the `list` command and a few other scattered pieces.) 1269
- Relatedly, the `beet` program now accept top-level options `--format-item` and `--format-album` before any subcommand to control how items and albums are displayed. 1271
- `list_format_album` and `list_format_album` have respectively been renamed format_album and format_item. The old names still work but each triggers a warning message. 1271
- Path queries are automatically triggered only if the
path targeted by the query exists. Previously, just having a slash somewhere
in the query was enough, so beet ls AC/DC` wouldn't work to refer to the artist.

There are also lots of medium-sized features in this update:
- `duplicates`: The command has a new `--strict` option that will only report duplicates if all attributes are explicitly set. 1000
- `smartplaylist`: Playlist updating should now be faster: the plugin detects, for each playlist, whether it needs to be regenerated, instead of obliviously regenerating all of them. The `splupdate` command can now also take additional parameters that indicate the names of the playlists to regenerate.
- `play`: The command shows the output of the underlying player command and lets you interact with it. 1321
- The summary shown to compare duplicate albums during import now displays the old and new filesizes. 1291
- `lastgenre`: Add _comedy_, _humor_, and _stand-up_ as well as a longer list of classical music genre tags to the built-in whitelist and canonicalization tree. 1206 1239 1240
- `web`: Add support for _cross-origin resource sharing_ for more flexible in-browser clients. Thanks to Andre Miller. 1236 1237
- plugins/mbsync: A new `-f/--format` option controls the output format when listing unrecognized items. The output is also now more helpful by default. 1246
- `fetchart`: A new option, `-n`, extracts the cover art of all matched albums into their respective directories. Another new flag, `-a`, associates the extracted files with the albums in the database. 1261
- `info`: A new option, `-i`, can display only a specified subset of properties. 1287
- The number of missing/unmatched tracks is shown during import. 1088
- `permissions`: The plugin now also adjusts the permissions of the directories. (Previously, it only affected files.) 1308 1324
- `ftintitle`: You can now configure the format that the plugin uses to add the artist to the title. Thanks to amishb. 1377

And many little fixes and improvements:
- `replaygain`: Stop applying replaygain directly to source files when using the mp3gain backend. 1316
- Path queries are case-sensitive on non-Windows OSes. 1165
- `lyrics`: Silence a warning about insecure requests in the new MusixMatch backend. 1204
- Fix a crash when `beet` is invoked without arguments. 1205 1207
- `fetchart`: Do not attempt to import directories as album art. 1177 1211
- `mpdstats`: Avoid double-counting some play events. 773 1212
- Fix a crash when the importer deals with Unicode metadata in `--pretend` mode. 1214
- `smartplaylist`: Fix `album_query` so that individual files are added to the playlist instead of directories. 1225
- Remove the `beatport` plugin. Beatport_ has shut off public access to their API and denied our request for an account. We have not heard from the company since 2013, so we are assuming access will not be restored.
- Incremental imports now (once again) show a "skipped N directories" message.
- `embedart`: Handle errors in ImageMagick's output. 1241
- `keyfinder`: Parse the underlying tool's output more robustly. 1248
- `embedart`: We now show a comprehensible error message when `beet embedart -f FILE` is given a non-existent path. 1252
- Fix a crash when a file has an unrecognized image type tag. Thanks to Matthias Kiefer. 1260
- `importfeeds` and `smartplaylist`: Automatically create parent directories for playlist files (instead of crashing when the parent directory does not exist). 1266
- The write-cmd` command no longer tries to "write" non-writable fields, such as the bitrate. 1268
- The error message when MusicBrainz is not reachable on the network is now much clearer. Thanks to Tom Jaspers. 1190 1272
- Improve error messages when parsing query strings with shlex. 1290
- `embedart`: Fix a crash that occured when used together with the _check_ plugin. 1241
- `scrub`: Log an error instead of stopping when the `beet scrub` command cannot write a file. Also, avoid problems on Windows with Unicode filenames. 1297
- `discogs`: Handle and log more kinds of communication errors. 1299 1305
- `lastgenre`: Bugs in the `pylast` library can no longer crash beets.
- `convert`: You can now configure the temporary directory for conversions. Thanks to autochthe. 1382 1383
- `rewrite`: Fix a regression that prevented the plugin's rewriting from applying to album-level fields like `$albumartist`. 1393
- `play`: The plugin now sorts items according to the configuration in album mode.
- `fetchart`: The name for extracted art files is taken from the `art_filename` configuration option. 1258
- When there's a parse error in a query (for example, when you type a malformed date in a date query), beets now stops with an error instead of silently ignoring the query component.

For developers:
- The `database_change` event now sends the item or album that is subject to a change.
- The `OptionParser` is now a `CommonOptionsParser` that offers facilities for adding usual options (`--album`, `--path` and `--format`). See add_subcommands. 1271
- The logging system in beets has been overhauled. Plugins now each have their own logger, which helps by automatically adjusting the verbosity level in import mode and by prefixing the plugin's name. Logging levels are dynamically set when a plugin is called, depending on how it is called (import stage, event or direct command). Finally, logging calls can (and should!) use modern `{}`-style string formatting lazily. See plugin-logging in the plugin API docs.
- A new `import_task_created` event lets you manipulate import tasks immediately after they are initialized. It's also possible to replace the originally created tasks by returning new ones using this event.

1.3.10

Not secure
This version adds a healthy helping of new features and fixes a critical MPEG-4--related bug. There are more lyrics sources, there new plugins for managing permissions and integrating with [Plex](https://plex.tv/), and the importer has a new `--pretend` flag that shows which music _would_ be imported.

One backwards-compatibility note: the `lyrics` now requires the requests_ library. If you use this plugin, you will need to install the library by typing `pip install requests` or the equivalent for your OS.

Also, as an advance warning, this will be one of the last releases to support Python 2.6. If you have a system that cannot run Python 2.7, please consider upgrading soon.

The new features are:
- A new `permissions` makes it easy to fix permissions on music files as they are imported. Thanks to xsteadfastx. 1098
- A new `plexupdate` lets you notify a [Plex](https://plex.tv/) server when the database changes. Thanks again to xsteadfastx. #1120
- The import-cmd` command now has a `--pretend` flag that lists the files that will be imported. Thanks to mried. 1162
- `lyrics`: Add [Musixmatch](https://www.musixmatch.com/) source and introduce a new `sources` config option that lets you choose exactly where to look for lyrics and in which order.
- `lyrics`: Add Brazilian and Spanish sources to Google custom search engine.
- Add a warning when importing a directory that contains no music. 1116 1127
- `zero`: Can now remove embedded images. 1129 1100
- The `config` command can now be used to edit the configuration even when it has syntax errors. 1123 1128
- `lyrics`: Added a new `force` config option. 1150

As usual, there are loads of little fixes and improvements:
- Fix a new crash with the latest version of Mutagen (1.26).
- `lyrics`: Avoid fetching truncated lyrics from the Google backed by merging text blocks separated by empty ` tags before scraping.
- We now print a better error message when the database file is corrupted.
- `discogs`: Only prompt for authentication when running the `import` command. 1123
- When deleting fields with the `modify` command, do not crash when the field cannot be removed (i.e., when it does not exist, when it is a built-in field, or when it is a computed field). 1124
- The deprecated `echonest_tempo` plugin has been removed. Please use the `echonest` instead.
- `echonest`: Fingerprint-based lookup has been removed in accordance with [API changes](http://developer.echonest.com/forums/thread/3650). #1121
- `echonest`: Avoid a crash when the song has no duration information. 896
- `lyrics`: Avoid a crash when retrieving non-ASCII lyrics from the Google backend. 1135 1136
- `smartplaylist`: Sort specifiers are now respected in queries. Thanks to djl. 1138 1137
- `ftintitle` and `lyrics`: Featuring artists can now be detected when they use the Spanish word _con_. 1060 1143
- `mbcollection`: Fix an "HTTP 400" error caused by a change in the MusicBrainz API. 1152
- The `%` and `_` characters in path queries do not invoke their special SQL meaning anymore. 1146
- `convert`: Command-line argument construction now works on Windows. Thanks to mluds. 1026 1157 1158
- `embedart`: Fix an erroneous missing-art error on Windows. Thanks to mluds. 1163
- `importadded`: Now works with in-place and symlinked imports. 1170
- `ftintitle`: The plugin is now quiet when it runs as part of the import process. Thanks to Freso. 1176 1172
- `ftintitle`: Fix weird behavior when the same artist appears twice in the artist string. Thanks to Marc Addeo. 1179 1181
- `lastgenre`: Match songs more robustly when they contain dashes. Thanks to djl. 1156
- The `config` command can now use `$EDITOR` variables with arguments.

Page 4 of 6

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.