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

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

ブログのトップへ