musik_s.jpg

Stapeln und spielen

MP3-Jukebox mit Web-Frontend

01.08.2004
Eine große MP3-Sammlung auf dem Server ist nicht mehr ungewöhnlich. Damit wird der Computer zur elektronischen Jukebox, die Sie mit der Web-Applikation Otto bequem fernsteuern.

Viele Besitzer einer digitalen Musiksammlung wünschen sich, dass der Computer den Sound über die normale Wohnzimmer-Stereoanlage wiedergibt. Dazu kann man einen leisen Rechner in ihrer Nähe platzieren oder den vorhandenen Linux-Server, der als Gateway ins Internet dient, zum Abspielen verwenden – ein entsprechend langes Audiokabel vorausgesetzt.

Bleibt nur noch die Frage, wie man die gerade gewünschte Musik auswählt. Eine Web-Schnittstelle ist dafür ganz praktisch, denn die lässt sich von einem beliebigen Rechner im Heimnetzwerk oder gar einem WWW-fähigen PDA wie dem Zaurus benutzen. Noch ungebundender geht es nur noch mit Wireless LAN.

Otto ist eine solche web-basierte Jukebox [1], deren Funktion Abbildung 1 illustriert: Auf dem Musikserver läuft ein Apache-Webserver [2], der das Otto-CGI-Skript ausführt. Dieses erfährt aus einer MySQL-Datenbank, die auf demselben Rechner laufen kann, aber nicht muss, welche Musikstücke zur Auswahl stehen. Ein extra Otto-Skript trägt diese Informationen in die Datenbank ein. Zum tatsächlichen Abspielen benutzt Otto externe Programme, beispielsweise mpg123 [3] für MP3-Dateien. Die Musikdateien müssen also auf dem Rechner liegen, auf dem auch der Webserver läuft.

Abbildung 1: So spielen die Otto-Komponenten zusammen.

Otto-Dateien installieren

Die Jukebox-Software von [1] oder der Heft-CD entpacken Sie in einem temporären Verzeichnis:

tar xzvf otto-2.0.tar.gz

Dabei entsteht ein neues Unterverzeichnis otto-2.0, das Sie als Systemadministrator root nach /usr/local verschieben und im gleichen Schritt in otto umbenennen:

mv otto-2.0 /usr/local/otto

Es empfiehlt sich, Otto tatsächlich in /usr/local/otto zu installieren, da dieser Pfad an einigen Stellen im Programm einkodiert ist.

Perl-Module finden

Die Software selbst ist in der Programmiersprache Perl geschrieben und benutzt einige spezielle Module, also Erweiterungspakete. Tabelle 1 fasst zusammen, welche Pakete Sie dafür bei Debian und Suse installieren müssen. Falls Sie eine andere Distribution verwenden, halten Sie nach ähnlich benannten Paketen Ausschau oder laden Sie sie notfalls von [4] herunter und installieren Sie von Hand. Wie das genau geht, verrät Kasten 1.

Kasten 1: Automatisch installieren vom CPAN

Perl-Module muss man nicht von Hand herunterladen und installieren, denn ein mitgeliefertes Modul übernimmt einen großen Teil der Arbeit. Es heißt CPAN und Sie rufen es als Administrator mit folgender Kommandozeile auf:

perl -MCPAN -e shell

Beim ersten Aufruf stellt es Ihnen diverse Fragen, bei denen Sie getrost die Standard-Antwort mit [Eingabe] akzeptieren können, wenn Sie nicht genau wissen,was sie sonst angeben sollen. Vorab sollten Sie allerdings mit which programm prüfen, ob die Kompressionstools gzip und unzip, das Archivprogramm tar, make, die FTP-Clients ncftp und ftp, das wget-Download-Tool für Webseiten und das Verschlüsselungstool gpg installiert sind.

