Opening this thread so I can have a list of features of the helix API that could / should be implemented in the future. I initially wanted to have a similar but shorter list in the 2.0.0 changelog, but that would mean that I wouldn't be able to edit it later on. I will instead refer to this thread in the changelog, which makes much more sense.
As said in #849, some features were not implemented by #852 for simplicity reasons, but there's also some stuff that's questionable, or stuff that's not possible or doesn't make any sense.
Local game/channel following
Since Twitch has killed the (un)follow channel API endpoints (#813), and never made the (un)follow game API endpoints public (they were on their old private REST API which got shut down in 2019 - #684), following games and channels with Twitch accounts is not possible anymore via the public APIs.
The old kraken API didn't support querying games, so this was impossible to implement. Querying streams by multiple user IDs is already being done for lots of data requests now, so following users locally and querying their online status is simple. Merging this data with the regular followed streams data will be a bit annoying though.
Multi-language filtering
This is available again on the Helix API after it was removed twice on the Kraken API over the years. The current implementation still allows for just one selection when filtering out streams.
[x] Implemented via 4ae04f024c04c67903c9f76b1c14189eb430e4b3
Not sure if I'm blind or not, but there doesn't seem to be a way to filter streams by tag IDs. This would make implementing stream tags rather pointless, because they would just show what the streamer has set, and users wouldn't be able to filter streams by those tags. I've tried querying the streams API endpoint with various parameter names for the stream tags, but nothing seemed to work, so it looks like the docs are not out of date and indeed correct. A shame.
The search channels API endpoint for some very weird reason mixes user/channel data and stream data.
I've intentionally avoided mixing the search results here, because it would mess with the infinite scroll mechanism and how the list items (streams or users) are displayed. A new separate search result list item component would need to be implemented that can either show a live stream or a user/channel depending on the result's is_live property.
While this would provide a bit more content for channel pages, I currently very much dislike promoting Twitch channel subscriptions because of Twitch killing the follow channel endpoints. Hence why there's also no subscribe button anymore.
All of this can't be implemented, because only the authenticated user's own channel can be queried for some reason. This could be a documentation error, but I'm not sure as I haven't tested this yet. Seems weird.
Opening this thread so I can have a list of features of the helix API that could / should be implemented in the future. I initially wanted to have a similar but shorter list in the 2.0.0 changelog, but that would mean that I wouldn't be able to edit it later on. I will instead refer to this thread in the changelog, which makes much more sense.
As said in #849, some features were not implemented by #852 for simplicity reasons, but there's also some stuff that's questionable, or stuff that's not possible or doesn't make any sense.
Local game/channel following
Since Twitch has killed the (un)follow channel API endpoints (#813), and never made the (un)follow game API endpoints public (they were on their old private REST API which got shut down in 2019 - #684), following games and channels with Twitch accounts is not possible anymore via the public APIs.
However, a local list of followed games and channels could be implemented instead. https://github.com/streamlink/streamlink-twitch-gui/issues/689#issuecomment-559371963
The old kraken API didn't support querying games, so this was impossible to implement. Querying streams by multiple user IDs is already being done for lots of data requests now, so following users locally and querying their online status is simple. Merging this data with the regular followed streams data will be a bit annoying though.
Multi-language filtering
This is available again on the Helix API after it was removed twice on the Kraken API over the years. The current implementation still allows for just one selection when filtering out streams.
Stream tags
https://dev.twitch.tv/docs/api/reference#get-all-stream-tags https://dev.twitch.tv/docs/api/reference#get-streams
Not sure if I'm blind or not, but there doesn't seem to be a way to filter streams by tag IDs. This would make implementing stream tags rather pointless, because they would just show what the streamer has set, and users wouldn't be able to filter streams by those tags. I've tried querying the streams API endpoint with various parameter names for the stream tags, but nothing seemed to work, so it looks like the docs are not out of date and indeed correct. A shame.
Search live streams
https://dev.twitch.tv/docs/api/reference#search-channels
The search channels API endpoint for some very weird reason mixes user/channel data and stream data.
I've intentionally avoided mixing the search results here, because it would mess with the infinite scroll mechanism and how the list items (streams or users) are displayed. A new separate search result list item component would need to be implemented that can either show a live stream or a user/channel depending on the result's
is_live
property.Stream schedules
https://dev.twitch.tv/docs/api/reference#get-channel-stream-schedule
Seems useful, unless the feature will get killed at some point because nobody is using it.
Channel emotes
https://dev.twitch.tv/docs/api/reference#get-emote-sets
While this would provide a bit more content for channel pages, I currently very much dislike promoting Twitch channel subscriptions because of Twitch killing the follow channel endpoints. Hence why there's also no subscribe button anymore.
Unavailable stuff
https://dev.twitch.tv/docs/api/reference#get-polls https://dev.twitch.tv/docs/api/reference#get-predictions https://dev.twitch.tv/docs/api/reference#get-hype-train-events https://dev.twitch.tv/docs/api/reference#get-channel-chat-badges
All of this can't be implemented, because only the authenticated user's own channel can be queried for some reason. This could be a documentation error, but I'm not sure as I haven't tested this yet. Seems weird.