Transformer un vieux Power Mac en serveur iTunes

On va partir de la machine qu’on a transformé en serveur Time Machine. Et en faire un serveur iTunes pour la musique. Ca fonctionne avec iTunes 11 et ça permet de partager une bibliothèque depuis une autre machine.

Pour commencer, on va supposer qu’on a une machine qui a déjà un système et un partage en AFP. On commence par créer un répertoire qui contiendra la musique, qu’on va partager en AFP. On se connecte en SSH, on ajoute un dossier musique (voir le dossier précédent) et on le partage en AFP.

nano /usr/local/etc/afp.conf

On ajoute les lignes suivantes à la fin.

[Musique]
path = /home/tmuser/music

On redémarre le serveur AFP.

service netatalk restart

On commence par Zlib et Libevent, les deux versions installées posant problèmes..

wget http://zlib.net/zlib-1.2.7.tar.gz
tar xvzf zlib-1.2.7.tar.gz
cd zlib-1.2.7
./configure
make
make install

wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz
tar xvzf libevent-1.4.14b-stable.tar.gz
cd libevent-1.4.14b-stable
./configure
make
make install

Si vous partez de l’installation précédente, voici ce dont on a besoin. Dans le cas contraire, pensez à installer avahi.

apt-get install gperf libunistring-dev libconfuse-dev sqlite3 libsqlite3-dev libavcodec-dev libavformat-dev libswscale-dev libmxml-dev libavl-dev libantlr3c-dev alsa-base alsa-utils libasound2-dev libevent-dev dhttpd

On va travailler avec forked-daapd, un serveur iTunes open source.

On télécharge la dernière version et on décompresse.

wget http://alioth.debian.org/~jblache/forked-daapd/forked-daapd-0.19.tar.gz
tar xvzf forked-daapd-0.19.tar.gz
cd forked-daapd-0.19

On va corriger un petit bug.

nano src/httpd_daap.c

On va changer la valeur DAAP_UPDATE_REFRESH et mettre une valeur élevée. Attention, c’est la valeur qui permet l’analyse de la bibliothèque et les dernières versions d’iTunes plantent à ce moment-là. Dans mon cas, j’ai mis une heure.

#define DAAP_UPDATE_REFRESH 3600

On va maintenant configurer. Pour les amateurs, il est possible d’ajouter le support du FLAC, mais le processeur est un peu léger ici.

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-itunes
make
make install

Maintenant, on édite le fichier de configuration.

nano /etc/forked-daapd.conf

Dans cette première partie, on va juste prendre en charge une bibliothèque partagée, qui va servir à accéder à de la musique depuis une autre machine.

A la ligne name, on peut choisir le nom du serveur.

name = "Ma musique"

Dans directories, le répertoire de stockage de la musique. Celui qu’on a partagé en AFP au départ.

directories = { "/home/tmuser/music" }

On peut aussi enlever le # devant la ligne suivante.

no_transcode = { "alac", "mp4a" }

Le programme a besoin d’un utilisateur dédié, configurons-le.

useradd -r daapd
chown daapd /var/cache/forked-daapd
chown daapd /home/tmuser/music

Comme on est sous Debian, un petit script de lancement est plus pratique.

nano /etc/init.d/forked-daapd

Et on colle tout dans le fichier (c’est long).

On redémarre le serveur.

On lance le programme et on l’ajoute dans le script de démarrage.

/etc/init.d/forked-daapd start
update-rc.d forked-daapd defaults

Normalement, les titres ajoutés dans le partage seront ajoutés dans la bibliothèque partagée toutes les heures. Selon les version d’iTunes, ça peut planter le flux à ce moment-là.

Dans un futur tutorial, on verra comment gérer la lecture en local.