streamlink / streamlink-twitch-gui

A multi platform Twitch.tv browser for Streamlink
https://streamlink.github.io/streamlink-twitch-gui/
MIT License
2.68k stars 202 forks source link

Streams aren't sorted by viewers - Seems random #699

Closed ZMOT7S closed 4 years ago

ZMOT7S commented 4 years ago

Bug report

Environment details

Operating system and version:
Windows 10 1903

Streamlink Twitch GUI version:
1.9.0

Streamlink version:
1.3.0

Configuration details:
No custom parameters or anything. Pretty much all default settings.

Description

When I click Followed Streams, the order of viewers is random instead of high to low. This just started today. First stream has 826 viewers, second has 1684, third has 32.2k, 4th has 98, and 5th has 696 etc...

Expected / Actual behavior

Streams should be listed high to low.

Reproduction steps

Not really sure how to reproduce. Yesterday it was fine, today it was messed up. I didn't change anything, just shutdown the PC overnight.

Log output

Let me know if you need a log.

REPLACE THIS TEXT WITH THE LOG OUTPUT

Additional comments, screenshots, etc.

https://i.imgur.com/xrmoBy7.png

bastimeyer commented 4 years ago

It's an issue on Twitch's end which they have to fix. I've already opened a thread on Twitch's dev forums here to let them know: https://discuss.dev.twitch.tv/t/kraken-streams-followed-not-ordered-by-viewers/23772

arrowgent commented 4 years ago

came to check on this and report the same thing...

streamlink twitch gui 1.9.0

linux

bastimeyer commented 4 years ago

Like I've said, Twitch has broken the API endpoint for getting the followed streams and is ignoring it, as usual. They don't seem to care anymore about their deprecated kraken API or 3rd party app developers in general. This is worrying, especially because their new helix API is still a total disaster (you can't even get the streams of your followed channels/users there without doing some very stupid request chains, while being rate-limited). I could rant for an hour now, but it's just not worth my time. If you want this to be fixed, and I'm not just talking about Streamlink Twitch GUI but all applications using the kraken API, then go and ask the Twitch devs. On the linked dev forums thread from above, I've suggested a sorting request parameter, in case this change was intended, as it doesn't exist on the specific API endpoint but does exist on other ones. A simple revert of the change would also be fine. Let's see if we will get a reply.

In case they're not going to fix this, a workaround for the issue could be changing the model hook of the UserFollowedStreams route, so that it will fetch every stream record possible and will then sort and filter/slice the list (via the infinite scroll mechanic) afterwards locally. This is far from ideal and would also mean that loading the followed streams menu would take a bit longer due to the increased amount of API requests. I will not implement such a stupid workaround though until I can be sure that this change was intentional.

ZMOT7S commented 4 years ago

Any idea what I should comment? "Please bring back this sorting feature?" I'm not a developer/programmer so I can't really say much on the technical side of it. I would like to be another voice though so maybe they will look in to it.

bastimeyer commented 4 years ago

I've pushed the sorted-followed-streams branch to the repo. This will get merged into master if the API won't have been fixed in the next couple of days or if they still haven't reponded by then. It's currently weekend, so I don't expect them to do any bugfixing right now. Should the API be fixed once this was merged and published in a new release, then it should be fine too, as it won't make a difference then other than being an inefficient implementation.


If one is terribly annoyed by the unsorted followed streams list, they can build the app themselves now from the sorted-followed-streams branch. Just follow the build guide or run the following commands if you already got Git, NodeJS and Yarn installed. https://github.com/streamlink/streamlink-twitch-gui/blob/master/CONTRIBUTING.md#developing-and-building

git clone https://github.com/streamlink/streamlink-twitch-gui.git
cd streamlink-twitch-gui

git fetch origin
git checkout origin/sorted-followed-streams

yarn global add grunt-cli
yarn install --pure-lockfile

grunt release
# see built app in ./build/releases/
Zanndorin commented 4 years ago

Love finding that my issues are "fixed" already when I search for them. You are doing a great job bastimeyer.

arrowgent commented 4 years ago

and suddenly.... the followed list is back to sorted by viewers... thanks twitch...

arrowgent commented 4 years ago

WHOOPS! spoke too soon. refreshed my list again and it borked... NotLikeThis

bastimeyer commented 4 years ago

I've decided to finally merge the workaround now as Twitch hasn't responded after two weeks. To be honest, this workaround, or actually something similar, will be needed if I "upgrade" to the new helix API, as followed streams have to be requested in a similar way then.

A new Streamlink Twitch GUI release will be published soon, but that depends on the next Streamlink release due to a breaking change of the MPV player and how it parses its command line parameters. Customizable hotkeys which I had been working on a few weeks ago won't be included though as a couple of things are still missing, as I've mentioned in the related issue of that new feature.