====== 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|}}