LinuxNetMag
Web-Jukebox: IceDJ
Archiv | Home
Inhalt
   
LinuxNetMag #4

  Software
 Aktuell
kurz vorgestellt
 HTML
Web Preprozessor
HTML-Editoren
 Internetradio
eigene Radiostation
Web-Jukebox IceDJ
 Spiele
Rennspiele
Entwicklung: XTux
 Astronomie
Sternenkarten
Flug durch Sonnensystem
Doppelsterne simulieren
  
 

Hardware

Kernel kompilieren
Soundkarte als Oszilloskop
Grafikkarten im Vergleich
  
 

Netzwerk

Web-Seiten überprüfen
Samba Teil II
Chat für Ihre Homepage
FTP-Server & Clients
Modem-sharing
Links
  
 Wissen
Der Bootprozeß
Gimp-Kurs Teil 1
Gimp-Kurs Teil 2
  
 

Sonstiges

Mailing-Liste
Gästebuch
Artikelliste
Unterstützen Sie uns !
zurück zur Hauptseite



Druckversion


 
Was nutzt schon eine Inter-/Intranet Radiostation, wenn man das Programm nicht mitbestimmen kann.
Mittels IceDJ kann jeder sich seine Lieblingstitel wünschen, und der Radiosender wird zur weltweiten Jukebox.

Fähigkeiten

Bei IceDJ handelt es sich eigentlich um eine Sammlung von CGI-Scripten, mittels denen man über einen Web-Browser einen bestehenden Icecast-Server ansteuern kann.
Das Programm fungiert dabei als eine Art Jukebox. Aus einer Liste von angebotenen Titeln kann man sich seine Lieblingslieder aussuchen. Diese werden dann, sobald sie an der Reihe sind, auch gespielt.
Zusätzlich kann man zeitgesteuert bestimmte Radioprogramme senden, z.B. jeden Tag zu einer bestimmten Uhrzeit die bisherigen Top 10 Titel wiederholen.

Installation

Leider gestaltet sich die Installation von IceDJ nicht ganz unkompliziert - aber keine Angst, ich hab's schließlich auch geschafft. Auch für dieses Programm gilt das gleiche wie für viele andere Linux-Programme:
Hat man sich erst einmal durch die Installation hindurchgearbeitet, läuft das Programm bis in alle Ewigkeiten ohne weiteren Handschlag.
Als erstes sollte man IceDJ aus dem Internet herunterladen:
http://www.remixradio.com/icedj/
Die momentan aktuelle Version ist 0.9.14, und alle folgenden Installationsschritte werden sich auf diese Version beziehen.

Die Datei sollte zuerst in das tmp-Verzeichnis entpackt werden:

>> tar zxvf icedj-0.9.14.tar.gz -C /tmp/
und danach das erzeugte Verzeichnis vom Web-Administrator (teilweise wwwadmin) auf den Web-Server kopiert werden (Das Verzeichnis des Web-Servers befindet sich bei SuSE unter /usr/local/httpd/)
>> cp -a /tmp/icedj-0.9.14/ /usr/local/httpd/htdocs/icedj
>> cd /usr/local/httpd/htdocs/icedj
Zum Starten von IceDJ wird das Programm icedj.pl benutzt. Dieses sucht allerdings den Perl-Interpreter unter /opt/bin/, schlechte Chancen, diesen unter gängigen Linux-Distributionen dort zu finden. Also müssen die meisten Benutzer die erste Zeile dieses Scriptes ändern nach
 #!/usr/bin/perl
oder wo sich Ihr Perl-Interpreter auch immer befinden mag.

Als nächstes müssen wir eine Konfigurationsdatei anlegen, die icedj.pl dann später auswerten soll. Dafür kopieren wir die mitgelieferte Beispieldatei,

>> cp data/example.conf data/MyOwnRadio.conf
und passen sie an unsere eigenen Bedürfnisse an. Die meisten Einträge erklären sich von selbst. Im Folgenden stehen diejenigen Einträge, die unbedingt angepaßt werden sollten:

