Why use a spinner for downloading? Don't you know how many bytes you need to fetch and how many you have received so far?
wget has a progress bar, and it works perfectly fine.
EDIT: Though, if the server does not have a Content-Length header, you will get an indeterminate progress bar (a kind of spinner, I suppose) in web browsers, if that's the kind of thing you mean?
Downloads can occupy some fuzzy middle ground between unknown and deterministic.
The normal case is that bandwidth throughput can be estimated well enough to make humans happy. But a broken network throws that out the window and will do its best to find ways to make your progress bar behave weirdly.
I can't remember what it was, but there was a Mac app a very long time ago (System 7 era, in the 90s) - maybe a news reader? - that would eventually hide the progress bar and show a message about bad networking when that happened.
There are browser APIs, as well. However, network performance may vary. Personally, I would add textual information, like an estimate of the time required.