@george you can’t specify “the 100 users in the channel”. The API only allows you to get 100 users of all followers at a time. There is no option to give a list of 100 user ids and get a response.
If someone has 70k followers, and you do 100 users at a time. That’s 700 requests. If that’s the only request that’s occurring (it isn’t), then that’s 350 seconds (2 requests/sec) to get all the necessary information. That’s ~6 minutes. And if this is “per client-id” like their docs say, which I think is complete bs and their docs are wrong as I’ve tested it, then it’s literally impossible to make a non-alert based program.
This is the use case:
A dashboard that shows all users in the chat and their contribution status. Whether they have chatted recently, are a follower, or are a subscriber.
The subscriber resource only allows one request at a time. So 300 viewers is 300 calls, 70k followers is 700 calls. That’s around 9 minutes for one user, just to start up the application.
Also - the follower event doesn’t work. Because there is no unfollow event. You still have to be constantly cycling through the entire list every single time. Albeit 300 viewers and 70k followers is a poor example because you’d rather do 300 individual calls than 700 calls 100 at a time. But as soon as they hit 700 viewers, then the use case comes back.
The point Travis is making is how can you reasonably make a dashboard as the use case above has described, and not get rate limited? If I have 200 streamers using my application, and each have 500 viewers and tens of thousands of followers, then how exactly can I get any of this data reliably?
I’ve been playing around with the rate limiting on twitch in order to answer this question, and the only answer is “Keep adding client ids”. But that doesn’t work either. The docs say rate limiting is by client id (dumb, it should be by oauth token like everyone else in the known universe), but it’s not. It’s by IP. There’s literally no way around it.