data/MyOwnRadio.conf
 #Der Name Ihres Radio-Senders
 name		NetMag Broadcast

 #Das Genre der von Ihnen angebotenen Musik
 genre		various

 #Ihre URL des Servers, auf dem IceDJ läuft
 url		http://www.linuxnetmag.de

 #Name des Servers auf dem Icecast läuft. Zumeist der selbe Rechner
 #auf dem auch iceDJ läuft. Hier sollten Sie lieber die
 #IP-Nummer nehemen. In Lokalen Netzen kann es ansonsten
 #zu Problemen kommen
 server		192.168.1.1

 #Der Port, unter dem Icecast angesprochen wird. In unserem 
 #Beispiel 8010
 port		8010

 #Wenn Sie nicht öffentlich aufgelistet werden wollen benutzen
 #Sie hier
 public		0

 #Die Bitrate Ihrer mp3-Dateien (im Lokalen Netz 128 bit)
 #Leider können Sie dann nur MP3-Dateien einer Bitrate abspielen
 bitrate		128

 #Das Passwort, welches sie bei der Icecast-Konfiguration als
 #Admin_Passwd eingestellt haben
 password	meinpasswort

 [...]

 #Das Verzeichnis, in dem sich die mp3-Dateien befinden
 mp3root		/tmp/mp3/

 #Den nächsten Eintrag sollten Sie kommentieren
 #source

 #Das Verzeichnis, in das die IcecDJ-Webseiten kopiert werden sollen 
 webroot		/usr/local/httpd/htdocs/icedj/web/

 #Ihre E-Mail-Adresse, falls Fehler auftreten
 email		[email protected]

 #Normalerweise kann ein Besucher nur eine begrenzte Anzahl an Titel
 #wählen. Von dieser Beschränkung können Sie hier bestimmte 
 #IP-Adressen ausschließen
 specialip	255.255.255.255 128.128.128.*

 #Benutzer, die von der Benutzung von IceDJ ausgeschlossen werden
 #kommen hier hin
 blockip		192.168.13.24

 #Wir wollen kein Aufsehen erregen, also
 updateMP3spy	0

 [...]

 #Wir wollen keine Statistiken, also eine Raute vor die beiden
 #Statistik-Variablen
 #serverlog      http://icecast.yourserver.com/~icecast/iceca...

 #server statistics  
 #serverstat	 http://icecast.yourserver.com/~icecast/icecas... 

 [...]

 #Das Verzeichnis, in dem sich die icedj-Scripte befinden
 scriptpath /usr/local/httpd/htdocs/icedj/

 #Der Pfad zum Programm shout
 streamer /usr/local/icecast/bin/shout

Nun müssen wir noch die Playliste aller asuwählbarer Titel aufstellen.
Diese Datei befindet sich im Unterverzeichnis data. In dieser Datei werden hintereinander der MP3-Name, der Interpret, der Titel des Songs, und bei Bedarf auch eine zugehörige Internetseite eingegeben.
Alle Angaben werden mittels Tabulator getrennt. Benutzen sie jeweils nur einen Tabulator, ansonsten interpretiert IceDJ die Eingabe als Leeres Feld.
Dadurch kann man innerhalb der Playliste leider die Einträge nicht spaltenweise untereinander anordnen, und die Tabelle wird schnell unübersichtlich:

data/playlist -- Beispieleinträge
Sting__Fields_Of_Gold.mp3	Sting	Fields Of Gold	http://www.sting.uk
Along_Comes_Mary.mp3	Bloodhound Gang	Along Comes Mary

Als letztes müssen noch die Template-Dateien angepaßt werden, aus denen IceDJ die HTML-Seiten generiert. Diese Seiten befinden sich im Unterverzeichnis web.
So muß in der Datei playlist.tmpl der Eintrag der Form

<A HREF="http://www.yourserver.com/cgi-bin/request.pl?conf=<!conf>&uniqueID=<!uniqueID>"><!title></A>
ersetzt werden zu einem Verweis auf den eigenen Server, also bei unserer Installation nach
<A HREF="http://mein.server.de/icedj/cgi-bin/request.pl?conf=<!conf>&uniqueID=<!uniqueID>"><!title></A>
Nachdem wir nun alles konfiguriert haben, kann IceDJ das erste mal testweise gestartet werden.
Dafür muß als erstes der Icecast-Server gestartet werden (auf Port 8010):
>> /usr/local/icecast/bin/icecast -P 8010
und danach das IceDJ-Script. Diesem Script wird als Option die zu benutzende Konfigurationsdatei mitgeliefert:
>> ./icedj.pl data/MyOwnRadio.conf  
Sollte jetzt alles funktionieren, fängt IcdDJ an die Mp3-Musik an den Shoutcast-Server zu übertragen:

IcedDJ Ausgabe
reading config from data/MyOwnRadio.conf

-----------------------------
  i c e d j - Version 0.9.14
-----------------------------

IceDJ comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of IceDJ under the terms of the
GNU General Public License.
For more information about these matters, see the file named COPYING.

-----------------------------

Initializing Playlist...

