It's a bit of a stretch to call it a contract I think. Terms of service may in fact be a contact, but IANAL, but calling it a contract might imply that there are things to be gained on both sides. If a contract is no longer providing value for one of the contractees then it is fair, and should be provisions for such, to renegotiate or terminate the contract.
I do agree that they are abusing their position, but I don't agree that they shouldn't be allowed to act the way they are acting. Are they being unreasonable? Maybe, but it's not my, or your, place to decide that.