Ubuntuで自室用Spotifyサーバーをつくる

※2022年時点(Ubuntu 20.04)の手順です。
自室のサーバーPCでSpotifyを常時実行し、オーディオレシーバーのように使おうという作戦。
なお、GUIなら公式サイトからダウンロードして使える。
部屋のオーディオ構成はこうなっている。
色々なPC→USB-DAC(有線のみ)→アンプ→スピーカー
で、このDACを通して、無線でSpotifyを聴きたいので試してみた。
ちなみにAirplayサーバーも立てていたが、仕様である遅延に耐えられなかった。
結果としては遅延もなく手軽に聴けて大満足!
環境と前提
Ubuntu 20.04.4 構築済み
UbuntuからUSB-DACへの音声出力は既にできているものとする
準備とインストール
使用ユーザーはroot以外。
sudo apt install git rustc cargo libasound2-dev libssl-dev pkg-config
git clone https://github.com/Spotifyd/spotifyd.git
cd spotifyd
cargo build --release
次に設定ファイルを作る。
場所は以下3つのどこでも良い。
~/.config/spotifyd/spotifyd.conf
/etc/spotifyd.conf
/etc/xdg/spotifyd/spotifyd.conf
今回はホームディレクトリに作った。以下の設定ファイルを例に書き込む。
↓\~/.config/spotifyd/spotifyd.conf↓
[global]
#ログインに必要な情報
username = "USER"(Spotifyのプロフィールから確認できるユーザー名、メールアドレスではない)
#パスワードはここに直接書かない(※1)
use_keyring = true(キーリングに保存したパスワードを使う)
#音声出力の設定
backend = alsa(今回はALSAを使用※2)
device = alsa_audio_device
mixer = PCM
volume-control = alsa(またはalsa_linear、softvol)
#Spotifyの設定
device_name = "DEVICE NAME"(デバイス名、スペース使用不可)
bitrate = 320(ビットレート[kbps]、96,160,320のいずれか)
volume-normalisation = false(オーディオノーマリゼーション、私は不要派)
normalisation-pregain = -10(使わんしわからんのでデフォルト値)
#キャッシュの設定
cache_path = /home/user/.cache/spotifyd(キャッシュ保存場所、左記は例)
no_audio_cache = false(falseでキャッシュを有効化)
※1について、パスワードを設定ファイルにそのまま(平文で)書くのは危険なのでやめよう。 上の例のように use_keyring = true にしてキーリングに保存しておくか、password_cmd オプションでパスワードを出力するコマンドを指定する(例: 自分だけが読める別ファイルから読む)形にするのがよい。くわしくは下の参考にある公式ドキュメントを見てほしい。
※2について、オーディオの管理を何でしているかによるので、どのような環境を構築しているかによる。環境の構築はいつか記事にするかもしれない。
起動設定
まず、このソフトのファイルはspotifyd/target/release/spotifydである。
なので、これを/usr/binに移動する。
その後、同梱されているsystemd用ファイルを移動する。
sudo cp spotifyd/target/release/spotifyd /usr/bin
sudo cp contrib/spotifyd.service /etc/systemd/system
spotifyd.serviceの中身はこのままで良いので、登録と起動をする。
sudo systemctl daemon-reload
sudo systemctl enable spotifyd
sudo systemctl start spotifyd
起動しているか確認する。
sudo systemctl status spotifyd
オッケーなら外部のスマホやパソコンから遠隔再生をしてみよう。流れれば成功!快適!
ただ、こちらの環境ではデバイス名がうまく反映されずSpotifyd@ホスト名となってしまっている。なぜかはわからない。スマン。
公式ドキュメントを見る限りクロスフェードは無理そうかな?
CUIでSpotifyを操作するソフトもいるかと思っていたが、よく考えたらスマホなどから遠隔再生するので、起動しておくだけなので不要だった。
以下の記事を参考にさせていただきました。
https://github.com/GnaphronG/docker-spotifyd
https://spotifyd.github.io/spotifyd/config/File.html
https://ameblo.jp/asuyuki-26/entry-12691477563.html
https://qiita.com/go_new_innov/items/60b81915e1ea3b48cfa2