xmordax.librespot
ロール名: Librespot
arm64およびarmhfベースのsystemdをサポートするシステムにおけるLibrespotクライアントのインストールと設定。このロールにはHifiberryデバイスの設定も含まれています。新しい機能を見たい場合は、新しいチケットを作成するか、自分でPRを作成して追加してください。
要件
librespot-java
型インストール専用:
- src: geerlingguy.java
version: 1.9.6
name: java
when: librespot_installation_type == "librespot-java"
ロール変数
インストールタイプを定義する変数:
librespot_installation_type: librespot # librespotのインストールタイプ: librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # boolean, あなたがhifiberryデバイスを持っている場合
raspotify
型インストールのための変数:
raspotify_device_name: "{{ ansible_hostname }}" # Spotify Connect上のデバイス名
raspotify_bitrate: "320" # ビットレート, 96 (低音質), 160 (標準音質), または320 (高音質)のいずれか
raspotify_options: "--zeroconf-port 40995" # Librespotの追加コマンドライン引数をここに設定可能
raspotify_cache_args: "" # 必要ならば/var/cache/librespotをキャッシュ場所として使用。デフォルトではキャッシュは無効
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # クライアントに接続時のデフォルト音量
raspotify_args: "--backend alsa --device default" # バックエンドはここでパイプに設定可能、ただしこれは非常に高度な使用ケースに対応
raspotify_git_branch: "master" # ビルドしたいgitブランチ/コミット
raspotify_librespot_git_branch: "dev" # ビルドしたいlibrespotのgitブランチ、デフォルトを使いたい場合は空のままにする
ネイティブlibrespot
型インストールのための変数:
librespot_device_name: "{{ ansible_hostname }}" # Spotify Connect上のデバイス名
librespot_bitrate: "320" # ビットレート, 96 (低音質), 160 (標準音質), または320 (高音質)のいずれか
librespot_options: "--zeroconf-port 40995" # Librespotの追加コマンドライン引数をここに設定可能
librespot_cache_args: "--disable-audio-cache" # 必要ならば/var/cache/librespotをキャッシュ場所として使用。デフォルトではキャッシュは無効
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # クライアントに接続時のデフォルト音量
librespot_args: "--backend alsa" # バックエンドはここでパイプに設定可能、ただしこれは非常に高度な使用ケースに対応
librespot_git_branch: "dev" # ビルドしたいgitブランチ/コミット
ネイティブlibrespot-java
型インストールのための変数:
---
librespot_installation_type: librespot-java # librespotのインストールタイプ: librespot(rust), librespot-java, raspotify
raspotify_enable_hifiberry: "false" # boolean, あなたがhifiberryデバイスを持っている場合
# raspotify
raspotify_device_name: "{{ ansible_hostname }}" # Spotify Connect上のデバイス名
raspotify_bitrate: "320" # ビットレート, 96 (低音質), 160 (標準音質), または320 (高音質)のいずれか
raspotify_options: "--zeroconf-port 40995" # Librespotの追加コマンドライン引数をここに設定可能
raspotify_cache_args: "" # 必要ならば/var/cache/librespotをキャッシュ場所として使用。デフォルトではキャッシュは無効
raspotify_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # クライアントに接続時のデフォルト音量
raspotify_args: "--backend alsa --device default" # バックエンドはここでパイプに設定可能、ただしこれは非常に高度な使用ケースに対応
raspotify_git_branch: "master" # ビルドしたいgitブランチ/コミット
raspotify_librespot_git_branch: "dev" # ビルドしたいlibrespotのgitブランチ、デフォルトを使いたい場合は空のままにする
# librespot
librespot_device_name: "{{ ansible_hostname }}" # Spotify Connect上のデバイス名
librespot_bitrate: "320" # ビットレート, 96 (低音質), 160 (標準音質), または320 (高音質)のいずれか
librespot_options: "--zeroconf-port 40995" # Librespotの追加コマンドライン引数をここに設定可能
librespot_cache_args: "--disable-audio-cache" # 必要ならば/var/cache/librespotをキャッシュ場所として使用。デフォルトではキャッシュは無効
librespot_volume: "--enable-volume-normalisation --linear-volume --initial-volume=100" # クライアントに接続時のデフォルト音量
librespot_args: "--backend alsa" # バックエンドはここでパイプに設定可能、ただしこれは非常に高度な使用ケースに対応
librespot_git_branch: "dev" # ビルドしたいgitブランチ/コミット
# librespot-java
librespot_java_device_name: "{{ ansible_hostname }}" # Spotify Connect上のデバイス名
librespot_java_device: "Computer" # デバイスタイプ (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" # 優先ロケール
librespot_java_auth_strategy: "ZEROCONF" # 認証戦略 (USER_PASS, ZEROCONF, BLOB, FACEBOOK)
librespot_java_auth_username: "" # Spotifyユーザー名 (BLOB, USER_PASSのみ)
librespot_java_auth_password: "" # Spotifyパスワード (USER_PASSのみ)
librespot_java_auth_blob: "" # Spotify認証ブロブ (BLOBのみ)
librespot_java_zeroconf_port: 40995 # このポートでリッスンする ('-1'はランダム)
librespot_java_zeroconf_listen_all: "true" # すべてのインターフェースでリッスンする (zeroconf.interfacesを上書き)
librespot_java_zeroconf_interfaces: "" # このインターフェースでリッスンする (カンマ区切りの名前リスト)
librespot_java_cache_enabled: "true" # キャッシュを有効化
librespot_java_cache_dir: "./cache" # キャッシュ用のディレクトリ
librespot_java_cache_do_clean_up: "true" # 定期的なキャッシュのクリーンアップ
librespot_java_preload_enabled: "true" # 曲を事前に読み込む
librespot_java_time_synchronization_method: "NTP" # 時間同期方法 (NTP, PING, MELODY, MANUAL)
librespot_java_time_manual_correction: 0 # 手動時間補正(ミリ秒)
librespot_java_player_autoplay_enabled: "true" # 音楽が終わると似た曲を自動再生
librespot_java_player_preferred_audio_quality: "VORBIS_320" # 優先音質 (VORBIS_96, VORBIS_160, VORBIS_320)
librespot_java_player_normalisation_enable: "true" # Spotifyの音量正規化を適用するかどうか
librespot_java_player_normalisation_pregain: 0.0 # 正規化前ゲイン
librespot_java_player_initial_volume: 65536 # 初期音量 (0-65536)
librespot_java_player_log_available_mixers: "false" # 利用可能なミキサーをログ出力
librespot_java_player_mixer_search_keywords: "plughw" # ミキサー/バックエンド検索キーワード (セミコロン区切り)
librespot_java_player_crossfade_duration: 0 # クロスフェードの重なり時間(ミリ秒)
librespot_java_timer_output: "MIXER" # 音声出力デバイス (MIXER, PIPE, STDOUT)
librespot_java_player_release_line_delay: 20 # 設定した遅延時間後にミキサーラインをリリース(秒)
librespot_java_player_pipe: "" # このファイルに生(符号付き)PCMを出力する ('player.output'はPIPEでなければならない)
librespot_java_git_branch: "master" # ビルドしたいgitブランチ/コミット
依存関係
このロールは、アプリケーションをソースマシンからソースをビルドし、対象システムにアーティファクトをプッシュします。したがって、ソースマシンはプロジェクトをビルドするためのすべての依存関係に一致する必要があります。
インストールタイプに応じて、以下を確認してください:
例プレイブック
- hosts: all
roles:
- role: xmordax.librespot
Ansibleガイド
このプロジェクトを実行するためのAnsibleの簡単なガイドを以下に示します。
- ローカルマシンにAnsibleをインストールしてください。
- 空の作業ディレクトリを作成します。
- 新しく作成したディレクトリに移動し、以下のコマンドを実行します:
ansible-galaxy install xmordax.librespot -p ./roles
。 これにより、このリポジトリのコードを含むrolesというフォルダーが作成されるはずです。 - 作業ディレクトリのルートに
playbook.yml
とinventory
の2つの新しいファイルを作成します。 inventory
ファイルには、ターゲットシステムへの接続方法に関する設定を書く必要があります。例として、SSHを使用します。他の種類の認証を使用する場合は、Ansibleのドキュメントをチェックしてください。[server] hostname ansible_host=<ターゲットマシンのIP> ansible_user=<ターゲットマシンのユーザー> ansible_ssh_private_key_file=<SSHキーへのパス>
playbook.yml
ファイルは、デプロイの設定に使用されます。この場合、ガイドを簡単に保つために基本的な設定だけ行います。- hosts: server become: true roles: - librespot vars: # Raspotify設定 librespot_installation_type: "librespot" raspotify_device_name: "home-spotify-connect"
- 次のコマンドでデプロイします:
ansible-playbook playbook.yml -i inventory
。
重要
まず、プロジェクトの依存関係セクションを必ず読んでください。デプロイ時に問題が発生した場合は、最初に公式なAnsibleドキュメントを参照して、自分で問題を解決しようとしてください。その後にチケットを作成してください。
ライセンス
MIT / BSD
著者情報
このロールは2019年にAljaz Gantarによって作成されました。