MPD einfach über den Browser steuern
MyMPD auf dem Raspberry Pi installieren (MPD im Browser)
Zum Musikhören nutze ich MPD auf meinem Raspberry Pi im Heimnetzwerk. Zur Steuerung und Organisation der eigenen digitalen Musiksammlung gibt es diverse Apps bzw. Programme. Es geht jedoch auch sehr gut im Browser – mit MyMPD. So hatte ich diese Web-Oberfläche installiert.
Früher nutzte ich Kodi zum Videoschauen und Musikhören bzw. um meine MP3s zu organisieren. Da ich Videos nun über einen separaten SmartTV schaue, konnte mein Raspberry Pi entschlackt werden: Ich nutze nun einfach den schlichten MPD zum Organisieren bzw. zum Hören meiner digitalen Musiksammlung.
Allein: MPD bietet keine grafische Benutzeroberfläche. Alles würde (via dem kleinen Zusatzprogramm ›MPC‹) über die Konsole laufen bzw. über simple Steuerbefehle mittels einer IR-Fernbedienung am Raspberry Pi. Für das Organisieren und Durchsuchen der eigenen Musiksammlung benötigt man natürlich eine grafische Oberfläche. Am einfachsten gelingt dies mit einer entsprechenden Android-App oder via einer Windows App wie ›MPDCtrl‹.
Mit myMPD von Jürgen Mang steht jedoch auch eine sehr attraktive grafische Anwendung bereit, welche direkt im Browser läuft. Man muss sich auf den Klienten also keine spezielle Software installieren, wenn auf diesen eh bereits ein Browser vorhanden ist – wovon auszugehen ist:

Das schaut richtig gut aus und auch technisch funktioniert myMPD richtig gut. Man kann beispielsweise auch grafisch die einzelnen Ausgabe-Kanäle schalten (Bluetooth, HifiBerry, Webausgabe, …).
Offenbar gibt es myMPD nicht via Repository. Man muss das Programm selber kompilieren. In dieser Sache bin ich tatsächlich so ein richtiger Anfänger. Aber ich hatte es dann tatsächlich geschafft. In der offiziellen Anleitung hatte ich mich jedenfalls nicht zurecht gefunden.
Ich gehe jetzt davon aus, dass Sie bereits MPD installiert- und eingerichtet haben. Das ist ja nicht so schwer und gut dokumentiert. Ein sudo apt update sollte auch kürzlich vorgenommen worden sein.
Um die grafische Benutzeroberfläche für den Browser (myMPD) installieren- bzw. kompilieren zu können, benötigen wir nun weitere Pakete:
sudo apt install cmake build-essential git libglib2.0-dev libsqlite3-dev libcurl4-openssl-dev libid3tag0-dev libmad0-dev
sowie:
sudo apt install libmpdclient-dev libavcodec-dev libavformat-dev libavutil-dev
Vielleicht sind einige davon bei Ihnen ja bereits schon vorhanden.
Nun ziehen wir uns erst einmal den gesamten Quellcode von myMPD ins Home-Verzeichnis:
git clone https://github.com/jcorporation/mympd.git
Daraufhin müsste dort ein neuer Ordner entstanden sein, in den wir wechseln:
cd mympd
Jetzt beginnen wir mit dem Aufbau des Programms (mehrere Schritte):
mkdir build && cd build cmake .. make sudo make install
MyMPD sollte nun installiert sein. Es stellt einen einfachen grafischen Konfigurationseditor für die Konsole bereit. Den rufen wir gleich auf:
sudo mympd-config
Denn vermutlich muss hier erst einmal SSL deaktiviert werden. Ansonsten möchte MyMPD stets über eine verschlüsselte Verbindung im Browser aufgerufen werden. Auf meinem Raspberry Pi habe ich so etwas aber nicht eingerichtet.
Als nächstes erstellen wir einen Service, damit der kleine MyMPD-Server bei jedem Neustart vom Raspberry Pi ebenfalls startet:
sudo nano /etc/systemd/system/mympd.service
Dort tragen wir ein:
[Unit] Description=myMPD Service After=network.target mpd.service [Service] ExecStart=/usr/local/bin/mympd Restart=always User=root Group=root Environment=HOME=/home/pi [Install] WantedBy=multi-user.target
… und speichern via STRG + S und verlassen den Nano-Editor wieder via STRG + X.
Hinweis 1: Wie man sieht, starte ich den MyMPD-Dienst als root. Dies ist natürlich etwas prekär. Aber myMPD will ständig auf var/tmp zugreifen und ich weiß nicht, wie ich dies ansonsten lösen kann. Ich belasse es erst einmal so.
Hinweis 2: Mein Nutzer heißt pi. Wenn dies bei Ihnen anders ist, muss diese Zeile natürlich entsprechend angepasst werden.
Jetzt initialisieren wir diesen Dienst nacheinander mittels folgender Schritte:
sudo systemctl daemon-reload sudo systemctl enable mympd sudo systemctl start mympd
Jetzt sollte MyMPD unter einer Adresse wie http://IP-des-Raspberry:8080 auf jedem Browser im Heimnetzwerk erreichbar sein.
Den Installationsordner im Home-Verzeichnis kann man nun natürlich wieder löschen. Den benötigen wir nicht mehr.
MyMPD stellt übrigens ein eigenes Spotify zur Verfügung – also die Möglichkeit, die Tonausgabe auch über den Browser zu ermöglichen. Wenn man in seinem Router einen VPN-Zugang einrichtet oder den MyMPD-Port vom Raspberry nach Außen hin freigibt, hat man praktisch jederzeit Zugang via „Stream“ auf seine lokale Musiksammlung daheim. Hierzu muss in der /etc/mpd.conf bei den Ausgängen ein neuer hinzu gefügt werden:
audio_output {
type "httpd"
name "HTTP Stream"
encoder "lame"
port "8005"
bitrate "128"
format "44100:16:2"
always_on "yes"
tags "yes"
}Nach einem Neustart und einer Änderung in den MyMPD-Einstellungen hat man nun unten rechts einen neuen Ausgang zur Verfügung:

