PDA

View Full Version : IKS66 IPTV Simple Client EPG Fix for Kodi



Luig
09-20-2017, 02:15 AM
Instead of resolving the issues in the AutoIT version I have decided to scrap all that code and just start fresh in C#. The reason I started in AutoIt is because it's an easier language to get a grasp of and I'm incredibly rusty, up until recently I haven't really coded anything in about a year or two. To minimize errors I hard coded the link to the epg guide xml and the program now reads the m3u file directly from the link generated in your IPTV control panel. Since the program now requires more sensitive data to work I am releasing the source code with instructions on how to compile it for each operating system. That's right, this new version is compatible with Windows, Linux and Mac! I'm only releasing this basic CLI source code, all future releases will be closed source to keep script kiddies from stealing my work, renaming it and claiming it as their own work.


TL;DR: This EPG Fix CLI Tool


Source Code

using System;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using System.IO;
using System.Net;

namespace EPGFix
{
class Program
{
static void Main(string[] args)
{

Console.WriteLine ("Please input m3u url and press enter");
string remoteUrl = Console.ReadLine();

WebClient myWebClient = new WebClient();
Console.WriteLine("Downloading " + remoteUrl);
byte[] myDataBuffer = myWebClient.DownloadData (remoteUrl);
Stream stream = new MemoryStream(myDataBuffer);

string line;
char delimiter = ',';
string[] substrings;
string[] names = {"",""};
string[] data = {"",""};
string[] url = {"",""};
int counter = 0;

System.IO.StreamReader file =
new System.IO.StreamReader(stream);
while((line = file.ReadLine()) != null)
{
if (line.StartsWith("#EXTINF:"))
{
if (counter > 0) {
Array.Resize (ref names, names.Length + 1);
Array.Resize (ref data, data.Length + 1);
Array.Resize (ref url, url.Length + 1);
}
substrings = line.Split (delimiter);
names [counter] = substrings [substrings.Length - 1];
data [counter] = line;
url [counter] = file.ReadLine();
counter++;
}
}

file.Close();

Console.WriteLine("Download successful.");

XmlReaderSettings settings = new XmlReaderSettings();
settings.DtdProcessing = DtdProcessing.Ignore;
settings.ValidationType = ValidationType.DTD;
settings.ValidationEventHandler += new ValidationEventHandler (ValidationCallBack);
XmlReader xmlReader = XmlReader.Create("http://epg.euyulio.org/", settings);
XmlReader xmlReader2;
int strIndex;
string content;
bool continueloop = false;
string id;

while(xmlReader.Read())
{

if((xmlReader.NodeType == XmlNodeType.Element) && (xmlReader.Name == "channel"))
{
if (xmlReader.HasAttributes)
{

id = xmlReader.GetAttribute ("id");
xmlReader2 = xmlReader.ReadSubtree();
while (xmlReader2.Read())
{
if (continueloop) {
continueloop = false;
break;
}
if ((xmlReader.NodeType == XmlNodeType.Element) && (xmlReader.Name == "display-name")) {
content = xmlReader2.ReadElementContentAsString ();
for (int strNumber = 0; strNumber < names.Length-1; strNumber++)
{
strIndex = names[strNumber].IndexOf(content);
if (strIndex >= 0) {
if (data[strNumber].StartsWith("#EXTINF:-1 tvg-id=" + '"' + '"')) {
data[strNumber] = "#EXTINF:-1 tvg-id=" + '"' + id + data[strNumber].Substring(19);
continueloop = true;
break;
}
data[strNumber] = "#EXTINF:-1 tvg-id=" + '"' + id + data[strNumber].Substring (24);
continueloop = true;
break;
}
}
}
}
}
}
}

string path = Directory.GetCurrentDirectory();
Console.WriteLine ("Please input new M3U Playlist name");

System.IO.StreamWriter file2 = new System.IO.StreamWriter(path + @"/"+Console.ReadLine()+".m3u");
file2.WriteLine("#EXTM3U");

for (int strNumber = 0; strNumber < names.Length - 1; strNumber++) {
file2.WriteLine (data [strNumber]);
file2.WriteLine (url [strNumber]);
}

file.Close();
Console.WriteLine ("New M3U file generated press any key to exit");
Console.ReadKey();
}

private static void ValidationCallBack(object sender, ValidationEventArgs e) {
Console.WriteLine("Loaded EPG Guide", e.Message);
}
}
}



