You are here


Problem Solving





Problem Solving

See FAQ "How to fix a config file that reports can only run in V5.2 or higher ?"

WG.Common.InvalidConfigException: [Error ] Channel element has invalid argume "id"
at  . ..ctor(XmlElement )
at  . . (XmlNode )
at  . ..ctor(  , XmlNode )
at  . ..ctor(String )"
The above error is caused by a wrong element configuration or a DNS issue. Try first

That config file has two <![CDATA .. ]]> elements inside a <read_this> element.
This <read_this> element is not compatible with version lower than V5.2.
To fix it, remove all <read_this> and </read_this> occurrences so only <![CDATA .. ]]> remains.
If you don't need the CDATA messages anymore, you can remove them including the <read_this> and </read_this>
Don't forget to save the file when done ..

When you see a "(?)" at the end of a title, this means WG++ has detected a difference between the index-and detail page title.

On the index page, WG++ will search for a title for every show. If the site has also a detail page, with more information about a show, also that page can be grabbed. This is called a detail page.

To verify that we talk about the same show (on index- and detail page), WG++ will verify if the titles of both match. If this is not the case, WG++ will place a "(?)" after the title. This is to signal that there is something wrong with the grabbing of the detail page.

There are several possibilities of what could be wrong:

  1. There is no detail page for this show, so WG++ tries to download that page and an error occurs
  2. There is a detail page, but with a totally different title. This is an error and should investigated. (can be a site or siteini issue)
  3. There is a detail page, but with a slightly different title. eg. index page: "LATE NIGHT SHOW - REPEAT" detail page: "LATE NIGHT SHOW". This problem can (sometimes) be fixed by the siteini, by removing the addition from the index page.

So dependent on the root cause, this "(?)" is a real problem or not.

The "(?)" mark can only be removed when you fix the root cause of this problem.

As a (temporal) workaround, you can disable the downloading of the detail page. Depending on the extra info that is grabbed from this detail page, you can lose a lot of extra info. This can simply be done by commenting out all lines in the siteini that start with


The (n) at the end of a description is added by WG++. It indicates the update status of a show. In this case it indicates that the show is new in the EPG guide.

If you don't want it, you can disable this by adding "nomark" to the mode setting in the WebGrab++.config.xml file. See the mode setting in the cofiguration docs for more details.

Please be aware that it may take few hours before your license become active, due to a paypal verification.
First thing to do for users that become "Donator" is to properly activate license.
How to activate the license ? You need to "force" an update, this means that in WebGrab++.config.xml you need to change what is shown in license line, replacing the text "To force a license update; replace this text with the letter f" with simple letter "f", this will force license activation/renewal/change for you account. Next verification are automatically so you do not need to do or change anything unless you change hardware.
To verify changes, check WGLicense.log.txt if it is all correct.

The message in log "skipped encrypted siteini" is probably due to a copy/paste, modification of siteini or a remote transfer of the file, these actions break the encryption and return the "skipped encrypted siteini" message.

To transfer properly an encrypted siteini :
from windows:
use winscp and set transfer type="binary" then copy /paste the entire file (do not copy paste the contenent !!).

from linux:
use wget, needs output name and ?raw=true added at the end of url so example:
wget -O

To update siteini.pack :
run SiteIni.Pack.Update.exe (for windows users usually in C:\Program Files (x86)\WebGrab+Plus\bin) or for linux (located in .wg++/bin or even "mono SiteIni.Pack.Update.exe" from /bin path).

This is an indication that the robots.txt indicates, it doesn't want automitic software to download part from a site.
Because WG++ conforms the ROBOTS exclusion standard, this warning is shown.
If that happens, you should check the website (that gives this warning) terms of usage. And if it doesn't allow you to grab automatic from the site (or parts from it), you should disable this website in your config file (or a part of it).
So this warning doesn't mean that WG++ can't grab the EPG data. It just means, the website doesn't want you to grab the EPG data.

When you see "no index page data received from channelX" this means WG++ is not able to download the first page(s) from the site. The index pages are the downloads that are needed to get all the programmes. This can have several root causes:

  • The server side is down (maintenance/closed).

    • Nothing can be done.
  • You get blocked from that site because you are not allowed/too aggressive.
  • The website has changed its internal structure, so a siteini update is needed.

