3年前 Linuxデスクトップに順応するためにiTunesからGoogle Play Musicに移行したのに、今年Google Play Musicは終了してしまった。YouTube Musicは、余計な音声が入ったプロモーション動画とかでしか再生したい曲が再生できなかったりするので、これはYouTubeであってMusicアプリではないという感じ。
そこで移行先としてSpotifyを使っているのだけど、まあ欲しい曲が全然ないのでGoogle Play Musicにあった曲をDropboxに置いてlocal filesとして再生などする1必要があり、そのためにUbuntuでデスクトップアプリ使おうとすると https://www.spotify.com/us/download/linux/ というページがあるにも関わらずやたら大変だったので、どうやって問題に対応したのかメモしておく。
Google認証でログインができない
macOSのアプリでは普通にできるのだが、Linux版では最新版でもできない。
Google認証で作ったアカウントには何故かデフォルトではメールアドレスが紐付いておらず (その割にGmailのアドレスのアカウントが存在するとしっかりconflictする2)、パスワードリセットしようとしてもそんなEmailのアカウントはないと言われる。デスクトップアプリ使うのを一瞬諦めかけた。
これを直すのは簡単で、設定からEmailをちゃんと登録できるようになっていて、そうするとパスワードリセットできるので、無事Linuxのデスクトップアプリログインできるようになる。
HiDPIに対応していない
今時4KディスプレイやHiDPIを使っていない人はいないと思うのだけど、おもむろにSpotifyクライアントをインストールして開くとHiDPIに対応してない感じになる。
これは https://community.spotify.com/t5/Desktop-Linux/Linux-client-barely-usable-on-HiDPI-displays/td-p/1067272 ですぐ対処方を見つけることができる…はずだったのだが、--force-device-scale-factor=2.0
を足す対象のdesktopエントリは /usr/share/applications/spotify.desktop
にはなく、/snap/spotify/current/usr/share/spotify/spotify.desktop
とかに見つかる。
Snapcraftのせいで設定ファイルがreadonlyでマウントされているため、これは直接いじることはできない。/var/lib/snapd/desktop/applications/spotify_spotify.desktop
はいじれるが、これは別にいじっても設定が反映されない。それを ~/.local/share/applications/
にコピーしてみたりしていたら期待通りの挙動になった。なお同じ名前のエントリが複数あってもGNOMEのメニューで重複することはない模様。
local files の設定をしようとするとクラッシュする
現状の最新版のSpotifyクライアントでlocal filesを設定しようとすると、Ubuntu 20.04ではクラッシュする。 https://community.spotify.com/t5/Desktop-Linux/Ubuntu-20-04-1-Crashes-when-quot-add-source-quot-for-local-songs/td-p/5042485 では最新版をインストールしたら直ったとあるが、少なくとも2020/12/13時点での最新版は壊れている。
上記のスレのSolutionは1ミリも参考にはならないのだが、リプライを眺めていると、別のマシンで作ったwatch-sources.bnkというファイルを持ってくると設定が適用できるっぽいことがわかった。なお、このバイナリを眺めてもパスが平文で埋まったりはしていないので、自力編集は難しそう。
そこで、古いSpotifyクライアントが入っているDockerコンテナ https://hub.docker.com/r/syncomm/spotify/ を発見し、そこではlocal filesの追加でクラッシュしなかったので、そこからwatch-sources.bnkを持ってくることで解決した。
まとめ
こんなことで消耗してないで、ローカルファイル使わなくても必要な曲が揃うサービスを探すか、WindowsやmacOSを使うのが良い。
-
ところで、そういうつもりの人はいまのうちにGoogle Play Musicにおいてある曲をちゃんと全部ダウンロードしておくのをやっておくと良い。その中でSpotifyに見つからない曲をDropboxにアップロードし、そこをSpotifyのlocal filesパスとして使っている。ちなみに同じネットワークにいるデスクトップマシンのlocal filesを、プレイリストのダウンロード機能を使うことで簡単にiOS/Androidアプリに転送できるのだけど、これはプレミアム機能。 ↩
-
そもそもGmailのアドレスで登録したアカウントをGoogle認証にするためには、一旦アカウントを削除して2週間強待って作り直す必要があるというtipsもある ↩