xmordax.librespot
Rollenname: Librespot
Installation und Konfiguration des Librespot-Clients auf arm64- und armhf-basierten Systemen, die systemd unterstützen. Diese Rolle umfasst auch die Konfiguration eines Hifiberry Geräts. Wenn Sie neue Funktionen sehen möchten, zögern Sie nicht, ein neues Ticket zu erstellen oder einen PR zur eigenen Ergänzung einzureichen.
Anforderungen
Nur für die librespot-java
Installationsart:
- src: geerlingguy.java
version: 1.9.6
name: java
when: librespot_installation_type == "librespot-java"
Rollenvariablen
Variablen zur Definition der Installationsart:
librespot_installation_type: librespot # Art der Installation von Librespot: librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # boolean, falls Sie ein hifiberry Gerät haben
Variablen für die raspotify
Installationsart:
raspotify_device_name: "{{ ansible_hostname }}" # Gerätename auf Spotify Connect
raspotify_bitrate: "320" # Bitrate, eine von 96 (niedrige Qualität), 160 (Standardqualität) oder 320 (hohe Qualität)
raspotify_options: "--zeroconf-port 40995" # zusätzliche Befehlszeilenargumente für librespot können unten festgelegt werden
raspotify_cache_args: "" # verwenden Sie /var/cache/librespot für den Cache-Speicherort, falls benötigt. Cache ist standardmäßig deaktiviert
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # Standardlautstärke beim Verbinden mit dem Client
raspotify_args: "--backend alsa --device default" # backend kann hier auf pipe gesetzt werden, ist aber für sehr fortgeschrittene Anwendungsfälle
raspotify_git_branch: "master" # git branch/commit von dem, von dem Sie es bauen möchten
raspotify_librespot_git_branch: "dev" # git branch von librespot, von dem Sie es bauen möchten, leer lassen, wenn Sie die Standardversion verwenden möchten
Variablen für die native librespot
Installationsart:
librespot_device_name: "{{ ansible_hostname }}" # Gerätename auf Spotify Connect
librespot_bitrate: "320" # Bitrate, eine von 96 (niedrige Qualität), 160 (Standardqualität) oder 320 (hohe Qualität)
librespot_options: "--zeroconf-port 40995" # zusätzliche Befehlszeilenargumente für librespot können unten festgelegt werden
librespot_cache_args: "--disable-audio-cache" # verwenden Sie /var/cache/librespot für den Cache-Speicherort, falls benötigt. Cache ist standardmäßig deaktiviert
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # Standardlautstärke beim Verbinden mit dem Client
librespot_args: "--backend alsa" # backend kann hier auf pipe gesetzt werden, ist aber für sehr fortgeschrittene Anwendungsfälle
librespot_git_branch: "dev" # git branch/commit von dem, von dem Sie es bauen möchten
Variablen für die native librespot-java
Installationsart:
---
librespot_installation_type: librespot-java # Art der Installation von Librespot: librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # boolean, falls Sie ein hifiberry Gerät haben
# raspotify
raspotify_device_name: "{{ ansible_hostname }}" # Gerätename auf Spotify Connect
raspotify_bitrate: "320" # Bitrate, eine von 96 (niedrige Qualität), 160 (Standardqualität) oder 320 (hohe Qualität)
raspotify_options: "--zeroconf-port 40995" # zusätzliche Befehlszeilenargumente für librespot können unten festgelegt werden
raspotify_cache_args: "" # verwenden Sie /var/cache/librespot für den Cache-Speicherort, falls benötigt. Cache ist standardmäßig deaktiviert
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # Standardlautstärke beim Verbinden mit dem Client
raspotify_args: "--backend alsa --device default" # backend kann hier auf pipe gesetzt werden, ist aber für sehr fortgeschrittene Anwendungsfälle
raspotify_git_branch: "master" # git branch/commit von dem, von dem Sie es bauen möchten
raspotify_librespot_git_branch: "dev" # git branch von librespot, von dem Sie es bauen möchten, leer lassen, wenn Sie die Standardversion verwenden möchten
# librespot
librespot_device_name: "{{ ansible_hostname }}" # Gerätename auf Spotify Connect
librespot_bitrate: "320" # Bitrate, eine von 96 (niedrige Qualität), 160 (Standardqualität) oder 320 (hohe Qualität)
librespot_options: "--zeroconf-port 40995" # zusätzliche Befehlszeilenargumente für librespot können unten festgelegt werden
librespot_cache_args: "--disable-audio-cache" # verwenden Sie /var/cache/librespot für den Cache-Speicherort, falls benötigt. Cache ist standardmäßig deaktiviert
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # Standardlautstärke beim Verbinden mit dem Client
librespot_args: "--backend alsa" # backend kann hier auf pipe gesetzt werden, ist aber für sehr fortgeschrittene Anwendungsfälle
librespot_git_branch: "dev" # git branch/commit von dem, von dem Sie es bauen möchten
# librespot-java
librespot_java_device_name: "{{ ansible_hostname }}" # Gerätename auf Spotify Connect
librespot_java_device: "Computer" # Gerätetyp (COMPUTER, TABLET, SMARTPHONE, SPEAKER, TV, AVR, STB, AUDIO_DONGLE, GAME_CONSOLE, CAST_VIDEO, CAST_AUDIO, AUTOMOBILE, WEARABLE, UNKNOWN_SPOTIFY, CAR_THING, UNKNOWN)
librespot_java_preferred_locale: "Computer" # bevorzugte Sprache
librespot_java_auth_strategy: "ZEROCONF" # Authentifizierungsstrategie (USER_PASS, ZEROCONF, BLOB, FACEBOOK)
librespot_java_auth_username: "" # Spotify-Benutzername (nur BLOB, USER_PASS)
librespot_java_auth_password: "" # Spotify-Passwort (nur USER_PASS)
librespot_java_auth_blob: "" # Spotify-Authentifizierungsdaten (nur BLOB)
librespot_java_zeroconf_port: 40995 # auf diesem Port hören (`-1` für zufällig)
librespot_java_zeroconf_listen_all: "true" # auf allen Schnittstellen hören (überschreibt `zeroconf.interfaces`)
librespot_java_zeroconf_interfaces: "" # auf diesen Schnittstellen hören (durch Kommas getrennte Liste von Namen)
librespot_java_cache_enabled: "true" # Cache aktivieren
librespot_java_cache_dir: "./cache" # Verzeichnis für Caching
librespot_java_cache_do_clean_up: "true" # periodische Bereinigung des Caches
librespot_java_preload_enabled: "true" # Songs vorgeladen
librespot_java_time_synchronization_method: "NTP" # Zeitsynchronisationsmethode (NTP, PING, MELODY, MANUAL)
librespot_java_time_manual_correction: 0 # manuelle Zeitkorrektur in Millisekunden
librespot_java_player_autoplay_enabled: "true" # ähnliche Songs automatisch abspielen, wenn Ihre Musik endet
librespot_java_player_preferred_audio_quality: "VORBIS_320" # bevorzugte Audioqualität (VORBIS_96, VORBIS_160, VORBIS_320)
librespot_java_player_normalisation_enable: "true" # ob die Lautstärkenormalisierung von Spotify angewendet werden soll
librespot_java_player_normalisation_pregain: 0.0 # Normalisierungsvorverstärkung
librespot_java_player_initial_volume: 65536 # Anfangslautstärke (0-65536)
librespot_java_player_log_available_mixers: "false" # verfügbare Mischpulte protokollieren
librespot_java_player_mixer_search_keywords: "plughw" # Suchbegriffe für Mixer/backend (durch Strichpunkte getrennt)
librespot_java_player_crossfade_duration: 0 # Überblendzeit (in Millisekunden)
librespot_java_timer_output: "MIXER" # Audioausgabegerät (MIXER, PIPE, STDOUT)
librespot_java_player_release_line_delay: 20 # Mixer-Leitung nach festgelegter Verzögerung freigeben (in Sekunden)
librespot_java_player_pipe: "" # rohes (signiertes) PCM an diese Datei ausgeben (`player.output` muss PIPE sein)
librespot_java_git_branch: "master" # git branch/commit von dem, von dem Sie es bauen möchten
Abhängigkeiten
Die Rollen werden jede der Anwendungen aus den Quellen auf Ihrem Quellgerät bauen, bevor sie das Artefakt auf Ihr Zielsystem übertragen. Daher ist es erforderlich, dass Ihr Quellgerät alle erforderlichen Abhängigkeiten für den Bau der Projekte erfüllt.
Je nach Art der Installation werfen Sie einen Blick auf Folgendes:
Beispiel-Playbook
- hosts: all
roles:
- role: xmordax.librespot
Ansible-Anleitung
Hier ist eine kurze Anleitung für Ansible, um dieses Projekt zum Laufen zu bringen.
- Installieren Sie Ansible auf Ihrem lokalen Gerät.
- Erstellen Sie ein leeres Arbeitsverzeichnis.
- Wechseln Sie in Ihr neu erstelltes Verzeichnis und führen Sie folgenden Befehl aus:
ansible-galaxy install xmordax.librespot -p ./roles
. Das sollte einen Ordner namens roles erstellt haben, der den Code aus diesem Repository enthält. - Erstellen Sie zwei neue Dateien im Root Ihres Arbeitsverzeichnisses:
playbook.yml
undinventory
. - In der
inventory
Datei müssen Sie die Konfiguration schreiben, wie Sie sich mit Ihrem Zielsystem verbinden möchten. In meinem Beispiel werde ich SSH verwenden. Wenn Sie eine andere Art der Authentifizierung verwenden möchten, lesen Sie die Ansible-Dokumentation zur Konfiguration Ihrer Inventardatei.[server] hostname ansible_host=<IP_OF_TARGET_MACHINE> ansible_user=<USER_ON_TARGET_MACHINE> ansible_ssh_private_key_file=<PATH_TO_SSH_KEY>
- Die
playbook.yml
Datei dient zur Konfiguration Ihres Deployments, in meinem Fall werde ich nur grundlegende Konfigurationen durchführen, um diese Anleitung einfach zu halten.- hosts: server become: true roles: - librespot vars: # Raspotify-Konfiguration librespot_installation_type: "librespot" raspotify_device_name: "home-spotify-connect"
- Führen Sie das Deployment mit folgendem Befehl durch:
ansible-playbook playbook.yml -i inventory
.
Wichtig
Stellen Sie sicher, dass Sie zuerst den Abschnitt Abhängigkeiten dieses Projekts lesen. Wenn Sie jemals Probleme mit dem Deployment haben, beziehen Sie sich zuerst auf die offizielle Ansible-Dokumentation und versuchen Sie, die Probleme selbst zu lösen, bevor Sie ein Ticket erstellen.
Lizenz
MIT / BSD
Autoreninformation
Diese Rolle wurde 2019 von Aljaz Gantar erstellt.