Skip to content

configuration

Hika van den Hoven edited this page Dec 5, 2016 · 21 revisions

#About the configuration

A configuration consists of several layers.
First there are the several JSON-datafiles:

  • tv_grab_API.json with some generic settings applicable to all frontends
  • tv_grab_xx.json where xx should be replaced with that used by your frontend like tv_grab_nl.json for the Dutch/Flemish frontend. Here all for the frontend generic defaults are set and all for the frontend available sources are defined and integrated.
  • source-xxxxxx.xxx.json with one for every source defining what and how to extract. xxxxxx.xxx is the base-url for that source. So a source at tvgids.nl has a source-file: source-tvgids.nl.json. There exists one special source-file for every frontend: source-virtual.xx.json with xx being the same as in tv_grab_xx.json. In this source-file combined listings are defined for time-sharing channels like 'Nickelodeon/Spike' that depending on the time of day broadcast a different 'channel'.

The first two are downloaded on every run and the source-files only if tv_grab_xx.json indicates an update or if it is not found locally in ~/.xmltv/sources. So by clearing this directory you can force a fresh download. Do not edit these files as they will be overwritten on any update. The version number in the locally stored JSON files is added to the name, so the program can easilly check if a download is needed.
Many of these defaults you as user can adapt to your own preferred settings. Either on the commandline or in one of the two configuration files in ~/.xmltv.

If however you think anything in these JSON files needs changing and you can not overide it through any of the many settings, you should open an issue.

Next to these you will here find the database file program_cache3.db, the log-file tv_grab_xx_py.log and any old instances or backups of these files: tv_grab_xx_py.conf.old, tv_grab_xx_py.set.old, program_cache3.db.bak and tv_grab_xx_py.log.old. All files for the dutch frontend tv_grab_nl3.py will have a 3 appended after nl to distinquish them from the old version 2 files. You thus can use these in parallel.
All available options you will find listed alfabetically to the right in the sidebar where they link to the description further down.

##tv_grab_xx_py.conf You create your first configuration by running your frontend with the --configure option.
The configuration-file consists of several sections. At the top there first are two lines indicating the codeset and the version (the API version + 2). Do not change these lines as they determine how things are interpreted. Newer API versions might have an updated configuration format and will on encountering an older version number read and interprete it in the old format. That's why these version numbers are raised with 2. Version 1 and 2 configurations were used by the old tv_grab_nl.py script, which the current API still can read.

# encoding: utf-8
# configversion: 3.004

After these two lines the order of the sections is irrelevant and any section may apear multiple times as every line is first read and grouped by section prior to any processing. However if an option apears more then one time in any section (exept for the disable_detail_source and disable_source options, that may be used multiple times) the one furthest down will be used. On running --configure the order will get organized again. Any unrecognized section is ignored and will be removed on running --configure!

####The [Configuration] section

The first section is the Configuration section containing all Global settings. Many of those you can also set through commandline options and many are described by inline remarks. All possible settings with their current value will be placed here on creating the file and updated with any commandline options given together with --configure.
At the top you see the data_version. This is the version of tv_grab_xx.json used when creating this configuration. Whenever important messages are placed in this JSON file and your data_version is lower, they are added to the top of your log-file. If you next run --configure this value is updated to the current tv_grab_xx.json version.

####The [Channels] section

# NPO 1;1;0-1;;nederland-1;;1;263;24443942983;30;npo_1;npo1;npo1;;;;4;npo1.png

