Porneia delights

Shell-FM est un client en ligne de commande qui permet d'écouter les radios de Last-FM et dont le développement a été initié par Jonas Kramer. Il est très simple à prendre en main, très léger et comporte toutes les options fournis par le client officiel en plus de quelques unes bien pratique que nous verrons un peu plus bas. Vous devez bien sûr disposer d'un compte Last.FM pour pouvoir utiliser ce service (c'est gratuit au cas où vous vous poseriez la question). Mais avant ça, on va commencer par le compiler et l'installer.

Pour récupérer les sources, il y a deux solutions : soit en utilisant git, soit en téléchargeant directement le tgz (dernière version 0.6 a l'heure où j'écris ces lignes). Dans votre dossier de sources :

$ git clone git://github.com/jkramer/shell-fm.git shell-fm

En ce qui concerne les dépendances vous aurez besoin de libmad et optionnellement de libao. Sous debian :

# apt-get install libmad0 libmad0-dev libao-dev

Il n'y a pas de configure, on passe directement à la compilation et on installe le tout dans /usr/local :

$ make
# make install PREFIX=/usr/local MANDIR=/usr/local/share/man

On va ensuite créer le répertoire de configuration de shell-fm ainsi que son fichier de configuration principal :

$ mkdir -p ~/.shell-fm/cache

Mon fichier de configuration ~/.shell-fm/shell-fm.rc :

username = VotreNickLast.FM
password = VotrePWDLast.FM
np-file = /home/VotreLogin/.shell-fm/nowplaying
default-radio = lastfm://artist/VotreArtistPrefere
minimum = 60

a-color = 0;31
t-color = 0;32
l-color = 1;33
s-color = 1;35

Les deux éléments primordiaux sont évidemment votre username et votre login (tel quel et non la somme md5). Comme tout ceci est en clair, n'hésitez pas à passer un coup de chmod 600 sur ce fichier histoire de pas le laisser à la vue de tout le monde (de toute façon me direz-vous, rien n'est crypté dans la communication entre les scrobbler et Last.FM donc votre mot de passe voyage en clair, m'enfin bon...). Sachez que vous n'êtes pas obligé de créer ce fichier, si vous ne le renseigner pas, Shell-FM vous demandera votre login et mot de passe au démarrage. Vous pourrez aussi lancer une radio automatiquement de cette façon : $ shell-fm lastfm://artist/Britney%20Spears (remarquez le %20 qui sert à remplacer l'espace).

Pour les autres options, nous avons d'abord la création d'un log qui est renseigné par ce qui se joue présentement, la radio qui sera lancée par défaut au démarrage de Shell-FM et ensuite à combien de pourcentage la chanson sera scrobbler sur Last-FM (par défaut c'est 50%). Les quatres dernières lignes servent à mettre un peu de couleur pour respectivement l'artiste, le titre de la chanson, le nom de l'album et le nom de le station de radio en cours d'écoute. Ce sont les couleurs de shell par défaut qui sont utilisées, vous pouvez retrouver toutes celles disponibles en parcourant la man de Shell-FM ou en vous servant de ce script écrit par Jonas Kramer et qui est je dois dire vachement pratique.

On va quand même finir par lancer ce client en tapant simplement shell-fm dans votre terminal. Et hop voilà un ascii-art screenshot pour vous donner une idée :

Shell-FM v0.6, (C) 2006-2009 by Jonas Kramer
Published under the terms of the GNU General Public License (GPL).

Press ? for help.

Receiving The Gladiators Radio.
Now playing "better must come (remix)" by Don Carlos.
Now playing "For the Love of You" by John Holt.
Now playing "Ketchy Shuby" by Peter Tosh.
Now playing "Mama Africa" by Midnite.
Loved.
Now playing "Them Never Love Poor Marcus" by Johnny Clarke.
Now playing "Get Ready" by Delroy Wilson.
Connection failed. Connection timed out.
Couldn't scrobble track(s).
Now playing "Don't Fool The Young Girls" by The Gladiators
_0:42

Comme vous pouvez le voir le serveur ne répond pas toujours bien ce qui produit une erreur de connection qui est sans gravité car les chansons jouées sont gardées en cache et envoyées au prochain tour (Si vous êtes un(e) habitué(e) de Last.FM vous savez que ça arrive parfois).

Vous remarquerez aussi le Loved qui indique que j'ai ajouté la chanson juste au-dessus aux musiques que j'aime, grâce au raccourci clavier l (et oui c'est intuitif avec ça). Dans le même genre et comme le client officiel on peut ajouter des tags (T), passer à la chanson suivante sans attendre (n), arrêter (S), etc. Si vous voulez changer de radio en cours d'écoute, c'est très simple, il vous suffit de taper r et d'entrer quelque chose de ce genre : radio url> globaltag/dub.

Cependant Shell-FM a des options en plus qui sont fortes intéressantes. Par exemple, vous pouvez bannir définitivement une chanson ou même un artiste (si vous êtes friant(e)s du globaltag Dance mais que vous supportez pas Lorie, vous apprécierez). Vous pouvez voir ce qui arrive ensuite dans la playlist, ou encore gérer des bookmarks.

Enfin et pour finir, Shell-FM dispose d'un mode très intéressant qui permet de le piloter à distance ce qui est pratique si vous êtes sur un réseau. Pour cela il suffit de le lancer en spécifiant une interface et un port (par défaut 54311) en plus de l'option -d. Ce qui peut donner par exemple ceci (n'oubliez pas de rêgler votre firewall pour laisser passer ce port) :

$ shell-fm -d -i localhost -p 30000

Il vous suffira alors ce vous connecter à ce port par l'intermédiaire de netcat ou de telnet afin d'envoyer des commandes à Shell-FM : play lastfm://artist/Britney%20Spears ; love ; etc. Mais si ce mode ne vous plaît pas, vous pouvez toujours enfermer Shell-FM dans un screen et dans dtach et y accéder par ssh, ce qui a l'avantage d'être un peu plus sécure.

Shell-FM est un donc selon moi un très bon client pour écouter des radios Last-FM et disposent de beaucoup de fonctions très pratiques. Il a en plus l'avantage de ne pas dépendre de X.org et peut donc être installer sur un serveur@home disposant d'une carte son.


Vous pouvez envoyer par mail vos commentaires et vos remarques à illovae[at]bk[dot]ru.

Shell-FM (1032 mots) de illovæ est diffusé sous la licence WTFPLv2 et Beer-ware (Révision 42).

Vulnerant omnes, ultima necat. Sic transit hominis regnum.
Copyleft © 2009 — illovæ