Benutzer-Werkzeuge

Webseiten-Werkzeuge


internetradio

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
internetradio [2020/11/24 16:05]
admin
internetradio [2023/11/17 13:46] (aktuell)
admin
Zeile 11: Zeile 11:
 ===== Vorbereitung ===== ===== 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/​]]  ​+Zuerst laden wir uns das aktuelle Raspbian herunter. Zur Erstellung dieser Anleitung war es Raspbian ​Bullseye. 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]]. ​ 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]]. ​
Zeile 66: Zeile 66:
 nehmen wir nun folgende Einstellungen vor. nehmen wir nun folgende Einstellungen vor.
  
-  - 2 Network Option ​-> Hostname -> raspberrypi ändern in **musicbox** +  - 1 System Options ​-> S4 Hostname -> raspberrypi ändern in **musicbox** 
-  - Localisation Options -> I1 Change ​Locale -> **de_DE.UTF-8 UTF-8** aktivieren und **en_GB.UTF-8 UTF-8** deaktivieren +  - Localisation Options -> L1 Locale -> **de_DE.UTF-8 UTF-8** aktivieren und **en_GB.UTF-8 UTF-8** deaktivieren 
-  - Localisation Options -> I1 Change Timezone -> Europe -> Berlin  +  - Localisation Options -> L2 Change Timezone -> Europe -> Berlin  
-  - 5 Interfacing Option ​-> P3 VNC - VNC aktivieren+  - 3 Interface Options ​-> 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. 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.
Zeile 81: Zeile 81:
  
   sudo apt-get install samba   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. Nun legen wir noch ein paar Verzeichnisse an, in welches wir später die Musikdateien,​ Playlisten etc. ablegen wollen.
Zeile 125: Zeile 123:
 Zuerst fügen wir die Mopidy Quellen der Anwendungsverwaltung hinzu und installieren das Basispaket in dem wir folgende Befehle nacheinander im Terminal eingeben: 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 mkdir -/etc/apt/keyrings
  
-  sudo wget -q -O /​etc/​apt/​sources.list.d/​mopidy.list https://​apt.mopidy.com/​buster.list+  ​sudo wget -q -O /​etc/​apt/​keyrings/​mopidy-archive-keyring.gpg https://​apt.mopidy.com/​mopidy.gpg 
 + 
 +  ​sudo wget -q -O /​etc/​apt/​sources.list.d/​mopidy.list https://​apt.mopidy.com/​bullseye.list
  
   sudo apt-get update   sudo apt-get update
Zeile 144: Zeile 144:
  
   sudo adduser mopidy video   sudo adduser mopidy video
 +  ​
 +Nun müssen wir **pip** installieren um die nachfolgenden Module laden zu können.
  
 +  sudo apt-get install python3-pip
 +  ​
 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. 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.
  
Zeile 152: Zeile 156:
 Weitere mögliche Webclients wären //​MusicBox-Webclient//,​ //​Simple-Webclient//,​ //Moped// oder //Mopify// um nur einige zu benennen. Eine Übersicht gibt es [[https://​mopidy.com/​ext/​|hier]]. Weitere mögliche Webclients wären //​MusicBox-Webclient//,​ //​Simple-Webclient//,​ //Moped// oder //Mopify// um nur einige zu benennen. Eine Übersicht gibt es [[https://​mopidy.com/​ext/​|hier]].
  
-Wer auf Mopidy auch mit externen MPD-Clients (z.B. ncmpcpp) zugreifen möchte sollte sich unbedingt noch //​Mopidy-MPD//​ installieren.+Wer später ​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   sudo python3 -m pip install Mopidy-MPD
Zeile 209: Zeile 213:
   [logging] ​   [logging] ​
   verbosity = 1    verbosity = 1 
-  format = %(levelname)-8s %(asctime)s [%(process)d:​%(threadName)s] %(name)s\n ​ %(message)s\+  format = %(levelname)-8s %(asctime)s [%(process)d:​%(threadName)s] %(name)s\n ​ %(message)s
   color = true    color = true 
 +  ​
   [audio]   [audio]
   mixer = software ​   mixer = software ​
Zeile 217: Zeile 221:
   output = autoaudiosink ​   output = autoaudiosink ​
   buffer_time = 1000   buffer_time = 1000
 +  ​
 +Wer später den Sound von Mopidy zusätzlich noch an einen Streamingserver (z.B. Icecast) ausgeben will verwendet in der Zeile //output = // folgende Parameter:
 +
 +  output = tee name=t ! queue ! audioresample ! autoaudiosink t. ! queue ! lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=yxasqw123EDC  ​
 +
  
   [local]   [local]
   media_dir = /music   media_dir = /music
 +  ​
   [file]   [file]
   enabled = true    enabled = true 
