Get Streams endpoint still missing online streams

I am still having the same issue described in Get Streams endpoint 'forgets' stream after a while .

The Get Streams endpoint in Helix (and also in v5) completely stops returning my (online) stream (user abcric/26735539) about a minute after it goes live.

The stream is online if I go to my channel or look at the dashboard. I’m making a simple request for just this stream every 5 seconds for testing. The stream shows up on the API response for about a minute. Then it stops showing up on the API response, as if the stream was not online anymore.

I’ve tried passing both user_id and user_login with the same results.
The individual endpoint from v5 (Get Stream By User) works exactly as expected and keeps returning the stream as long as it’s online.

The old individual endpoint will be removed by the end of next month and I can’t migrate my application from v5 to Helix if the new endpoint just acts like my stream doesn’t exist.

API Requests are cached, so calling more than about once every Minute has a high chance to hit different results due to different servers being hit with your request.

Depending on your exact usecase, you may be better off Utilizing EventSub’s stream.online and stream.offline events to know when a stream ist live or not, after which you can call Get Channel Info to read additional Info, which suffers from less inconsistencies than Get Streams due to its reduced volatility.

If you can share your exact usecase, we can maybe brainstorm some other suggestions!

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:

  1. users receive notifications (via discord) when streams they are interested in go online
  2. 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.

When the Get Streams endpoint doesn’t return your stream, is your channel still shown as live if you were to browse the directory for the category you’re streaming under?

As far as I can tell, it does not show up on the category directory on the website.

Is anyone looking into this? I filed an issue on the GitHub repo a month ago (https://github.com/twitchdev/issues/issues/558) and it’s been nothing but crickets. v5 is getting shut down in 13 days and the Helix alternative is still not working.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.