Quand votre Raspberry Pi devient serveur Spotify

Nicolas Hennion

J'ai récemment découvert qu'il était possible de transformer une distribution GNU/Linux en une borne audio Spotify, pilotable à distance. L'objectif étant d'avoir un petit boîtier (type Raspberry Pi ou équivalent) branché directement à sa chaîne Hifi et de pouvoir naviguer à distance sur sa bibliothèque Spotify.

La configuration que j'ai mise en place est la suivante :

- Raspberry Pi modèle B avec Raspbian Wheezy et le logiciel Mopidy ;

- DAC Audio Cambridge (connecté au Raspberry Pi via l'interface USB) > C'est bien sûr optionnel et vous pouvez brancher directement votre amplificateur audio ou vos enceintes autoalimentées sur le Raspberry ;

- amplificateur Audio Cambridge ;

- enceintes B&W ;

- un abonnement Spotify Premium et/ou des fichiers audios accessibles depuis votre Raspberry.

N'hésitez pas à commenter cet article ! Commentez

- Titre : Quand votre Raspberry Pi devient serveur Spotify

- Auteur : Nicolas Hennion

- Parution : 31 octobre 2013

- Mise à jour : 11 janvier 2020

- Licence : Le contenu de cet article est rédigé par nicolargo et est mis à disposition selon les termes de la Licence Creative Commons Attribution 3.0 non transposé. Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright ® 2013 Developpez.com.

Voir également :

- Raspberry Pi - DÃ©ballage et installation

- Test de la camÃ©ra Raspberry Pi 5M - Streaming

- Utiliser votre Raspberry Pi comme borne Airplay

- Test d'OpenElec sur Raspberry Pi

Sommaire

- I. Mise en place du système

- II. Installation de Mopidy, le serveur Spotify

- III. Piloter à distance votre borne Mopidy

- IV. Conclusion

- V. Remerciements Developpez

I - Mise en place du système

Je ne vais pas faire un copier/coller de mon article d'installation de Raspbian Wheezy sur un Raspberry Pi, il suffit de suivre ce lien.

Étape optionnelle, uniquement si vous avez un DAC ou une carte son USB branchée à votre Raspberry.

Comme j'utilise un DAC afin de remplacer la médiocre sortie analogique du Raspberry, il faut effectuer une petite configuration complémentaire pour forcer le Raspberry à utiliser le DAC (sortie USB) comme carte son. Il suffit d'éditer le fichier /etc/modprobe.d/alsa-base.conf en commentant une première ligne et en ajoutant une deuxième :

#options snd-usb-audio index=-2
options snd-usb-audio nrpacks=1

Après un dernier redémarrage, votre Raspberry Pi est prêt à recevoir l'installation de Mopidy.

II - Installation de Mopidy, le serveur Spotify

Mopidy est un serveur audio compatible avec les clients uPnP et MDP et permet donc de jouer des musiques stockées localement ou de streamer des musiques disponibles sur le service Spotify (c'est sur ce dernier point que nous allons nous focaliser dans cet article).

On commence par installer le dépôt officiel de Mopidy puis le logiciel :

wget -q -O - http://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list http://apt.mopidy.com/mopidy.list
sudo apt-get update
sudo apt-get install mopidy

On doit ensuite lancer une première fois Mopidy :

$ mopidy

INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
INFO     Creating dir /home/pi/.config/mopidy
INFO     Creating dir /home/pi/.local/share/mopidy
INFO     Creating file /home/pi/.config/mopidy/settings.py
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
ERROR    Setting "SPOTIFY_USERNAME" is empty.
ImportError: could not import gtk.gdk

Cela va permettre à Mopidy de créer l'arborescence ~/.config/mopidy qui va contenir les fichiers de configuration.

On doit éditer le fichier ~/.config/mopidy/settings.py avec les paramètres :

- du serveur MDP qui va permettre de contrôler à distance Mopidy ;

- du répertoire local (ou distant sur un NAS) où sont stockés vos fichiers audios ;

- du compte Spotify Premium (obligatoire) ;

- du compte LastFM (optionnel, uniquement pour le scrobbling).

FRONTENDS = (u'mopidy.frontends.mpd.MpdFrontend', u'mopidy.frontends.lastfm.LastfmFrontend')

MPD_SERVER_HOSTNAME = u'0.0.0.0'
MPD_SERVER_PASSWORD = u'mdppassword'

LOCAL_MUSIC_PATH = u'/home/nicolargo/Musiques'

SPOTIFY_USERNAME = u'spotifylogin'
SPOTIFY_PASSWORD = u'spotifypassword'
SPOTIFY_BITRATE = 320

LASTFM_USERNAME = u'lastfmlogin'
LASTFM_PASSWORD = u'lastfmpassword'

On peut relancer ensuite Mopidy :

$ mopidy
INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/.config/mopidy/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
INFO     Mopidy uses SPOTIFY(R) CORE
INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
ImportError: could not import gtk.gdk
ERROR    MPRIS frontend setup failed (org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11)
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)

Vous pouvez ignorer les erreurs, les lignes importantes étant :

INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)

III - Piloter à distance votre borne Mopidy

Pour piloter votre tout nouveau serveur Mopidy, il suffit d'installer un client compatible avec le protocole implémenté dans MPD. Personnellement, j'utilise GMPC sur mon PC Ubuntu, mais d'autres solutions existent :

- sous GNU/Linux : en ligne de commande Ncmpcpp (bon courage pour retenir le nom, mais il marche à merveille) ou en GUI avec GMPC ;

- sous Andoid : MPDroid ;

- sous iOS : MpaD.

IV - Conclusion

Encore une utilisation sympa d'un Raspberry dans le monde de la Hifi. J'ai encore quelques problèmes de son (gros tics quand je passe d'un morceau à l'autre), mais dans l'ensemble c'est une solution bien pratique pour écouter sa bibliothèque musicale sur sa chaîne !

Retrouvez tous mes articles sur le Rasberry Pi sur la page dédiée !

V - Remerciements Developpez

L'équipe Systèmes Embarqués tient à remercier Nicolargo pour la rédaction de ce tutoriel.

Nos remerciements à zoom61 pour sa gabarisation.

N'hésitez pas à commenter cet article ! Commentez