Zeile 238: Zeile 247:
   follow_symlinks = false   follow_symlinks = false
   metadata_timeout = 1000    metadata_timeout = 1000 
 +  ​
   [http] ​   [http] ​
   enabled = true   enabled = true
Zeile 246: Zeile 255:
   csrf_protection = true   csrf_protection = true
   default_app = mopidy   default_app = mopidy
 +  ​
   [mpd]    [mpd] 
   enabled = true   enabled = true
Zeile 260: Zeile 269:
   default_playlist_scheme = m3u   default_playlist_scheme = m3u
  
-''​[m3u]\\  +  ​[m3u] 
-enabled = true\\  +  enabled = true 
-base_dir = /music\\  +  base_dir = /music 
-default_encoding = latin-1\\  +  default_encoding = latin-1 
-default_extension = .m3u8\\  +  default_extension = .m3u8 
-playlists_dir = /​music/​playlists\\ '' ​+  playlists_dir = /​music/​playlists
  
-''​[softwaremixer]\\  +  ​[softwaremixer] 
-enabled = true\\ '' ​+  enabled = true
  
-''​[tunein]\\  +  ​[tunein] 
-enabled = true\\  +  enabled = true 
-timeout = 5000\\ '' ​+  timeout = 5000
  
 Um Mopidy-Spotify nutzen zu können benötigen wir API Zugriff auf Spotify. Die //​client_id//​ und das //​client_secret//​ bekommt ihr [[https://​auth.mopidy.com/​spotify/​|hier]]. Um Mopidy-Spotify nutzen zu können benötigen wir API Zugriff auf Spotify. Die //​client_id//​ und das //​client_secret//​ bekommt ihr [[https://​auth.mopidy.com/​spotify/​|hier]].
  