Next comes the Channels section. Here all available channels are listed separated into groups and within each group sorted alfabeticaly. Every line consists of several values separated by a ;. On first creation of the configuration-file all channels are inactivated by a leading #. Remove those for the channels you want to fetch listing-data for.

  • The name of the channel. This for instance is used in the log and can be changed

  • The channel-group the channel will be placed in. Next to organizing the channels in the configuration, the channel-group is also used to set some defaults like: the prime_source and whether ttvdb-lookup will be attempted.
    The Dutch/Flemish frontend uses the following channel-groups:

    • 1 'Nederlands',
    • 2 'Vlaams',
    • 3 'Engels',
    • 4 'Duits',
    • 5 'Frans',
    • 6 'Nederlands Regionaal',
    • 15 'Nederlands Sport',
    • 16 'Nederlands Film',
    • 7 'Nederlands Overig',
    • 8 'Vlaams Regionaal',
    • 9 'Vlaams Overig',
    • 14 'Europees',
    • 10 'Internationaal',
    • 11 'Radio Nederlands',
    • 12 'Radio Vlaams',
    • 13 'Radio Overig',
    • 99 'Overig'

    Group 99 (Other) is for all frontends the default group if no group is set, so most of the time new, as jet unbound channelids will show up in this group.

  • The chanid or the source independent channel identifier. By default it is formed by combining the sourcid and the channelid from the first source, but it can be any other unique string. It is defined in tv_grab_xx.json where the channelids from the several sources are linked to it. Do not change it. By default it will be the xmltvid, but you can change this. See the xmltvid_alias and compat options.

  • The succesive channelids if available for that source with position 4 being empty (in tv_grab_nl.py version 2 we knew a source 0, but that source has been moved to ID 3 as now sourceids must be higher then 0), position 5 being source 1 etc. You can prevent fetching from a source by removing that channelid, however be careful to not remove a ;. Also on running --configure the next time they will be inserted again. You beter use disable_source for that channel if for whatever reason you want to disable a source.
    So above example has channelids for source 1, 3, 4, 5, 6, 7, 8 and 9

  • The last two values set the channel-logo source and the channel-logo itself. A channel-logo source of -1 means no logo. If you want to set your own channel-logo for a channel, set the channel-logo source to 99 and add the full URL in the last position.

Use the --show-logo-sources and --show-sources to get a list of available sources for either.
Use group_active_channels either on the commandline together with --configure or in your configuration to group all active channels as the first group independent of their actual channel-group.

The [Channel <chanid>] sections

After these two sections additional sections for any of the channels can be added to specify channel specific options like [Channel <chanid>] or:

[Channel 0-1]

##The Options There are options to use on the command line, others you use in your configuration file, global or for just one channel. Or you can use them in all of those circumstances. Location will tell you. The header is the name to use in your configuration, any commandline options are given separatly after Commandline and often have hivens in stead of underscores.
Boolean option in the configuration file recognise the following values:

  • True, 1, On or no value means that the option is enabled
  • False, 0, Off or an invalid value means that the option is disabled

For the command line adding a boolean option normally means enabling it, but some know an opposing option, like --fast and --slow.
Commandline options always overrule any setting in the configuration. Check your log-file to see a list of the currently used option-values.

####help

  • Location: Commandline
  • Commandline: --help, -h

####version

  • Location: Commandline
  • Commandline: --version, -V

Display frontend and API version

####description

  • Location: Commandline
  • Commandline: --description

Display a short description of the frontend

####long_descr

  • Location: Commandline
  • Commandline: --long-descr, -d

Display a more extensive description of the API

####capabilities

  • Location: Commandline
  • Commandline: --capabilities

Does return:

baseline
cache
manualconfig
preferredmethode

####preferredmethod

  • Location: Commandline
  • Commandline: --preferredmethod

Does return:

allatonce

####language

  • Location: Commandline , Global
  • Commandline: --language, -l <lang>
  • Values: (two char string) at present: en|nl
  • Default: en

Sets the language for log and most messages. If a text is missing for that language, fall-back to the English text is tried, else an error is given. See in the .\tvgrabpyAPI\texts directory for the available language files. See languagefile on creating extra language files.

####show-sources

  • Location: Commandline
  • Commandline: --show-sources

List all sources used by this frontend

####show-detail-sources

  • Location: Commandline
  • Commandline: --show-detail-sources

List all sources used by this frontend with detail pages

####show-logo-sources

  • Location: Commandline
  • Commandline: --show-logo-sources

