Here's what you need to do
at minimum to watch NBA games in the US:
- Buy a cable package and make sure it has both ESPN and TNT (different providers will include them in different subscription tiers, so you have to check).
- ESPN and TNT will each only broadcast a select number of primetime games, so for the rest you need NBA league pass. This may be offered as an add-on by your cable provider, or you may need to buy it directly from the NBA's own site (and use a separate app for those games).
- However your local or regional teams' games won't be available on League Pass, so you have to figure out which company has bought local rights for that particular team (e.g. Bally Sports for Knicks games in the NY area) and pay for that channel as well.
- Sometimes that regional network and your cable provider will be unable to strike a deal. If that happens - too bad, you literally cannot watch home games of your local team legally.
The situation in the NFL is even worse.
So yeah, it's no surprise that a large number of fans who would otherwise have paid for games choose to just stream them illegally with one click.