xmordax.librespot

Nazwa roli: Librespot

Instalacja i konfiguracja klienta Librespot na systemach opartych na arm64 i armhf, które wspierają systemd. Rola ta obejmuje również konfigurację urządzenia Hifiberry. Jeśli chcesz zobaczyć nowe funkcje, nie wahaj się utworzyć nowego zgłoszenia lub śmiało stwórz PR, aby dodać je samodzielnie.

Wymagania

Tylko dla typu instalacji librespot-java:

- src: geerlingguy.java
  version: 1.9.6
  name: java
  when: librespot_installation_type == "librespot-java"

Zmienne roli

Zmienne do zdefiniowania typu instalacji:

librespot_installation_type: librespot # typ instalacji librespot: librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # wartość logiczna, jeśli posiadasz urządzenie hifiberry

Zmienne dla typu instalacji raspotify:

raspotify_device_name: "{{ ansible_hostname }}" # nazwa urządzenia na Spotify Connect
raspotify_bitrate: "320" # bitrate, jeden z 96 (niska jakość), 160 (domyślna jakość), lub 320 (wysoka jakość)
raspotify_options: "--zeroconf-port 40995" # dodatkowe argumenty wiersza poleceń dla librespot
raspotify_cache_args: "" # użyj /var/cache/librespot jako lokalizacji pamięci podręcznej, jeśli jest potrzebna. Pamięć podręczna jest domyślnie wyłączona
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # domyślny głośność podczas łączenia z klientem
raspotify_args: "--backend alsa --device default" # backend można ustawić na pipe, ale to dla zaawansowanych przypadków użycia
raspotify_git_branch: "master" # gałąź/commit git, z którego chcesz zbudować
raspotify_librespot_git_branch: "dev" # gałąź git z librespot, z której chcesz zbudować, pozostaw puste, jeśli chcesz użyć domyślnej

Zmienne dla natywnego typu instalacji librespot:

librespot_device_name: "{{ ansible_hostname }}" # nazwa urządzenia na Spotify Connect
librespot_bitrate: "320" # bitrate, jeden z 96 (niska jakość), 160 (domyślna jakość), lub 320 (wysoka jakość)
librespot_options: "--zeroconf-port 40995" # dodatkowe argumenty wiersza poleceń dla librespot
librespot_cache_args: "--disable-audio-cache" # użyj /var/cache/librespot jako lokalizacji pamięci podręcznej, jeśli jest potrzebna. Pamięć podręczna jest domyślnie wyłączona
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # domyślny głośność podczas łączenia z klientem
librespot_args: "--backend alsa" # backend można ustawić na pipe, ale to dla zaawansowanych przypadków użycia
librespot_git_branch: "dev" # gałąź/commit git, z którego chcesz zbudować

Zmienne dla natywnego typu instalacji librespot-java:

---

librespot_installation_type: librespot-java # typ instalacji librespot: librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # wartość logiczna, jeśli posiadasz urządzenie hifiberry

# raspotify
raspotify_device_name: "{{ ansible_hostname }}" # nazwa urządzenia na Spotify Connect
raspotify_bitrate: "320" # bitrate, jeden z 96 (niska jakość), 160 (domyślna jakość), lub 320 (wysoka jakość)
raspotify_options: "--zeroconf-port 40995" # dodatkowe argumenty wiersza poleceń dla librespot
raspotify_cache_args: "" # użyj /var/cache/librespot jako lokalizacji pamięci podręcznej, jeśli jest potrzebna. Pamięć podręczna jest domyślnie wyłączona
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # domyślny głośność podczas łączenia z klientem
raspotify_args: "--backend alsa --device default" # backend można ustawić na pipe, ale to dla zaawansowanych przypadków użycia
raspotify_git_branch: "master" # gałąź/commit git, z którego chcesz zbudować
raspotify_librespot_git_branch: "dev" # gałąź git z librespot, z której chcesz zbudować, pozostaw puste, jeśli chcesz użyć domyślnej

# librespot
librespot_device_name: "{{ ansible_hostname }}" # nazwa urządzenia na Spotify Connect
librespot_bitrate: "320" # bitrate, jeden z 96 (niska jakość), 160 (domyślna jakość), lub 320 (wysoka jakość)
librespot_options: "--zeroconf-port 40995" # dodatkowe argumenty wiersza poleceń dla librespot
librespot_cache_args: "--disable-audio-cache" # użyj /var/cache/librespot jako lokalizacji pamięci podręcznej, jeśli jest potrzebna. Pamięć podręczna jest domyślnie wyłączona
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # domyślny głośność podczas łączenia z klientem
librespot_args: "--backend alsa" # backend można ustawić na pipe, ale to dla zaawansowanych przypadków użycia
librespot_git_branch: "dev" # gałąź/commit git, z którego chcesz zbudować

