I’m aware that requests are cached, and as per the original issue I get inconsistent results in the first minute, but that’s fine for my use case. My issue is that for certain streams (such as my own channel, which I’m using for testing) the response just starts coming back completely empty.
For example, if I start my stream, then 3 minutes later check the endpoint, the response is empty. The endpoint documentation does not mention any condition for the stream to not be shown, it just seems to be bugged entirely. Even if I have viewers watching the stream, all I get is data: [].
I know it’s not completely broken because it does work, but only for a short window of time.
I have two main use cases right now:
- users receive notifications (via discord) when streams they are interested in go online
- users can check if one or more given streams are online
In theory I could use EventSub for 1) although it would be quite clunky to fit subscription lifecycles with my current application. But I can’t use EventSub for 2), because the queried streams are completely arbitrary, and even for queried streams included in 1), if I cache results on my end I have no source of truth as long as Get Streams returns incorrect results.
Also on that note, EventSub correctly reports stream status changes. For example:
0:00 - I start streaming
~0:30 - ✔ `Get Streams` starts returning my stream
0:45 - ✔ EventSub webhook with type `stream.online`
~1:00 onwards - ❌ `Get Streams` stops returning my stream
15:00 - ❌ `Get Streams` is still not returning my stream
20:00 - I stop streaming
20:15 - ✔ EventSub webhook with type `stream.offline`
So Get Streams behaves inconsistently versus EventSub beyond the initial period.
To be clear: my issue is that the Get Streams response gives up. It being inconsistent for a minute is fine. It missing my stream entirely after that is not.