Quand votre Raspberry Pi devient serveur Spotify
C'est en lisant un article sur le blog de Korben que j'ai 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 mis 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 auto-alimentées sur le Raspberry
- Amplificateur Audio Cambridge
- Enceintes B&W
- Un abonnement Spotify Premium et/ou des fichiers audios accessible depuis votre Raspberry
Mise en place du système
Je ne vais pas faire un copier/coller de mon billet d'installation de Raspbian Wheezy sur un Raspberry Pi, il suffit de suivre ce lien.
Etape optionnelle, uniquement si vous avez un DAC ou une carte son USB branché à 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.
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és localement ou de streamer des musiques disponibles sur le service Spotify (c'est sur ce dernier point que nous allons nous focaliser dans ce billet).
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 un 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) ou 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 ignore 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)
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 existes:
- Sous GNU/Linux: En ligne de commande Ncmpcpp (bon corage pour retenir le nom mais il marche à merveille) ou en GUI avec GMPC
- Sous Andoid: MPDroid
- Sous iOS: MPaD
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 billets sur le Raszberry Pi sur ma page dédiée !
Cet article Quand votre Raspberry Pi devient serveur Spotify est apparu en premier sur Le blog de NicoLargo.