List all logo sources for this frontend

####log_level

  • Location: Global
  • Values: (integer) 0-511
  • Default: 175

This is the sum of one or more of the following values:

  • 0 Nothing (use quiet mode to turns off screen output, but keep a log)
  • 1 include Errors and Warnings
  • 2 include page fetches
  • 4 include (merge) summaries
  • 8 include detail fetches and ttvdb lookups to the screen
  • 16 include detail fetches and ttvdb lookups to the log
  • 32 include matchlogging (see match_log_level)
  • 64 Title renames and other title manipulations according to the tables in tv_grab_xx_py.set
  • 128 ttvdb failures
  • 256 DataTreeGrab warnings

####match_log_level

  • Location: Global
  • Values: (integer) 0-15
  • Default: 11

What to log about the merging process and it is the sum of one or more of the following values. Only relevant if log_level 32 is set:

  • 0 = Log Nothing (just the above summary if selected)
  • 1 = log not matched programs that are added
  • 2 = log left over programs that are not added
  • 4 = Log matches
  • 8 = Log group slots

####mail_log

  • Location: Global
  • Values: boolean
  • Default: False

Mail your log using the below settings. It does not support ssl/starttls or authentication as it is meant to be used with your own local linux mail system. When you the first time set this option, you best first test it in a console as any errors do not show in the log which then already is closed.

####mailserver

  • Location: Global
  • Values: string
  • Default: localhost

The dns-name for your mailserver.

####mailport

  • Location: Global
  • Values: Integer
  • Default: 25

The port your mailserver is listening.

####mail_log_address

  • Location: Global
  • Values: string
  • Default: postmaster

The mail-address to send the log to.

####quiet

  • Location: Commandline, Global
  • Commandline: --quiet, -q /--verbose , -v
  • Values: boolean
  • Default: False

Whether to send any logging to the screen

####configure

  • Location: Commandline
  • Commandline: --configure, -c

Fetch the channel information for all the sources and create a configuration file. If it allready exists use the there found settings and rename the old one to *.old. The default name is ~/.xmltv/tv_grab_xx_py.conf but you can specify a different file and location with the --config_file option.
Use this option also to update your lineup when in your log changes are announced. Existing settings are always kept!
If you run --configure as root without giving a filename, the new configuration is placed in /etc/tvgrabpyAPI and will be used as a default if a configuration in the users ~/.xmltv directory does not exist. The log however will be placed in ~/.xmltv. Running in normal fetching mode as root will fail! Also be aware that --configure also stores configuration data in the sqlite database. It is therefore advisable to at least ones run --configure as the user, and thus with the database, used on normal runs.

####group_active_channels

  • Location: Commandline, Global
  • Commandline: --group_active_channels
  • Values: boolean
  • Default: False

As a commandline option only relevant together with --configure and on updating an existing configuration file. You can also set it to True in your configuration, the commandline option then has no longer any effect. The commandline option will not change the value in your configuration.
Place all active channels at the top of the [Channels] section in a separate group.

####config_file

  • Location: Commandline
  • Commandline: --config-file, -C <file>
  • Values: Path and filename
  • Default: ~/.xmltv/tv_grab_xx_py.conf

The configuration file to use. This name (and location) is also used for the log-file but with .log appended in stead of the default: ~/.xmltv/tv_grab_xx_py.log. (replace xx with the language/country short in the name of your grabber).
If there are insufficient rights or the file does not exist a fatal error will follow, but not after first checkking if a default configuration in /etc/tvgrabpyAPI can be found and opened.

####save_options

  • Location: Commandline
  • Commandline: --save-options, -O

Save the current set commandline options to the configuration file.

####always_use_json

  • Location: Global
  • Values: boolean
  • Default: True

Many settings are set in the grabber and source JSON files downloaded from internet and kept up-to-date there. Some of these settings you can change in your configuration file, but would get reset on running --configure. Setting this value in your configuration to False prevents this. The effected settings are prime_source, the channelgroup, the channelname and the channellogo. The disadvantage of turning this off is that you do not benefit from any update on those settings.

