I actually would like to know how to modify librespot to do so, since I am not a developer or know any Rust at all. Thus this project seems useful to me.
Yes please. :)
@dang if you're reading this, please delete this listing, Thanks.
https://github.com/librespot-org/librespot/blob/650d41b02069...
.set_system_information_string(format!("librespot_{}_{}", version::SHA_SHORT, version::BUILD_ID));
Then it would be more of an exercise of finding clients behaving in an odd way that's not mapping to an official client. That's way harder to detect though.
Trying to pretend to be an official client was a game I never wanted to play. There's so many tiny differences in the way I've implemented the protocol it would be trivial for Spotify to notice this if they wanted to. It then becomes an whack a mole game between them and us.
Spotify is fully aware of librespot and has tolerated it so far. If they change their minds are try to block it it would be the end of the road for librespot. This is why, despite repeated requests from users, librespot has never supported free accounts nor downloading files in order to avoid pissing Spotify off. I always knew it would be trivial for anyone to implement this using the librespot source code, but it makes me a bit sad someone actually did it.
(That being said, I personally don't contribute or use librespot anymore, so really I don't care)
Currently dealing with this with a project of mine, it's hard to see people take and "abuse it", but there's nothing you can do really - licenses don't stop anyone.
It's not useful for acquiring files for your personal collection.