streamlink / streamlink-twitch-gui

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

Follow/unfollow channel API endpoints have been removed by Twitch on 2021-07-27 #813

Closed arrowgent closed 2 years ago

arrowgent commented 3 years ago

Checklist

Streamlink Twitch GUI version

v1.9.1

Streamlink version

v1.7.0

Operating system, environment and configuration details

Ubuntu 18.04

Description

according to Chatty /follow reports: Note: Twitch planned to remove follow/unfollow functionality from their API on July 27, 2021.

i know im using an old streamlink & streamlink-twitch-gui but now it seems clicking Follow in streamlink-twitch-gui does not work

i did a quick issues search for "follow" to see if any bugs were reported about this i dont see anything recent in commits about "follow" if nothing else, to bring it to attention otherwise disreguard, and my apology for using an old version...

thanks!

Debug log

No response

bastimeyer commented 3 years ago

https://dev.twitch.tv/docs/change-log

Date Documentation Changes
2021‑07‑27 The Create and Delete Follows API endpoints have been removed. See the Deprecation of Create and Delete Follows API Endpoints announcement for more information.

Announcement thread here: https://discuss.dev.twitch.tv/t/deprecation-of-create-and-delete-follows-api-endpoints/32351


Twitch has killed the follow users/channels endpoints on both public APIs, kraken and helix, because of abusive/harrassing "follow-bots".

There is no way for legitimate 3rd party applications to fix or work around that other than trying to use the private GQL API from their website, similar to what abusive bot developers will now have to do, or making the user visit Twitch's website to follow/unfollow channels manually in their web browser.

Unfortunately, I have not heard of this removal until just now, otherwise I would've reacted to this sooner. I've commented on the announcement thread, and as you can see on there, someone already opened a suggestion thread on Twitch's feedback tracker which suggests an implementation of developer approvals and restoring the removed API endpoints for approved developers.


As an end-user of Streamlink Twitch GUI, voting on this suggestion thread is probably all you can do for now to help with this situation.

https://twitch.uservoice.com/forums/310213-developers/suggestions/43871391-twitch-approved-developer-program-reinstate-foll


In the mean time, I will have to think what I can do until this has been resolved by Twitch. I am not sure if it will though, because it is Twitch after all. This is really sad.

arrowgent commented 3 years ago

thanks, im glad it wasnt just me.

also since it doesnt seem likely to get re-implemented possibly moving forward with removing the follow button functionaliy while adding a notification on screen about it's deprecation for the next streamlink-twitch-gui release

good luck guys!

bastimeyer commented 3 years ago

I haven't made a decision yet whether I want to remove it completely (and the sub button along with it), or whether I should let the user decide if they want to open the channel's page on Twitch.tv in their web browser. The web browser workaround is pretty ugly from a usability standpoint, but for now this is the only solution to at least be able to follow or unfollow channels.

There also hasn't been a response yet from Twitch regarding the approved developer suggestion, so waiting for a bit first won't hurt, as the missing API endpoints don't break anything in the Twitch GUI and it handles it correctly with its response failure logic. It's just annoying, but that won't change if the follow buttons get removed or replaced with a "workaround".

This whole debacle also made me wonder whether I should re-implement the features which got removed in the past due to the switch to their GQL API on their website, like channel panels for example. I've been avoiding this in Streamlink Twitch GUI because it's not a public API and didn't want to abuse their services (in Streamlink there simply is no other way to get the data), but I'm at a point now where I don't really care anymore, just like they don't care about their 3rd party devs.

arrowgent commented 3 years ago

for sure i can understand developers frustrations, and users. approved developers should be on a mailing list about important events, etc etc.

also i see twitch's point about the api being removed....they want to remove bots ability... great

meanwhile 40 minutes ago i watched a bot trigger 120 spams of streamlabs saying "thanks for the follow"

[10:00:31] @'?^Streamlabs: Thank you for following standbyforce8!
x120x
[10:00:40] @'?^Streamlabs: Thank you for following appellantprocurement6!

