Open Source im professionellen Einsatz
Linux-Magazin 08/2003

Web-Jukebox mit Perl und Apache::MP3

Überall Musik

Das Modul Apache::MP3 baut eine komfortable Web-Jukebox um lose MP3-Sammlungen. Ein zusätzliches Perl-Skript macht die Songauswahl für den Musikliebhaber noch komfortabler.

428

Während der letzten Monate habe ich meine Drohung aus[2] wahr gemacht und meine CDs zu MP3s gerippt, um sie auf einer nagelneuen Riesen-Festplatte (120 GByte) zu speichern. Dann stöpselte ich ein Kabel in die Soundkarte, verband es mit der Stereoanalage und knipste mit dem Browser fortan fröhlich in tausenden Titeln herum. Erstaunlich, was ich bislang zwar besessen aber nicht wahrgenommen hatte! Als der erste Rausch vorbei war, begann ich Perl-Skripte zu schreiben, um den Wahnsinn noch etwas weiter zu treiben.

Es war natürlich schon eine Heidenarbeit, 200 CDs einzulesen. Wer den hohen Aufwand scheut, der möge sich ein paar Fragen stellen: Schon mal daran gedacht, innerhalb von Sekunden einfach irgendeinen Song anzuknipsen, der gerade im Kopf herumgeistert? Oder Songs per Stichwort zu suchen und sofort abzuspielen? Playlists zu erstellen, zu verwalten und bei Bedarf abzuhören? Den Musikserver übers Ethernet von mehreren Servern/Stereoanlagen in der gesamten Wohnung zu nutzen? Oder Songs nach Schmuse-Faktor zu kategorisieren und dem Anlass entsprechend einfach ein Dutzend auszuwählen? Und das alles völlig legal?

Wer sich erst mal daran gewöhnt hat, nicht mehr mit Silberscheiben zu hantieren, und die erweiterten Such- und Sortiermechanismen schätzt, der kann sich kaum mehr vorstellen, welch absurde Tätigkeiten in der Steinzeit der CD-Technologie noch notwendig waren, um Musik zu hören.

Der Ripper schlägt zu

Zum Rippen nutzte ich das Perl-Skript »crip«, das es unter[3] als freie Software gibt. Einfach eine CD ins Laufwerk einlegen - schon kontaktiert »crip« die CDDB-Datenbank, um Interpreten, Album- und Titelinformationen einzuholen. Die legt es es dann bei jedem Song zusammen mit der Musik in einer MP3-Datei ab. Zuerst wollte ich ja auf Ogg Vorbis umsteigen, was »crip« neuerdings ausschließlich unterstützt (MP3 nur bis Version 1.0), musste aber diesen Plan streichen, da der tragbare MP3-Player meiner Frau das Format nicht unterstützt. C\'est la vie!

MP3-Partitionen

Um die gigantische Datenmenge besser partitionieren zu können (immerhin 25 GByte), verteilen sich die MP3s auf so genannte Pods, also dreistellig durchnummerierte Unterverzeichnisse (001, 002 ...) mit jeweils 700 MByte Daten. Woher der Wert? Passt bequem auf eine CD-ROM, um die mühevolle Ripp-Arbeit zu sichern. Um zum Beispiel Pod »027« zu sichern, muss ich nur einen Rohling einlegen und

cdr 027


tippen, schon springt der Brenner an. »cdr« ist ein einfaches Shellskript, das nur die Zeile

mkisofs -R $* | cdrecord -v speed=4 
dev=0,0 -


enthält. Wenn das nicht ausreicht, zeigt[8] ein paar nützliche Tricks, um handelsübliche CD-Brenner unter Linux anzusprechen.

In ein Pod passen etwa 150 bis 200 MP3-Dateien, 33 Pod-Verzeichnisse legte ich insgesamt an: 001 bis 033.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Datenfischer

    XML ist ein nicht überall heiß geliebtes, aber viel genutztes Austauschformat. Für Perl gibt es sehr viele Erweiterungen, um bequem in diesem Datenmeer zu fischen. Der heutige Snapshot diskutiert Vor- und Nachteile der gängigen XML-Module — das jeweils zweckmäßigste ist dann schnell gefunden.

  • Objekte statt Tabellen

    In objektorientiertem Programmcode wirken SQL-Abfragen wie Fremdkörper. Zudem unterscheiden sich die SQL-Dialekte verschiedener Datenbanken. Die Lösung: Der Objekt-Relational-Mapper SQL Object stellt ein einheitliches objektorientiertes Interface zur Verfügung.

  • Perl-Snapshot

    USB-Sticks und SD-Karten verlieren schnell an Wert. Verteilt ein Skript Daten auf mehrere solcher Speicher, taugen Flashspeicher trotz begrenzter Kapazität als schnelle und zudem stoßsichere Backupmedien.

  • Trainierter DJ

    Je nach Stimmungslage haben Musikliebhaber mal Lust auf Rock, mal auf Schmusepop. Ein MP3-Player mit grafischer GTK-Oberfläche wählt aus der privaten Sammlung passende Lieder aus, erstellt eine Playliste und spielt sie ab. Das Perl Object Environment sorgt dafür, dass alles flüssig abläuft.

  • Zoidberg: Shell für Perl-Liebhaber

    Der Perl-Entwickler Joel Berger hat Zoidberg, eine modulare Perl-Shell, wiederbelebt.

comments powered by Disqus

Ausgabe 06/2017

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.