xmordax.librespot
Nom du Rôle : Librespot
Installation et configuration du client Librespot sur des systèmes basés sur arm64 et armhf qui supportent systemd. Ce rôle inclut également la configuration d'un dispositif Hifiberry. Si vous souhaitez voir de nouvelles fonctionnalités, n'hésitez pas à créer un nouveau ticket ou à soumettre une PR pour l'ajouter vous-même.
Exigences
Uniquement pour le type d'installation librespot-java
:
- src: geerlingguy.java
version: 1.9.6
name: java
when: librespot_installation_type == "librespot-java"
Variables du Rôle
Variables à définir pour le type d'installation :
librespot_installation_type: librespot # type d'installation de librespot : librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # booléen, si vous avez un dispositif hifiberry
Variables pour le type d'installation raspotify
:
raspotify_device_name: "{{ ansible_hostname }}" # nom du dispositif sur Spotify Connect
raspotify_bitrate: "320" # bitrate, l'un de 96 (basse qualité), 160 (qualité par défaut), ou 320 (haute qualité)
raspotify_options: "--zeroconf-port 40995" # arguments supplémentaires de ligne de commande pour librespot peuvent être définis ci-dessous.
raspotify_cache_args: "" # utiliser /var/cache/librespot comme emplacement de cache si nécessaire. Le cache est désactivé par défaut.
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # volume par défaut lors de la connexion au client
raspotify_args: "--backend alsa --device default" # le backend peut être défini sur pipe ici, mais c'est pour des cas d'utilisation très avancés
raspotify_git_branch: "master" # branche/commit git depuis lequel vous souhaitez le construire
raspotify_librespot_git_branch: "dev" # branche git de librespot depuis laquelle vous souhaitez le construire, laissez vide si vous souhaitez utiliser la branche par défaut
Variables pour le type d'installation native librespot
:
librespot_device_name: "{{ ansible_hostname }}" # nom du dispositif sur Spotify Connect
librespot_bitrate: "320" # bitrate, l'un de 96 (basse qualité), 160 (qualité par défaut), ou 320 (haute qualité)
librespot_options: "--zeroconf-port 40995" # arguments supplémentaires de ligne de commande pour librespot peuvent être définis ci-dessous
librespot_cache_args: "--disable-audio-cache" # utiliser /var/cache/librespot comme emplacement de cache si nécessaire. Le cache est désactivé par défaut.
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # volume par défaut lors de la connexion au client
librespot_args: "--backend alsa" # le backend peut être défini sur pipe ici, mais c'est pour des cas d'utilisation très avancés
librespot_git_branch: "dev" # branche/commit git depuis lequel vous souhaitez le construire
Variables pour le type d'installation native librespot-java
:
---
librespot_installation_type: librespot-java # type d'installation de librespot : librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # booléen, si vous avez un dispositif hifiberry
# raspotify
raspotify_device_name: "{{ ansible_hostname }}" # nom du dispositif sur Spotify Connect
raspotify_bitrate: "320" # bitrate, l'un de 96 (basse qualité), 160 (qualité par défaut), ou 320 (haute qualité)
raspotify_options: "--zeroconf-port 40995" # arguments supplémentaires de ligne de commande pour librespot peuvent être définis ci-dessous.
raspotify_cache_args: "" # utiliser /var/cache/librespot comme emplacement de cache si nécessaire. Le cache est désactivé par défaut.
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # volume par défaut lors de la connexion au client
raspotify_args: "--backend alsa --device default" # le backend peut être défini sur pipe ici, mais c'est pour des cas d'utilisation très avancés
raspotify_git_branch: "master" # branche/commit git depuis lequel vous souhaitez le construire
raspotify_librespot_git_branch: "dev" # branche git de librespot depuis laquelle vous souhaitez le construire, laissez vide si vous souhaitez utiliser la branche par défaut
# librespot
librespot_device_name: "{{ ansible_hostname }}" # nom du dispositif sur Spotify Connect
librespot_bitrate: "320" # bitrate, l'un de 96 (basse qualité), 160 (qualité par défaut), ou 320 (haute qualité)
librespot_options: "--zeroconf-port 40995" # arguments supplémentaires de ligne de commande pour librespot peuvent être définis ci-dessous
librespot_cache_args: "--disable-audio-cache" # utiliser /var/cache/librespot comme emplacement de cache si nécessaire. Le cache est désactivé par défaut.
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # volume par défaut lors de la connexion au client
librespot_args: "--backend alsa" # le backend peut être défini sur pipe ici, mais c'est pour des cas d'utilisation très avancés
librespot_git_branch: "dev" # branche/commit git depuis lequel vous souhaitez le construire
# librespot-java
librespot_java_device_name: "{{ ansible_hostname }}" # nom du dispositif sur Spotify Connect
librespot_java_device: "Computer" # type de dispositif (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" # locale préférée
librespot_java_auth_strategy: "ZEROCONF" # stratégie (USER_PASS, ZEROCONF, BLOB, FACEBOOK)
librespot_java_auth_username: "" # nom d'utilisateur spotify (BLOB, USER_PASS uniquement)
librespot_java_auth_password: "" # mot de passe spotify (USER_PASS uniquement)
librespot_java_auth_blob: "" # blob d'authentification spotify (BLOB uniquement)
librespot_java_zeroconf_port: 40995 # écouter sur ce port (`-1` pour aléatoire)
librespot_java_zeroconf_listen_all: "true" # écouter sur toutes les interfaces (remplace `zeroconf.interfaces`)
librespot_java_zeroconf_interfaces: "" # écouter sur ces interfaces (liste séparée par des virgules)
librespot_java_cache_enabled: "true" # activer le cache
librespot_java_cache_dir: "./cache" # répertoire pour le cache
librespot_java_cache_do_clean_up: "true" # nettoyage périodique du cache
librespot_java_preload_enabled: "true" # précharger des chansons
librespot_java_time_synchronization_method: "NTP" # méthode de synchronisation du temps (NTP, PING, MELODY, MANUEL)
librespot_java_time_manual_correction: 0 # correction manuelle du temps en millisecondes
librespot_java_player_autoplay_enabled: "true" # lecture automatique de chansons similaires lorsque votre musique se termine
librespot_java_player_preferred_audio_quality: "VORBIS_320" # qualité audio préférée (VORBIS_96, VORBIS_160, VORBIS_320)
librespot_java_player_normalisation_enable: "true" # appliquer la normalisation du volume spotify
librespot_java_player_normalisation_pregain: 0.0 # prégain de normalisation
librespot_java_player_initial_volume: 65536 # volume initial (0-65536)
librespot_java_player_log_available_mixers: "false" # journaliser les mélangeurs disponibles
librespot_java_player_mixer_search_keywords: "plughw" # mots-clés de recherche pour le mélangeur/backend (séparés par des points-virgules)
librespot_java_player_crossfade_duration: 0 # temps de chevauchement du crossfade (en millisecondes)
librespot_java_timer_output: "MIXER" # dispositif de sortie audio (MIXER, PIPE, STDOUT)
librespot_java_player_release_line_delay: 20 # libérer la ligne du mélangeur après un délai défini (en secondes)
librespot_java_player_pipe: "" # sortie PCM brute (signée) dans ce fichier (`player.output` doit être PIPE)
librespot_java_git_branch: "master" # branche/commit git depuis lequel vous souhaitez le construire
Dépendances
Les rôles construiront chacune des applications à partir des sources sur votre machine source avant de transférer l'artefact vers votre système cible. Il est donc nécessaire que votre machine source corresponde à toutes les dépendances requises pour la construction des projets.
Selon le type d'installation, consultez les éléments suivants :
Exemple de Playbook
- hosts: all
roles:
- role: xmordax.librespot
Guide Ansible
Voici un guide rapide pour Ansible afin de mettre ce projet en route.
- Installez Ansible sur votre machine locale.
- Créez un répertoire de travail vide.
- Changez de répertoire pour entrer dans votre nouveau répertoire créé et exécutez la commande suivante :
ansible-galaxy install xmordax.librespot -p ./roles
. Cela devrait créer un dossier appelé roles qui contient le code de ce dépôt. - Créez deux nouveaux fichiers à la racine de votre répertoire de travail :
playbook.yml
etinventory
. - Dans le fichier
inventory
, vous devez écrire la configuration sur la manière de vous connecter à votre système cible. Dans mon exemple, j'utiliserai SSH. Si vous souhaitez utiliser un autre type d'authentification, veuillez consulter la documentation Ansible sur la configuration de votre fichier d'inventaire.[server] hostname ansible_host=<IP_DE_MACHINE_CIBLE> ansible_user=<UTILISATEUR_SUR_MACHINE_CIBLE> ansible_ssh_private_key_file=<CHEMIN_VERS_CLE_SSH>
- Le fichier
playbook.yml
est utilisé pour configurer votre déploiement, dans mon cas, il s'agira d'une configuration de base pour garder ce guide simple.- hosts: server become: true roles: - librespot vars: # Configuration Raspotify librespot_installation_type: "librespot" raspotify_device_name: "home-spotify-connect"
- Déployez avec la commande suivante :
ansible-playbook playbook.yml -i inventory
.
Important
Assurez-vous de lire d'abord la section dépendances de ce projet. Si vous rencontrez des problèmes lors du déploiement, veuillez d'abord vous référer à la documentation officielle Ansible et essayer de résoudre les problèmes par vous-même avant de créer un ticket.
Licence
MIT / BSD
Informations sur l'Auteur
Ce rôle a été créé en 2019 par Aljaz Gantar.