diff --git a/beets/library.py b/beets/library.py index a56575a52..c8993f85b 100644 --- a/beets/library.py +++ b/beets/library.py @@ -531,6 +531,9 @@ class Item(LibModel): 'length': DurationType(), 'bitrate': types.ScaledInt(1000, 'kbps'), + 'bitrate_mode': types.STRING, + 'encoder_info': types.STRING, + 'encoder_settings': types.STRING, 'format': types.STRING, 'samplerate': types.ScaledInt(1000, 'kHz'), 'bitdepth': types.INTEGER, diff --git a/beetsplug/spotify.py b/beetsplug/spotify.py index 2529160dd..931078d28 100644 --- a/beetsplug/spotify.py +++ b/beetsplug/spotify.py @@ -194,9 +194,16 @@ class SpotifyPlugin(MetadataSourcePlugin, BeetsPlugin): ) ) + tracks_data = album_data['tracks'] + tracks_items = tracks_data['items'] + while tracks_data['next']: + tracks_data = self._handle_response(requests.get, + tracks_data['next']) + tracks_items.extend(tracks_data['items']) + tracks = [] medium_totals = collections.defaultdict(int) - for i, track_data in enumerate(album_data['tracks']['items'], start=1): + for i, track_data in enumerate(tracks_items, start=1): track = self._get_track(track_data) track.index = i medium_totals[track.medium] += 1 diff --git a/docs/changelog.rst b/docs/changelog.rst index 8307ff7b6..3fbe5f1fc 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -10,11 +10,14 @@ New features: * :doc:`/plugins/kodiupdate`: Now supports multiple kodi instances :bug:`4101` +* Add the item fields ``bitrate_mode``, ``encoder_info`` and ``encoder_settings``. Bug fixes: * :doc:`/plugins/deezer`: Fix auto tagger pagination issues (fetch beyond the first 25 tracks of a release). +* :doc:`/plugins/spotify`: Fix auto tagger pagination issues (fetch beyond the + first 50 tracks of a release). * :doc:`/plugins/lyrics`: Fix Genius search by using query params instead of body. * :doc:`/plugins/unimported`: The new ``ignore_subdirectories`` configuration option added in 1.6.0 now has a default value if it hasn't been set. @@ -30,6 +33,7 @@ For packagers: * We fixed a version for the dependency on the `Confuse`_ library. :bug:`4167` +* The minimum required version of :pypi:`mediafile` is now 0.9.0. 1.6.0 (November 27, 2021) diff --git a/docs/reference/pathformat.rst b/docs/reference/pathformat.rst index 9213cae4b..f6f2e06cc 100644 --- a/docs/reference/pathformat.rst +++ b/docs/reference/pathformat.rst @@ -235,6 +235,9 @@ Audio information: * length (in seconds) * bitrate (in kilobits per second, with units: e.g., "192kbps") +* bitrate_mode (e.g., "CBR", "VBR" or "ABR", only available for the MP3 format) +* encoder_info (e.g., "LAME 3.97.0", only available for some formats) +* encoder_settings (e.g., "-V2", only available for the MP3 format) * format (e.g., "MP3" or "FLAC") * channels * bitdepth (only available for some formats) diff --git a/setup.py b/setup.py index fa92448a2..4c4f7d629 100755 --- a/setup.py +++ b/setup.py @@ -88,7 +88,7 @@ setup( 'unidecode', 'musicbrainzngs>=0.4', 'pyyaml', - 'mediafile>=0.2.0', + 'mediafile>=0.9.0', 'confuse>=1.5.0', 'munkres>=1.0.0', 'jellyfish',