mardi 22 mars 2011

Groaaaaaaaarlmeupeudeu !

Ceci est le cri du Growl qui reçoit une notification quand MPD passe au morceau suivant.

La situation :
  • ton desktop est un Mac.
  • tu écoutes ta musique via MPD qui se trouve sur un autre serveur.
  • tu aimerais avoir une notification Growl à chaque changement de chanson.

La solution : un script perl qui suvreille MPD et envoie une notification à Growl au besoin. Un script d'init tout fait pour les debianeux, les autres sauront se débrouiller. Et même - le gadget ultime - l'appli automator qui va demander à réafficher le morceau en cours, car « Régis me parlait au moment de la précédente notification, et c'est un super morceau, mais je ne me souviens vraiment plus de qui c'est ». C'est téléchargeable ici !

  • growl_mpd.conf : il s'agit de la conf (non, sans blague !) au format YAML (le cri du Growl en rut). Si tu ne veux pas d'une option, soit tu la vires comme un goret, soit tu mets proprement la valeur à « ~ ».
  • growl_mpd.pl : le script magique, qui doit être dans le même répertoire que la conf. C'est un démon qu'on lance avec l'argument start. Il supporte aussi les arguments stop et status. On peut aussi lui envoyer un kill -HUP dans la face, afin qu'il balance tout de suite une notification Growl décrivant le morceau en cours de lecture. Si on le laisse tourner sans l'embêter, il n'everra des notifications Growl qu'à un changement d'état de MPD (pause, stop, lecture, changement de morceau).
  • growl_mpd_init.pl : le script d'init à mettre dans /etc/init.d/ sur Debian, à adapter pour les autres distribs/OS. Il faut l'éditer pour mettre le bon chemin de growl_mpd.pl. Il supporte les option start, stop, restart (un stop suivi d'un start), reload, le fameux kill -HUP version convi, et status. En gérant correctement les liens dans /etc/rcBLA, tu fais en sorte que ce script soit lancé à chaque démarrage de l'ordinateur, et hop, tout fonctionne sans qu'on ait rien à faire.
  • le gadget ultime : bah, c'est easy, tu créées une appli automator qui exécute juste une commande shell du genre : « ssh ton.serveur /path/to/growl_mpd_init.pl start »

mardi 28 juillet 2009

Tagada dzim boum, la musique passe dans le tunnel !


Toi, là. Oui, toi, qui es au boulot et qui lis des blogs au lieu de bosser ! Tu ne trouves pas que ça serait plus agréable de glan^Wbosser en musique ? Je sais que tu as téléch^Wacheté plein de musique, mais qu'elle est chez toi, derrière ta freeboîte. En plus ton patron, c'est un guedin de la sécurité, il a mis un proxy http pour que te ne puisse pas faire de trucs bizarres sur internet.

Eh bien une solution existe, il suffit de faire un tunnel ssh à travers le proxy, afin de faire communiquer le port 3689 de ton serveur iTunes (mt-daapd sur ton nas ?) vers le port 3689 de ta machine du boulot. Facile, non ? Procédons par étape :

  • Fais une redirection de port sur ta netbox pour pouvoir accéder en ssh à une machine située chez toi (pas forcément celle qui contient de la musique).
  • Installe connect-proxy sur ton poste du boulot.
  • Edite ton ~/.ssh/config ainsi (l'IdentityFile n'est pas nécessaire, mais c'est bien pratique. ProxyCommand peut changer un peu si c'est un proxy socks, mais bon, tu sais lire) :
Host chez.moi.fr
User monuser
Port leportssh
IdentityFile ~/.ssh/id_rsa
ProxyCommand connect-proxy -H ip.du.proxy:port.du.proxy %h %p
  • Teste la connexion ssh avant d'aller plus loin, on ne sait jamais.
  • Maintenant, suis l'excellent tuto fourni sur le wiki de Firefly Media Server.
  • Personnellement, je lance la commande mDNSProxyResponderPosix au démarrage de ma session (sur Gnome : Système -> Préférences -> Sessions).
  • Je préfère ouvrir le tunnel au même moment que mon lecteur de musique (Rhythmbox ou Amarok), car si le tunnel est inutilisé pendant x temps, le proxy ferme la connexion. Du coup, je me suis fait un petit script qui remplace Rhythmbox dans le menu Applications (dans mon cas, le serveur iTunes est sur la même machine que le serveur ssh. Change donc 127.0.0.1 si ça t'arrange) :
#!/bin/sh
ssh chez.moi.fr -N -f -L 3689:127.0.0.1:3689
rhythmbox
  • Maintenant, tu devrais voir apparaître ton partage de musique automatiquement quand tu lances Rhythmbox. En plus, si tu as mis une clé ssh sans passphrase, tu n'as même pas à entrer de mot de passe au lancement de Rhythmbox. C'est-y-pas convi tout plein ?
  • La récupération de la liste des chansons peut être longue (plus d'une minute) si ta bibliothèque est grosse.
  • Enjoy !