Servidor iTunes (DAAP) amb OpenSuSE 11.0 (GNU/Linux)

Hola, avui m’ha donat per veure com funciona la biblioteca compartida del iTunes. Fa servir un protocol propietari de Apple anomenat DAAP. Apple no ha alliberat mai les especificacions d’aquest protocol. Per tant s’ha utilitzat la enginyeria inversa per poder esbrinar que fa.

Molta gent té un servidor a casa on té el repositori de backups, MP3, mediacenters …. fins i tot a les empreses s’està posant de moda tenir recursos compartits de música per tal que la gent no ompli les estacions de treball de fitxers.

En el cas que es fagi servir iTunes podem crear un repositori compartit mitjançant un servidor GNU/Linux.

Això és gràcies al projecte de Ron Pedde : Multi-Threaded DAAP Daemon

Aquest dimoni ens permetrar accedir mitjançant el iTunes al repositori de música que tinguem al servidor.

En el meu cas faig servir OpenSuSE 11.0 que no porta per defecte aquest programari. L’he hagut de compilar.

Molt fàcil.

He instal·lat els paquets necessaris pel seu funcionament.

zypper install avahi gdbm gdbm-devel libid3tag libid3tag-devel

M’he baixat les fonts i l’he compilat de forma tradicional:

configure
make
make install

He configurat el dimoni segons la documentació. Bàsicament he posat el directori del servidor on es guarden els MP3 i també he creat un arxiu de init per la OpenSuSE per tal que arrenqui automàticament quan el servidor es posi en marxa.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          mt-daapd
# Required-Start:    $avahi $network $syslog
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:     2 3 5
# Default-Stop:      0 1 2 6
# Short-Description: Remote Biblio for iTunes
# Description: Remote Biblio for iTunes
### END INIT INFO
#

MTDAAPD_BIN=/usr/local/sbin/mt-daapd
MTDAAPD_CONF=/etc/mt-daapd.conf
. /etc/rc.status

# Reset status of this service
rc_reset

case "$1" in
start)
echo -n "Starting mt-daapd "
$MTDAAPD_BIN -c $MTDAAPD_CONF
rc_status -v
;;
stop)
echo -n "Shutting down mt-daapd "
/sbin/killproc -TERM $MTDAAPD_BIN

rc_status -v
;;
restart)
$0 stop
$0 start

rc_status
;;
status)
echo -n "Checking for service mt-daapd "
/sbin/checkproc $MTDAAPD_BIN

rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
;;
esac
rc_exit

El servei avahi el necessitem per publicar el servei del DAAP per Multicast DNS i que els iTunes de la xarxa s’assabentin que tenen una biblioteca compartida.