Closed CyberPoison closed 1 year ago
Hello @Chris230291 it will be nice to get the Adult channels as you can get it by requesting directly the genre, i use a proxy so i could watch the requests URL and this is the request parameters. Not sure if all panels have setup all the same genres other wise you need to parse Adult keyword to grab the ID you want.
http://viafnatt.tv:2095/server/load.php?type=itv&action=get_genres Allow you to grab the Adult Channel as for this response body i got
{
"js": [
{
"id": "*",
"title": "All",
"alias": "All",
"active_sub": true,
"censored": 0
},
{
"id": "4",
"title": "Sweden",
"modified": "",
"number": 1,
"alias": "sweden",
"censored": 0
},
{
"id": "532",
"title": "24/7 Swedish",
"modified": "",
"number": 2,
"alias": "24/7 swedish",
"censored": 0
},
{
"id": "531",
"title": "24/7 Movies",
"modified": "",
"number": 3,
"alias": "24/7 movies",
"censored": 0
},
{
"id": "476",
"title": "Discovery+ Sport SE",
"modified": "",
"number": 4,
"alias": "discovery+ sport se",
"censored": 0
},
{
"id": "480",
"title": "Viaplay Sport SE",
"modified": "",
"number": 5,
"alias": "viaplay sport se",
"censored": 0
},
{
"id": "528",
"title": "C More Events SE",
"modified": "",
"number": 6,
"alias": "c more events se",
"censored": 0
},
{
"id": "547",
"title": "Other Swedish Live Events",
"modified": "",
"number": 7,
"alias": "other swedish live events",
"censored": 0
},
{
"id": "577",
"title": "Innebandy SE",
"modified": "",
"number": 8,
"alias": "innebandy se",
"censored": 0
},
{
"id": "7",
"title": "Denmark",
"modified": "",
"number": 9,
"alias": "denmark",
"censored": 0
},
{
"id": "511",
"title": "Viaplay Sport DK",
"modified": "",
"number": 10,
"alias": "viaplay sport dk",
"censored": 0
},
{
"id": "564",
"title": "TV2 Sport DK",
"modified": "",
"number": 11,
"alias": "tv2 sport dk",
"censored": 0
},
{
"id": "569",
"title": "24/7 Danish",
"modified": "",
"number": 12,
"alias": "24/7 danish",
"censored": 0
},
{
"id": "9",
"title": "Norway",
"modified": "",
"number": 13,
"alias": "norway",
"censored": 0
},
{
"id": "575",
"title": "Viaplay Sport NO",
"modified": "",
"number": 14,
"alias": "viaplay sport no",
"censored": 0
},
{
"id": "576",
"title": "Discovery+ Sport NO",
"modified": "",
"number": 15,
"alias": "discovery+ sport no",
"censored": 0
},
{
"id": "497",
"title": "TV2 Sumo NO",
"modified": "",
"number": 16,
"alias": "tv2 sumo no",
"censored": 0
},
{
"id": "570",
"title": "24/7 Norwegian",
"modified": "",
"number": 17,
"alias": "24/7 norwegian",
"censored": 0
},
{
"id": "79",
"title": "Finland",
"modified": "",
"number": 18,
"alias": "finland",
"censored": 0
},
{
"id": "548",
"title": "Discovery+ Sport FI",
"modified": "",
"number": 19,
"alias": "discovery+ sport fi",
"censored": 0
},
{
"id": "544",
"title": "Viaplay Sport FI",
"modified": "",
"number": 20,
"alias": "viaplay sport fi",
"censored": 0
},
{
"id": "513",
"title": "Iceland",
"modified": "",
"number": 21,
"alias": "iceland",
"censored": 0
},
{
"id": "13",
"title": "United Kingdom",
"modified": "",
"number": 22,
"alias": "united kingdom",
"censored": 0
},
{
"id": "571",
"title": "24/7 UK",
"modified": "",
"number": 23,
"alias": "24/7 uk",
"censored": 0
},
{
"id": "302",
"title": "United States",
"modified": "",
"number": 24,
"alias": "united states",
"censored": 0
},
{
"id": "574",
"title": "24/7 United States",
"modified": "",
"number": 25,
"alias": "24/7 united states",
"censored": 0
},
{
"id": "533",
"title": "US LIVE EVENTS / ESPN+",
"modified": "",
"number": 26,
"alias": "us live events / espn+",
"censored": 0
},
{
"id": "551",
"title": "US Sports",
"modified": "",
"number": 27,
"alias": "us sports",
"censored": 0
},
{
"id": "579",
"title": "Peacock / DAZN US",
"modified": "",
"number": 28,
"alias": "peacock / dazn us",
"censored": 0
},
{
"id": "509",
"title": "US ABC Network",
"modified": "",
"number": 29,
"alias": "us abc network",
"censored": 0
},
{
"id": "508",
"title": "US CBS Network",
"modified": "",
"number": 30,
"alias": "us cbs network",
"censored": 0
},
{
"id": "507",
"title": "US Fox Network",
"modified": "",
"number": 31,
"alias": "us fox network",
"censored": 0
},
{
"id": "510",
"title": "US NBC Network",
"modified": "",
"number": 32,
"alias": "us nbc network",
"censored": 0
},
{
"id": "63",
"title": "Netherlands",
"modified": "",
"number": 33,
"alias": "netherlands",
"censored": 0
},
{
"id": "566",
"title": "Viaplay Sport NL",
"modified": "",
"number": 34,
"alias": "viaplay sport nl",
"censored": 0
},
{
"id": "32",
"title": "Arabic",
"modified": "",
"number": 35,
"alias": "arabic",
"censored": 0
},
{
"id": "540",
"title": "Arabic News",
"modified": "",
"number": 36,
"alias": "arabic news",
"censored": 0
},
{
"id": "541",
"title": "Arabic Entertainment",
"modified": "",
"number": 37,
"alias": "arabic entertainment",
"censored": 0
},
{
"id": "542",
"title": "Arabic Sports",
"modified": "",
"number": 38,
"alias": "arabic sports",
"censored": 0
},
{
"id": "68",
"title": "Kurdistan",
"modified": "",
"number": 39,
"alias": "kurdistan",
"censored": 0
},
{
"id": "558",
"title": "Bosnia i Hercegovina",
"modified": "",
"number": 40,
"alias": "bosnia i hercegovina",
"censored": 0
},
{
"id": "15",
"title": "Hrvatska",
"modified": "",
"number": 41,
"alias": "hrvatska",
"censored": 0
},
{
"id": "559",
"title": "Srbija/Crna Gora",
"modified": "",
"number": 42,
"alias": "srbija/crna gora",
"censored": 0
},
{
"id": "560",
"title": "EX-YU Sport",
"modified": "",
"number": 43,
"alias": "ex-yu sport",
"censored": 0
},
{
"id": "55",
"title": "Macedonia",
"modified": "",
"number": 44,
"alias": "macedonia",
"censored": 0
},
{
"id": "6",
"title": "Albania",
"modified": "",
"number": 45,
"alias": "albania",
"censored": 0
},
{
"id": "11",
"title": "Poland",
"modified": "",
"number": 46,
"alias": "poland",
"censored": 0
},
{
"id": "567",
"title": "Viaplay Sport PL",
"modified": "",
"number": 47,
"alias": "viaplay sport pl",
"censored": 0
},
{
"id": "12",
"title": "Turkey",
"modified": "",
"number": 48,
"alias": "turkey",
"censored": 0
},
{
"id": "75",
"title": "Spain",
"modified": "",
"number": 49,
"alias": "spain",
"censored": 0
},
{
"id": "573",
"title": "24/7 Spain",
"modified": "",
"number": 50,
"alias": "24/7 spain",
"censored": 0
},
{
"id": "67",
"title": "Italy",
"modified": "",
"number": 51,
"alias": "italy",
"censored": 0
},
{
"id": "77",
"title": "Hungary",
"modified": "",
"number": 52,
"alias": "hungary",
"censored": 0
},
{
"id": "90",
"title": "Romania",
"modified": "",
"number": 53,
"alias": "romania",
"censored": 0
},
{
"id": "78",
"title": "Portugal",
"modified": "",
"number": 54,
"alias": "portugal",
"censored": 0
},
{
"id": "62",
"title": "Germany",
"modified": "",
"number": 55,
"alias": "germany",
"censored": 0
},
{
"id": "572",
"title": "24/7 Germany",
"modified": "",
"number": 56,
"alias": "24/7 germany",
"censored": 0
},
{
"id": "52",
"title": "France",
"modified": "",
"number": 57,
"alias": "france",
"censored": 0
},
{
"id": "173",
"title": "Switzerland",
"modified": "",
"number": 58,
"alias": "switzerland",
"censored": 0
},
{
"id": "107",
"title": "Belgium",
"modified": "",
"number": 59,
"alias": "belgium",
"censored": 0
},
{
"id": "8",
"title": "India",
"modified": "",
"number": 60,
"alias": "india",
"censored": 0
},
{
"id": "10",
"title": "Pakistan",
"modified": "",
"number": 61,
"alias": "pakistan",
"censored": 0
},
{
"id": "39",
"title": "Africa",
"modified": "",
"number": 62,
"alias": "africa",
"censored": 0
},
{
"id": "369",
"title": "Somalia",
"modified": "",
"number": 63,
"alias": "somalia",
"censored": 0
},
{
"id": "370",
"title": "Sudan",
"modified": "",
"number": 64,
"alias": "sudan",
"censored": 0
},
{
"id": "48",
"title": "Iran",
"modified": "",
"number": 65,
"alias": "iran",
"censored": 0
},
{
"id": "26",
"title": "Latino",
"modified": "",
"number": 66,
"alias": "latino",
"censored": 0
},
{
"id": "565",
"title": "Mexico",
"modified": "",
"number": 67,
"alias": "mexico",
"censored": 0
},
{
"id": "343",
"title": "Chile",
"modified": "",
"number": 68,
"alias": "chile",
"censored": 0
},
{
"id": "530",
"title": "Argentina",
"modified": "",
"number": 69,
"alias": "argentina",
"censored": 0
},
{
"id": "368",
"title": "Colombia",
"modified": "",
"number": 70,
"alias": "colombia",
"censored": 0
},
{
"id": "70",
"title": "Canada",
"modified": "",
"number": 71,
"alias": "canada",
"censored": 0
},
{
"id": "111",
"title": "Australia & New Zealand",
"modified": "",
"number": 72,
"alias": "australia & new zealand",
"censored": 0
},
{
"id": "195",
"title": "Bulgaria",
"modified": "",
"number": 73,
"alias": "bulgaria",
"censored": 0
},
{
"id": "110",
"title": "Malta",
"modified": "",
"number": 74,
"alias": "malta",
"censored": 0
},
{
"id": "109",
"title": "Slovenia",
"modified": "",
"number": 75,
"alias": "slovenia",
"censored": 0
},
{
"id": "94",
"title": "Czech & Slovakia",
"modified": "",
"number": 76,
"alias": "czech & slovakia",
"censored": 0
},
{
"id": "66",
"title": "Greece",
"modified": "",
"number": 77,
"alias": "greece",
"censored": 0
},
{
"id": "98",
"title": "Azerbaijan",
"modified": "",
"number": 78,
"alias": "azerbaijan",
"censored": 0
},
{
"id": "59",
"title": "Bangladesh",
"modified": "",
"number": 79,
"alias": "bangladesh",
"censored": 0
},
{
"id": "89",
"title": "Armenia",
"modified": "",
"number": 80,
"alias": "armenia",
"censored": 0
},
{
"id": "65",
"title": "Brazil",
"modified": "",
"number": 81,
"alias": "brazil",
"censored": 0
},
{
"id": "47",
"title": "Russia",
"modified": "",
"number": 82,
"alias": "russia",
"censored": 0
},
{
"id": "498",
"title": "Ukraine",
"modified": "",
"number": 83,
"alias": "ukraine",
"censored": 0
},
{
"id": "392",
"title": "Lithuania",
"modified": "",
"number": 84,
"alias": "lithuania",
"censored": 0
},
{
"id": "76",
"title": "Estonia",
"modified": "",
"number": 85,
"alias": "estonia",
"censored": 0
},
{
"id": "51",
"title": "Afghanistan",
"modified": "",
"number": 86,
"alias": "afghanistan",
"censored": 0
},
{
"id": "179",
"title": "Caribbean",
"modified": "",
"number": 87,
"alias": "caribbean",
"censored": 0
},
{
"id": "270",
"title": "Israel",
"modified": "",
"number": 88,
"alias": "israel",
"censored": 0
},
{
"id": "477",
"title": "Indonesia",
"modified": "",
"number": 89,
"alias": "indonesia",
"censored": 0
},
{
"id": "485",
"title": "Sri Lanka",
"modified": "",
"number": 90,
"alias": "sri lanka",
"censored": 0
},
{
"id": "382",
"title": "Malaysia",
"modified": "",
"number": 91,
"alias": "malaysia",
"censored": 0
},
{
"id": "384",
"title": "Taiwan",
"modified": "",
"number": 92,
"alias": "taiwan",
"censored": 0
},
{
"id": "86",
"title": "Thailand",
"modified": "",
"number": 93,
"alias": "thailand",
"censored": 0
},
{
"id": "246",
"title": "Philippines",
"modified": "",
"number": 94,
"alias": "philippines",
"censored": 0
},
{
"id": "377",
"title": "Hong Kong",
"modified": "",
"number": 95,
"alias": "hong kong",
"censored": 0
},
{
"id": "383",
"title": "Cambodia",
"modified": "",
"number": 96,
"alias": "cambodia",
"censored": 0
},
{
"id": "378",
"title": "China",
"modified": "",
"number": 97,
"alias": "china",
"censored": 0
},
{
"id": "177",
"title": "Vietnam",
"modified": "",
"number": 98,
"alias": "vietnam",
"censored": 0
},
{
"id": "25",
"title": "Music Package",
"modified": "",
"number": 99,
"alias": "music package",
"censored": 0
},
{
"id": "22",
"title": "Sport Package",
"modified": "",
"number": 100,
"alias": "sport package",
"censored": 0
},
{
"id": "578",
"title": "Formula 1 Events",
"modified": "",
"number": 101,
"alias": "formula 1 events",
"censored": 0
},
{
"id": "54",
"title": "For Adults",
"modified": "",
"number": 102,
"alias": "for adults",
"censored": 1
}
]
}
a simple regex to grab keywords and it's done you grab the ID of the genre, or use the censored bollean (this one is a better solution) so you grab only ID of those who are "censored": 1
.
http://viafnatt.tv:2095/server/load.php?p=1&sortby=number&type=itv&genre=54&action=get_ordered_list
The response body: https://controlc.com/8331e15c
Pay attention the when requesting like this you have pagination. With a while loop can be passed in a easy way just need to break when a white/empty data
: value
is return, but i think there is something better insead of looping in pages, i'm continuing my research until i go back to work, next week.
For VOD i have also done the same thing (a bit of reverse)
The request: http://viafnatt.tv:2095/server/load.php?sortby=added&action=get_ordered_list&type=vod&p=1&category=* the response body. https://controlc.com/9b68b2fb
Getting Categories: http://viafnatt.tv:2095/server/load.php?type=vod&action=get_categories
and then able to see VOD (Adults just need to requests it)
{
"js": [
{
"id": "*",
"title": "All",
"alias": "*",
"censored": 0
},
{
"id": "28",
"title": "VOD: Premiere Cinemas [Multi-Sub]",
"alias": "VOD: Premiere Cinemas [Multi-Sub]",
"censored": 0
},
{
"id": "451",
"title": "VOD: Old Popular Movies [Multi-Sub]",
"alias": "VOD: Old Popular Movies [Multi-Sub]",
"censored": 0
},
{
"id": "231",
"title": "VOD: 4k Movies [Multi-Sub] [Only On 4K Devices]",
"alias": "VOD: 4k Movies [Multi-Sub] [Only On 4K Devices]",
"censored": 0
},
{
"id": "562",
"title": "VOD: 4k Old Popular Movies [Multi-Sub] [Only On 4K Devices]",
"alias": "VOD: 4k Old Popular Movies [Multi-Sub] [Only On 4K Devices]",
"censored": 0
},
{
"id": "27",
"title": "VOD: IMDB Top Movies [Multi-Sub]",
"alias": "VOD: IMDB Top Movies [Multi-Sub]",
"censored": 0
},
{
"id": "561",
"title": "VOD: Box set [Multi-Sub]",
"alias": "VOD: Box set [Multi-Sub]",
"censored": 0
},
{
"id": "29",
"title": "VOD: Kids Movies",
"alias": "VOD: Kids Movies",
"censored": 0
},
{
"id": "538",
"title": "VOD: Disney [ENG]",
"alias": "VOD: Disney [ENG]",
"censored": 0
},
{
"id": "478",
"title": "VOD: English Movies [Arabic Subtitle]",
"alias": "VOD: English Movies [Arabic Subtitle]",
"censored": 0
},
{
"id": "529",
"title": "VOD: English Movies [Czech Subtitle]",
"alias": "VOD: English Movies [Czech Subtitle]",
"censored": 0
},
{
"id": "30",
"title": "VOD: Svenska",
"alias": "VOD: Svenska",
"censored": 0
},
{
"id": "244",
"title": "VOD: Christmas Movies [Multi-Sub]",
"alias": "VOD: Christmas Movies [Multi-Sub]",
"censored": 0
},
{
"id": "56",
"title": "VOD: Danske - Norska - Suomalainen Film",
"alias": "VOD: Danske - Norska - Suomalainen Film",
"censored": 0
},
{
"id": "263",
"title": "VOD: Events",
"alias": "VOD: Events",
"censored": 0
},
{
"id": "37",
"title": "VOD: Arabic",
"alias": "VOD: Arabic",
"censored": 0
},
{
"id": "535",
"title": "VOD: Disney [Ar-Eng] [Multi-Audio]",
"alias": "VOD: Disney [Ar-Eng] [Multi-Audio]",
"censored": 0
},
{
"id": "33",
"title": "VOD: ex-Yu Movies",
"alias": "VOD: ex-Yu Movies",
"censored": 0
},
{
"id": "512",
"title": "VOD: Crtani Filmovi [Ex-yu]",
"alias": "VOD: Crtani Filmovi [Ex-yu]",
"censored": 0
},
{
"id": "536",
"title": "VOD: Kommisarie Montalbano",
"alias": "VOD: Kommisarie Montalbano",
"censored": 0
},
{
"id": "524",
"title": "VOD: Astrid Lindgren",
"alias": "VOD: Astrid Lindgren",
"censored": 0
},
{
"id": "220",
"title": "VOD: Beck Komplett Kollektion",
"alias": "VOD: Beck Komplett Kollektion",
"censored": 0
},
{
"id": "486",
"title": "VOD: Bud Spencer",
"alias": "VOD: Bud Spencer",
"censored": 0
},
{
"id": "517",
"title": "VOD: Cheech and Chong",
"alias": "VOD: Cheech and Chong",
"censored": 0
},
{
"id": "515",
"title": "VOD: Halloween Movies",
"alias": "VOD: Halloween Movies",
"censored": 0
},
{
"id": "250",
"title": "VOD: James Bond Collection",
"alias": "VOD: James Bond Collection",
"censored": 0
},
{
"id": "464",
"title": "VOD: Johan Falk",
"alias": "VOD: Johan Falk",
"censored": 0
},
{
"id": "496",
"title": "VOD: Van Damme Collection",
"alias": "VOD: Van Damme Collection",
"censored": 0
},
{
"id": "568",
"title": "VOD: Wallander",
"alias": "VOD: Wallander",
"censored": 0
},
{
"id": "46",
"title": "VOD: Turkey",
"alias": "VOD: Turkey",
"censored": 0
},
{
"id": "197",
"title": "VOD: Polska",
"alias": "VOD: Polska",
"censored": 0
},
{
"id": "113",
"title": "VOD: Albania",
"alias": "VOD: Albania",
"censored": 0
},
{
"id": "182",
"title": "VOD: Iran",
"alias": "VOD: Iran",
"censored": 0
},
{
"id": "106",
"title": "VOD: India",
"alias": "VOD: India",
"censored": 0
},
{
"id": "102",
"title": "VOD: Germany",
"alias": "VOD: Germany",
"censored": 0
},
{
"id": "354",
"title": "VOD: Vietnam",
"alias": "VOD: Vietnam",
"censored": 0
},
{
"id": "31",
"title": "For Adults",
"alias": "For Adults",
"censored": 1
}
]
}
So now i request the VOD for adults.
http://viafnatt.tv:2095/server/load.php?sortby=added&action=get_ordered_list&type=vod&p=1&category=31
And then i get all the VOD for Adults.
https://controlc.com/0d38f298
Note, the p
parameter for pagination, so need a while loop and wait until data
value
is empty.
For others just need to store temporary all the ID and then make a for loop for each ID + while loop for each page until data
value is empty and then you grab all.
As you can see you have also the cmd but now the path looks some hash or whatever, so you need to manage to catch the path { "cmd": "eyJ0eXBlIjoibW92aWUiLCJzdHJlYW1faWQiOiIxNTQ0OTkiLCJzdHJlYW1fc291cmNlIjpudWxsLCJ0YXJnZXRfY29udGFpbmVyIjoiW1wibXA0XCJdIn0=", }
It's a dictionary you should be able to easily grab the cmd, there are plenty of good Discord Python Discussion server :)
You cold also grab Adult Channels Genre ID by grabbing the dict value set to 1 on key censored. { "id": "54", "title": "For Adults", "modified": "", "number": 102, "alias": "for adults", "censored": 1 }
According to the Stalker Portal Code it will be everytime by default "title": for adults"
https://github.com/iptvhakr/stalker_portal/blob/72deceee1e32ea00cf33ecf2376b80902ab11134/db/delta/149-censored_tv_video_categories.sql
But i think that can be modified to match de provider language, so grabbing by censored (true) should be fine.
Question: Did you get any issues with your code when running for longtime, in the past i get my data wiped times ago, i see you have managed to change the HTML but how about the issue causing wipe, when i was running it, like 20 days it start resetting the data so i needed to bring back a backup, to be able, to setup all again. did you hard tested you code ?
I'm not sure I understand your original question. Unless the adult channels are hidden from the all channels list in some servers, you can just filter by the genre in the web ui?
I am not interest in vods. I got them working a while back but it was painful. The lists of shows and movies are so huge that it just crashes any m3u player. Also scraping them takes a really, really long time because you have to do them 1 page at a time. I got banned from more than one server for multithreading requests.
I have had my server running for months at a time with no issues. Using default settings. I don't spend much time testing other settings though.
Hello @Chris230291 it will be nice to get the Adult channels as you can get it by requesting directly the genre, i use a proxy so i could watch the requests URL and this is the request parameters.