####output_file

  • Location: Commandline, Global
  • Commandline: --output ,-W <file>
  • Values: Path and filename or None
  • Default: None

By default the resulting XMLTV file is sent to stdout (the value None). Here you can give a filename with a complete path to sent it to. If insufficient rights exist a fatal error follows.

####output-windows-codeset

  • Location: Commandline
  • Commandline: --output-windows-codeset
  • Values: boolean
  • Default: False

By default the XMLTV output is coded in UTF-8. Especially under msWindows you can choose to use the default Windows cp1252 codeset instead. All screen-output is under msWindows already coded with this codeset.

####cache

  • Location: Commandline
  • Commandline: --cache, -A <file>
  • Values: Path and filename or None
  • Default: ~/.xmltv/program_cache3

Sets the file and pathname to use for the sqlite cache. Setting it to None disables the cache. The here given name is appended with .db.

####use-only-cache

  • Location: Commandline
  • Commandline: --use-only-cache, -U

Tels the API to not extract data from internet. It will only use already gathered data from the cache. This will make a run very fast.

####clean_cache

  • Location: Commandline
  • Commandline: --clean_cache

Remove outdated (older then yesterday) data from the cache.
This happens automatically on every run.

####clear_cache

  • Location: Commandline
  • Commandline: --clear_cache

Clear all programme data from the database.
This has preference over removing the database file as also configuration and ttvdb data is stored there.

####clear_ttvdb

  • Location: Commandline
  • Commandline: --clear_ttvdb

Clear all ttvdb data from the database.
Before possible retrieving data from theTVDB.com first the database is checked. Only if a series is not found there or the last check on theTVDB.com is more then a month old the theTVDB.com is queried. If a series is not found there an empty record is inserted into the database to prevent repeatedly fruitless queries for the next month.

####add-ttvdb-title

  • Location: Commandline
  • Commandline: --add-ttvdb-title <series title> [<languagecode>] [<ttvdbid>]
  • Values: string optionally followed by a language code

It is possible that a series present on theTVDB.com is not found. For instance the series 'Castle' is stored as 'Castle (2009)` as already an earlier series by the name 'Castle' exists. Through this option you can tell the API to look for 'Castle (2009)'. When you call this option a list of possible matching series is shown, giving you the oportunity to select the right one. At the same time then the data for this series is stored into the database. By default data for English and the for your frontend defined languages is retrieved. You can add optionally an extra two letter language code after the series title. If spaces are precent in the title you need to enclose it with quotes. If after the title an integer value is given it is assumed to be the ttvdbid you want to store the alias for. See also theTVDB.com on the Installling the API and tuning your installation page

####ttvdb_lookup_level

  • Location: Global, Channel
  • Values: integer [0 - 3]
  • Default: 1
  • As of version 1.0.5

Through this parameter you can select when to do a ttvdb lookup. In all cases a programme must be a series to qualify. Also if ttvdb is disabled either global or for the channel this value is ignored. To reduce fetch time set it to 0 on all channels that are not that interesting in this respect. By default lookup is always disabled for for instance radio channels.

  • 0: This is effectively the same as setting disable_ttvdb to True, but with one difference. Once you disable ttvdb global you can not enable it for an individual channel. Setting ttvdb_lookup_level globally to 0 leaves room to set a different level for individual channels.
  • 1: Only do a lookup if an episode title and an empty season number are found. This is what was used in tv_grab_nl.py version 2 and is intended to find a missing season/episode numbering or to convert an absolute episode number to a season/episode number
  • 2: Do a lookup for all series that already have an episode title.
  • 3: Do a lookup on all series. This setting potentially will give a lot of failures.

####xmltvid_alias

  • Location: Channel
  • Values: string
  • Default: None