OS Specific Requirements


Windows: .NET Framework 4.5 must be installed
Linux: Mono must be installed (Follow install instructions Here (http://www.mono-project.com/download/#download-lin))
Mac: Mono must be installed (Follow install instructions Here (http://www.mono-project.com/download/#download-mac))


General Requirements


Link to M3U Playlist as generated by your IPTV control panel
A way to host the new generated m3u file with the updated channel parameters. I personally use 000webhost.com because it's free, fast and reliable but any webhost that offers direct linking should work.
Knowledge of using Kodi and Web Control Panels helps alot but not really needed
Last but not least my handy dandy App


Windows Instructions

1. Double click on epgfix.exe
2. Copy and paste M3U URL and press enter
3. Type the name of the new file and press enter
4. Press any key to exit
5. Upload M3U file to a webhost


Linux and Mac Instructions
1. Open Terminal
2. Type "cd location/of/epgfixfolder" I keep mine in documents so it would be "cd Documents"
2. Type "mono epgfix.exe" and press enter
3. Copy and paste M3U URL and press enter
4. Type the name of the new file and press enter
5. Press any key to exit
6. Upload M3U file to a webhost


Kodi Instructions

1. Open up Kodi's IPTV Simple Client Settings (My Addons -> PVR Clients-> PVR IPTV Simple Client -> Configure -> General Settings) Under: M3U Play List URL enter the url to where you uploaded your playlist, I would also disable "Cache m3u at local storage" as it can cause issues
2. In the same menu you should see another submenu or tab called EPG Settings. Under that tab you'll find XMLTV URL, you need to enter the following with out parenthesis "http://epg.euyulio.org" Also turn off "Cache XMLTV at local storage".
3. If you did everything you can disable and re-enable the IPTV Simple Client and you should start seeing that lonely EPG start populating. If that doesn't work you can either try restarting Kodi and/or clearing the old tv data in Kodi's TV settings


How to compile on Windows

1. Download and install Mono 32-bit from Here (http://www.mono-project.com/download/#download-win)
2. Open up Notepad and copy paste Source Code above into Notepad
3. Save As "epgfix.cs" make sure to "Save as type" is set to "All files (*.*)" and close Notepad
4. Open Mono x86 Command Prompt <--- It should appear in your start menu after you install Mono
5. Type "cd path\to\epgfix" and press enter (I keep my in documents so for me it's "cd C:\Users\Username\Documents" replace Username with your computer username)
6. Type "mcs epgfix.cs" and press enter


How to compile on Linux

1. Make sure if you have Mono installed, refer to Linux Requirement section.
2. Open up your text editor and copy paste Source Code above into it
3. Save As "epgfix.cs" make sure to "Save type" is set to "All files (*.*)" and close your text editor
4. Open Terminal
5. Type "cd path\to\epgfix" and press enter (I keep my in documents so for me it's "cd C:\Users\Username\Documents" replace Username with your computer username)
6. Type "mcs epgfix.cs" and press enter


How to compile on Mac

I'm gonna edit this later when I get access to a Mac computer but I'm sure it's roughly the same steps as Linux Instructions.


I'm still providing a download link to the compiled version below for the people that don't want to go through extra steps to compile it


Download EPG Fix CLI Tool (http://kodituts.000webhostapp.com/epgfix.Exe)

Credits for the EPG XML go to Euyulio and Viper8690 : GitHub (https://github.com/euyulio/epg)

I have personally tested this program in several different computers and it's working on both Linux and Windows. I currently don't have access to a Mac computer but it should work aswell. Please feel free to report any bugs you might encounter and I'm working on a GUI and to get the features I had in AutoIt back in the C# but I won't release it until thoroughly tested. I'll edit this post with video tutorials when I get around to making them.

crazed 9.6
09-20-2017, 02:19 AM
hey thnx alot for your work and also for sharing this.

Very nice Luig :)
Hope to see some testing results posted :)

Luig
09-20-2017, 03:18 AM
Np man, I wouldn't have made it this far if the other cat hadn't shared his work lol. Got around to making a quick video to show the working EPG, not the best but it should do for now as a proof of concept and a quick visual how too of what you need to do. I used the web browser uploader for the file but Filezilla and other FTP clients work on 000webhost. My end game is to have a program that can fully customize the playlists and to have a built in self updater/uploader or maybe even a small built in localhost server that and a newer looking UI. I'm open to suggestions as far as feature requests tho.

Sandiver
09-20-2017, 01:13 PM
Thanks looks promising. I have opened a account with 000webhost.com and downloaded your program. I need to trim down my m3u list in notepad and then i think i will be ready to test it out later today.

Luig
09-20-2017, 01:25 PM
If you mean trim down all those movie and tv show links this app does it for you, leave everything unchecked and you get nothing but tv channels. It even trims out all the non working channels at the time and by that I mean the ones with a url of "http://lol" If you mean all foreign channels I'm still working on the code for that lol.

Sandiver
09-20-2017, 03:21 PM
If you mean trim down all those movie and tv show links this app does it for you, leave everything unchecked and you get nothing but tv channels. It even trims out all the non working channels at the time and by that I mean the ones with a url of "http://lol" If you mean all foreign channels I'm still working on the code for that lol.

thanks i will give that a try and let you know.

Sandiver
09-20-2017, 04:03 PM
OK i am almost there. i was one click away from uploading my newplaylist to 000webhost.com and it suddenly occurred to me that my playlist contains my donation number.

so the big question is how secure is the web host? i am not going to give out my donation number to anyone.

Luig
09-20-2017, 04:29 PM
It's a single file and there are billions of random m3u files out there so I doubt you'll have any issues, if you are still worried you can rename the playlist file to something like "algebra_class1.m3u" and you should be fine.

Sandiver
09-20-2017, 05:07 PM
It's a single file and there are billions of random m3u files out there so I doubt you'll have any issues, if you are still worried you can rename the playlist file to something like "algebra_class1.m3u" and you should be fine.

After it not working for me i found a malware virus on my pc i removed it. did it come from downloading the above exe file? not positive but pretty sure/

edit: to be fair i had some problems opening the 000webhost site after registering it wouldn't take my password i eventually found another page that worked. it may have been some kind of misdirect and infected my pc during that process unrelated to the download.

just saying proceed with caution.

ilan
09-20-2017, 05:19 PM
Sometimes there are false positives. You could scan the EXE file with your antivirus or malware client. It should detect malware in the installation file if it exists.

Luig
09-20-2017, 05:25 PM
If you got that alert when you first opened my app it might be a false positive, if you got it after the program was closed then you got it from somewhere else. I used the AutoIt scripting language to make the program because it's what I'm more familiar with and the compiled builds sometimes come up with false postives. I'm making this mainly for my personal use (and to help out my dad in Mexico) I just thought it would be nice to share it. I chose to modify the m3u file first because it's structure is much simpler than the epg one, this way I can get it automated alot faster. Once it's fully automated I will start working on modifying the epg file instead. Once all that's done and I optimize my code I will port it to a more professional language like C#. Since I'm coding this by myself this is my fastest coarse of action, as you can see from the pic below I am still pouring all my spare time and resources into completing this project. If you're still concerned about using it you can wait till I complete the epg parsing code or the C# port.

https://image.prntscr.com/image/wHQKXFbTSXuHzebvV1rktQ.png

Edit: I also changed the named to IPTV EPG Fix because I found it also works with Rocket m3u lists :)

2nd Edit: Any software I make is completely portable and doesn't require installation unless I code it C# then you are required to have .NET Framework installed which most people already do.

Barny
09-21-2017, 01:17 PM
Hi there,
I tried this with my current m3u list from provider but the file it spits out is blank with only the extm3u at the top.!!
Any advice.?

Barny
09-21-2017, 02:55 PM
Anyone here.?

Luig
09-21-2017, 03:09 PM
Can you give me any more info like which checkboxes you chose and did you use the latest version or the first one I released? If you used the latest version the checkboxes are no longer optional, if you don't choose anything it will spit out a file just like the one you mentioned. If using the latest I suggest you check the boxes in the TV Filter list of the channel groups you still want in your m3u file before you hit start. Please get back to me if this works or doesn't work for you so I can keep trying to fix the issue.

Edit: I updated the written instructions on the main page to reflect changes in latest version. I'll update the instructional video as soon as I finish coding the FTP portion of this app.

nob0dy
09-21-2017, 04:15 PM
After it not working for me i found a malware virus on my pc i removed it. did it come from downloading the above exe file? not positive but pretty sure/

edit: to be fair i had some problems opening the 000webhost site after registering it wouldn't take my password i eventually found another page that worked. it may have been some kind of misdirect and infected my pc during that process unrelated to the download.

just saying proceed with caution.

file is 100% clean .......

<~ checked personally & no i don't know who Luig is ........

Barny
09-21-2017, 04:18 PM
Can you give me any more info like which checkboxes you chose and did you use the latest version or the first one I released? If you used the latest version the checkboxes are no longer optional, if you don't choose anything it will spit out a file just like the one you mentioned. If using the latest I suggest you check the boxes in the TV Filter list of the channel groups you still want in your m3u file before you hit start. Please get back to me if this works or doesn't work for you so I can keep trying to fix the issue.

Edit: I updated the written instructions on the main page to reflect changes in latest version. I'll update the instructional video as soon as I finish coding the FTP portion of this app.
Hi,
thnx for replying.
I did it with none checked at first then second time I did with random sections checked to see if that was the reason.
Second time I simply got three instances of the EXTM3U header and nothing else in the file.
I guess I dont have the latest version since the check boxes in version 1.1 are still optional.
Where can I get the latest version pls.?

Luig
09-21-2017, 04:37 PM
V1.1 is the latest version. That's interesting, I'll write up a custom version with debugging code when I get home from work and send it to you in a pm so we can try to sort this bug out. The only way I was able to recreate the error was but leaving everything unchecked. Any more input would greatly help like are you running it from a local folder like downloads, documents or desktop? What version of windows you are using and anything else you think might help.

Barny
09-21-2017, 04:41 PM
V1.1 is the latest version. That's interesting, I'll write up a custom version with debugging code when I get home from work and send it to you in a pm so we can try to sort this bug out. The only way I was able to recreate the error was but leaving everything unchecked. Any more input would greatly help like are you running it from a local folder like downloads, documents or desktop? What version of windows you are using and anything else you think might help.
Hi,
im running it from downloads.Windows 10 desktop.
I tried to add an epg from provider as well but I got the 'invalid epg file' error.
How would I download an epg correctly to be used with this type of software from the URL.?
The way I tried was to right click, save as and made it an xml file.

Luig
09-21-2017, 05:14 PM
For the correct epg xml right click [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxthen Save link as and save it. Another thing is when you generate your link from iks66 or rocket make sure you generate the generic m3u playlist plus options and not the regular generic one.

Barny
09-21-2017, 05:29 PM
Yeah definitely not working for me.
I get a blank list and nothing else.!

ilan
09-21-2017, 06:38 PM
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.

Luig
09-21-2017, 07:42 PM
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.

Barny
09-21-2017, 08:11 PM
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.?

Barny
09-21-2017, 09:29 PM
I think my pc is blocking the file.!!
Eset says clean tho.
Ill try a different pc.

nob0dy
09-21-2017, 09:45 PM
I think my pc is blocking the file.!!
Eset says clean tho.
Ill try a different pc.

<~ downloaded file ..... with zer0 problems ......... file is clean

@ Barny not sure what you're doing wrong ...... maybe user error ?

Luig
09-21-2017, 11:15 PM
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.

Barny
09-22-2017, 01:58 PM
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..

Luig
09-22-2017, 02:54 PM
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.


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.

Barny
09-22-2017, 04:46 PM
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.


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.

Luig
09-24-2017, 10:24 PM
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.