Honestly, the best (if you don't mind a TUI) is MPD + a TUI client like ncmpcpp or rmpc. Lightweight, fast and since it is a server, you can control it from outside. You can even output the stream in various format to give be able to play it from anywhere, although if it is having your own self-hosted spotify that you want, just use navimdrome.