====== RaspberryPi als Internetradio ======
---- datatemplateentry project ----
template : templates:project
name : RaspberryPi Internetradio
persons : marco
start : 2013-04-04
end : 2013-04-04
imgname_img90 : none.png
status_ : aktualisiert 2018-04-26
----
Ziel dieses Projektes ist, auf dem RaspberryPi ein Internetradio zu installieren.
Bedienbar soll das Ganze dann über eine Weboberfläche sein, also über den Browser vom PC, Tablett oder Handy.
Somit werden keine Bedienteile am Raspberry selbst benötigt.\\
\\
Ich gehe jetzt in der folgenden Beschreibung davon aus, dass das System mit dem Raspbian “strech”-Image (hier 2018-03-13-raspbian-stretch-lite.img) von [[http://www.raspberrypi.org/downloads|RaspberryPi.org]] grundinstalliert ist, im Netzwerk hängt und per ssh erreichbar ist.\\
Optional zu ssh kann natürlich ein Monitor und eine Tastatur angeschlossen werden.\\
\\
Anmerkung:\\
Im aktuellen Raspbian-Image ist der Benutzer //pi// mit dem Passwort //raspberry// vorgeleistet.\\
----
===== Schritt 1: Installation des Webservers =====
Da die Bedienung über eine Weboberfläche laufen soll, braucht man natürlich einen Webserver.\\
Dieser sollte möglichst sparsam mit den Resourcen umgehen. Deshalb kommt [[http://www.lighttpd.net|lighttpd]] zum Einsatz.\\
Zusätzlich muss, falls noch nicht vorhanden, php (hier php7.0) installiert werden.\\
\\
* Pakete von lighttpd installieren
pi@raspberrypi ~ $ sudo apt-get install lighttpd
* PHP7.0 Pakete installieren
pi@raspberrypi ~ $ sudo apt-get install php7.0 php7.0-cgi
* Nach der Installation das Modul fastcgi aktivieren
pi@raspberrypi ~ $ sudo lighty-enable-mod fastcgi
Enabling fastcgi: ok
Run /etc/init.d/lighttpd force-reload to enable changes
* Jetzt wird die lighttpd.conf angepasst.
Dazu wird diese mit einem Editor geöffnet.
sudo nano /etc/lighttpd/lighttpd.conf
und folgendes ans Ende der Datei eingefügt:
fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php5-cgi", "socket" => "/tmp/php.socket" )))
Speichern nicht vergessen! Im Falle des hier benutzten Editors nano geht das mit der Tastenkombination Strg+o, ENTER und Strg+x.
Nun wird der Benutzer pi in die Gruppe www-data hinzugefügt
pi@raspberrypi ~ $ sudo adduser pi www-data
Füge Benutzer »pi« der Gruppe »www-data« hinzu ...
Benutzer pi wird zur Gruppe www-data hinzugefügt.
Fertig.
und es werden noch ein paar Rechte angepasst.
pi@raspberrypi ~ $ sudo chown -R www-data:www-data /var/www
pi@raspberrypi ~ $ sudo chmod -R 775 /var/www
Jetzt noch ein Neustart des Webservers:
pi@raspberrypi ~ $ sudo /etc/init.d/lighttpd force-reload
[ ok ] Reloading web server configuration: lighttpd.
und dann der Test:
im Browser die IP-Adresse oder den Hostname bom RaspberryPi eingeben und es sollte ungefähr so aussehen:
{{:projekte:wiki_lighttpd_webserver.png?nolink&300|}}
----
===== Schritt 2: Der eigentliche Player =====
Nachdem der Webserver jetzt läuft, gehts an das Internetradio selbst.\\
Für das Raspberry-Internetradio installiert man Music Player Daemon (mpd) und Music Player Command (mpc).
pi@raspberrypi ~ $ sudo apt-get install mpd mpc
Nun müssen in der Datei /etc/mpd.conf einige Einstellungen angepasst werden.
Dazu wird diese mit
pi@raspberrypi ~ $ sudo nano /etc/mpd.conf
geöffnet und folgende Änderungen durchgeführt.
.
.
.
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
# log_file "/var/log/mpd/mpd.log" <---- auskommentieren
#
..
.
#
# For network
bind_to_address "127.0.0.1" <---- ändern in 127.0.0.1
#
..
.
# MPD Internal Buffering ######################################################
#
# This setting adjusts the size of internal decoded audio buffering. Changing
# this may have undesired effects. Don't change this if you don't know what you
# are doing.
#
audio_buffer_size "2048" <---- Kommmentarzeiche # entfernen
#
# This setting controls the percentage of the buffer which is filled before
# beginning to play. Increasing this reduces the chance of audio file skipping,
# at the cost of increased time prior to audio playback.
#
buffer_before_play "10%" <---- Kommmentarzeiche # entfernen
#
###############################################################################
..
.
Speichern nicht vergessen! Im Falle des hier benutzten Editors nano geht das mit der Tastenkombination Strg+o, ENTER und Strg+x.
\\
Nach diesen Änderungen muss der mpd-Prozess neu gestartet werden:
pi@raspberrypi ~ $ sudo /etc/init.d/mpd restart
[ ok ] Stopping Music Player Daemon: mpd.
[....] Starting Music Player Daemon: mpdlisten: bind to '127.0.0.1:6600' succeeded
. ok
----
===== Schritt 3: Die Playlist =====
Der Player läuft jetzt quasi, aber die Playlist mit den einzelnen Radiostreams fehlt noch.
Diese kommt in das Verzeichnis // /var/lib/mpd/playlists// .
Dazu wird mit dem Editor eine Textdatei angelegt, die die Adressen zu den einzelnen Radiostationen enthält.\\
Der Dateiname muss mit .m3u enden.
pi@raspberrypi ~ $ sudo nano /var/lib/mpd/playlists/internetradio.m3u
Hier ein paar Beispielstreams:
http://stream.laut.fm/best_of_80s
http://stream.laut.fm/maximix
http://stream.laut.fm/eurosmoothjazz
http://stream.laut.fm/jahfari
http://stream.laut.fm/just80s
http://stream.laut.fm/rockin_c
https://stream.absolutradio.de/relax/mp3-160/stream.absolutradio.de/
https://stream.absolutradio.de/hot/mp3-160/stream.absolutradio.de/
https://stream.absolutradio.de/hq/mp3-160/stream.absolutradio.de/
Speichern nicht vergessen! Im Falle des hier benutzten Editors nano geht das mit der Tastenkombination Strg+o, ENTER und Strg+x.
\\
Die eben erstellte Playlist wird mit folgendem Kommando geladen:
pi@raspberrypi ~ $ mpc load internetradio
loading: internetradio
Mit dem Kommando
pi@raspberrypi ~ $ mpc play 3
startet man z.B. den 3. Stream (Titel) der Playlist
\\
Mit dem Kommando
pi@raspberrypi ~ $ mpc stop
stoppt man die Wiedergabe.
\\
Soviel muss zum Test reichen, da das Ziel ja die Steuerung über ein Webinterface ist.
----
===== Schritt 4: Das Webinterface =====
Nach etwas Suchen fand sich dieses Projekt https://github.com/sn0opy/MPD-Webinterface
\\
Der Download und die Installation ist problemlos, solange die richtige Reihenfolge eingehalten wird.
\\
* Verzeichnis für die Webseite anlegen
sudo mkdir /var/www/internetradio
* Das Verzeichnis dem Benutzer pi zuweisen
sudo chown pi /var/www/internetradio
* In das Webverzeichnis wechseln
cd /var/www/internetradio
* Download der gepackten Dateien
wget https://github.com/sn0opy/MPD-Webinterface/archive/master.zip
* Entpacken der Dateien im aktuellen Verzeichnis
unzip master.zip
* In das entpackte Verzeichnis wechseln
cd MPD-Webinterface-master
* Den Inhalt in /var/www/internetradio verschieben
mv * ../
* Installationsverzeichnis verlassen
cd ..
* und anschließend löschen
rmdir MPD-Webinterface-master
----
===== Schritt 5: Der ultimative Test =====
Wenn alles richtig installiert wurde, ist die Weboberfläche unter
http:///internetradio
erreichbar und sieht so aus:\\
{{:projekte:wiki_internetradio.png?nolink|}}