Dieser Ausgang heißt hier ›HTTP Stream‹ und man sollte ihn mal aktivieren. Zuvor sollte man in den Browser-Einstellungen dafür sorgen, dass ein „Live-Ton“ überhaupt wiedergegeben werden kann. Nun müsste man noch im Webinterface von MyMPD in den Einstellungen ›Lokale Wiedergabe‹ aktivieren und den Port anpassen (wie zuvor in der etc/mpd.conf definiert). Ggf. mit den Einstellungen experimentieren (Automatische Wiedergabe?). Als nächstes müsste man – je nach Browser – unten rechts bei MyMPD noch auf dieses Symbol mit dem Dreieck und dem Rechteck klicken. Dort gibt es nämlich einen „Play-Knopf“. Den muss man anklicken, um den Stream zu starten. Nach einigen Sekunden (Buffer) sollte die aktuelle Wiedergabe auch über den Browser erfolgen. Ein Wechsel dauert immer etwas.
Den Stream kann man dann auch direkt im Browser aufrufen, z. B. via: http://192.168.178.2:8005/. Der Port ist der, den man in den Lokale-Wiedergabe-Einstellungen definiert hatte bzw. in der mpd.conf in den Ausgangseinstellungen für den HTTP-Stream. Die IP ist die des Raspberry Pi im Heimnetz. Im Browser müsste dann ein einfacher Player erscheinen.
Eine schöne Sache das Ganze, funktional und grafisch sehr ansprechend. Nur die Tonausgabe direkt im Browser reagiert ziemlich träge auf z. B. Start-Stopp-Befehle. Vielleicht hat ja jemand einen Tipp, wie man dies beschleunigen könnte.