Support for IPTV Stalker Portal

#1
hello,
would it be possible to add support for stalker portals with links of this type :
http://<host:port>/c/
http://<host:port>/stalker_portal/c/

They doesn't need any user/pass, only the MAC address is used. There are a lot of Players for android, like STBemu, but nothing for PC.

i can see when i use Fiddler, that Progdvb, when using the ministra stalker source, just add this to the host :
http://<host:port>/stb/server/load.php?type=stb&action=handshake&prehash=false&JsHttpRequest=1-xml

while for the "normal" stalker portal the path would be:
http://<host:port>/portal.php?action=handshake&type=stb&token=&JsHttpRequest=1-xml
or sometimes
http://<host:port>/stalker_portal/server/load.php?type=stb&action=handshake&token=&JsHttpRequest=1-xml

Thank you for your help.

Re: Support for IPTV Stalker Portal

#3
i already tried with the MAC address and with user/pass empty. it doesn't work because it doesn't go to the correct link.

For example if you use that protal:
http://diablo-box.me/stb/ you'll be redirected to http://diablo-box.me/stalker_portal/c/ and the requests will have to be done to :
http://diablo-box.me/stalker_portal/ser ... uest=1-xml

but progDVB will go elsewhere, it will go here :
http://diablo-box.me/stb/server/load.ph ... uest=1-xml

So it will not work.

Same problem with this portal : http://king365-tv.com:2103/c/
you'll be redirected to http://king365-tv.com:2103/portal.php?t ... uest=1-xml
Progdvb will use a wrong path.

Re: Support for IPTV Stalker Portal

#7
if you use Fidller or even the google chrome inspector, you'll see that when you go to the portal link : http://king365-tv.com:2103/c/
there will be some requests made to the url : http://king365-tv.com:2103/portal.php?t ... uest=1-xml
so all requests will have to be made to this url : http://king365-tv.com:2103/portal.php in the case of this provider.

That's what i call the "redirection", but it's more or less the same system used for ministra stalker, that you already implemented in Progdvb.
You have to get a Token first, and then connect with that token + Mac address in the cookie.
Image

Re: Support for IPTV Stalker Portal

#11
For your information :

To get all the available catégories (ID + Name) :
http://<url:port>/portal.php?type=series&action=get_categories&JsHttpRequest=1-xml

To get all the channels for one category :
http://<url:port>/portal.php?type=itv&action=get_ordered_list&genre=<ID>&force_ch_link_check=&fav=0&sortby=number&hd=0&p=0&JsHttpRequest=1-xml
where <ID> is the ID category, ie :
/portal.php?type=itv&action=get_ordered_list&genre=170&force_ch_link_check=&fav=0&sortby=number&hd=0&p=0&JsHttpRequest=1-xml

Note:
of course to be able to make requests you must have the header:

Code: Select all

Autorization : Bearer xxxxxxxxxxxxxxxxx
and the cookie with the Mac address:

Code: Select all

mac: xx:xx:xx:xx:xx:xx

Re: Support for IPTV Stalker Portal

#14
OK, so things have to be done in this order:
1) First request to get the auth token

Code: Select all

<url:port>/portal.php?action=handshake&type=stb&token=
Sent Cookies:

Code: Select all

mac: 00:1A:79:xx:xx:xx
stb_lang: en
timezone: Europe\Paris
Received response :

Code: Select all

{"js":{"token":"1C23EB13561A6A2B1CCAF5C90964443D"}}
this is the token to use in all requests with Authorization Header.

2) Additional necessary request

Code: Select all

<url:port>/portal.php?type=stb&action=get_profile
Header sent :

Code: Select all

Authorization: Bearer 1C23EB13561A6A2B1CCAF5C90964443D
Cookie sent:

Code: Select all

mac: 00:1A:79:xx:xx:xx
stb_lang: en
timezone: Europe\Paris

3) Request for categories:

Code: Select all

<url:port>/portal.php?type=itv&action=get_genres&JsHttpRequest=1-xml
Header sent :

Code: Select all

Authorization: Bearer 1C23EB13561A6A2B1CCAF5C90964443D
Cookie sent:

Code: Select all

mac: 00:1A:79:xx:xx:xx
stb_lang: en
timezone: Europe\FParis
Response received:

Code: Select all

{"js":[{"id":"*","title":"All","alias":"All","active_sub":true,"censored":0},{"id":"170","title":"FR TV SD (FRANCE)","modified":"","number":1,"alias":"fr tv sd (france)","censored":0},{"id":"1","title":"FR TV HD (France)","modified":"","number":2,"alias":"fr tv hd (france)","censored":0},{"id":"166","title":"FR TV FULL HD|4K  (France)","modified":"","number":3,"alias":"fr tv full hd|4k  (france)","censored":0},{"id":"4","title":"FR Sports ( France )","modified":"","number":4,"alias":"fr sports ( france )","censored":0},{"id":"171","title":"FR TV BACK UP (SECOURS)","modified":"","number":5,"alias":"fr tv back up (secours)","censored":0},{"id":"23","title":"Belges (Belgium)","modified":"","number":6,"alias":"belges (belgium)","censored":0},{"id":"13","title":"Suisses (Switzerland)","modified":"","number":7,"alias":"suisses (switzerland)","censored":0},{"id":"28","title":"ETATS-UNIS ( USA )","modified":"","number":8,"alias":"etats-unis ( usa )","censored":0},{"id":"64","title":"CANADA ( CA )","modified":"","number":9,"alias":"canada ( ca )","censored":0},{"id":"14","title":"Anglaises ( UK )","modified":"","number":10,"alias":"anglaises ( uk )","censored":0},{"id":"6","title":"Espagnoles (Espa\u00f1a)","modified":"","number":11,"alias":"espagnoles (espa\u00f1a)","censored":0},{"id":"18","title":"Portugaises (Portugu\u00eas)","modified":"","number":12,"alias":"portugaises (portugu\u00eas)","censored":0},{"id":"162","title":"OSN & MY HD (Arabic)","modified":"","number":13,"alias":"osn & my hd (arabic)","censored":0},{"id":"3","title":"Arabes (\u0627\u0644\u0639\u0631\u0628\u064a\u0629)","modified":"","number":14,"alias":"arabes (\u0627\u0644\u0639\u0631\u0628\u064a\u0629)","censored":0},{"id":"9","title":"Maghrebine (DZ\/MA\/TN)","modified":"","number":15,"alias":"maghrebine (dz\/ma\/tn)","censored":0},{"id":"17","title":"BeIN \/ Sports (Arabic)","modified":"","number":16,"alias":"bein \/ sports (arabic)","censored":0},{"id":"8","title":"Turques (T\u00fcrk)","modified":"","number":17,"alias":"turques (t\u00fcrk)","censored":0},{"id":"5","title":"Allemandes (Deutsch)","modified":"","number":18,"alias":"allemandes (deutsch)","censored":0},{"id":"20","title":"Italiennes (Italiana)","modified":"","number":19,"alias":"italiennes (italiana)","censored":0},{"id":"22","title":"Roumaines (Romanian)","modified":"","number":20,"alias":"roumaines (romanian)","censored":0},{"id":"21","title":"Africaines","modified":"","number":21,"alias":"africaines","censored":0},{"id":"108","title":"Albanaises (Shqiptar)","modified":"","number":22,"alias":"albanaises (shqiptar)","censored":0},{"id":"111","title":"Netherlands (NL)","modified":"","number":23,"alias":"netherlands (nl)","censored":0}]}
Last edited by cetipabo on Mon Jan 27, 2020 4:08 pm, edited 1 time in total.