|
|
LinuxNetMag #4
 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.
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.
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.
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/";
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)
|