Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mopidy/mopidy-spotify

Mopidy extension for playing music from Spotify
https://github.com/mopidy/mopidy-spotify

mopidy mopidy-backend python spotify

Last synced: 2 days ago
JSON representation

Mopidy extension for playing music from Spotify

Awesome Lists containing this project

README

        

**************
Mopidy-Spotify
**************

.. image:: https://img.shields.io/pypi/v/Mopidy-Spotify
:target: https://pypi.org/project/Mopidy-Spotify/
:alt: Latest PyPI version

.. image:: https://img.shields.io/github/actions/workflow/status/mopidy/mopidy-spotify/ci.yml?branch=main
:target: https://github.com/mopidy/mopidy-spotify/actions
:alt: CI build status

.. image:: https://img.shields.io/codecov/c/gh/mopidy/mopidy-spotify
:target: https://codecov.io/gh/mopidy/mopidy-spotify
:alt: Test coverage

`Mopidy `_ extension for playing music from
`Spotify `_.

Status :warning:
=================

Spotify have recently disabled username and password login for playback
(`#394 `_) and we
now utilise access-token login. You no longer need to provide your
Spotify account username or password.

Mopidy-Spotify currently has no support for the following:

- Seeking

- Gapless playback

- Volume normalization

- Saving items to My Music (`#108 `_) -
possible via web API

- Podcasts (`#201 `_) -
now possible

- Radio (`#9 `_) - unavailable?

- Spotify Connect (`#14 `_)

Working support for the following features is currently available:

- Playback

- Search

- Playlists (read-only)

- Top lists and Your Music (read-only)

- Lookup by URI

Dependencies
============

- A Spotify Premium subscription. Mopidy-Spotify **will not** work with Spotify
Free, just Spotify Premium.

- ``Mopidy`` >= 3.4. The music server that Mopidy-Spotify extends.

- ``gst-plugins-spotify``, the `GStreamer Rust Plugin
`_ for Spotify
playback, based on `librespot `_.
*This plugin is not yet available from apt.mopidy.com*. It must be either
`built from source
`_
or `Debian packages are available
`_
for some platforms.

**We currently require a forked version of this plugin which supports
token-based login.** This can be found `here `_.

Verify the GStreamer spotify plugin is correctly installed::

gst-inspect-1.0 spotifyaudiosrc | grep Version | awk '{print $2}'

Installation
============

Install by running::

sudo python3 -m pip install --break-system-packages Mopidy-Spotify==5.0.0a3

Configuration
=============

Before starting Mopidy, you must visit https://mopidy.com/ext/spotify/#authentication
to authorize this extension against your Spotify account::

[spotify]
client_id = ... client_id value you got from mopidy.com ...
client_secret = ... client_secret value you got from mopidy.com ...

**Remove any credentials.json file you may have manually created.**

The following configuration values are available:

- ``spotify/enabled``: If the Spotify extension should be enabled or not.
Defaults to ``true``.

- ``spotify/client_id``: Your Spotify application client id. You *must* provide this.

- ``spotify/client_secret``: Your Spotify application secret key. You *must* provide this.

- ``spotify/bitrate``: Audio bitrate in kbps. ``96``, ``160``, or ``320``.
Defaults to ``160``.

- ``spotify/volume_normalization``: Whether volume normalization is active or
not. Defaults to ``true``.

- ``spotify/timeout``: Seconds before giving up waiting for search results,
etc. Defaults to ``10``.

- ``spotify/allow_cache``: Whether to allow caching. The cache is stored in a
"spotify" directory within Mopidy's ``core/cache_dir``. Defaults to ``true``.

- ``spotify/cache_size``: Maximum cache size in MiB. Set to ``0`` for unlimited. Defaults to ``8192``.

- ``spotify/allow_playlists``: Whether or not playlists should be exposed.
Defaults to ``true``.

- ``spotify/search_album_count``: Maximum number of albums returned in search
results. Number between 0 and 50. Defaults to 20.

- ``spotify/search_artist_count``: Maximum number of artists returned in search
results. Number between 0 and 50. Defaults to 10.

- ``spotify/search_track_count``: Maximum number of tracks returned in search
results. Number between 0 and 50. Defaults to 50.

- ``spotify/username``: Deprecated since v5.0.0a3.

- ``spotify/password``: Deprecated since v5.0.0a3.

Project resources
=================

- `Source code `_
- `Issue tracker `_
- `Changelog `_

Credits
=======

- Original author: `Stein Magnus Jodal `__
- Current maintainer: `Nick Steel `__
- `Contributors `_