You are here



The absolute file name of the xtml file (epg file) that will be generated. The file name must be absolute and not relative! If the file already exist (from a previous run or from another xmltv source) it will be updated. If no such file exist it will be created.


Element values
file path the absolute file name of the xml file


d,nomark verify
Element values
short long  
d debug saves the output xmltv file in a file with -debug addition in the file name . The original xmltv file will be kept.
m measure measures the time for each updated show or new show added
n nomark disables the update-type marking (n) (c) (g) (r) at the end of the description
v verify verifies the result following a channel update
w wget use wget as grab engine (might improve site recognition in rare cases)
Both short and long can be mixed, separated by comma's and/or spaces



This element is optional and specifies which of the available post processes should run.

Element values
post process name The name of the process to run.
"mdb" runs a build in movie database grabber (read / adapt ...\mdb\mdb.confif.xml
"rex" runs a postprocess that re-allocates xmltv elements (read / adapt ...\rex\rex.config.xml)
grab specifies if the EPG grabbing is run first
yes,y,true,on = grabs EPG first (default)
no,n,false,off = skip EPG grabbing
run specifies if a post process is run
yes,y,true,on = runs the post process (default)
no,n,false,off = skips the post process



This setting is only required if your computer is behind a proxy.

Element values
address:port the address of the proxy server followed by the port
"automatic" attempts to read the proxy address from your connection settings
user the user name needed by the proxy
password the password needed by the proxy



The user agent string that is sent to the tvguide website. Some sites require this.

Element values
user-agent some valid values:
random (the program generates a random string)
Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US)
Mozilla/5.0 (Linux; U; Android 0.5; en-us) AppleWebKit/522+ (KHTML, like Gecko) Safari/419.3



Sets the logging behavior of the program.

Element values
enable on = start logging, anything else will turn it off



This element configures the retry mechanism of the grabber engine. The element value is the number of times the engine will retry to capture a page. After the retries the engine will go on with the next page. Additional settings can be set through attributes.

Attributes Default
time-out delay between retries 10s
channel-delay delay between grabbing of subsequent channels 0s
index-delay delay between grabbing of index pages 0s
show-delay delay between grabbing of detail show pages 0s


remove shows that are longer then 5 hours and shorter then 1 minute

With this setting you can filter out erratic or unwanted show info. When a show takes too long, it could be some tellsell program. If a show is to short, it could be an announcement and not a real show.

Element values
H,m H: max. number of hours a show can be before it is skipped
m: min. number of minutes a show should be before it is skipped
"noskip": disable any skipping.



The timespan for which shows will be grabbed.
It takes one or two values separated by a comma or a space. The first is the number of days (including today) to download, note that 0 is today. The second (optional) is a time specified between 0:00 and 24:00 which will reduce the download to only the one show (per day) which is scheduled around the specified time. Any value between start time (including) and stop time will do. This -one-show-only mode is helpfull if a SiteIni file needs to be debugged.


All info will be updated. Even if the channel attribute 'update' defines another behaviour (eg. incremental)

This setting will change the global update behaviour.

Element value
short long  
i incremental only updates of changes , gabs, repairs and new shows
l light forces update of today and new shows, rest as incremental
s smart forces update of today and tomorrow and new shows, rest as light
f full forces full update
f force forces full update
    (the update element)
when left empty in the update element, no global update behaviour is set. So evey channels uses its own update value.

(the channel attribute)
when the update attribute of a channel element is left emtpy, this channel will not be updated. But it will still be pressent in the output file.



This is the most important setting element. It indicates what TV channel you want to grab. You can define multiple lines of this element in the configuration file. One line for each TV channel you want in your EPG listing. For almost every site, there is a youre_site.channels.xml file available. That file is only as a reference, and is not used by WG++ directly. Just find your channel line in there and copy it to the WebGrab++.config.xml file. Then you can adjust the attributes of that line to your needs. To generate your own youre_site.channels.xml file, see channels.xml.
This element has several attributes.

update   the specific update mode for this channel. For possible values see <update> above. This setting can be overruled if the above <update> element has been set.
site (don't change!) the site file that will be used to grab the info (but without the .ini extention)
site_id (don't change!) the id of the channel you want to grab.
Be aware that all channels entered in the config file will be included in the xmltv listing even if no update is requested. This allows the update of individual channels without affecting the data of the others in the list. A channel not in this list will be removed from your xmltv listing together with all the accompanied show data. (If you use WebGrab+Plus with a xmltv input file from another source, it will remove all data from channels not in this list and create an entry for new channels)

<channel Combi-Channels>


Some providers combine several channels in one. Like, in a certain period of the day Channel A and for the rest of the day Channel B. Or, Channel A but moving to Channel B on certain events (like live Sports happening on Channel B)
WebGrab+Plus supports the composition of the EPG for such channels by merging EPG data of different channels for certain periods of the day and by filtering for the events with a title filter.
The setup for such channels is done in WebGrab++.config.xml, using the attributes 'period', 'include' and 'exclude'. One entry for each fragment. It is also possible to add a reference to the source channel of the fragment at the end of the description. This reference has the format (site_channel/site), like (SBS6/ For this to work one need to specify the attribute 'site_channel' in the channel entry. Without this attribute the reference will be just (site).
The entries of the combi-channel fragments in the channel-list must be kept together (not mixed with other channel entries).
The period specification cannot be negative. Suppose the desired periods are from 20:00-06:00 channel A and from 06:00-20:00 channel B. Because the first period is negatieve, it must be specified in three fractions:
channel A period="00:00-06:00"
channel B period="06:00-20:00"
channel A period="20:00-24:00"
WebGrab+Plus grabs and applies the attributes (period/exclude/include) of the Combi-Channel fragments in an incremental way.
This makes that periods may overlap
Consequently the order in which the fragments occur in the channel-list is important. The incremental update process is slightly different for combi-channels (compared to it for normal channels).
Overlapping programs from the different fragments are 'truncated' on the period and title filter transitions.

period only shows within the defined period will be saved. format HH:MM-HH:MM. Remark that the time must be after the first one
exclude if this text is seen in a show title, this show is skipped
include only if this text is seen in a show title, this show added

<channel Timeoffset-Channels>

Canal +
Canal + 2

Many sites list channels that differ only from another through a time difference. Instead of grabbing the epg separately it is possible to just copy and time shift the ‘source´ channel with a special channel specification.
This way you speed-up the grabbing of channels.
The source channel (here ="Canal +") must always be listed before the timeoffset-channel (here "Canal + 2") The offset can also be negative like offset="-1"

same_as the value here, must be the xmltv_id of a previous channel
offset the offset this channel wel have, with respect to the 'source' channel
xmltv_id the xmltv_id of this channel


Brought to you by Jan van Straaten

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