NixOS configuration is done entirely through code, so all of your packages are in a list (although that list can be spread across multiple files; it’s a bit to explain)
I’ve found it can be easier to manage what you have installed, since you can just look at that list and go “oh, why do I still have xyz installed, idek what that does anymore”
I appreciate the way things are configured a lot, but I would not recommend it unless you really like coding and you have time to tinker. It’s not too hard to get simple config setup, but I spiraled down a deep rabbit hole really quickly.
EDIT: If my comment for some reason persuaded you to use NixOS, I recommend you get a basic config setup before installing it. I’d also recommend you look at how annoying it can be to run dynamically-linked applications (i.e. you download a random executable off the Internet and try to run it, or you try to run something you downloaded with npm)
iirc, spotdl let’s you “log in” by storing a specific cookie in a file or getting a token or something. It’s probably somewhere in the docs, but I don’t remember exactly off the top of my head