Sa musique partout avec Ampache (Linux Pratique 71, mai-juin 2012)

Posted by

Ampache est une application web écrite en PHP/MySQL permettant d’écouter sa musique de n’importe où tant qu’un accès internet est disponible. Le logiciel dispose de nombreux backends afin de piloter une instance MPD par exemple, il permet de streamer la musique vers un client lourd comme Amarok ou pour téléphone portable via l’API XML-RPC ainsi qu’un lecteur en flash afin de se créer son propre deezer avec des logiciels libres et sa propre collection musicale.

1. Installation

J’ai choisi comme disitribution la Debian GNU/Linux Squeeze installée, certaines commandes seront donc logiquement à adapter pour d’autres distributions en particulier les dérivés de Red Hat mais en principe rien ne devrait poser de problèmes. L’installation est réalisée avec le minimum de paquets installables à l’exception d’un serveur OpenSSH. Je tiens à préciser que bien qu’il existe un paquet Debian de ampache, j’ai choisi de ne pas l’utiliser. En effet, le lecteur audio en flash n’est pas inclus dans le paquet Debian. Pour les lecteurs curieux, le détail des discussions à ce sujet sont contenues dans le bug n°591202. En résumé, comme il est impossible de compiler le lecteur flash avec des outils libres, alors il devient incompatible avec les principes du logiciel libre selon Debian.

1.1 Pas d’application Web sans le serveur

Comme pour toute installation logicielle, il faut en premier lieu installer les pré-requis. Ils consistent ici simplement à installer un serveur web avec le support de PHP5 et MySQL. Nous allons faire simple et donc installer Apache sans entrer dans la configuration d’un VirtualHost, ce qui serait malgré tout plus propre à mettre en place dans le cadre d’un serveur de production.

# apt-get install mysql-server libapache2-mod-php5 php5-gd php5-cli php5-mysql 
# /etc/init.d/apache2 restart

Une seule question sera posée qui est le mot de passe de l’administrateur « root » MySQL et le serveur web est prêt à accueillir nos fichiers pourvus qu’ils soient dans le répertoire par défaut spécifié par la directive DocumentRoot d’Apache, soit le répertoire /var/www sous Debian. Le redémarrage d’Apache ne devrait pas être nécessaire en principe car l’installation du paquet libapache2-mod-php5 active le module et lance un reload d’Apache, mais généralement cela n’est pas suffisant pour que les fichiers php soient interprétés sans un redémarrage complet.

1.2 Déploiement du logiciel sur le serveur Web.