-''​[spotify]\\  +  ​[spotify]  
-enabled = true\\  +  enabled = true 
-username = DEIN_SPOTIFY_USERNAME\\  +  username = DEIN_SPOTIFY_USERNAME 
-password = DEIN_SPOTIFY_PASSWORT\\  +  password = DEIN_SPOTIFY_PASSWORT 
-client_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\\  +  client_id = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 
-client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\  +  client_secret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
-bitrate = 160\\  +  bitrate = 160 
-volume_normalization = true\\  +  volume_normalization = true 
-private_session = false\\  +  private_session = false 
-timeout = 10\\  +  timeout = 10 
-allow_cache = true\\  +  allow_cache = true 
-allow_network = true\\  +  allow_network = true 
-allow_playlists = true\\  +  allow_playlists = true 
-search_album_count = 20\\  +  search_album_count = 20 
-search_artist_count = 10\\  +  search_artist_count = 10 
-search_track_count = 50\\  +  search_track_count = 50 
-toplist_countries =\\ '' ​+  toplist_countries =
  
 Ähnlich ist es bei SoundCloud. Hier benötigen wir einen auth_token welchen wir [[https://​secure.soundcloud.com/​connect?​client_id=93e33e327fd8a9b77becd179652272e2&​scope=non-expiring&​response_type=code_and_token&​redirect_uri=https://​www.mopidy.com/​soundcloud_callback|hier]] bekommen. Ähnlich ist es bei SoundCloud. Hier benötigen wir einen auth_token welchen wir [[https://​secure.soundcloud.com/​connect?​client_id=93e33e327fd8a9b77becd179652272e2&​scope=non-expiring&​response_type=code_and_token&​redirect_uri=https://​www.mopidy.com/​soundcloud_callback|hier]] bekommen.
  
-''​[soundcloud]\\  +  ​[soundcloud]  
-enabled = true\\  +  enabled = true  
-explore_songs = 25\\  +  explore_songs = 25  
-auth_token = x-xxxxx-xxxxxxxxx-xxxxxxxxxxxxxxx\\ '' ​+  auth_token = x-xxxxx-xxxxxxxxx-xxxxxxxxxxxxxxx
  
 Für den Zugriff auf Last.FM genügen Benutzername und Passwort. Für den Zugriff auf Last.FM genügen Benutzername und Passwort.
  
-''​[scrobbler]\\  +  ​[scrobbler] 
-enabled = true\\  +  enabled = true 
-username = DEIN_LASTFM_USERNAME\\  +  username = DEIN_LASTFM_USERNAME 
-password = DEIN_LASTFM_PASSWORT\\ '' ​+  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 [[https://​youtu.be/​ozOmQGDVwKQ|hier]]. 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 [[https://​youtu.be/​ozOmQGDVwKQ|hier]].
  
-''​[youtube]\\  +  ​[youtube]  
-enabled = true\\  +  enabled = true 
-youtube_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\\  +  youtube_api_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  
-api_enabled = false\\  +  api_enabled = false 
-threads_max = 16\\  +  threads_max = 16 
-search_results = 15\\  +  search_results = 15 
-playlist_max_videos = 20\\ ''​+  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. 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]\\  +  ​[podcast]  
-enabled = true\\  +  enabled = true 
-browse_root = /​music/​podcasts/​podcasts.opml\\  +  browse_root = /​music/​podcasts/​podcasts.opml 
-browse_order = desc\\  +  browse_order = desc 
-lookup_order = asc\\  +  lookup_order = asc 
-cache_size = 64\\  +  cache_size = 64 
-cache_ttl = 86400\\  +  cache_ttl = 86400 
-timeout = 10\\ '' ​+  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. 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]\\  +  ​[podcast-itunes] 
-enabled = true\\  +  enabled = true 
-base_url = http://​itunes.apple.com/​\\  +  base_url = http://​itunes.apple.com/​ 
-country = DE\\  +  country = DE 
-explicit = Yes\\  +  explicit = Yes 
-charts = audioPodcasts\\  +  charts = audioPodcasts 
-charts_limit = 20\\  +  charts_limit = 20 
-search_limit = 20\\  +  search_limit = 20 
-timeout = 10\\  +  timeout = 10 
-retries = 3\\ '' ​+  retries = 3
  
 Wurde Mopidy für einen User z.B. pi eingerichtet so lässt sich Mopidy durch einfach durch Eingabe von Wurde Mopidy für einen User z.B. pi eingerichtet so lässt sich Mopidy durch einfach durch Eingabe von
  
-''​mopidy''​+  ​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 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''​+  ​sudo systemctl enable mopidy
  
 Danach können wir Mopidy mit  Danach können wir Mopidy mit 
  
-''​sudo systemctl start mopidy''​+  ​sudo systemctl start mopidy
  
 starten. Das Programm läuft nun als Prozess im Hintergrund. starten. Das Programm läuft nun als Prozess im Hintergrund.
Zeile 378: Zeile 387:
 Die Installation wird mit  Die Installation wird mit 
  
-''​sudo apt-get install ncmpcpp''​+  ​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 {{ :​ncmpcpp_cheat_sheet.pdf | hier}}. 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 {{ :​ncmpcpp_cheat_sheet.pdf | hier}}.
 +
 +==== Voreingestellte Playlist beim Start ====
 +
 +Betreibt man seine Mopidy-Server "​headless",​ also ohne angeschlossene Tastatur oder Monitor, so lässt sich mit diesem Plugin eine Default-Playlist setzen. Diese wird beim Start automatisch abgespielt. In meinem Fall ist es eine Playlist vordefinierter Radiosender mit dem Namen //​Radio-Favoriten//​.
 +
 +Installiert wird das Plugin mit
 +
 +  sudo python3 -m pip install Mopidy-DefaultPlaylist
 +  ​
 +Der entsprechende Abschnitt in der mopidy.conf sieht dann so aus
 +
 +  [defaultplaylist]
 +  enabled = true
 +  defaultplaylist_name = Radio-Favoriten
 +  autoplay = true
 +  shuffle = true
 +
 +Die Option //shuffle =// sorgt dafür das bei jedem Neustart ein anderer Sender abgespielt wird.
  
  
Zeile 387: Zeile 414:
 Um noch weitere Clients im LAN (oder wahlweise auch weltweit) mit Musik zu versorgen kann man zusätzlich noch einen Streamingserver aufsetzen. Dieser läuft parallel zu //Mopidy// und stellt für angeschlossene Geräte einen MP3-Stream bereit. Um noch weitere Clients im LAN (oder wahlweise auch weltweit) mit Musik zu versorgen kann man zusätzlich noch einen Streamingserver aufsetzen. Dieser läuft parallel zu //Mopidy// und stellt für angeschlossene Geräte einen MP3-Stream bereit.
  
-''​sudo apt-get install icecast2''​+  ​sudo apt-get install icecast2
  
  
internetradio.1606230335.txt.gz · Zuletzt geändert: 2020/11/24 16:05 von admin