Spawning Shout...
starting 128Kbps stream...
Playing /tmp/mp3/Along_Comes_Mary.mp3
[3:20] Size: 3203239 Bitrate: 128000 (41067 bytes/dot)
[...playing  Along Comes Mary by Bloodhound Gang
....Updating Webpages...

Gleichzeitig beginnt IceDJ die Web-Seiten zu erzeugen und auf den Server zu kopieren.

Web-Seiten

Sie finden die von IceDJ erzeugten Seiten jetzt auf Ihrem Server im Unterverzeichnis /icedj/web/.
Gehen Sie nun auf die Seite /icedj/web/playlist.html. Auf dieser Seite finden Sie am unteren Ende eine Liste aller Titel, die in der Datei /data/playlist eingetragen wurden. Um nun einen Titel für die Jukebox auszuwählen, klicken Sie einfach auf den dazugehörigen Link.
Sollte statt einer neuen HTML-Seite ein Downloadfenster im Browser geöffnet werden, dann ist Ihr Apache Web-Server noch nicht richtig konfiguriert, und erkennt das CGI-Script nicht als auszuführende Datei.
Für die entsprechende Konfiguriation führen Sie folgende Schritte aus (Siehe auch Artikel Apache als Web-Server).
In der Datei /etc/httpd/srm.conf (oder wo sich die Konfigurationsdateien von Apache bei Ihnen befinden) benötigen Sie im Abschnitt ScriptAlias folgenden Eintrag:

Datei /etc/httpd/srm.conf
 # ScriptAlias: This controls which directories contain server scripts. 
 # Format: ScriptAlias fakename realname 

 ScriptAlias /cgi-bin/ "/usr/local/httpd/cgi-bin/" 
 ScriptAlias /icedj/cgi-bin/ "/usr/local/httpd/htdocs/icedj/cgi-bin/"

Hier müssen Sie also das Verzeichnis einfügen, in dem sich die IceDJ-Scripte befinden.

Um die Änderungen zu aktivieren, starten Sie den Web-Server neu (als root):

>> /sbin/init.d/apache restart
oder booten Sie notfalls neu, falls sie das Init-Script nicht finden sollten.
Versuchen Sie es nun, erneut in der Datei playlist.html auf einen Titel zu klicken. Sollten Sie nun statt eines Downloadfensters ein Fehlermeldung folgender Art erhalten:

Fehlermeldung

Forbidden

You don't have permission to access /icedj/cgi-bin/request.pl on this server.


Apache/1.3.3 Server at mein.server.de Port 80

Dann sind die Rechte für die CGI-Scripte noch nicht richtig gesetzt.
Ein kurzes

>>chmod o+x request.pl
erlaubt auch allen anderen Besuchern der Web-Seite das Script zu benutzen.
Zusätzlich müssen die Besucher noch Schreibberechtigung für das data-Verzeichnis erhalten:
>> chmod o+w data
Außerdem müssen Sie in Zeile 57 des Scriptes cgi-bin/reques.pl folgenden Eintrag ändern:
$CONF{'datadir'} = "$DOCROOT/data/";
Geben Sie hier stattdessen den absoluten Pfad zum data-Verzeichnis an:
$CONF{'datadir'} = "/usr/local/httpd/htdocs/icedj/data/";

Feinarbeit

Nun sollte alles wie gewünscht funktionieren. Leider sind die mitgelieferten Templates der generierten HTML-Seiten ziemlich düster und überfrachtet mit unnützen Statistiken.
Um die generierten Seiten an eigene Bedürfnisse anzupassen, müssen die Template-Dateien im web-Unterverzeichnis mit einem beliebigen Text-Editor angepaßt werden. Wenn Sie sich etwas Arbeit sparen wollen, benutzen Sie ruhig die von uns generierten "Templates" (download templates).
Kopieren sie diese Templates über die mitgelieferten Dateien, nachdem sie von den Original-Templates eine Sicherheitskopie angelegt haben.
Sie können die Templates sogar austauschen, während IceDJ läuft, ohne das es zu Problemen kommt, da das Programm nur in einem Abstand von einigen Sekunden auf die Dateien zugreift.

Nun können sie mit einem beliebigen MP3-Player eine Verbindung zum Icecast-Server herstellen, und über die Web-Seiten die jeweils gewünschten Titel auswählen, und das weltweit.
Allerdings hat das Programm immer noch einige Schwächen.
Neben der etwas umständlichen Installation, ist das Programm nur in der Lage, mp3-Dateien einer bestimmten Bitrate zu übertrgen. Sollte ein Musikstück haken und immer wieder von Pausen unterbrochen werden, so liegt dies daran, daß die Mp3-Datei in einer anderen Bitrate encodiert wurde.
Außerdem sollte man IceDJ nicht beim Booten automatisch starten (z.B. durch ein Init-Script), denn wenn das Script nicht die in der Playlist aufgeführten Dateien findet, versucht es immer wieder diese zu laden und verbraucht dabei immer mehr RAM-Speicher, bis schließlich der Swap und RAM aufgebraucht sind und der Rechner sich nicht mehr bedienen läßt.
Deshalb sollte man IceDJ immer noch per Hand starten, oder sicher sein, daß sich die MP3-Dateien immer am selben Platz befinden.


Links:
Homepage IceDJ: http://www.remixradio.com/icedj/


Platz für Kommentare & Fragen:
(selbst eintragen)

 

Weitere Ausgaben Linux NetMag
[ #1 | #2 | #3 | #4 | Main ]