By default the chanids set through the JSON data-files and present in your configuration-file as the third item in the channel string is used as the xmltvid. You can however choose to set a different xmltvid for any of your channels. If for whatever reason a chanid changes, we also can set such an alias in the JSON data-files. If then on running --configure the old chanid is found active, this old chanid is set as xmltvid_alias for that channel.

####legacy_xmltvids

  • Location: Commandline, Global, Channel
  • Commandline: --legacy_xmltvids ,-X
  • Values: boolean
  • Default: False

Only valid for the Dutch frontend. If set to True xmltvids as used pre version 2.2 are used for the sources up to 3. You are not encouraged to use it as in time we might remove this option. Use xmltvid_alias to set a not default xmltvid instead.

####compat

  • Location: Commandline, Global, Channel
  • Commandline: --compat, -x
  • Values: boolean
  • Default: False

According to the xmltv.dtd an xmltvid should take the form . in a URL like form. By default we do not append such a sourcename (as there are potentially multiple sources). By setting this value to True, either global or per channel, the in the JSON data-file set sourcename is appended to the chanid to create the xmltvid. Also to a set xmltvid_alias this sourcename is appended.

####logos

  • Location: Commandline, Global, Channel
  • Commandline: --logos / --nologos, -n
  • Values: boolean
  • Default: True

Add if present in your configuration a URL to a channel-logo to the xmltv output.

####output_tz

  • Location: Global
  • Values: A string like "Europe/Amsterdam" or "UTC"
  • Default: "UTC" (depending on what your frontend has set)

With this option you determine what timezone is used in the xmltv output for start and stop times. See in Linux under /usr/share/zoneinfo for possible values. That path might differ slightly on your Linux flavor. Your frontend should set it to a reasonable default.
On the commandline you can always switch to "UTC" with the --utc option. If you give an invalid timezone, UTC is used.

####utc

  • Location: Commandline, (Global)
  • Commandline: --utc ,-u

Use UTC times in the xmltv output file. Originally in the configuration a similar boolean use_utc option is supported. It will be recognized, but use output_tz = UTC instead.

####max_simultaneous_fetches

  • Location: Global
  • Values: integer
  • Default: 5

If your frontend knows many sources, your internet-connection can get saturated when every source tries to grab a page at the same time causing failures. Therfore by default the number of simultaneous fetches is maxed to 5. If you have a very wide and fast or small and slow connection, you can raise or lower this value. Do not expect to realy lower the total fetch time by raising this value as there is a mandatory waiting time between every fetch on one source. Failures on the other hand will raise this time as they are tried a second time later.

####global_timeout

  • Location: Global
  • Values: integer
  • Default: 10

This is the time (in seconds) to wait on any request completion before calling it a failure. If you see many incomplete reads or time-out errors and you have an old and slow internet connection raising this might help. If it does not help lowering it can speed-up the total time slightly.

####fast

  • Location: Commandline, Global, Channel
  • Commandline: --fast ,-f /--slow, -s
  • Values: boolean
  • Default: False

This option sets whether any detail-pages should be fetched. By default they are. If fast is True detail-pages are only retrieved from the cache (if present). Can be set globaly or per channel.

####offset

  • Location: Commandline, Global
  • Commandline: --offset ,-o <0-14>
  • Values: (integer) 0-14
  • Default: 0

The first day to return programme info for. By default this is today.

####days

  • Location: Commandline, Global
  • Commandline: --days ,-g <0-14>
  • Values: (integer) 0-14
  • Default: 14

The total days to return data for starting at offset. The sum off offset and days can not exceed 14 days. So offset 1 and days 1 means only data for tomorrow. If data is already present in the cache that will be used. Only data not present and data for today will be fetched from the source.

####slowdays

  • Location: Commandline, Global, Channel
  • Commandline: --slowdays , -G <0-14>
  • Values: (integer) 0-14, None
  • Default: None

For the here set days detail pages if not already present in the cache are fetched. Any further days will be fetched in fast modus. If set other then to None the value for fast will be ignored. If set to the same value as days fast = False or slow modus is assumed. If set to 0 fast modus is assumed.
Even in slow modus detail pages are not retrieved for all programmes. In the JSON data-file a list of genres is present for which programmes, detail pages should get retrieved.

