Rewrite using pyspotify 2. Should have feature parity with Mopidy-Spotify 1.
Config
- Add ``spotify/volume_normalization`` config. (Fixes: 13)
- Add ``spotify/allow_network`` config which can be used to force
Mopidy-Spotify to stay offline. This is mostly useful for testing during
development.
- Add ``spotify/allow_playlists`` config which can be used to disable all
access to playlists on the Spotify account. Useful where Mopidy is shared by
multiple users. (Fixes: 25)
- Make maximum number of returned results configurable through
``spotify/search_album_count``, ``spotify/search_artist_count``, and
``spotify/search_track_count``.
- Add ``spotify/private_session`` config.
- Change ``spotify/toplist_countries`` default value to blank, which is now
interpreted as all supported countries instead of no countries.
- Removed ``spotify/cache_dir`` and ``spotify/settings_dir`` config values. We
now use a "spotify" directory in the ``core/cache_dir`` and
``core/data_dir`` directories defined in Mopidy's configuration.
- Add ``spotify/allow_cache`` config value to make it possible to disable
caching.
Browse
- Add browsing of top albums and top artists, in additon to top tracks.
- Add browsing by current user's country, in addition to personal, global and
per-country browsing.
- Add browsing of artists, which includes the artist's top tracks and albums.
- Update list of countries Spotify is available in and provides toplists for.
Lookup
- Adding an artist by URI will now first find all albums by the artist and
then all tracks in the albums. This way, the returned tracks are grouped by
album and they are sorted by track number. (Fixes: 7)
- When adding an artist by URI, all albums that are marked as "compilations"
or where the album artist is "Various Artists" are now ignored. (Fixes: 5)
Library
- The library provider method ``get_distinct()`` is now supported. When called
without a query, the tracks in the user's playlists is used as the data
source. When called with a query, a Spotify search is used as the data
source. This addition makes the library view in some notable MPD clients,
like ncmpcpp, become quite fast and usable with Spotify. (Fixes: 50)
Playback
- If another Spotify client starts playback with the same account, we get a
"play token lost" event. Previously, Mopidy-Spotify would unconditionally
pause Mopidy playback if this happened. Now, we only pause playback if we're
currently playing music from Spotify. (Fixes: 1)