Vorbereitung
Zuerst laden wir uns das aktuelle Raspbian herunter. Zur Erstellung dieser Anleitung war es Raspbian Buster. Ich habe mich für die Variante mit Desktop entschieden.
https://www.raspberrypi.org/downloads/raspbian/
Das heruntergeladene Image wird mit einer geeigneten Software (z.B. Etcher) auf die SD-Karte übertragen. Weitere Infos dazu unter
https://www.raspberrypi.org/documentation/installation/installing-images/README.md.
Bevor wir den Pi starten können muss noch SSH aktiviert werden. Dazu erstellen wir uns eine Datei mit dem Namen ssh und kopieren diese auf die SD-Karte. Weitere Infos dazu unter https://www.raspberrypi.org/documentation/remote-access/ssh/README.md
Als nächstes wird die SD-Karte in einen RaspberryPi (in meinem Fall ein 3B+) gesteckt. Der Raspberry ist via LAN-Kabel eingebunden. Einschalten…
Nun müssen wir die IP-Adresse herausbekommen, welche der DHCP unserem RaspberryPi vergeben hat. Schaut dazu am einfachsten in Eure Router oder benutzt einen Netzwerkscanner auf dem Smartphone (z.B. Fing). In dieser Anleitung verwende ich die Adresse 192.168.1.74.
Über das Terminal verbindet Ihr Euch mit dem RaspberryPi
ssh 192.168.1.74 -l pi
der Pi antwortet in etwa so
The authenticity of host '192.168.1.74 (192.168.1.74)' can't be established. ECDSA key fingerprint is SHA256:JCO/RbFGRdoLxp8Bc+xtblaiJkPAoo0Btz+pmTG6h+Q. Are you sure you want to continue connecting (yes/no)?
Die Frage beantworten wir mit yes und geben nun dass Passwort raspberry ein.
Den Hinweis
SSH is enabled and the default password for the 'pi' user has not been changed. This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
nehmen wir ernst und vergeben uns mit
passwd
ein neues Passwort. Wie man ein starkes Passwort generiert habe ich hier erläutert.
Im nächsten Schritt bringen wir das frisch installierte Raspbian erstmal auf den aktuellen Stand.
sudo apt-get update
sudo apt-get upgrade
sudo reboot
Der letzte Befehl startet den RaspberryPi neu. Im Anschluss stellen wir die SSH-Verbindung wieder mit
ssh 192.168.1.74 -l pi
her und geben das oben neu vergebene Passwort ein.
Nun mach wir uns daran das frisch aufgesetzte System zu konfiguren. Mit Hilfe von
sudo raspi-config
nehmen wir nun folgende Einstellungen vor.
-
2 Network Option → Hostname → raspberrypi ändern in musicbox
-
4 Localisation Options → I1 Change Locale → de_DE.UTF-8 UTF-8 aktivieren und en_GB.UTF-8 UTF-8 deaktivieren
-
4 Localisation Options → I1 Change Timezone → Europe → Berlin
-
5 Interfacing Option → P3 VNC – VNC aktivieren
Die abschließende Frage ob der RaspberryPi neu gestartet werden soll beantworten wir mit Yes. Nach dem Neustart verbinden wir uns via SSH wieder mit dem RaspberryPi.
ssh 192.168.1.74 -l pi
SAMBA Fileserver installieren
Damit wir später auch MP3s auf unser Internetradio ablegen können wird nun ein SAMBA Server eingerichtet. Damit stellt der RaspberryPi dann ein Netzlaufwerk zur Verfügung auf das wir von Windows oder MacOS aus darauf zugreifen können.
sudo apt-get install samba
Die Abfrage ob das Paket dhcp-client installiert werden soll beantworten wir mit Ja.
Nun legen wir noch ein paar Verzeichnisse an, in welches wir später die Musikdateien, Playlisten etc. ablegen wollen.
sudo mkdir /music
sudo mkdir /music/playlists
sudo mkdir /music/podcasts
Damit wir später auch als anonymer User darauf zugreifen können ändern wir gleich noch die Zugriffsrechte der Verzeichnisse.
sudo chmod -v 777 /music
sudo chmod -v 777 /music/playlists
sudo chmod -v 777 /music/podcasts
Jetzt ist die Einrichtung von SAMBA an der Reihe. Mit einem
sudo nano /etc/samba/smb.conf
öffnen wir die Konfigurationsdatei und ergänzen am Ende folgende Einträge
[music]
comment = Musik
path = /music
browseable = yes
read only = no
guest ok = yes
Abgespeichert wird mit Strg+S und mit Strg+X wird nano beendet.
Nun starten wir den SAMBA-Dienst neu
sudo systemctl restart smbd
und können nun im LAN z.B. von Windows aus über Laufwerke → Netzlaufwerk verbinden auf die Freigabe zugreifen.
Mopidy installieren
Zuerst fügen wir die Mopidy Quellen der Anwendungsverwaltung hinzu und installieren das Basispaket in dem wir folgende Befehle nacheinander im Terminal eingeben:
wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
sudo apt-get update
sudo apt-get install mopidy
Im nun folgenden Schritt starten wir Mopidy erstmalig
mopidy
und warten ein paar Sekunden bis die Ausgabe
Creating dir file:///home/pi/.local/share/mopidy/http
erfolgt ist um das Programm nun mit Ctrl+C wieder zu unterbrechen. Mopidy legt im Hintergrund ein paar Pfade und Dateien an, welche wir später bearbeiten. Wer später Mopidy als Service laufen lassen möchte fügt in diesem Schritt den User mopidy noch der Gruppe video hinzu.
sudo adduser mopidy video
Damit wir Mopidy später über eine Weboberfläche (Webclients) steuern können muss diese entsprechend auch installiert sein. Ich haben mich für Iris und Mobile entschieden.
sudo python3 -m pip install Mopidy-Iris
sudo python3 -m pip install Mopidy-Mobile
Weitere mögliche Webclients wären MusicBox-Webclient, Simple-Webclient, Moped oder Mopify um nur einige zu benennen. Eine Übersicht gibt es hier.
Wer auf Mopidy auch mit externen MPD-Clients (z.B. ncmpcpp) zugreifen möchte sollte sich unbedingt noch Mopidy-MPD installieren.
sudo python3 -m pip install Mopidy-MPD
Nun können je nach Bedarf weitere Addons installiert werden:
# Spotify support
sudo apt-get install mopidy-spotify
# Podcast support
sudo python3 -m pip install Mopidy-Podcast
sudo python3 -m pip install Mopidy-Podcast-iTunes
# Last.FM scrobbling support
sudo python3 -m pip install Mopidy-Scrobbler
# Soundcloud support
sudo python3 -m pip install Mopidy-SoundCloud
# TuneIn support
sudo python3 -m pip install Mopidy-TuneIn
# YouTube support
sudo python3 -m pip install Mopidy-YouTube
Wenn alle gewünschten Addons installiert sind bearbeiten wir nun die Konfigurationsdatei mopidy.conf. Diese liegt für den angemeldeten User im Ordner /home/user/.config/mopidy (Beispiel für pi: /home/pi/.config/mopidy/mopidy.conf). Soll Mopidy später als Service unter dem User mopidy laufen gilt der Pfad /etc/mopidy/mopidy.conf.
Egal für welche Variante ihr Euch entscheidet – in der mopidy.conf werden alle zentralen Einstellungen und die der Addons verwaltet. Wir öffnen die Datei mit
sudo nano /etc/mopidy/mopidy.conf
bzw.
sudo nano /home/pi/.config/mopidy/mopidy.conf
Im Abschnitt [core] werden die benutzen Verzeichnisse definiert
Wer Mopidy als Service laufen lassen möchte verwendet folgende Einstellung,
[core]
cache_dir = /var/cache/mopidy
config_dir = /etc/mopidy
data_dir = /var/lib/mopidy
wer Mopidy als User pi startet verwendet stattdessen
[core]
cache_dir = $XDG_CACHE_DIR/mopidy
config_dir = $XDG_CONFIG_DIR/mopidy
data_dir = $XDG_DATA_DIR/mopidy
in beiden Varianten gefolgt von
max_tracklist_length = 10000
restore_state = false
Alle weiteren Einstellungen am besten so wie bei mir übernehmen.
[logging]
verbosity = 1
format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s
color = true
mixer = software
mixer_volume = 90
output = autoaudiosink
buffer_time = 1000
[local]
media_dir = /music
[file]
enabled = true
media_dirs = /music
excluded_file_extensions =
.directory
.html
.jpeg
.jpg
.log
.nfo
.pdf
.png
.txt
.zip
show_dotfiles = false
follow_symlinks = false
metadata_timeout = 1000
[http]
enabled = true
hostname = 0.0.0.0
port = 6680
zeroconf = Mopidy HTTP server on $hostname
csrf_protection = true
default_app = mopidy
[mpd]
enabled = true
hostname = 0.0.0.0
port = 6600
password =
max_connections = 20
connection_timeout = 60
zeroconf = Mopidy MPD server on $hostname
command_blacklist =
listall
listallinfo
default_playlist_scheme = m3u
[m3u]
enabled = true
base_dir = /music
default_encoding = latin-1
default_extension = .m3u8
playlists_dir = /music/playlists
[softwaremixer]
enabled = true
[tunein]
enabled = true
timeout = 5000
Um Mopidy-Spotify nutzen zu können benötigen wir API Zugriff auf Spotify. Die client_id und das client_secretbekommt ihr hier.
[spotify]
enabled = true
username = DEIN_SPOTIFY_USERNAME
password = DEIN_SPOTIFY_PASSWORT
client_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
bitrate = 160
volume_normalization = true
private_session = false
timeout = 10
allow_cache = true
allow_network = true
allow_playlists = true
search_album_count = 20
search_artist_count = 10
search_track_count = 50
toplist_countries =
Ähnlich ist es bei SoundCloud. Hier benötigen wir einen auth_token welchen wir hier bekommen.
[soundcloud]
enabled = true
explore_songs = 25
auth_token = x-xxxxx-xxxxxxxxx-xxxxxxxxxxxxxxx
Für den Zugriff auf Last.FM genügen Benutzername und Passwort.
[scrobbler]
enabled = true
username = DEIN_LASTFM_USERNAME
password = DEIN_LASTFM_PASSWORT
Etwas komplizierter wird es bei Youtube. Hierfür benötigen wir einen youtube_api_key. Eine einfaches Videotutorial wie man diesen erstellt bzw. bekommt gibt es hier.
[youtube]
enabled = true
youtube_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
api_enabled = false
threads_max = 16
search_results = 15
playlist_max_videos = 20
Nun werden noch die Podcast-Quellen eingerichtet. Die Datei podcasts.opml ist eine XML-Datei welche in meinem Beispiel im Ordner /music/podcasts liegt. Diese kann man ganz leicht selbst erstellen oder z.B. in iTunes erzeugen.
[podcast]
enabled = true
browse_root = /music/podcasts/podcasts.opml
browse_order = desc
lookup_order = asc
cache_size = 64
cache_ttl = 86400
timeout = 10
Noch einfacher geht es bei diesem Addon. Hier übernimmt Apple die Verwaltung des Podcast-Verzeichnisse und sortiert dieses für uns nach Genres. Da das Verzeichnis öffentlich ist wird auch keine weitere Authentifizierung benötigt.
[podcast-itunes]
enabled = true
base_url = http://itunes.apple.com/
country = DE
explicit = Yes
charts = audioPodcasts
charts_limit = 20
search_limit = 20
timeout = 10
retries = 3
Wurde Mopidy für einen User z.B. pi eingerichtet so lässt sich Mopidy durch einfach durch Eingabe von
mopidy
starten. Möchtet ihr Mopidy als Service starten bzw. später beim Hochfahren des RaspberryPis starten lassen so müssen wir es zunächst in die Liste der Systemdienste aufnehmen. Das geschieht ganz einfach mit
sudo systemctl enable mopidy
Danach können wir Mopidy mit
sudo systemctl start mopidy
starten. Das Programm läuft nun als Prozess im Hintergrund.
Bei beiden Varianten dauert es je nach Anzahl und Typ der aktivierten Module bis zu zwei Minuten bis Mopidy fertig geladen ist. Gerade bei Spotify werden im Hintergrund jede Menge Daten und Playlists geladen.
Den Webclient erreichen wir im Browser unter http://192.168.1.74:6680/. Wenn nichts schiefgegangen ist, begrüßt uns Mopidy mit folgendem Bild. Die jeweiligen installierten Webclients erreicht ihr mit Klick auf den Link – in unserem Beispiel iris oder mobile).
Feintuning
Die folgenden Erweiterungen können erst nach erfolgreicher Installation von Mopidy eingerichtet werden. In meinem Beispiel sind sie erst Tage bzw. Wochen später hinzugekommen.
ncmpcpp als Client
In unserer bisherigen Konfiguration wurden nur Webclients eingerichtet um Mopidy zu steuern. Mit ncmpcppgibt es ein Programm mit dem man Mopidy über ein Terminal steuern kann. Alle Funktionen sind möglich und man benötigt dafür kein Betriebssystem mit grafischer Benutzeroberfläche und auch keinen Browser.
In meinem Fall war es ein alter RaspberryPi 1B mit Monitor, welcher bisher in der Werkstatt für die Überwachungskamera zuständig war, der mit neuen Funktionen ausgestattet wurde. Zugriff auf Internet-Radiostreams, auf Spotify, SoundCloud, Youtube und das nur vom Terminal aus – das ist schon irgendwie cool.
Die Installation wird mit
sudo apt-get install ncmpcpp
gestartet und das war es auch schon. Wichtig ist, dass Mopidy-MPD installiert und der entsprechende Konfigurationsabschnitt in der mopidy.conf vorhanden ist. Eine Übersicht der Tastaturbelegung findet ihr hier.
Letzte Änderung — Kai Ortelt 2020/03/24 15:26