####disable_source

  • Location: Commandline, Global, Channel
  • Commandline: --disable-source <ID>
  • Values:
  • Default:

Disable the given source either global or just for one channel. Run with --show-sources to get a list of the available sources. If a source experiences problems we can also (temporarily) through the JSON datafile disable a source.

####disable_detail_source

  • Location: Commandline, Global, Channel
  • Commandline: --disable-detail-source <ID>
  • Values:
  • Default:

Disable the given source for detail fetches either global or just for one channel. Run with --show-detail-sources to get a list of the available sources.

####disable_ttvdb

  • Location: Commandline, Global, Channel
  • Commandline: --disable-ttvdb
  • Values: boolean
  • Default: False

Disable ttvdb-lookup either global or just for one channel. If you disable ttvdb-lookup globally you can not enable it for one channel.
Through the JSON datafile channels can also be excluded from ttvdb-lookup. Notable radio and regional channels. Also lookup is only attempted if it is marked as a series and an episode-title is present.

####prime_source

  • Location: Channel
  • Values: integer
  • Default: Set through the JSON data-file

The prime_source is the source delivering all start and stop times.
Normally you do not need to set this explicitly as the channel default set in the JSON data-file should be optimal. In there there firstly is a general source preference list with the most dependable source listed first. Next a prime_source can be set for a channel group and lastly for a channel.

####prefered_description

  • Location: Channel
  • Values: integer
  • Default: The longest description given by any of the sources

By default the longest description given by any of the sources is added to the xmltv output. This however does not need to be the best one. On channel level you can set this value to prefer if present the description from a specific source. If this source does not supply a description the longest of the remaining descriptions is used. Any description will be prepended with the subgenre and if found the broadcaster (for channels with multiple broadcasters).

####mark_hd

  • Location: Commandline, Global, Channel
  • Commandline: --mark-HD , -H
  • Values: boolean
  • Default: False

Some sources mark programmes as being in HD. If you're recording in SD or even analog you might not be interested. By default this information therefor is not added. Set this to True either global or for selected channels to add this information to your xmltv output.

####add_hd_id

  • Location: Channel
  • Values: boolean
  • Default: False

If you can receive a channel both in HD and in SD you might want the HD channel listing to have the above mentioned HD info while you do not want it for the other. By turning this option on for a channel two listings are returned in the xmltv output. One without and one with the HD information and wit -hd appended to the xmltvid.

####cattrans

  • Location: Commandline, Global, Channel
  • Commandline: --cattrans / --nocattrans, -t
  • Values: boolean
  • Default: True

Genre translation happens in two steps. The first from source specific to a generic genre/subgenre set and the second from genre/subgenre to a single genre with the subgenre prepended to the description. This switch can disable/enable the second step. The translation tables have a default in the JSON data-files. They also are updated on every run and written to the ~/.xmltv/tv_grab_xx_py.set file, where you can see and update them.

####overlap_strategy

  • Location: Commandline, Global, Channel
  • Commandline: --overlap_strategy , -a <average|stop|start|none>
  • Values: average|stop|start|none
  • Default: avarage

####max_overlap

  • Location: Commandline, Global, Channel
  • Commandline: --max_overlap, -m <minutes>
  • Values: integer
  • Default: 10

The by a source given end-times do not always match the start-time for the next programme. These two options determin how to treat these incidenses. Any difference (positive or negative) larger then max_overlap will always be left as-is. The treatment of a smaller value is decided by overlap_strategy:

  • avarage: take the average of the two times and adjust both
  • stop: keep the stop-time and adjust the start-time to it
  • start: keep the start-time and adjust the stop-time to it
  • none (or an invalid value): leave it as-is.

####desc_length

  • Location: Commandline, Global, Channel
  • Commandline: --desc-length , -l <characters>
  • Values: integer
  • Default: 475

