elgatito / script.elementum.burst

Development of this addon has been stopped!
MIT License
114 stars 118 forks source link

Burst with Libreelec #363

Open RobJM2 opened 6 months ago

RobJM2 commented 6 months ago

Wondering if anyone else has this issue? I have 2 installations of Elementum, one on a Sony Bravia TV, works fine, the other an installation of Libreelec on a raspberry pi 4 , on this one I only get results from one provider, MagnetDL, pretty sure both setups have the same settings, including the same half a dozen or so providers?

antonsoroko commented 6 months ago

if they in the same network - then they should behave the same. make 100% sure that they have the same settings - you can copy paste appropriate xml files. see https://kodi.wiki/view/Userdata#Location and https://kodi.wiki/view/Userdata#addon_data .

if they in different networks - then try to use VPN, for example.

RobJM2 commented 6 months ago

Yeah, I use a VPN with same settings for both, I'll give your copy/paste file a go and see if that helps, thanks.

antonsoroko commented 6 months ago

make sure to copy settings.xml for both elementum and burst.

antonsoroko commented 6 months ago

you can also enable debug logging and see if there any errors in log file - most likely it will help you to see the issue with your configuration or network. see https://elementum.surge.sh/contribute/log/

elgatito commented 6 months ago

@antonsoroko

if they in the same network - then they should behave the same.

Yes and no.

https://www.zenrows.com/blog/what-is-tls-fingerprint

There is for some time TLS fingerprinting. By default Python is using OpenSSL with static TLS configuration. Same for default Golang http library. And Cloudflare can detect that is it not a browser. So same code and same scripts can run differently on different platforms, because Python is built differently per each OS in Kodi.

There are ways to pretend from Python/Golang to be a real browser, but that is a different story. And I have tried to make a quick change in built-in Elementum's proxy to pretend a browser, but it could not operate at all at that time.

I think because the change enables HTTP2, which is supported by modern browsers, but is not quite supported by default requests Python module, so that Python is expecting to send HTTP1 request through Elementum proxy but receives HTTP2 response.

It would be just easier to add an endpoint in Elementum that would make requests, but not as a usual http proxy, but as a service instead.

And again that won't help a lot.

RobJM2 commented 6 months ago

So copying settings files proved to be a bit awkward on my TV, so gave up, just looked through them all, then tried to remember when looking at kodi on my libreelec set up.

Anyhow, success! Didn't know what I was doing, but on looking through proxy settings in elementum, and remembering elgatito mentioned http , I noticed the 'use built in http' (or similar) was off, so tried putting it on, and bingo! Thanks for your help guys! Don't know why it was off (maybe a libreelec thing?), or even what it does to be honest, but it is on on my TV setup.

elgatito commented 6 months ago

@RobJM2

mentioned http , I noticed the 'use built in http' (or similar) was off, so tried putting it on, and bingo!

When you enable Elementum proxy - then all your requests are going through Elementum, that has different TLS signature, so it can be treated by Cloudflare as a different client. Sometimes it helps - sometimes not.

antonsoroko commented 6 months ago

@elgatito should this issue kept open so people can easily find it if they have similar issue? seems to be a common issue.

RobJM2 commented 6 months ago

@RobJM2

mentioned http , I noticed the 'use built in http' (or similar) was off, so tried putting it on, and bingo!

When you enable Elementum proxy - then all your requests are going through Elementum, that has different TLS signature, so it can be treated by Cloudflare as a different client. Sometimes it helps - sometimes not.

Cheers, whatever all that means 😊 Much appreciate your work on this app , it's the only one I use.