crackededed / Xtra

Xtra is a Twitch player and browser for Android.
GNU Affero General Public License v3.0
1.23k stars 47 forks source link

[Suggestion] Remove legacy TTV.LOL proxy and add presets for TTV LOL PRO proxies instead #389

Open MisterSheeple opened 11 months ago

MisterSheeple commented 11 months ago

The legacy proxy is outdated, doesn't work anymore for most people, and by default, it collects more user data than it needs to, causing Xtra to have a few anti-features on its F-Droid page that may deter new users who are probably unaware that the feature can be turned off. And to top it off, just looking at the issues here on GitHub, it looks like its presence is confusing end users. I think all of this combined is reason enough for the legacy proxy to be removed from Xtra. To make its removal easier, I think it would be great if presets for the new TTV LOL PRO servers could be added to the HTTP proxy settings so that users don't have to find and type in the proxy connection details themselves.

crackededed commented 11 months ago

it collects more user data than it needs to

that only applies to ttv lol browser extension. xtra doesn't send any unneeded info

MisterSheeple commented 11 months ago

it collects more user data than it needs to

that only applies to ttv lol browser extension. xtra doesn't send any unneeded info

Then why does it say "This app tracks and reports your activity - TTV.lol leaks your Twitch user ID and personal IP to their Russian proxy" on F-Droid?

crackededed commented 11 months ago

https://gitlab.com/fdroid/fdroiddata/-/merge_requests/10995#note_992121257

zGato commented 11 months ago

TTV LOL PRO V2 proxies are not compatible with Xtra's HTTP proxy, as that does proxy the stream aswell, and we don't proxy it. Makes no sense to do so, why would anyone host public proxies with the stream included? that would cost a lot of $$$.

Xtra does support m3u8 proxies, thus, you can use any proxy from this list https://github.com/zGato/ScrewTwitchAds/blob/main/server-side/proxies.md#proxies-list and welcome Xtra's dev to add them to a list in their app if they want. Luminous ones are not mine, but PerfProd are and fully allow them to be added to the app if they want.

TTV LOL's API has been down for months now, and the user token can be easily stripped client-sided, and I think Xtra does exactly that.

MisterSheeple commented 11 months ago

Xtra does support m3u8 proxies, thus, you can use any proxy from this list

I thought the whole point of using HTTP proxies was because m3u8 proxies were starting to get blocked out by Twitch for many users.

zGato commented 11 months ago

m3u8 proxies still work for mobile users just fine. I do still recommend giving every proxy a try and if it doesn't work, fallback to proxies in Russia, which they 100% work for mobile, atleast now.

crackededed commented 11 months ago

as that does proxy the stream aswell

the playlist with stream segments is only proxied if ads are found in the playlist and even then it should stop after some time even if the playlist still has ads. there's no option to proxy all requests like with ttv lol pro extension.

m3u8 proxies still work for mobile users just fine.

what do you mean by mobile users exactly? xtra uses the same requests as the desktop website so i would assume this doesn't apply to xtra

zGato commented 11 months ago

TTV LOL PRO V2 only proxies weavers and some other requests, the stream would fail to load with Xtra's setup. (Does the HTTP proxy setup just proxy usher.ttvnw.net requests? if that's the case then it will work)

Mobile users = anything except Desktop basically. I'm not sure how Xtra does it's requests, but if it simulates Twitch's Desktop app it may not work as a mobile platform. I'll give it a try, but from my brief tests, I don't get ads with m3u8 proxies at all.

zGato commented 11 months ago

And I don't get any ads on the Twitch's test streams on Xtra so I personally consider it as a mobile platform.

There's a lot into how Twitch serves the ads, but I think you've done a good job on your app and tracked-based ads are not being served to it.

crackededed commented 11 months ago

it should only be the weaver playlist and not stream segments iirc with this regex: https://github.com/crackededed/Xtra/blob/e927a6fbd51ead312f5fd7938077635b10c7447a/app/src/main/java/com/github/andreyasadchy/xtra/ui/player/PlaybackService.kt#L837-L841

and yes there is a setting to proxy usher requests too.

zGato commented 11 months ago

Alright, got it, apologies for my misunderstanding. Proxies seem to be backwards compatible.

m3u8 proxies should still just work just fine on your app btw. Proxying weavers shouldn't be needed.