This is not an error, but just a notification. It means, WG++ hasn't found any info about the Robots Exclusion Standard configuration of a site. If a website implements this standard, it indicates to the robot (in our case WG++) what part of a website may be indexed/scrabed. So if WG++ does not find this info, this has no further effect on the further grabbing.

When you see "no shows in indexpage" this means WG++ has downloaded the indexpage(s), but was not able to parse and find any programmes.

Most of the time, this root cause is that the website has changed its internal structure, so a siteini update is needed.

Https communication is a complex procedure. At the time of writing (02/12/2016), mono does not support the all algorithms used in HTTPS transfers that exist. Luckily most server have multiple algorithms they support. So when mono (WG++ on linux) had to deal with such a server, it could use an algorithm that he had available. But the last year we see more and more server use algorithms (TLS1.2) that are not supported in mono.

On windows WG++ doesn't have this issue, because it uses a windows TLS stack, that supports TLS1.2.

UPDATE: (22/02/2017) As of Mono 4.8.0 we can see that a TLS1.2 stack has been introduced. And first tests point out that now it is possible to use a mono only solution.

Current steps to make thinks work:

1. make sure you have >= Mono 4.8.0

2. export MONO_TLS_PROVIDER=btls

3. Download and import trusted root certificates from Mozilla's LXR into Mono's certificate store

mozroots --import --sync

4. Normally step 3. should be replaced with

cert-sync /etc/ssl/certs/ca-certificates.crt

But on our test setup, this failed.

5. Convert from the old Mono certificate store into the new one


The above steps should only be done once. So not on every run of WG++.


Previous, before the TLS1.2 support in Mono, a user (Blackbear199) had come up with a workaround (php based). (See here for an example)


All standard licenses allow two computers, when a third is used for the first time it will be blocked for 12 hours.
- Brief instructions for what to do are in your WGLicense log file.
- Details: 12 hours after you added the new computer it will be made active again and will be kept. From the two older ones only the one you will continue using will be kept. The remaining one will be disabled for use permanently. So it comes down to waiting until that 12 hour is over and your new computer + one of the older ones will be your new set of computers.

- Another option is to remove the 2 computer limit .. for that you need a custom license.
See also FAQ 'I want more channels or more siteini's or more than 2 computers to run WG++'

There is no such thing as a personal decrypt key. If a SiteIni is encrypted and needs a decrypt key to use it these keys are listed in the donator area of the forum:
Siteini´s that require a decrypt key, have in headers : $$encrypted w/userkey/expiry [02/08/2020].
Siteini's only encrypted (no key required), just : $$encrypted [02/08/2020]

WG++ is freeware, close source and currently there are no intentions to make the source code available (eg. open source).

Licenses can have three independent components

1. The donator status. This one is always needed for the other two to work
2. Custom license .. more channels /siteinis etc.
3. Custom siteini .. like

Each of them have their own credit . The credit for 2. and 3. is taken from the credit of 1. Any donation is automatically added to the credit of 1. The expiry dates of all three is automatically calculated (daily) by the system using their year value and the current credit.
This seems complicated but is necessary because we have only one source of donation which doesn’t give us the information what the user wants for it. So it is added to 1. By default.
Now if a user mails us that he wants to have more channels or want his custom license extended, and there is enough credit in 1. for that, we move whatever is needed to that other license component. The system then automatically adjusts the expiry dates of all components.

We normally try to synchronise the 3 components manually when we see big differences of expiry dates of the components, but we cannot look at all the accounts, there are several thousands of them. A user can always ask us by mail to do that.
After a few hours it will be ready. Do one or more runs in license force mode until it is activated on your computer.

If you run version 4.2 or higher of the program, an overview of the details of your account including its 'financial' details is added at the end of the WGLicense.log. This data is not refreshed daily, so if it fails to be present, do a run with a letter 'd' in the license line of the config file (same spot where the 'f' for a license force run must be specified.)

