Muggle-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Beschreibung)
(Status)
 
(48 dazwischenliegende Versionen von 26 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
'''Autor:''' Andi Kellner, Lars von Wedel, Ralf Klueber, Wolfgang Rohdewald
+
'''Autoren:''' Andi Kellner, Lars von Wedel, Ralf Klueber, Wolfgang Rohdewald
  
Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird.
+
Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird. Es stehen verschiedene Datenbanken zur Verfügung.
 +
 
 +
===Status===
 +
Letztes Update 01/2009
  
 
==Bilder==
 
==Bilder==
[[Bild:muggle-plugin.jpg|thumb|none|''Setup'']]
+
[[Bild:muggle-plugin.jpg|thumb|none|''Einstellungen'']]
  
==Hardwareanforderungen==
 
 
==Softwareanforderungen==
 
==Softwareanforderungen==
* mySQL
+
Welche Datenbank verwendet wird, muss man beim Kompilieren festlegen. Es gibt Backends für MySql Server, MySql Embedded, Postgresql und sqlite3. Details siehe README.mysql, README.postgresql, README.sqlite.
 +
* mySQL oder sqlite oder postgresql
 
* libid3tag
 
* libid3tag
 
* libmad
 
* libmad
 
* taglib
 
* taglib
* libvorbis >= libogg
+
* libvorbis >= libogg (optional)
* flac >= libogg >= nasm
+
* flac >= libogg >= nasm (optional)
  
 
==Installation==
 
==Installation==
<pre>
+
===Optionen beim Kompilieren ===
cd $SOURCEDIR
+
{| class="wikitable"
tar xvzf libid3tag-<VERSION>.tar.gz
+
|-
cd libid3tag-<VERSION>
+
| bgcolor=#efefef | HAVE_VORBISFILE=1
./configure --prefix=/usr/local
+
| verwende libvorbis und libvorbisfile für die Wiedergabe von OGG Vorbis Dateien
make
+
|-
make install
+
| bgcolor=#efefef | HAVE_FLAC=1
cd -
+
| verwende libFLAC++ für die Wiedergabe von FLAC Dateien
 +
|-
 +
| bgcolor=#efefef | HAVE_SNDFILE=1
 +
| verwende libsndfile für die Wiedergabe von .wav Dateien
 +
|-
 +
| bgcolor=#efefef | HAVE_ONLY_SERVER=1
 +
| Macht nur für MySql Sinn: Keine Unterstützung für MySql Embedded.
 +
|-
 +
| bgcolor=#efefef | HAVE_SQLITE=1
 +
| Als Datenbank wird SQLite 3 verwendet.
 +
|-
 +
| bgcolor=#efefef | HAVE_MYSQL=1
 +
| Als Datenbank wird MySql verwendet.
 +
|-
 +
| bgcolor=#efefef | HAVE_PG=1
 +
| Als Datenbank wird PostGresql verwendet.
 +
|-
 +
| bgcolor=#efefef | MUSICDIR=/mnt/music
 +
| Dies ist die Vorgabe für Option -t - dies gilt also, wenn man -t nicht übergibt.
 +
|}
  
tar xvzf libmad-<VERSION>.tar.gz
+
===Source===
cd libmad-<VERSION>
+
Nach der erfolgten Installation von mysql folgen noch ein paar weitere für ''muggle'' wichtige Installationsschritte.
./configure --prefix=/usr/local
+
make
+
make install
+
cd -
+
  
tar xvzf libogg-<VERSION>.tar.gz
+
cd /usr/local/lib
cd libogg-<VERSION>
+
ln -s mysql/libmysqlclient.so* .
./configure --prefix=/usr/local
+
groupadd mysql
make
+
useradd -g mysql mysql
make install
+
cd ..
cd -
+
chown -R mysql var
 +
ldconfig
 +
mysql_install_db --user=mysql &
  
tar xvzf libvorbis-<VERSION>.tar.gz
+
Die Installation des Plugins erfolgt an der allbekannten Stelle '''$SOURCEDIR/VDR/PLUGINS/src''' vor:
cd libvorbis-<VERSION>
+
./configure --prefix=/usr/local \
+
            --with-ogg-libraries=/usr/local/lib
+
make
+
make install
+
cd -
+
  
tar xvzf flac-<VERSION>.tar.gz
+
cd $SOURCEDIR/VDR/PLUGINS/src
./configure --prefix=/usr/local \
+
tar xvzf vdr-muggle-<VERSION>.tgz
            --with-ogg-libraries=/usr/local/lib
+
ln -s muggle-<VERSION> muggle
make
+
make install
+
cd -
+
  
tar xvzf taglib-<VERSION>.tar.gz
+
Kopieren von mugglei in den '''PATH'''.
cd taglib-<VERSION>
+
./configure --prefix=/usr/local
+
make
+
make install
+
</pre>
+
  
Sofern wir den Server nicht ''Binär'' installieren konnten, installieren wir als nächstes '''mysql'''.
+
cp $SOURCEDIR/VDR/PLUGINS/src/muggle/mugglei /usr/local/bin
  
<pre>
+
===mysql-Datenbank befüllen===
cd $SOURCEDIR
+
Als erstes starten wir den mysql-Server mit.
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
+
</pre>
+
  
Nach der erfolgten Installation von mysql folgen noch ein paar weitere für ''muggle'' wichtige Installationsschritte:
+
mysqld_safe --user=mysql &
  
<pre>
+
Nun können wir die Datenbank ''füttern''. Dazu starten wir den vdr, gehen in den Setup vom muggle - Plugin und wählen den Befehl "Datenbank synchronisieren".
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
+
</pre>
+
  
Die Installation des plugins erfolgt an der allbekannten Stelle '''$SOURCEDIR/VDR/PLUGINS/src''' vor:
+
Normalerweise ist das aber nicht nötig - wenn muggle die Datenbank nicht findet, fragt er, ob er sie anlegen und automatisch füttern soll.
 
+
<pre>
+
cd $SOURCEDIR/VDR/PLUGINS/src
+
tar xvzf vdr-muggle-<VERSION>.tgz
+
ln -s muggle-<VERSION> muggle
+
</pre>
+
 
+
Wurde, wie im oben genannten Installationsbeispiel mysql von den sourcen selbst übersetzt, muss im '''Makefile''' des muggle-plugins eine kleine Anpassung vorgenommen werden.
+
Folgende Änderungen nehmen wir in folgender Datei '''$SOURCEDIR/VDR/PLUGINS/src/muggle/Makefile''' vor:
+
 
+
<pre>
+
-      -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
+
</pre>
+
 
+
Ansonsten können wir nun das plugin wie gewohnt übersetzen
+
 
+
<pre>
+
cd $SOURCEDIR/VDR
+
make plugins
+
</pre>
+
 
+
==mysql-Datenbank befüllen==
+
Als erstes starten wir den mysql-Server mit:
+
 
+
<pre>
+
mysqld_safe --user=mysql &
+
</pre>
+
 
+
Nun können wir die Datenbank füttern, vorrausgesetzt die Mp3 Sammlung befindet sich in '''/mp3'''
+
 
+
<pre>
+
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 \{} \;
+
</pre>
+
 
+
Später via [[commands.conf]], mit folgenden Eintrag:
+
 
+
<pre>
+
Update DB : echo "cd /mp3 ; find * -path 'Assorted' -prune -o -type f -exec mugglei -z -h localhost -n GiantDisc -f '{}' ';'"|at now
+
</pre>
+
  
 
Übergabe für VDR.
 
Übergabe für VDR.
  
<pre>
+
vdr -P'muggle -t /mp3'
vdr -P'muggle -h localhost -n GiantDisc -t /mp3'
+
</pre>
+
  
Für das automatische Starten des Mysql Daemons, gibt es mehrere Lösungen. Wer Runlevel Scripte mag, sollte sich die Docs anschauen.
+
Für das automatische Starten des Mysql Daemons...
  
 
Unterhalb von '''../support-files''' im Sourceverzeichnis, befinden sich Templates.
 
Unterhalb von '''../support-files''' im Sourceverzeichnis, befinden sich Templates.
Zeile 154: Zeile 89:
 
Ein Eintrag in der '''/etc/init.d/boot.local''' (falls vorhanden) sollte auch langen.
 
Ein Eintrag in der '''/etc/init.d/boot.local''' (falls vorhanden) sollte auch langen.
  
<pre>
+
# starting mysqld daemon
# starting mysqld daemon
+
/usr/local/bin/mysqld_safe --user=mysql &
/usr/local/bin/mysqld_safe --user=mysql &
+
</pre>
+
  
Als letzte Möglichkeit: einfach über die [[runvdr]].
+
==Konfiguration==
 
+
===Parameter===
<pre>
+
====Plugin====
# starting mysqld daemon
+
{| class="wikitable"
if [ ! "$(ps axc|awk "{if (\$5==\"mysqld_safe\") print \$1}")" ] ; then
+
    /usr/local/bin/mysqld_safe --user=mysql &
+
    sleep 1s
+
fi
+
</pre>
+
 
+
==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:
+
 
+
<pre>
+
rpm -qa|grep mysql|xargs rpm -e --nodeps
+
</pre>
+
 
+
==Optionen==
+
{| border=1 cellpadding=2 cellspacing=0
+
 
|-
 
|-
| bgcolor=#efefef|HAVE_VORBISFILE=1
 
| optionally libvorbis and libvorbisfile to replay OGG Vorbis files
 
|-
 
| bgcolor=#efefef|HAVE_FLAC=1
 
| optionally libFLAC++ to replay FLAC files
 
|}
 
 
===Plugin===
 
{| border=1 cellpadding=2 cellspacing=0
 
|- bgcolor=#efefef
 
 
!Parameter (kurz)
 
!Parameter (kurz)
 
!Parameter (lang)
 
!Parameter (lang)
Zeile 208: Zeile 115:
 
| -t TTTT || --toplevel=TTTT || specify toplevel directory for music (default is /mnt/music)
 
| -t TTTT || --toplevel=TTTT || specify toplevel directory for music (default is /mnt/music)
 
|-
 
|-
| -g     || --giantdisc    || enable full Giantdisc compatibility mode
+
| -d DIRN || --datadir=DIRN  || specify directory for embedded sql data (default is $HOME/.muggle)
 +
|-
 +
| -v     || --verbose      || specify debug level. The higher the more (default is 1)
 
|}
 
|}
  
===Mugglei===
+
====Mugglei====
{| border=1 cellpadding=2 cellspacing=0
+
Je nach dem, welche Datenbank verwendet wird, stehen manche Optionen nicht zur Verfügung.
|- bgcolor=#efefef
+
 
!Parameter  
+
{| class="wikitable"
 +
|-
 +
!Parameter
 +
!Lange Form
 
!Beschreibung
 
!Beschreibung
 
|-
 
|-
|-h <hostname> || specify host of mySql database server (default is 'localhost')
+
| -h <hostname> || --name=<hostname> || Rechnername vom Datanbankserver (Vorgabe 'localhost')
 
|-
 
|-
| -s <socket>   || specify a socket for mySQL communication (default is TCP)
+
| -p <port> || --port=<port> || Port vom Datenbankserver (Vorgabe datanbankspezifisch)
 
|-
 
|-
| -n <database> || specify database name (default is 'GiantDisc')
+
| -s <socket>   || --socket=<socket> || Socket zur Datenbank (Vorgabe datenbankspezifisch, bei MySql ist es TCP)
 
|-
 
|-
| -u <username> || specify user of mySql database (default is empty)
+
| -n <database> || --name=<database> || Name der Datenbank (Vorgabe 'GiantDisc')
 
|-
 
|-
| -p <password> || specify password of user (default is empty password)
+
| -u <username> || --user=<username> || Benutzername für Datenbank (Vorgabe: leer)
 
|-
 
|-
| -f <filename> || name of music file to import or update
+
| -w <password> || --password=<password> || Passwort für Datenbank (Vorgabe: leer)
 
|-
 
|-
| -a            || import track as if it was on an assorted album
+
| -t <topleveldir> || --toplevel=<topleveldir> || Name des Musikverzeichnisses (Vorgabe ist /mnt/music respektive der beim Kompilieren angegebene Wert)
 
|-
 
|-
| -z            || scan all database entries and delete entries for files not found
+
| -z            || --delete || lösche alle Einträge in der Datenbank, deren Musikdateien fehlen
|}
+
 
+
==Bedienung==
+
==Links==
+
{|
+
| [1]
+
| http://www.mysql.com
+
| mySQL
+
 
|-
 
|-
| [2]
+
| -c            || --create || lösche die ganze Datenbank und generiere sie neu
| http://www.underbit.com/products/mad
+
| (M)PEG (A)udio (D)ecoder Homepage
+
 
|-
 
|-
| [3]
+
| -v            || --verbose || Gesprächigkeit, je höher, desto mehr. Default ist 1.
| http://www.xiph.org/ogg/vorbis
+
| Ogg Vorbis CODEC Project
+
 
|-
 
|-
| [4]
+
| -d <dirname>  || --datadir=<dirname> || Hier wird die Datenbank angelegt, wenn eine "embedded" Datenbank verwendet wird (sqlite3 oder je nach Konfiguration MySql) (Vorgabe: "$HOME/.muggle")
| http://developer.kde.org/~wheeler/taglib.html
+
|}
| Taglib - Audio Meta-Data Library
+
 
|-
+
==Entwicklerversion==
| [5]
+
git clone git://projects.vdr-developer.org/vdr-plugin-muggle.git
| http://vdrportal.de/board/thread.php?postid=206688
+
 
| snd2usb für muggle zum Schreiben auf USB Stick
+
==Aktuelle Version==
|-
+
[http://projects.vdr-developer.org/attachments/download/53/vdr-muggle-0.2.3.tgz 0.2.3]
| [6]
+
 
| http://flac.sourceforge.net
+
==Links==
| flac
+
# [http://projects.vdr-developer.org/projects/show/plg-muggle Homepage des Plugins]
|-
+
 
| [7]
+
[[Kategorie:Plugins]]
| http://www.htpc-tech.de/htpc/muggle.htm
+
{{i18n|muggle-plugin}}
| Homepage des Plugins
+
|}[[Kategorie:Plugins]]
+

Aktuelle Version vom 18. August 2013, 12:36 Uhr

Inhaltsverzeichnis

[Bearbeiten] Beschreibung

Autoren: Andi Kellner, Lars von Wedel, Ralf Klueber, Wolfgang Rohdewald

Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird. Es stehen verschiedene Datenbanken zur Verfügung.

[Bearbeiten] Status

Letztes Update 01/2009

[Bearbeiten] Bilder

Einstellungen

[Bearbeiten] Softwareanforderungen

Welche Datenbank verwendet wird, muss man beim Kompilieren festlegen. Es gibt Backends für MySql Server, MySql Embedded, Postgresql und sqlite3. Details siehe README.mysql, README.postgresql, README.sqlite.

  • mySQL oder sqlite oder postgresql
  • libid3tag
  • libmad
  • taglib
  • libvorbis >= libogg (optional)
  • flac >= libogg >= nasm (optional)

[Bearbeiten] Installation

[Bearbeiten] Optionen beim Kompilieren

HAVE_VORBISFILE=1 verwende libvorbis und libvorbisfile für die Wiedergabe von OGG Vorbis Dateien
HAVE_FLAC=1 verwende libFLAC++ für die Wiedergabe von FLAC Dateien
HAVE_SNDFILE=1 verwende libsndfile für die Wiedergabe von .wav Dateien
HAVE_ONLY_SERVER=1 Macht nur für MySql Sinn: Keine Unterstützung für MySql Embedded.
HAVE_SQLITE=1 Als Datenbank wird SQLite 3 verwendet.
HAVE_MYSQL=1 Als Datenbank wird MySql verwendet.
HAVE_PG=1 Als Datenbank wird PostGresql verwendet.
MUSICDIR=/mnt/music Dies ist die Vorgabe für Option -t - dies gilt also, wenn man -t nicht übergibt.

[Bearbeiten] Source

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

cd /usr/local/lib
ln -s mysql/libmysqlclient.so* .
groupadd mysql
useradd -g mysql mysql
cd ..
chown -R mysql var
ldconfig
mysql_install_db --user=mysql &

Die Installation des Plugins erfolgt an der allbekannten Stelle $SOURCEDIR/VDR/PLUGINS/src vor:

cd $SOURCEDIR/VDR/PLUGINS/src
tar xvzf vdr-muggle-<VERSION>.tgz
ln -s muggle-<VERSION> muggle

Kopieren von mugglei in den PATH.

cp $SOURCEDIR/VDR/PLUGINS/src/muggle/mugglei /usr/local/bin

[Bearbeiten] mysql-Datenbank befüllen

Als erstes starten wir den mysql-Server mit.

mysqld_safe --user=mysql &

Nun können wir die Datenbank füttern. Dazu starten wir den vdr, gehen in den Setup vom muggle - Plugin und wählen den Befehl "Datenbank synchronisieren".

Normalerweise ist das aber nicht nötig - wenn muggle die Datenbank nicht findet, fragt er, ob er sie anlegen und automatisch füttern soll.

Übergabe für VDR.

vdr -P'muggle -t /mp3'

Für das automatische Starten des Mysql Daemons...

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 &

[Bearbeiten] Konfiguration

[Bearbeiten] Parameter

[Bearbeiten] 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)
-d DIRN --datadir=DIRN specify directory for embedded sql data (default is $HOME/.muggle)
-v --verbose specify debug level. The higher the more (default is 1)

[Bearbeiten] Mugglei

Je nach dem, welche Datenbank verwendet wird, stehen manche Optionen nicht zur Verfügung.

Parameter Lange Form Beschreibung
-h <hostname> --name=<hostname> Rechnername vom Datanbankserver (Vorgabe 'localhost')
-p <port> --port=<port> Port vom Datenbankserver (Vorgabe datanbankspezifisch)
-s <socket> --socket=<socket> Socket zur Datenbank (Vorgabe datenbankspezifisch, bei MySql ist es TCP)
-n <database> --name=<database> Name der Datenbank (Vorgabe 'GiantDisc')
-u <username> --user=<username> Benutzername für Datenbank (Vorgabe: leer)
-w <password> --password=<password> Passwort für Datenbank (Vorgabe: leer)
-t <topleveldir> --toplevel=<topleveldir> Name des Musikverzeichnisses (Vorgabe ist /mnt/music respektive der beim Kompilieren angegebene Wert)
-z --delete lösche alle Einträge in der Datenbank, deren Musikdateien fehlen
-c --create lösche die ganze Datenbank und generiere sie neu
-v --verbose Gesprächigkeit, je höher, desto mehr. Default ist 1.
-d <dirname> --datadir=<dirname> Hier wird die Datenbank angelegt, wenn eine "embedded" Datenbank verwendet wird (sqlite3 oder je nach Konfiguration MySql) (Vorgabe: "$HOME/.muggle")

[Bearbeiten] Entwicklerversion

git clone git://projects.vdr-developer.org/vdr-plugin-muggle.git

[Bearbeiten] Aktuelle Version

0.2.3

[Bearbeiten] Links

  1. Homepage des Plugins
In anderen Sprachen