# librespot-java
librespot_java_device_name: "{{ ansible_hostname }}" # nazwa urządzenia na Spotify Connect
librespot_java_device: "Computer" # typ urządzenia (KOMPUTER, TABLET, SMARTFON, GŁOŚNIK, TELEWIZOR, AVR, STB, AUDIO_DONGLE, KONSOLA_GIER, CAST_VIDEO, CAST_AUDIO, SAMOCHÓD, URZĄDZENIE_NOSZONE, NIEZNANE_SPOTIFY, CAR_THING, NIEZNANE)
librespot_java_preferred_locale: "Computer" # preferowany język
librespot_java_auth_strategy: "ZEROCONF" # strategia (USER_PASS, ZEROCONF, BLOB, FACEBOOK)
librespot_java_auth_username: "" # nazwa użytkownika Spotify (tylko BLOB, USER_PASS)
librespot_java_auth_password: "" # hasło Spotify (tylko USER_PASS)
librespot_java_auth_blob: "" # blob autoryzacji Spotify (tylko BLOB)
librespot_java_zeroconf_port: 40995 # nasłuchuj na tym porcie (`-1` dla losowego)
librespot_java_zeroconf_listen_all: "true" # nasłuchuj na wszystkich interfejsach (przesłania `zeroconf.interfaces`)
librespot_java_zeroconf_interfaces: "" # nasłuchuj na tych interfejsach (lista nazw rozdzielona przecinkami)
librespot_java_cache_enabled: "true" # włącz pamięć podręczną
librespot_java_cache_dir: "./cache" # katalog do pamięci podręcznej
librespot_java_cache_do_clean_up: "true" # okresowe czyszczenie pamięci podręcznej
librespot_java_preload_enabled: "true" # wstępne ładowanie piosenek
librespot_java_time_synchronization_method: "NTP" # metoda synchronizacji czasu (NTP, PING, MELODY, MANUAL)
librespot_java_time_manual_correction: 0 # ręczna korekta czasu w milisekundach
librespot_java_player_autoplay_enabled: "true" # automatyczne odtwarzanie podobnych piosenek po końcu muzyki
librespot_java_player_preferred_audio_quality: "VORBIS_320" # preferowana jakość dźwięku (VORBIS_96, VORBIS_160, VORBIS_320)
librespot_java_player_normalisation_enable: "true" # czy zastosować normalizację głośności Spotify
librespot_java_player_normalisation_pregain: 0.0 # normalizacja pregain
librespot_java_player_initial_volume: 65536 # początkowa głośność (0-65536)
librespot_java_player_log_available_mixers: "false" # loguj dostępne miksery
librespot_java_player_mixer_search_keywords: "plughw" # słowa kluczowe do wyszukiwania miksera/backendu (oddzielone średnikami)
librespot_java_player_crossfade_duration: 0 # czas przejścia (w milisekundach)
librespot_java_timer_output: "MIXER" # urządzenie wyjściowe audio (MIXER, PIPE, STDOUT)
librespot_java_player_release_line_delay: 20 # opóźnienie zwolnienia linii miksera (w sekundach)
librespot_java_player_pipe: "" # wyjście surowego (podpisanego) PCM do tego pliku (`player.output` musi być PIPE)
librespot_java_git_branch: "master" # gałąź/commit git, z którego chcesz zbudować

Zależności

Rola zbuduje każdą z aplikacji ze źródła na twojej maszynie źródłowej przed przesłaniem artefaktu do systemu docelowego. Dlatego wymagane jest, aby twoja maszyna źródłowa była zgodna ze wszystkimi wymaganymi zależnościami do budowania projektów.

W zależności od typu instalacji zapoznaj się z następującymi zasobami:

Przykładowy plik Playbook

- hosts: all
  roles:
    - role: xmordax.librespot

Przewodnik po Ansible

Oto szybki przewodnik po Ansible, aby uruchomić ten projekt.

  1. Zainstaluj Ansible na swoim lokalnym komputerze.
  2. Utwórz pusty katalog roboczy.
  3. Wejdź do nowo utworzonego katalogu i wykonaj następujące polecenie: ansible-galaxy install xmordax.librespot -p ./roles. To powinno utworzyć folder o nazwie roles, który zawiera kod z tego repozytorium.
  4. Utwórz dwa nowe pliki w katalogu głównym swojego katalogu roboczego: playbook.yml i inventory.
  5. W pliku inventory musisz napisać konfigurację, jak połączyć się z systemem docelowym. W moim przykładzie użyję SSH. Jeśli chcesz użyć innego rodzaju uwierzytelnienia, sprawdź dokumentację Ansible, jak skonfigurować plik inwentarza.
    [server]
    hostname ansible_host=<IP_MASZYNY_DOCELOWEJ> ansible_user=<UŻYTKOWNIK_NA_MASZYNIE_DOCELOWEJ> ansible_ssh_private_key_file=<ŚCIEŻKA_DO_KLUCZA_SSH>
    
  6. Plik playbook.yml jest używany do konfigurowania wdrożenia. W moim przypadku zrobię tylko podstawową konfigurację, aby pozostawić ten przewodnik prostym.
    - hosts: server
      become: true
      roles:
        - librespot
    
      vars:
        # Konfiguracja Raspotify
        librespot_installation_type: "librespot"
        raspotify_device_name: "home-spotify-connect"
    
  7. Wdrożenie za pomocą następującego polecenia: ansible-playbook playbook.yml -i inventory.

Ważne

Upewnij się, że najpierw przeczytałeś sekcję zależności tego projektu. Jeśli kiedykolwiek napotkasz jakiekolwiek problemy z wdrożeniem, najpierw zapoznaj się z oficjalną Dokumentacją Ansible i spróbuj samodzielnie rozwiązać problemy, zanim utworzysz zgłoszenie.

Licencja

MIT / BSD

Informacje o autorze

Ta rola została stworzona w 2019 roku przez Aljaz Gantar.

Zainstaluj
ansible-galaxy install xmordax.librespot
Licencja
mit
Pobrania
110
Właściciel