Scraping. There are a ton of sources for NBA, be it nba.com/stats, ESPN, CNNSI, etc.
Many of these sites serve up their play-by-play on a JSON feed, which makes it even easier. However, I must warn you, the data is not as clean and robust as you may like. A large part of my work was implementing a cleaning algorithm to infer missing data.
Many of these sites serve up their play-by-play on a JSON feed, which makes it even easier. However, I must warn you, the data is not as clean and robust as you may like. A large part of my work was implementing a cleaning algorithm to infer missing data.