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.

  1. Installieren Sie Ansible auf Ihrem lokalen Gerät.
  2. Erstellen Sie ein leeres Arbeitsverzeichnis.
  3. 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.
  4. Erstellen Sie zwei neue Dateien im Root Ihres Arbeitsverzeichnisses: playbook.yml und inventory.
  5. 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>
    
  6. 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"
    
  7. 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.

Installieren
ansible-galaxy install xmordax.librespot
GitHub Repository
Lizenz
mit
Downloads
110
Besitzer