Muggle-plugin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird.

Setup

Hardwareanforderungen

Softwareanforderungen

  • mySQL
  • libid3tag
  • libmad
  • taglib
  • libvorbis >= libogg
  • flac >= libogg >= nasm

Installation

Die Installation der benötigten Bibliotheken nehmen wir wie üblich im Pfad /usr/local/src vor:

cd /usr/local/src
  • Bibliothek: libid3tag
cd $SOURCEDIR
tar xvzf libid3tag-<VERSION>.tar.gz
cd libid3tag-<VERSION>
./configure --prefix=/usr/local
make
make install
ldconfig
  • Bibliothek: libid3tag
tar xvzf libmad-<VERSION>.tar.gz
cd libmad-<VERSION>
./configure --prefix=/usr/local
make
make install
ldconfig
  • Bibliothek: libogg
tar xvzf libogg-<VERSION>.tar.gz
cd libogg-<VERSION>
./configure --prefix=/usr/local
make
make install
ldconfig
  • Bibliothek: libvorbis
tar xvzf libvorbis-<VERSION>.tar.gz
cd libvorbis-<VERSION>
./configure --prefix=/usr/local \
            --with-ogg-libraries=/usr/local/lib
make
make install
  • Bibliothek: flac
tar xvzf flac-<VERSION>.tar.gz
./configure --prefix=/usr/local \
            --with-ogg-libraries=/usr/local/lib
make
make install
  • Bibliothek: taglib
tar xvzf taglib-<VERSION>.tar.gz
cd taglib-<VERSION>
./configure --prefix=/usr/local
make
make install
ldconfig

Auch für die Installation von mysql nehmen wir im bekannten Pfad /usr/local/src vor:

cd /usr/local/src
  • mysql
tar xvzf mysql-<VERSION>.tar.gz
cd mysql-<VERSION>
./configure --prefix=/usr/local \
            --libexecdir=/usr/local/bin \
            --without-extra-tools \
            --without-bench
make
make install

Nach der erfolgten Installation von mysql folgen noch ein paar weitere für muggle wichtige Installationsschritte:

find . -name my-medium.cnf -exec cp --backup=t \{} /etc/my.cnf \;
cd /usr/local/lib
ln -s mysql/libmysqlclient.so* .
groupadd mysql
useradd -g mysql mysql
cd ..
chown -R mysql var
mysql_install_db --user=mysql &
ldconfig

Konfiguration

Anpassen des Makefiles.

-       -I/usr/include/mysql/ -I/usr/include/taglib
+       $(shell mysql_config --include) $(shell taglib-config --cflags)

- MIFLAGS += -I/usr/include/taglib -lmysqlclient
+ MIFLAGS += $(shell taglib-config --cflags) -lmysqlclient

Starten des Servers mit.

mysqld_safe --user=mysql &

Nun können wir die Datenbank füttern, vorrausgesetzt die Mp3 Sammlung befindet sich in /mp3

mkdir /mp3
cd $SOURCEDIR/VDR/PLUGINS/src/muggle
make mugglei
cp mugglei /usr/local/bin
cd scripts
sh make-empty-db
cd /mp3
find * -path 'Assorted' -prune -o -type f -exec mugglei -z -h localhost -n GiantDisc -f \{} \;

Später via commands.conf, mit folgenden Eintrag:

Update DB : echo "cd /mp3 ; find * -path 'Assorted' -prune -o -type f -exec /usr/local/bin/mugglei -z -h localhost -n GiantDisc -f '{}' ';'"|at now

Übergabe für VDR.

vdr -P'muggle -h localhost -n GiantDisc -t /mp3' 

Für das automatische Starten des Mysql Daemons, gibt es mehrere Lösungen. Wer Runlevel Scripte mag, sollte sich die Docs anschauen.

Unterhalb von ../support-files im Sourceverzeichnis, befinden sich Templates.

Ein Eintrag in der /etc/init.d/boot.local (falls vorhanden) sollte auch langen.

# starting mysqld daemon
/usr/local/bin/mysqld_safe --user=mysql &

Als letzte Möglichkeit: einfach über die runvdr.

# starting mysqld daemon
if [ ! "$(ps axc|awk "{if (\$5==\"mysqld_safe\") print \$1}")" ] ; then
    /usr/local/bin/mysqld_safe --user=mysql &
    sleep 1s
fi

Probleme

SuSE spezifisch

Bei SuSE wurde mySQL so compiliert, dass import lokaler files nicht unterstuetzt wird. Einfach Sourcen nach der Anleitung oben übersetzen, oder z.B. rpms direkt von www.mysql.org installieren. Die SuSE eigenen Packete sollte man falls installiert entfernen, folgender Einzeiler erledigt dies:

rpm -qa|grep mysql|xargs rpm -e --nodeps

Optionen

have_vorbisfile=1 optionally libvorbis and libvorbisfile to replay OGG Vorbis files
have_flac=1 optionally libFLAC++ to replay FLAC files

Plugin

Parameter (kurz) Parameter (lang) Beschreibung
-h HHHH --host=HHHH specify database host (default is localhost)
-s SSSS --socket=PATH specify database socket (default is TCP connection)
-n NNNN --name=NNNN specify database name (overridden by -g)
-p PPPP --port=PPPP specify port of database server (default is )
-u UUUU --user=UUUU specify database user (default is )
-w WWWW --password=WWWW specify database password (default is empty)
-t TTTT --toplevel=TTTT specify toplevel directory for music (default is /mnt/music)
-g --giantdisc enable full Giantdisc compatibility mode

Mugglei

Parameter Beschreibung
-s <socket> specify a socket for mySQL communication (default is TCP)
-n <database> specify database name (default is 'GiantDisc')
-u <username> specify user of mySql database (default is empty)
-p <password> specify password of user (default is empty password)
-f <filename> name of music file to import or update
-a import track as if it was on an assorted album
-z scan all database entries and delete entries for files not found

Bedienung

Links

[1] http://www.mysql.com mySQL
[2] http://www.underbit.com/products/mad (M)PEG (A)udio (D)ecoder Homepage
[3] http://www.xiph.org/ogg/vorbis Ogg Vorbis CODEC Project
[4] http://developer.kde.org/~wheeler/taglib.html Taglib - Audio Meta-Data Library
[5] http://www.htpc-tech.de/htpc/muggle.htm Homepage des Plugins
[6] http://vdrportal.de/board/thread.php?postid=206688 snd2usb für muggle zum Schreiben auf USB Stick
[7] http://flac.sourceforge.net flac