so...yeah twitch /follow api might be removed, but certaintly didnt stop the follow bots!

wow actually happened again 5 minutes ago, this time i verified the user's +120 followers so they arent just attacking streamlabs bot api

and how about finding a way to stop bots from being created to begin with? or monitoring the fact that bots are in more than 50 channels simultaneously? anotherttvviewer | 9,332 - Currently In x Amount Of Live Channels etc, all publically viewable

irreguardless.....

if you can use the GQL api, if its even possible... might be great to move forward also considering kraken v5 is going away https://blog.twitch.tv/en/2021/07/15/legacy-twitch-api-v5-shutdown-details-and-timeline/ then youre left with helix....

and yes i wholly agree, the reason we use some 3rd party tools is because with want options, lightweight, feature rich, open source & crossplatform alternatives i strongly started to dislike the Browser version twitch which helped me find streamlink/streamlink-twitch-gui i dont miss having channel points, extensions, all that fancy jazz... just give me chat & video. simple.

bastimeyer commented 3 years ago

402cab14f30fb43692420288ae43487fe0d7f24d has been merged into master. See the commit message for the details.

There will be a new release within the next couple of days. I'm not yet sure whether I want to add a message to the app that clarifies the situation, because most people won't read the changelog, but I also don't want to be too annoying with it.

I'll leave this issue open and pinned for a while, so that there won't be any duplicates.


if you can use the GQL api

Not possible for auth related stuff like following channels or games. I only mentioned it because of channel panels, which were removed in the past when Twitch shut down their old private API where this data could be retrieved from.

considering kraken v5 is going away

I am aware of this. Switching to helix will be a lot of work and that needs to be done as the next step after the next release. I've already started working on that a few months ago, but only a bit.

ahmedtds commented 3 years ago

That is very annoying. i was using follow & unfollow both via your app and chatty a lot. I mean I don't even remember when was the last time I followed or unfollowed someone from web. Years ago probably. Very inconvenient. Shame on Twitch..

simonsan commented 2 years ago

considering kraken v5 is going away

I am aware of this. Switching to helix will be a lot of work and that needs to be done as the next step after the next release. I've already started working on that a few months ago, but only a bit.

@bastimeyer https://github.com/Emilgardis/twitch_api2 supports Helix API

Maybe using some of these could enable you to create easily maintainable node.js modules (e.g. Twitch Clients) using Rust: https://github.com/neon-bindings/neon https://github.com/napi-rs/napi-rs

Just as an idea. Thanks for the great work!

bastimeyer commented 2 years ago

These libs are completely irrelevant.

Twitch has removed the API endpoints for following channels. Simple as that. There is no way to follow a channel via kraken (shutdown at the end of February) AND helix (see #849 and #852).

The only "workaround" would be implementing their GraphQL API that's used on their website, but this isn't possible without major drawbacks, because users would need to get their personal OAuth token from their web browser's dev tools after logging in on the Twitch.tv website (or a web browser extension would need to be written).

I've already commented on all of this plenty of times. It's not possible and all users can do is ask Twitch to bring the API endpoints back. There's a feature request linked above, but I'll link it here again: https://twitch.uservoice.com/forums/310213-developers/suggestions/43871391-twitch-approved-developer-program-reinstate-foll

Locking, as there's nothing to be discussed here and I don't want to have this thread growing unnecessarily, because it'll bury the relevant informations.

bastimeyer commented 2 years ago

Closing the thread, as there's nothing that can be done apart from voting, and even then it's very unlikely that Twitch will re-introduce this. https://twitch.uservoice.com/forums/310213-developers/suggestions/43871391-twitch-approved-developer-program-reinstate-foll

As I mentioned in #856, it's possible that a follow channels+games feature could be implemented locally in the future without relying on Twitch accounts. Logins would however still be necessary, because it's a requirement of the Twitch helix API.