IPTV66 IKS66 IPTV Simple Client EPG Fix for Kodi

IPTV66 Help here!
If right clicking doesn't work...

Try loading the file in your browser by clicking the link. It may take some time for the XML file to load fully in your browser because it is large. Don't try to save until the file has fully loaded. If it doesn't show up, try another browser or computer.
 
Last edited:
Yeah definitely not working for me.
I get a blank list and nothing else.!

By blank list did you mean the new generated m3u or the xml file you downloaded? Also make sure when you first get the source file from your iptv provider page you generate the generic m3u playlist plus options and not the regular one or it won't work.
 
By blank list did you mean the new generated m3u or the xml file you downloaded? Also make sure when you first get the source file from your iptv provider page you generate the generic m3u playlist plus options and not the regular one or it won't work.

Hi I meant the new generated m3u list is blank apart from the EXTM3U header.
I am using the m3u_plus url.
I put that into a browser and it automatically downloads the list.This is what I am loading into the m3u section of the program.
Ok , so when I right click on the epg link you provided , how am I meant to save it.? I am naming it and adding the xml extension.
If I normal click on it, it loads the file in a new tab, full page of text, what shall I do to save it that way.?
 
Hi I meant the new generated m3u list is blank apart from the EXTM3U header.
I am using the m3u_plus url.
I put that into a browser and it automatically downloads the list.This is what I am loading into the m3u section of the program.
Ok , so when I right click on the epg link you provided , how am I meant to save it.? I am naming it and adding the xml extension.
If I normal click on it, it loads the file in a new tab, full page of text, what shall I do to save it that way.?

When you right click it should give you an option like "Save link as", "Download link as", "Save url as" or something along those lines. It depends on the web browser you're using.
 
I must say this is quite strange that I cannot get this to work.
So I have the program downloaded.
I have the plus version of the m3u playlist. I click on the url or paste it into browser and it downloads.
I right click on the epg url and save as xml file.
I then populate both sections , tick some boxes, press start and it tell me its complete after approx 5 secs..
I then locate the 'new playlist ' file which was generated but it shows as 9bytes of emptiness bar the EXTM3U header.
Wtf am I doing wrong.
I tried on different pc as well..
 
I must say this is quite strange that I cannot get this to work.
So I have the program downloaded.
I have the plus version of the m3u playlist. I click on the url or paste it into browser and it downloads.
I right click on the epg url and save as xml file.
I then populate both sections , tick some boxes, press start and it tell me its complete after approx 5 secs..
I then locate the 'new playlist ' file which was generated but it shows as 9bytes of emptiness bar the EXTM3U header.
Wtf am I doing wrong.
I tried on different pc as well..

I find this incredibly odd aswell, I know my epg parse code is only 30% done at this point but my m3u parse code is 95% done. I also use windows 10 and it works on my computer, I went over the code yesterday a couple times and I can't comprehend what could be going wrong. Let me show you some code snippets.

Code:
Func RecreateM3U ( ByRef $m3uFile, ByRef $xmlfile, $hProgress, ByRef $TVFilter, ByRef $ExtraFilter )

	$sChannelName = StringSplit($m3uFile[1], ",")
	$sChannelData = StringSplit($sChannelName[1], " ")
	Local $hTemp = FileOpen("new_playlist.m3u", 1)

	FileWriteLine($hTemp, "#EXTM3U")

	$Ubound = Ubound($m3uFile) - 1
	$ProgressStep = Int(($Ubound * 1) / 100)
	$Counter = $ProgressStep
	$Progress = 0


	For $i = 1 to $Ubound step 1

		If $Counter = 0 Then
			$Counter = $ProgressStep
			$Progress += 1
			GUICtrlSetData($hProgress, $Progress)
		Else
			$Counter -=1
		EndIF

		If StringLeft($m3uFile[$i], 8) = '#EXTINF:' Then

			If StringLeft($m3uFile[$i+1], 10) = 'http://lol' Then ContinueLoop

			$sChannelName = StringSplit($m3uFile[$i], ",")
			$2ndIndex = $sChannelName[0]
			$sChannelData = StringSplit($sChannelName[$2ndIndex-1], " ")
			$Index = $sChannelData[0]
			;If $Index > 15 Then _ArrayDisplay($sChannelData)


			If StringLeft($sChannelData[$Index], 28) = 'group-title="Entertainments"' Then

				If $TVFilter[0] = False Then ContinueLoop
				$ChannelID = EPGSearch($xmlfile, $sChannelName[$2ndIndex])
				If IsString($ChannelID) Then
					If StringLeft($m3uFile[$i], 20) = '#EXTINF:-1 tvg-id=""' Then
						$ssstring = StringTrimLeft($m3uFile[$i], 20)
						FileWriteLine($hTemp, '#EXTINF:-1 tvg-id="' & $ChannelID & '"' & $ssstring)
						FileWriteLine($hTemp, $m3uFile[$i+1])
					Else
						$ssstring = StringTrimLeft($m3uFile[$i], 25)
						FileWriteLine($hTemp, '#EXTINF:-1 tvg-id="' & $ChannelID & '"' & $ssstring)
						FileWriteLine($hTemp, $m3uFile[$i+1])
					EndIf
					ContinueLoop

				Else
					FileWriteLine($hTemp, $m3uFile[$i])
					FileWriteLine($hTemp, $m3uFile[$i+1])
					ContinueLoop

				EndIf

			EndIf


			If StringLeft($sChannelData[$Index], 21) = 'group-title="Culture"' Then

