比較各大音樂串流平台,Spotify的跨平台能力算是非常好的了,官方提供Linux版客戶端,屬於閉源軟體。但其實它是用CEF框架包起來的瀏覽器,有時候會越用越慢,吃光系統資源。Arch Wiki說的Spotify客戶端放著不管會越用越卡是真的,播放音樂會lag,清除GPU快取,重開就能處理…這個瀏覽器到底有什麼問題,有辦法拖累整臺Linux的效能。啊啊,不是每個人都有32GB RAM的電腦。
如果你覺得官方Spotify客戶端太臃腫了?就嘗試第三方的客戶端librespot吧,享受輕量的播放體驗,這樣你甚至能在終端機裡聽Spotify。
此外,如果你想在性能比較弱的裝置(如樹莓派)播放音樂,那麼臃腫的官方Spotify客戶端肯定是不適合的了。
1. librespot簡介 #
根據Github說明,librespot是2015年由plietar等人提出的開源專案,用於使用替代方法存取Spotify官方服務。這個軟體逆向了Spotify軟體的通訊協定,讓我們能使用其他播放器存取Spotify的音樂,又不需要用到Spotify Developer API。
librespot的好處是跨平臺,它能移植到Linux、macOS、FreeBSD等Unix-like的系統,在無法使用Spotify官方客戶端的場合發揮價值。
但首先要說的是: 免費仔退散 。你需要訂閱Spotify Premium才能使用librespot,這個軟體需要讀取你的Spotify帳號資訊才能使用。開發者不提供繞過方法。如果你想要無廣告免費聽Spotify音樂,Github上有很多破解版的方案,此處不討論。還有librespot不支援DRM解密,因爲這可能會碰到法律問題,所以目前librespot最高只能播放320K音質,無法播放無損音質。
根據開發者說法,使用librespot聽音樂可能會違反Spotify使用條款,風險自負。不過目前Spotify官方默許librespot存在,大概是認爲你付費了就隨你便吧。
要注意:librespot本身不是播放器,而是函式庫而已,需要被其他軟體引用才行,也就是需要一個前端。目前librespot已經有許多程式語言的binding出現了。
2. 使用librespot的前端軟體 #
這裡使用librespot的軟體大部分是跨平臺支援Linux、macOS、Windows的。這裡我推的以桌面應用爲主,不包括Roon。
用這些前端還有好處,那就是不會被Spotify演算法打擾。有些前端界面清爽,沒有首頁資訊卡,沒有歌詞,就只能搜尋聽歌。咦?很多人不就是靠Spotify演算法發現新音樂的嗎?沒錯,不過也有人不想看到Spotify首頁的那些雜七雜八內容,只想聽歌。就像對某些人而言,NewPipe可能比Youtube官方APP要來得舒適,因為他們不必看到演算法推送的內容,只要點想聽的歌曲就行了。
Riff,Spot的fork,使用GTK + Rust寫成。界面對原Spotify用戶來說比較友善。我比較了二者的RAM佔用,Riff只有200MB上下,而Spotify官方客戶端隨便就500MB以上!

草莓播放器(使用教學),使用QT寫成的播放器。也支援Subsonic伺服器。我覺得這個界面比spotify-qt漂亮。

Ampcast,受Winamp啓發的播放器,界面操作比較老派,需要手動添加播放順序,且搜尋音樂的時候要在列表中尋找,不能直接點專輯文字跳轉。播放音樂的時候會在右下角顯示有趣的視覺效果。有桌面版,也可以部署到自己的伺服器以網頁存取。支援Spotify、Apple Music、Navidrome、Jellyfin、Subsonic伺服器,也就是說,你可以同時將Spotify和本機音樂加入播放清單,混合播放!因爲使用NodeJS寫的,桌面版比較吃資源。

ncspot,用終端機播放,我覺得這是最穩定的Spotify TUI方案,但就是無法看縮圖,只能從MPRIS捕捉。

spotify_player,我覺得這個沒什麼特色。支援Spotify Connect。

spotatui + spotifyd。spotifyd只是個Unix daemon,可以跟其他播放器前端任意組合。spotatui支援顯示縮圖,還支援Spotify Connect。

3. 記錄librespot的音樂播放歷史 #
透過librespot播放的音樂可能不會出現在Spotify的歷史記錄,建議額外串last.fm,這樣就不用擔心沒有年度回顧報告了。
例如終端機的librespot播放器因爲多半支援MPRIS協定,就用這個:https://github.com/InputUsername/rescrobbled