This is the maximum length you want a description to be (including spaces and the at the beginning added subgenre and optional broadcaster). Any text past this length will be truncated and replaced with an ellips (...). I myself keep it at 1000. If you set it to 0 the program switches to fast modus!

####ratingstyle

  • Location: Global
  • Values: ong|short|single|none
  • Default: short

If your frontend incorporates a rating (not to be confused with a star-rating), this setting determins how this is represented in the xmltv output:

  • long: Include if present for each occurence both descriptive text and any logo
  • short: Include if present for each occurence a few character code and any logo.
  • single: Include a singletext item being the appended short codes. This options is especially for MythTV as it will only read a single item for each programme and limits it to a text value of 16 characters. Any logo is disregarded.
  • none: Add nothing

####use_split_episodes

  • Location: Global, Channel
  • Values: boolean
  • Default: True

This is an option originally from tv_grab_nl_py that has not jet been implemented. Sometimes sources list following episodes of the same series as one programme item, while others name them separately. When we implement this it gives you the choise of wich to prefere. At present it depends on how the first source handles this.

##tv_grab_xx_py.set

This file contains several translation tables. First to line-up the different sources to a common standard and secondly to adapt the genre/subgenre combinations to a single genre needed by the xmltv standard. Also here you can update some programme title manipulation tables and set the genres for which you want detail pages being fetched. The genre translation tables will get updated with new found values, so you should check now and then whether you agree with the automatically assigned translations. All tables are on first creation based on defaults set in the JSON data-files.

You will find the following tables:

###no title split list

Whenever a programme name containing a collon : is encountered this title is split. Together with a possible episode title this gives a three part title. During matching the titles from the several sources it is desided what is really the name and what is the episode title. This splitting is not done on movies or on titles contained in this list. These will mostely be spin-off series like "NCIS: Los Angeles". During this process also is check for episode titles also containing the Series name.

###remove groupname list

Some channels have group programmes consisting of Movies or a genre of Series like "Premiére" or "Detective Night". This makes ttvdb or tmdb3 matching difficult to impossible. If you want to strip of such a group name, you add it to this list.

###rename title list

Sometimes sources or channels use alternative names. Especially differences between sources makes the matching process difficult. In this list you can add titles followed by the title they should be translated to. For instance:

[rename title list]
inspector banks = DCI Banks
navy ncis = NCIS

###genres to get detail pages for

In this list you give the Genres for which you want to fetch Detail-pages. Next to the case-insensitive genre names there are two special keywords:

  • none: If you include this keyword detail-pages for programmes without any genre are retrieved. This can be relevant if all or most genres are only supplied through the detail-pages.
  • all: If you add this keyword every possible detail-page is fetched. Any other value now mean the opposite, for those genres NO details will be fetched! (this last is not implemented jet in 1.0.4 beta, but will be in the following stable release).

###Genre/subgenre translation tables for "cattrans type":1 sources

These sources supply a limitted set of genres and may or may not also supply a more detailed subgenre. These tables consist of a collon separated genre/subgenre set, an equal sign and again a genre/subgenre to translate to. A missing subgenre in the first set means any subgenre will do, unless it is specified else in the list. A missing subgenre in the second set means use the original subgenre. After encountering an unknown genre or subgenre they are added to the list, enabling you to change a translation.

###Tables for adding genres to the single subgenres from "cattrans type": 2 sources

These sources supply a chaotic list of genres we will try to match to a genre through matching rules set in the JSON data-file using the original genre as subgenre.
This table is a list of genres with after the equal sign a subgenre to match to this genre. After encountering an unknown subgenre they are added to the list, enabling you to change a translation.

###The final cattrans or genre conversion table

This is a list of collon separated genre/subgenre sets with after the equal sign the final genre to use in your xmltv output. At the top you will fist find all genres without a subgenre after the collon with the genre to use if an unknown subgere is encountered. After encountering an unknown genre or subgenre they are added to the list, enabling you to change the translation on future encounters.