On commence par récupérer les sources depuis le site officiel(http://ampache.org/download/). Au moment de la rédaction de cet article il s’agit de la version 3.5.4. L’opération consiste à récupérer les fichiers sur le serveur, les extraire dans le répertoire indiqué ci-dessus et attribuer l’appartenance des fichiers au compte sous lequel est lancé Apach;e

# cd tmp; wget http://ampache.org/downloads/ampache-3.5.4.tar.gz
# tar -zxvf ampache-3.5.4.tar.gz -C /var/www/
# mv /var/www/ampache-3.5.4/ /var/www/ampache 
# chown -R www-data:www-data /var/www/ampache

Le reste de l’installation se fait via le navigateur, je vous invite donc à vous connecter sur l’URL http:///ampache ce qui doit normalement afficher une page indiquant d’une part que les pré-requis sont tous positionnés sur OK et demander la langue d’installation, logiquement le français.
La seconde étape consiste à indiquer les paramètres de connexion à la base de données. Il est possible de créer directement la nouvelle base via l’assistant d’installation, autant ne pas s’en priver. Je conseille cependant de cocher la case indiquant de créer un utilisateur dédié pour la base de données pour des raisons de sécurité évidentes.
Ensuite, l’écran suivant demande la saisie des identifiants de connexion MySQL indiqués précédemment ainsi que le chemin web vers ampache qui en principe n’a pas besoin d’être ajusté. La validation de cette dernière étape lance la boite de dialogue d’enregistrement de fichier du navigateur qu’il faudra transférer sur le serveur via SCP par exemple :

# scp /tmp/ampache.cfg.php root@192.168.1.7/var/www/ampache/config/

Enfin, un dernier écran demande la création du premier compte utilisateur qui sera le compte d’administration. Une fois celui-ci créé, on va pouvoir enfin passer à l’essentiel, c’est à dire se connecter à l’interface et pousser le volume des enceintes !

2. Utilisation via le lecteur intégré

Pour commencer il va bien entendu falloir ajouter la musique qui sera cataloguée et indexée par Ampache. Dans mon cas j’ai choisi de déposer mes fichiers dans /srv/music mais libre à chacun de déposer ses fichiers là ou il le souhaite.

ajout_catalogue

Aller dans « Administration », puis « Ajouter un catalogue ». Indiquez un nom à ce catalogue, le chemin dans lequel vous avez déposé vos fichiers et indiquez un chemin de type local. Il est possible de récupérer les jaquettes d’album depuis Amazon Web Services et d’importer les listes de lecture au format m3u.
Une fois le catalogue indexé ce qui peut prendre plus ou moins de temps selon l’étendue de votre collection musicale, vous devriez déjà être en mesure de parcourir votre collection et de constituer une liste de lecture. Dans le menu déroulant sous le formulaire de recherche il faut donc ensuite indiquer que l’on souhaite utiliser le lecteur Flash et lancer l’écoute de la musique depuis le premier bouton de l’encart contenant la playlist. Je dois reconnaître que l’utilisation du logiciel est plutôt déconcertante en particulier avec le thème par défaut car on clique sur des icônes et c’est leur survol qui indique les actions qu’ils permettent.
player

3. Petits paramétrages entre amis :

On ne s’était pas vraiment attardé tout à l’heure sur le fichier de configuration ampache.cfg.php, tout ce qui nous intéressait dans un premier temps étant d’avoir quelque chose de fonctionnel pour se connecter à la base de données MySQL. Cependant, si on passe en revue la configuration regorge de petites choses pour nous faciliter la vie.

3.1 Changer le bitrate

Tout d’abord, mon utilisation principale de Ampache se fait soit au bureau soit pour faire découvrir un album à un ami. Donc je dispose généralement d’une connexion à Internet de qualité, au minimum du 2Mbits/sec. La qualité audio par défaut étant assez faible, j’augmente systématiquement ce paramètre. Je vous invite du coup à l’ajuster en fonction de votre usage. Il va de soi que sur une connexion 3G ça pourrait être problématique mais dans ce cas il sera probablement plus commode et économique d’utiliser un baladeur portatif. Le bitrate par défaut étant de 48 kbps, je le passe à 96 kbps ce qui me semble un bon compromis entre qualité et fiabilité.

min_bit_rate = 96

3.2 Conversion de formats

Il faut se rappeler que la fonction première d’Ampache n’est pas d’être un lecteur multimédia mais un diffuseur de contenu audio. Ampache n’a aucune notion de ce que peut être un codec. Ce point est laissé à la charge du lecteur audio utilisé. Le fichier de configuration prend en exemple certaines formats pour lesquels il ne reste qu’à installer les outils appropriés et décommenter les lignes en questions pour être utilisables. Il conviendra de s’en inspirer pour pouvoir utiliser un nouveau format. Notez cependant que si de nombreux utilisateurs doivent avoir accès à votre serveur pour des fichiers imposant du transcodage, cela peut avoir un impact non négligeable sur les performances du serveur. La définition de la nécessité de transcoder un format se fait en trois points. Le premier consiste à indiquer via un booléan l’extention à transcoder. Le second indique le format de destination. Et enfin le dernier indique la commande à exécuter pour réaliser l’opération. Exemple tiré du fichier de configuration :

transcode_m4a           = true 
transcode_m4a_target = mp3
transcode_cmd_m4a    = "faad -f 2 -w %FILE% | lame -r -b %SAMPLE% -S - -"

3.3 Lancer la mise à jour des catalogues automatiquement

Bien entendu il est possible de relancer une indexation des fichiers présents sur le disque dur mais il est évidemment plus confortable d’automatiser cette tâche. On va donc ajouter au fichier /etc/crontab l’entrée ci-dessous qui mettra à jour les albums à 06H00 tous les jours.

0 6 * * * www-data php php /var/www/ampache/bin/catalog_update.inc -a -c 2>&1 > /dev/null

3.4 Permettre le téléchargement d’un album

Une autre fonction fort appréciable quand on est en déplacement et qu’on a oublié de modifier le contenu de son baladeur audio est le fait de pouvoir récupérer un fichier zip d’un album pour le transférer en USB sur son lecteur portatif. On va donc autoriser la fonction dans le fichier ampache.cfg.php :

allow_zip_download = "true" 

Notez cependant que le fait d’autoriser cette fonction ne la rendra pas immédiatement disponible pour tout le monde car elle ne passe pas outre le système de droits d’accès. Vous pourrez ouvrir plus largement cette fonctionnalité au besoin en passant par « Configuration du Serveur » puis « Options » et enfin « Allow Download » à positionner sur « Activer ».

4. Accès depuis d’autres clients

Dès lors que le rôle premier d’Ampache est de diffuser un flux audio, rien n’empêche d’utiliser un client différent à condition que celui-ci sache tirer parti de l’interface XML-API pour en profiter pleinement. Une page du wiki détaille les fonctionnalités proposées par certains clients lourds (http://ampache.org/wiki/clients). Le lecteur flash intégré par le projet n’est d’ailleurs que l’un de de ces clients.
Veuillez noter que cet accès peut être limité par des règles de contrôle d’accès dans la configuration du serveur. Vous pourriez avoir besoin de gérer des droits d’accès de type API / RPC Host et vous baser sur une restriction par plage d’adresses IP ou par type d’utilisateur.

4.1 Utilisation depuis Amarok

Amarok est un lecteur audio du projet KDE populaire parmi les linuxiens quelque soit l’environnement de bureau utilisé. Un certain nombre de fonctionnalités de bases sont d’ailleurs commune à ces deux logiciels notamment l’utilisation d’une collection, le téléchargement des jaquettes ou des paroles etc… Amarok dispose en outre d’un plugin lui permettant de tirer parti des principales fonctionnalités du logiciel. Par défaut le plugin doit être activé dans les options de configuration plus dans le sous menu « Plugins ».
Il faut du coup ajouter l’URL exacte vers le serveur Web soit http:///ampache ainsi que un nom d’utilisateur autorisé ainsi que son mot de passe.
amarok_ampache

Une nouvelle source de données s’ajoute alors à la suite des sources internet comme Jamendo et vous devriez récupérer le contenu du catalogue et pouvoir écouter votre musique.

4.2 Un client mobile avec Android

Il existe des clients Ampache pour à peu près l’ensemble des OS mobiles majeurs. Cela va de maamp pour Maemo à ampm-wp7 et iAmpache client pour les systèmes les plus malodorants. Mais je suis à peu près certain qu’aucun lecteur de Linux Pratique n’est équipé d’un de ces téléphones.
Je ne vais pas entrer dans la configuration des clients android car elle se résume à indiquer les mêmes paramètres que pour Amarok, c’est à dire indiquer l’URL complète, un nom d’utilisateur ainsi que le mot de passe associé.

amdroid

Le client officiel du projet Ampache est amdroid. L’ergonomie est simplifiée à l’extrême et le logiciel est très sobre niveau fonctionnalités. Il est plutôt agréable à utiliser à la condition d’avoir une collection musicale plutôt restreinte.
Mon lecteur de prédilection se porte malgré tout sur Just Player. Il est bien entendu libre et distribué sous licence Apache 2. C’est à la base un lecteur audio autonome disposant d’une extension à installer dans un second temps depuis l’Android Maket pour ajouter une source de données Android. La configuration se fait à ce propos dans ce module séparé et Just Player génère ensuite une base de données de cache locale afin de faciliter l’utilisation sur un réseau de données douteux. Pour des collections importantes, Just Player a l’avantage d’afficher la jaquettes des CD ce qui est particulièrement appréciable lors de la navigation dans les albums.

just player

5. Conclusion

Même si Ampache n’est pas devenu mon lecteur audio de référence quand je suis chez moi et ne remplacera pour ça pas un client lourd, il faut reconnaître que quand on a commencé à l’utiliser c’est un peu comme le miel, ça colle au doigt. Le logiciel regorge de fonctionnalités comme la gestion des utilisateurs avec différents droits d’accès, le téléchargement des paroles, le stream vers un serveur shoutcast, le pilotage d’une instance MPD qu’il faudrait pratiquement un magazine entier pour aborder en profondeur chacune des possibilités qu’il offre. Je ne peux que vous encourager à l’utiliser, les alternatives propriétaires étant loin derrière en terme de possibilités.

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.