Irgendwann erkundigt sich die Konfigurationsroutine nach dem Kontinent und dem Land, in dem Sie leben – wählen sie erst die Zahl 4 für Europe und dann die 11 für Germany. In der nachfolgenden Liste sehen Sie alle Perl-Modul-Server in Deutschland; wählen Sie davon drei beliebige aus, z. B. 3 7 10. Nach einem weiteren [Enter] meldet sich das CPAN-Modul mit dem Prompt cpan> und erwartet Befehle.

Mit install Modulname installieren Sie ein Modul, zum Beispiel install MP3::Info. Daraufhin löst CPAN alle Abhängigkeiten auf, lädt das eigentliche und alle zusätzlich benötigten Module herunter, konfiguriert sie und legt sie in den Perl-Modul-Verzeichnissen unter /usr/local ab. Dort geraten sie nicht in Konflikt mit den Dateien Ihrer Distribution.

Sind alle nötigen Module installiert, beendet der Befehl quit am cpan>-Prompt das Programm.

Ob sich schon alle nötigen Module auf dem System befinden, testen Sie mit folgendem Kommando:

perl /usr/local/otto/lib/Otto.pm

Findet das Perl-Programm dabei alle zwingend nötigen Module und vermisst höchstens optionale, lautet die letzte Zeile der Ausgabe dieses Kommandos

all required modules loaded OK

und Sie können zum nächsten Schritt übergehen. Falls nicht, müssen Sie in jedem Fall die fehlenden Module nachinstallieren, die die das Programm mit required kennzeichnet, im folgenden Beispiel DBD::mysql:

DBD::mysql (required) failed to load

Das optionale Term::Readline-Modul brauchen Sie, wenn Sie auch die textbasierte Schnittstelle zu Otto nutzen möchten. Diese rufen Sie mit dem Kommando /usr/local/otto/bin/otto auf. Für normale Anwendungsfälle reicht die Web-Schnittstelle aber völlig.

Das Modul MP3::Info brauchen Sie nur, wenn Otto die ID3-Tags der Dateien auslesen soll. Shout ist vor allem für Fortgeschrittene interessant, denn damit wird Otto zum MP3-Internetradio. Die beiden Unicode-Module helfen dabei, Stücke zu verarbeiten, die andere Zeichen als nur A bis Z enthalten; zur Zeit unterstützt Otto allerdings nur griechische Buchstaben vollständig. Aber keine Sorge, Stücke mit deutschen Umlauten lassen sich auch abspielen, nur beim Sortieren hakt es ein bisschen.

Tabelle 1: Nötige Perl-Module

Modul Funktion Debian Suse CPAN-URL
DBI enthält Funktionen, die die Nutzung von Datenbanken aus Perl-Programmen heraus erlauben libdbi-perl perl-DBI http://cpan.uwinnipeg.ca/module/DBI
DBD::mysql enthält Funktionen, mit denen Perl-Programme MySQL-Datenbankserver ansprechen können libdbd-mysql-perl perl-Msql-Mysql-modules http://cpan.uwinnipeg.ca/module/DBD::mysql
HTML::Template hilft beim dynamischen Generieren von HTML-Seiten libhtml-template-perl perl-HTML-Template http://cpan.uwinnipeg.ca/module/HTML::Template
Optionale Module
Term::ReadLine enthält Funktionen, die textbasierte Benutzerschnittstellen verbessern libterm-readline-perl-perl   http://cpan.uwinnipeg.ca/module/Term::ReadLine
MP3::Info erlaubt das Auslesen von ID3-Tags aus MP3-Dateien libmp3-info-perl   http://cpan.uwinnipeg.ca/module/MP3::Info
Shout hilft beim Ausstrahlen von Shoutcast-Internetradios kein CPAN-Modul, nur herunterladbar von http://www.icecast.org/download.php
Unicode::Map konvertiert zwischen Unicode und anderen Schriftkodierungen libunicode-map8-perl perl-Unicode-Map8 http://cpan.uwinnipeg.ca/module/Unicode::Map
Unicode::String enthält Funktionen zum Arbeiten mit Unicode-enkodierten Zeichenketten libunicode-string-perl perl-Unicode-String http://cpan.uwinnipeg.ca/module/Unicode::String

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

title_2014_09

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...