Home / LinuxUser / 2004 / 08 / MP3-Jukebox mit Web-Frontend

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

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
Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

896 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...