From iptvx
Jump to: navigation, search

Your iptvx installation comes with a number of different configuration options. There are key files in your system's configuration paths to instruct iptvx on how to behave, where to obtain files and what to do. The following directories can contain iptvx configuration files and these files are also taken in the following order or priorities. As a side-note: iptvx uses libconfig and follows the libconfig syntax.

  1. Users' home under ~user/.iptvx/
  2. Your system config dir under /etc/iptvx/
  3. The cfg/ directory in the working directory

In short that means if iptvx cannot find a user configuration file, it will use the system-wide configuration file and if that is not present it will check the current working directory. The third option was mainly used for development purposes. Default installations will always use the system-wide configuration and that is also the recommended approach.


Any version greater than 0.5 uses the systemd service called "iptvx" which is the same application as the client, but serves the epg, schedules and execute recordings. It is installed by the Makefile and the packages, but not automatically started. You should complete the configuration and then start the daemon first before starting the client.

service iptvx start

If, for whatever reason, you do not want a systemd service, use SysVinit scripts or have a system that has neither of the above, then you can also launch the daemon with the following command line argument. That execution however will only launch the daemon and the client needs to be launched separately by just executing the iptvx command after you've launched the daemon.

iptvx --daemon


This file is the main application configuration file and contains all bits and pieces for the main application to run. Each installation comes with a standard configuration that should work out of the box. The order of the settings does not matter. The configuration file itself is documented and mostly self-explanatory.


The app line defines the path where the HTML5/JavaScript/CSS frontend application code can be found in. This setting needs to point directly to the corresponding HTML-page that includes all the JS and CSS files.

app = "/var/iptvx/app/app.html"


Defines where the EPG data and channel logos are stored in. The directory should contain an epg and a logo subdirectory. The epg subdirectory needs to be write-enabled as the application stores all loaded epg files in there.

data = "/var/iptvx/data"

width and height

Define the width and the height of the window the application works in. If you want the window smaller or larger (e.g. 1080p or 2160p) you can define that with these variables. If you uncomment or leave out these values, the application will automatically use the full size of your screen. That is also the recommended approach and therefore these values are by default disabled.

width = 1280

height = 720


The fullscreen settings can be true or false and defines whether the application starts in fullscreen or not. Please also see the Usage page on how to switch fullscreen during runtime. The default of this setting is false.

fullscreen = false


Defines how many hours of EPG content will be stored on the local disk in the _epg_ directory. The default value is 72, but it depends on your EPG provider on how many hours are generally provided and how it is configured in the channels.conf configuration file. The more EPG data is stored and used, the slower the application will get as it needs to process and render all the epg information. Should you encounter performance issues, try lowering the value to 24.

epg_hours = 72

db (version > 0.5)

Sets the path of where the database file for epg and recording information storage is located on the local disk. This is used by the daemon to store its files in.

db = "/var/iptvx/db"

record (version > 0.5)

Sets the path where the recorded video files are to be stored in. Ensure that this directory is fully writable and readable by the users intended to use iptvx.

record = "/var/iptvx/video"

record_tolerance (version > 0.5)

Defines the tolerance in minutes to use for recording. If set to 5 f.e. it indicates that any recording shall start 5 minutes before the scheduled show begins and only end 5 minutes after the scheduled show ended. This ensures that any clock discrepancies or streaming delays prevent the application from recording the complete show.

record_tolerance = 2

render (version > 0.5)

Defines on whether to use the CPU without accelerators with sw (Software rendering) or to use the CPU and GPU combined with all available hardware accelerators with hw available (Hardware rendering).

render = "hw"

epg_expiry_days (version > 0.5)

This setting tells iptvx after how many days the locally cached XMLTV files should be deleted from the disk. Mainly for static XMLTV files this is to ensure that iptvx does not keep outdated files on the disk for too long.

epg_expiry_days = 7

epg_min_age_hours (version > 0.5)

If you have defined the epg_hours setting to hold 72 hours of data, but the source XMLTV file only contains 48 hours for example, then this setting prevents iptvx from querying XMLTV data too often. If set to 3 hours, then iptvx will hold the epg data for at least 3 hours before querying the source again.

epg_min_age_hours = 3

stream_log_output (version > 0.5)

Generally iptvx can produce a lot of logging output to the STDOUT which might be annoying at certain times and is not really helpful for the average user. Therefore this setting, set to false by default, prevents iptvx from being all too talkative.

stream_log_output = false

daemon_port (version > 0.5)

The TCP port number that iptvx' internal web-server should listen on to serve the UI and provide the JSON-API for the client application. The default port for iptvx is 8085 which might be trouble for users running a number of local services especially for HTTP.

daemon_port = 8085

daemon_url (version > 0.5)

Defines the full URL from which the iptvx client can retrieve the overlay application. If you're running a daemon serving multiple clients, then this should be set to the host name or ip address of the daemon including it's port when not served on the HTTP standard port. It is not required to serve the overlay application from the built-in web-server (although this is the standard), but could also be served from any other web-server such as Apache or Nginx.

daemon_url = ""

daemon_list (version > 0.5)

The daemon will provide the channel list in JSON format for any client to load for local playback. This is allowed to be configured separately from daemon_url in order to allow using a separate web server for providing the overlay application.

daemon_list = ""


The channels.conf file is included by the iptvx.conf file with an _include_ directive at the end of it. You always need to ensure that this include directive exists. If you want each individual user in your system to also have individual channels.conf files, you need to provide them an individual iptvx.conf file as well. For the documentation of the channels.conf file, please see the Channels page.