The code opens file "new_playlist.m3u" and writes the header you're seeing so I know it gets this far. It then gets the total amount of lines in the m3u to create a loop to parse the m3u code and calculate progress percentages. It first checks if the line it's currently reading starts off with #EXTINF: and if it doesn't then it skips to the next line. But if it does find that text then it first reads the next line which usually contains the url but if it has a dummy url "http://lol" Then it also skips it from writing into the new file. Finally it starts processing the groups and if it finds epg data it'll correct the tvg-id to match the epg and if it doesn't find epg data it just copies over the the data as is.

In short it to really understand what can be going wrong here I need to compile a debug version for you and put a code for pop up messeges between these pieces of code to see where it can be going wrong and how that way I can fix it. You would just have to send me screenshots of the messages or just what the msgbox says in a pm. If you're up for it let me know.
 
I find this incredibly odd aswell, I know my epg parse code is only 30% done at this point but my m3u parse code is 95% done. I also use windows 10 and it works on my computer, I went over the code yesterday a couple times and I can't comprehend what could be going wrong. Let me show you some code snippets.

Code:
Func RecreateM3U ( ByRef $m3uFile, ByRef $xmlfile, $hProgress, ByRef $TVFilter, ByRef $ExtraFilter )

    $sChannelName = StringSplit($m3uFile[1], ",")
    $sChannelData = StringSplit($sChannelName[1], " ")
    Local $hTemp = FileOpen("new_playlist.m3u", 1)

    FileWriteLine($hTemp, "#EXTM3U")

    $Ubound = Ubound($m3uFile) - 1
    $ProgressStep = Int(($Ubound * 1) / 100)
    $Counter = $ProgressStep
    $Progress = 0


    For $i = 1 to $Ubound step 1

        If $Counter = 0 Then
            $Counter = $ProgressStep
            $Progress += 1
            GUICtrlSetData($hProgress, $Progress)
        Else
            $Counter -=1
        EndIF

        If StringLeft($m3uFile[$i], 8) = '#EXTINF:' Then

            If StringLeft($m3uFile[$i+1], 10) = 'http://lol' Then ContinueLoop

            $sChannelName = StringSplit($m3uFile[$i], ",")
            $2ndIndex = $sChannelName[0]
            $sChannelData = StringSplit($sChannelName[$2ndIndex-1], " ")
            $Index = $sChannelData[0]
            ;If $Index > 15 Then _ArrayDisplay($sChannelData)


            If StringLeft($sChannelData[$Index], 28) = 'group-title="Entertainments"' Then

                If $TVFilter[0] = False Then ContinueLoop
                $ChannelID = EPGSearch($xmlfile, $sChannelName[$2ndIndex])
                If IsString($ChannelID) Then
                    If StringLeft($m3uFile[$i], 20) = '#EXTINF:-1 tvg-id=""' Then
                        $ssstring = StringTrimLeft($m3uFile[$i], 20)
                        FileWriteLine($hTemp, '#EXTINF:-1 tvg-id="' & $ChannelID & '"' & $ssstring)
                        FileWriteLine($hTemp, $m3uFile[$i+1])
                    Else
                        $ssstring = StringTrimLeft($m3uFile[$i], 25)
                        FileWriteLine($hTemp, '#EXTINF:-1 tvg-id="' & $ChannelID & '"' & $ssstring)
                        FileWriteLine($hTemp, $m3uFile[$i+1])
                    EndIf
                    ContinueLoop

                Else
                    FileWriteLine($hTemp, $m3uFile[$i])
                    FileWriteLine($hTemp, $m3uFile[$i+1])
                    ContinueLoop

                EndIf

            EndIf


            If StringLeft($sChannelData[$Index], 21) = 'group-title="Culture"' Then

The code opens file "new_playlist.m3u" and writes the header you're seeing so I know it gets this far. It then gets the total amount of lines in the m3u to create a loop to parse the m3u code and calculate progress percentages. It first checks if the line it's currently reading starts off with #EXTINF: and if it doesn't then it skips to the next line. But if it does find that text then it first reads the next line which usually contains the url but if it has a dummy url "http://lol" Then it also skips it from writing into the new file. Finally it starts processing the groups and if it finds epg data it'll correct the tvg-id to match the epg and if it doesn't find epg data it just copies over the the data as is.

In short it to really understand what can be going wrong here I need to compile a debug version for you and put a code for pop up messeges between these pieces of code to see where it can be going wrong and how that way I can fix it. You would just have to send me screenshots of the messages or just what the msgbox says in a pm. If you're up for it let me know.
Yes pls,
lets do that.
Sounds good.
 
Updated OP, this should fix any issues people had but brought the feature list back down. Luckily C# already has XML libs, I just have to write my own m3u lib and code up a GUI but between work and my personal life I'm not sure how long that will take.