Subso­nic et Apache

Subso­nic, c’est trop cool ! Par contre, le port par défaut (4040) donne des url moches et pas faciles à rete­nir (http://truc.com:4040). Comment y remé­dier ?

Si vous n’avez pas de serveur web qui tourne, pas de problème : il suffit d’ajou­ter —port=80 dans les argu­ments de subso­nic (/etc/default/subso­nic). Mais si vous avez installé Subso­nic, c’est que vous êtes surement un geek et vous avez déjà un Apache (ou mieux, Nginx) qui tourne et donc le port 80 est déja pris.

Donc il faut proxi­fier Subso­nic via Apache.

La confi­gu­ra­tion Subso­nic

Ajou­tez ceci aux argu­ments de Subso­nic : —con­text-path=/music

Un coup de :

# service subsonic restart

et on passe à la confi­gu­ra­tion Apache.

La confi­gu­ra­tion Apache

Vous allez avoir besoin du module proxy_http, lui-même ayant besoin du module proxy. Donc :

# a2enmod proxy
# a2enmod proxy_http

Ensuite, vous devez créer (ou modi­fier) un VirtualHost pour qu’il contienne :

<IfModule mod_proxy_http.c>
    ProxyRequests Off
    ProxyPreserveHost On

    Order allow,deny
    Allow from all

    ProxyPass /music/ http://localhost:4040/music/
    ProxyPassReverse /music/ http://localhost:4040/music/
</IfModule>

Pour tester votre confi­gu­ra­tion Apache, un coup de :

# apache2ctl -t

puis (si tout est ok à l’étape précé­dente) :

# service apache2 restart

Plus qu’à tester et à profi­ter de la musique !

Source : http://blog.lund­scape.com/2009/05/confi­gure-a-reverse-proxy-with-apache/

Du multi­me­dia, partout, tout le temps !

Un peu d’his­toi­re…

Ah, il est bien loin le temps où la chaîne stéréo trônait fière­ment dans son coin, faisant la pluie et le beau temps sur la musique qu’on écou­tait dans tout l’ap­part. Pour les vidéos, c’était la télé (avec ou sans magné­to­scope). Le seul outil multi­mé­dia portable était le bala­deur, avec lequel on devait se trim­bal­ler autant de cassettes que d’al­bums !

On va faire court et dire que je suis passé direc­te­ment au pc et au bala­deur numé­rique (un archos 504 pour tout dire) sur lequel, oh miracle, je pouvais écou­ter de la musique, regar­der une vidéo et admi­rer des photos. Sa capa­cité de 80Go m’a bien faci­lité la vie pendant long­temps.

Mais je suis aujourd’­hui passé au smart­phone (HTC Incre­dible S), qui fait tout ce qu’un ordi fait ou peu s’en faut. Le seul hic, c’est sa capa­cité de 8Go…

Que faire ?

Conti­nuer à me trim­bal­ler mon vieil archos qui vieillit de plus en plus (c’est pas que le design, y a des GROS problèmes de stabi­lité et de batte­rie) ? Non ! En bon geek que je suis, j’ai trouvé la solu­tion : profi­ter de mon serveur dédié pour y poser les copies de mes cd et les écou­ter en strea­ming (c’est de la copie privée, c’est légal).

C’est pourquoi je vous présente Subso­nic ! Un logi­ciel libre (GPL) écrit en Java (il ne pouvait pas être vrai­ment parfait) et très simple d’em­ploi. Ce qui ne gâche rien, le site propose un paquet .deb.

Pourquoi ce serveur de strea­ming et pas un autre ?

Oh, j’en ai testé d’autres, mais j’avais un cahier des charges assez rigou­reux :

  • il fallait que le logi­ciel soit libre
  • il fallait que je puisse écou­ter ma musique depuis mon Android
  • il fallait que ce soit avec un méca­nisme d’au­then­ti­fi­ca­tion (si n’im­porte qui peut écou­ter mon flux, c’est de la diffu­sion non auto­risé d’œuvres proté­gées (en tout cas pour les 50% de mon cata­loque qui ne vient pas de Jamendo) et ça, ce n’est pas pur)
  • l’in­ter­face web est un plus !

J’ai donc testé Mpd (bien mais sans authen­ti­fi­ca­tion), Ampache (inter­fa­ce… euh… pas pratique DU TOUT à mon goût) et d’au­tres… J’ai même envi­sagé un serveur DLNA et un VPN, mais heureu­se­ment, j’ai trouvé Subso­nic avant de m’y mettre, et de toute façon les clients DLNA Android ne sont pas pratique, pas libre et/ou payants.

Vous instal­lez donc le paquet .deb de subso­nic et… c’est fini ! Vous pouvez toujours aller voir s’il y a des options inté­res­santes à instal­ler via subso­nic—­help mais ce n’est pas néces­saire pour que ça fonc­tionne.

L'interface web de Subsonic
L’in­ter­face web de Subso­nic

Pour sécu­ri­ser l’ap­pli (i.e. chan­ger le mot de passe admin), allez sur votre serveur sur le port 4040 (port par défaut), et suivez ce que vous dit le site. Vous pour­rez écou­ter votre musique via le site ou lire le flux contrôlé par le site avec Vlc par exemple. Le strea­ming de vidéos est sensé aussi fonc­tion­ner : je ne sais pas si c’est la faute de mon plugin flash tout caca (64 bits en béta depuis je sais pas quand, merci Adaube) ou si c’est le trans­co­dage qui échoue.

Le client Android s’ap­pelle tout simple­ment Subso­nic, et il existe d’autres clients pour les autres plate­formes.

Au bout de 30 jours, la possi­bi­lité de strea­mer vers les smart­phones sera suppri­mée, ainsi que d’autres petites feature, si vous n’ache­tez pas de licence. Mais 10€, c’est pas cher, et comme c’est un logi­ciel libre, vous pouvez toujours le forker.

Le lecteur de l'application Android de Subsonic
Le lecteur de l’ap­pli­ca­tion Android de Subso­nic

 

Et pour Mpd ?

Parce que Mpd est un compa­gnon de longue date qui ne m’a jamais fait défaut, même en ASRALL (sacré Marvin !), je voulais quand même en dire deux mots.

Pour ceux qui ne connaissent pas, Mpd veut dire Music Player Daemon, c’est à dire que vous n’avez pas d’in­ter­face au départ mais, ce qui est génial, c’est que du coup vous pouvez utili­ser une multi­tude de client, en CLI (ncmpcpp pour moi), en GUI (sonata, pour moi), en inter­face web, en local, via le réseau, mettre la sortie audio en local, sur un autre systè­me…

Le problème, c’est qu’une instance mpd ne lira qu’une seule play­list : il n’est pas possible pour deux personnes d’écou­ter deux pistes diffé­rentes.

Bonus : Mpd peut aussi faire office de serveur de strea­ming ! Et le client Android MpDroid permet de pilo­ter le daemon (pratique pour pas lever ses fesses pour chan­ger de musique) et de lire le strea­ming si la fonc­tion est acti­vée sur le serveur.

Et le DLNA dans tout ça ?

Le DLNA est une norme permet­tant de parta­ger des fichiers multi­mé­dias et de les exploi­ter sur un appa­reil idoine. En l’oc­cu­rence mon superbe lecteur DVD Bluray acheté à prix d’or grâce à mon salaire scan­da­leu­se­ment élevé de quand je bossais au Luxem­bourg (je dirais pas la marque, y a un boycott qui court en ce moment dessus que je respecte même si je ne vais pas jeter mon lecteur dvd, acheté avant le boycott).

En gros : j’ai mes vidéos de vacances sur le pc, mais la télé et le fauteuil, c’est plus sympa que l’écran plus petit et la chaise de bureau. Je pour­rais copier les fichiers sur un disque externe pour le bran­cher sur le lecteur DVD mais c’est fati­guant de se lever (les meilleurs infor­ma­ti­ciens sont feignants, je dois donc être TRÈS bon ;)) et en plus ça prend du temps.

Je lance donc un serveur DLNA sur mon ordi­na­teur (en ssh avec mon télé­phone et ConnectBot) et je n’ai plus qu’à allu­mer le lecteur DVD. Le DLNA permet aussi de parta­ger de la musique, pratique pour toute la famille !

Et ce serveur DLNA, c’est Cohe­rence, écrit en python et simple d’em­ploi. Un fichier de conf (il y a un exemple sur le site), on lance, c’est prêt. Le seul truc que j’ai confi­guré, c’est les réper­toires à parta­ger, c’est vous dire si c’est simple.

Il est dispo­nible dans les dépôts Debian et contrai­re­ment aux autres serveurs DLNA dans ces dépôts, il fonc­tionne !

# apt-get install python-coherence

Ce système souffre quand même d’une méchante limi­ta­tion, à savoir les codecs utili­sés pour la vidéo qui ne sont pas tous suppor­tés par le lecteur, mais c’est la faute du fabriquant, pas du serveur !