Example of such a listing :
[ Info ] 'username' license data overview :
[ Info ] Last update : 2024/03/16 17:28
[ Info ] (all amounts in €'s)
[   ]
[   ] Donations :
[   ] 2023/10/07 ,  amount 7
[   ]
[   ] Past spendings :
[   ] item         started at     expired at     consumed
[   ] custom license   2021/08/19   2023/02/01   23.04
[   ]
[   ] Donator status :
[   ] valid until     needed/year   balance
[   ] 2025/08/09   5.00       4.79

It can sometimes help resolving license issues by deleting the locally stored copy of the license data. That data is stored in a hidden sub folder 'license' of the webgrabplus home folder (same as for config and the logfiles etc). In that hidden folder there is a file 'wglocal.lic'. Delete it .. If you have a custom license there will also be 'wgcustom.lic', you can delete that as well.
This operation will force the license check to create a new local copy based on the data it finds on our server. So these files will be back after the next wg++ run.
license folder location :
Windows : C:\Users\'your computer username'\AppData\Local\WebGrab+Plus\License
Linux : /home/'your computer username'/.local/share/WebGrab+Plus/License/

To activate your license instantaneously, do a run in license force mode :
After the license update was executed successful (check your WGlicense.log.txt), remove the 'f' to disable the force mode,
because in that mode license check is done every run which will slow down and causes unnecessary traffic on our server!
P.S. from version 3.1.1 onwards removing the force mode is done automatically after the run

A datetime in the XMLTV look like:

<programme start="20150930183000 +0300" stop="20150930190000 +0300" channel="My channel">

WG++ outputs default the datetime as the time of the show, with the offset to UTC this time is.

So the above show starts at
2015/09/30 18:30 and this time is in a time zone that is now UTC+3h
So in UTC time, this show starts at
2015/09/30 15:30
And if you are in another time zone (eg. UTC-5) then this show starts locally at
2015/09/30 20:30

- be patient, getting your license data ready requires some time. Usually less than half a day.
(we have to wait for a PayPal activity report that can take between 2 and 8 hours to arrive, it's useless to run a user data update before that)
- check your WGLicense.log file if something is wrong with the license id data in the config file (usename, email, license pw)
- after your license data is updated, your new status will be activated automatically. But because that status is only checked once a week (to avoid overloading our cloud server) it can take up to a week. To speed it up, you can force activation by doing a run in license force mode .

- check your license data in the wglicense.log. There is a list of what type of encryption is enabled for your license.
- verify the decrypt key element in the config
- maybe you changed something in the encrypted siteini.
!! Warning !! Any change of an encrypted SiteIni will wreck it!

You probably use your login password, use the license password instead in your user profile page

The license update program limits the expiry date to a maximum of 2 years after the last donation. However, after that period, and if you are still actively using WG++, it will be automatically extended using the remaining credit. You also can use any credit for extra options at any time, like more channels or a custom SiteIni.

The standard donator status for 5€/year gives full performance grabbing and automatic siteini decryption of 250 channels/15 siteini's for max 2 computers.

If that is not enough, request a custom license by mail .. webgrabpp (at) .. mention your username! Specify the details and the number of years. Such a custom license requires an additional contribution.

These are the normal options (for one year):
- Every 250 channels extra +5€ (default 250 channels)
- Every 5 siteini’s extra +5€ (default 15 siteini's)
- Normally the other settings remain standard (full decryption, postprocess, full epg details )
- Another thing to consider is to remove the 2 computers limit .. for +20€

Some 'special' siteini's are only distributed with a custom decryption key for 20€/year . Currently, these are (India) , (South America), (South America alternative) and (Arabic countries) (See also

Request for them by email .. webgrabpp (at) .. mention your username!

NOTE: The amounts mentioned here exclude the PayPal donation fee !! See


Yes you can. You can run as may different configurations as you want.

If you run WG++ normal (under Windows), it will look for the .config.xml file and the other file it needs, in the default WG++ home folder.

But you can run WG++ for another configuration. To do that run WG++ like:

WebGrab+Plus.exe "C:\EPG\Configuation01"

The files that should be inside this folder (Configuation01) should be the same as those that are in the default WG++ home folder. So just copy those files (and adjust the path(s) inside them, eg. in the WebGrab++.config.xml file). The bare minimun in such a configuration folder is:

  • WebGrab++.config.xml
  • all the siteini's you want to use in the config file
  • (optional) a REX folder with its files
  • (optional) a MDB folder with its files

An alternative is to use the 'configmaker' ..

Yes. WG++ is written  in .NET. For many other OS's, there are ports that can be used to run .NET application. For Linux and OS X, you can use Mono.
There is already documentation about how to run WG++ on Linux and on OS X

The files used on windows and Linux are the same. So migrating from Windows to Linux is fairly simple.

  1. Create a folder on your Linux system (eg. ~\wg++)
  2. Move next files from your windows system to your Linux system (copy them into the ~\wg++ folder:
    • WebGrab++.config.xml file
    • WebGrab+Plus.exe file
    • mdb folder (optional, if you use mdb)
    • rex folder (optional, if you use rex)
    • all .ini files you want to use (+ any additional cookie files that could be needed by some .ini's)
  3. Adjust the paths in the config files:
    • <filename> inside the WebGrab++.config.xml file
    • <filename> inside rex.config.xml (optional, if you use rex)
    • <filename> and <ldbfilename> inside mdb.config.xml (optional, if you use mdb)

These are the only steps you need to do to migrate a Windows setup to a Linux setup


To add a dummy channel, you can use the dummy.ini file from the siteini.pack. The only thing you have to do, is to add a config line in you WebGrab++.config.xml like:

<channel update="i" site="dummy" site_id="" xmltv_id="the_xmltv_id_you_want_for_this_channel">A name for this channel</channel>

If you want multiple dummy channels, just copy multiple of these lines in your WebGrab++.config.xml file like:

<channel update="i" site="dummy" site_id="" xmltv_id="Channel01">Channel 01</channel>
<channel update="i" site="dummy" site_id="" xmltv_id="Channel02">Channel 02</channel>
<channel update="i" site="dummy" site_id="" xmltv_id="Channel03">Channel 03</channel>

If you want, you can alter the info of the show(s) generated by the dummy file. Just edit this dummy.ini file to your wishes. If you want the info of each dummy channel to be different, just create for each channel a dummy.ini file (eg. dummy_01.ini, dummy_02.ini, ...). Just be sure to change this also in the WebGrab++.config.xml file like:

<channel update="i" site="dummy_01" site_id="" xmltv_id="Channel01">Channel 01</channel>
<channel update="i" site="dummy_02" site_id="" xmltv_id="Channel02">Channel 02</channel>
<channel update="i" site="dummy_03" site_id="" xmltv_id="Channel03">Channel 03</channel>

If your PVR software is not listed, you can always ask on the forum. Also, if you want to add your own PVR software guide on this site, let us know on the forum.

There is a post-process available: add_logo avaialable here:
The plugin will allow to add your own path and logo.

If the channellist file that comes with a siteini, seems to be outdated because of missing or changed channels, a new one can be created by any user.
Make sure you have at least one channel of the siteini in the channel section of the WebGrab++.config.xml. Then set the update value to c

A new channellist file will replace the old one.


Creating a siteini can be very easy or difficult. It depends on the buildup of the website you want to grab. A step by step guide is available in chapter 7 of the manual :

The timezone you define in the siteini, should be the timezone of the start/stop times on the site. That way, WG++ knows how to import a time like 09:20, because without any reference to UTC, we don't know when this time exactly is.

Older version of WG++ only supported timezone=UTC+03:00 or timezone=UTC-05:00 notations. But this notation has one drawback. And that is DST awareness. Not every country/region has DST (Daylight Saving Time) and the countries/regions that have it, don't always do the transition on the same moment. So that means that when DST happens you should manually change timezone=UTC+03:00 to eg. timezone=UTC+02:00 in the siteini file.

As of WG++ V1.1.1/53, timezones are supported. These are DST aware and should be used instead of the older UTC+00:00 notation. But the older notation is still supported, but has of course it drawbacks.


To find out the timezone you can use, just set


Then run WG++ once for this siteini and look in the log file, there you'll find a list of timezones that can be used. Pick the one you want and put it after


Brought to you by Jan van Straaten

Program Development - Jan van Straaten ------- Web design - Francis De Paemeleere
Supported by: