Readme: More information about spotifyd (and other supported Spotify clients), especially for Windows
It seems that there is no Windows build for spotifyd, so even if Spotify-qt seems fine on windows, local Playback is not possible. Maybe there are alternatives? maybe there are unofficial releases of Windows binaries?
If you mention that Spotify-qt works on Windows, it should be in the readme how to use it, if the obvious way (click the spotifyd link and download a Windows binary) does not work. Maybe librespot would be fine, it at least seems to compile for Windows ( https://github.com/librespot-org/librespot/issues/30 ) but there are also no binaries provided.
librespot is fairly straightforward to compile, though I haven't been able to run it properly on Windows without major issues. Currently, the plan is to focus on adding support for librespot-java instead. Maybe it will work better on Windows.
Can you say something about the memory footprint of librespot-java? I basically like the idea of spotify-qt because it does not waste a lot of RAM as the elctron-based original client does. Java also tends to use a lot of memory for small applications from my experience.
librespot-java does use quite a bit of memory, using around 200-300 MB, over the 5-10 MB of librespot, under Linux at least. If librespot started providing better ways to communicate with the running client, like librespot-java, librespot could become the main focus again instead. I would still consider it better than having to run the official client. Support for librespot/spotifyd won't be removed anytime soon, and you'll always be able to run it manually outside the application.
With regard to Windows installation, I just went through the following steps. They were not clear to me; it took me a fair bit of trial and error to figure out. Perhaps these could be added to the readme.
- Install spotify-qt using the provided installer binary and following the existing instructions in the readme.
- Install the Rust toolchain.
- Use cargo to build and install librespot.
- In spotify-qt, under Settings > Spotify > General, set the path to librespot.exe (for me, in C:/Users/Username/.cargo/bin/librespot.exe). I also enabled "Start with app".
- In spotify-qt, under Settings > Spotify > General > Configuration, set the Username to your spotify login (for me this was my email address).
- Then I was prompted to enter my spotify password.
After all this, I finally got it working.
Thanks for sharing @retwere - I think it would be good to add more detail for step 3 and maybe an URL for step 2.
A more detailed tutorial for spotify-qt and librespot on Windows:
- Install/extract spotify-qt and follow instructions in the readme (Login to Spotify Developer Dashboard in browser, get Client ID & Client Secret etc.)
- Install the Rust toolchain via Rustup-Init.exe from https://www.rust-lang.org/tools/install (you need to Install Visual Studio C++ build tools AND a Windows SDK, Rustop offers to install it for non-commercial users. System may likely need to be restarted after VS/SDK setup. At least the shell needs to be restarted before rusttools are available (re-read of PATH variable)
- Go to the root folder of the local librespot repo copy and use
cargo build --releaseas described in https://github.com/librespot-org/librespot/blob/dev/COMPILING.md --- For Windows it seems that you do not have to care about the Audio library, it did work fine for me 3a. I am not sure why @retwere wrote build and install, as the COMPILING.md does not mention to install. I just used the .exe in %Librespot_local_repo_copy%/target/release/ - In spotify-qt, under Settings > Spotify > General, set the path to librespot.exe (for me, in C:/Users/Username/.cargo/bin/librespot.exe). I also enabled "Start with app".
- In spotify-qt, under Settings > Spotify > General > Configuration, set the Username to your spotify login (for me this was my email address like for @retwere) and click button "start client"
- Then I was prompted to enter my spotify password.
- (remove Windows SDK, build tools and Rustup)
Observation: After "release" compile the "target/release" directory of 0.4.2 is 600 MB in size (debug > 1GB), about150 MB of it being *.pdb files which afaik should not be present in release builds. 0.5.0-dev even has 1GB of files -- but it seems that only librespot.exe is needed (~ 10MB)
Spotify-qt 3.8 and libresport together use about 30 MB of RAM and hardly any CPU cycles. nice!
FYI: It seems that Spotify reports a stream to the server not only for playback but also for statistics. It seems like librespot does not do https://github.com/librespot-org/librespot/discussions/626 - so likely artists are not payed for playbacks using librespot :(.