WebGrab++ alternative :)
This tool provides high-quality EPG data from different IPTV/OTT sources.
- Fast downloads from official TV providers
- Combine multiple sources, create one single XML file
- Import XML files from external web sources and/or re-use XML files created by WebGrab++
- Run additional scripts after final XML file creation
- Update the XML files automatically via crontab
- Horizon (DE,AT,CH,NL,PL,IE,SK,CZ,HU,RO)
- Zattoo (DE,CH)
- Magenta TV (DE)
- WaipuTV (DE)
- TV-Spielfilm (DE)
- Vodafone (DE)
- Swisscom (CH)
- Radiotimes (UK)
- tvPlayer (UK)
- TVTV (US,CA)
- any Linux-based OS, e.g. Ubuntu, Debian
You are welcome to test the script on your machine.
- If any errors occur, please open an issue on the GitHub project page.
- Help me by providing bug fixes etc. via pull requests.
All scripts provided by this project are licensed under GPL 3.0. This includes a limitation of liability. The license also states that it does not provide any warranty.
If you like my script, please
Please run the commands below to setup the script. "Sudo" is not required on user "root".
# Install all recommended applications to setup the epg environment completely:
sudo apt-get install cron phantomjs dialog curl wget libxml2-utils perl nano perl-doc jq php php-curl git xml-twig-tools unzip liblocal-lib-perl cpanminus build-essential inetutils-ping
# Install CPAN and the required modules to parse JSON files
sudo cpan App:cpanminus
sudo cpanm install JSON
sudo cpanm install XML::Rules
sudo cpanm install XML::DOM
sudo cpanm install Data::Dumper
sudo cpanm install Time::Piece
sudo cpanm install Time::Seconds
sudo cpanm install DateTime
sudo cpanm install DateTime::Format::DateParse
sudo cpanm install utf8
sudo cpanm install DateTime::Format::Strptime
# Create any directory in your desired location, e.g.:
mkdir ~/easyepg
# Download the .zip file and extract the files into your folder:
wget https://github.com/sunsettrack4/easyepg/archive/v0.4.3.zip
# Unzip the file:
unzip v0.4.3.zip
# Move all script files to the created folder
mv ~/easyepg-0.4.3/* ~/easyepg/
# Set system-wide permissions to the folder and its related files
sudo chmod 0777 ~/easyepg
sudo chmod 0777 ~/easyepg/*
# Run the main script from your script folder to enter the setup screen in terminal
cd ~/easyepg
bash epg.sh
. . .
Please hit the CANCEL button to exit the dialog menu of the script.
- add an EPG source you want to use for XML file creation
- if any grabbers were added, you can change the related settings there
- if any XML files were created, you can combine the sources and run additional scripts
- continue to grab EPG data and to create XML files
- update the script environment from public repository
. . .
If you choose a provider to grab EPG data, you are able to select the channels you want to retrieve. Afterwards, the following options are available:
- add/remove channel from download list
- select the time range (0 = disable, up to 14 days)
- use the TVG-IDs provided by the Rytec project
- useful for tvHeadend users
- show more than one category per broadcast
- onscreen: use universal text format for episode data
- xmltv_ns: episode data to be parsed by tvHeadend
- run the grabber script of the selected provider only
- remove the cache database of the selected provider
. . .
One of the most important features is the modification of XML files. This option allows you to combine channels from multiple sources, and to run additional scripts before/after final XML file creation.
IMPORTANT: The grabbers of the providers defined in "GRABBER SETTINGS" must run/update the environment successfully to select new channels!
- add/remove channel from XML list
- add/remove addon scripts provided by official and public repositories
- currently supported: RATING MAPPER and NEW IMDB MAPPER
- run a shell script before starting the addon scripts
- start a shell script after running the addon scripts
- create a channel list with TVG-IDs of the created XML file
- the file will be stored in "XML" folder
- select the time range (0 = disable, up to 14 days)
- run the combine script of the selected environment without updating the EPG database
. . .
You are able to import XML files from external sources (any files on your local hard drive, or a public internet source). Please select the option "EXTERNAL" in menu "ADD GRABBER INSTANCE" to enter the external XML resource.
- Please use crontab to update the EPG data and XML files automatically
# Enter this command to enter the settings of crontab
crontab -e
# Setup to run the script daily at 3 AM
0 3 * * * cd ~/easyepg && bash epg.sh
- Please use sudo crontab to update the EPG data in tvHeadend automatically
# Enter this command to enter the admin settings of crontab ("sudo" not required for user "root")
sudo crontab -e
# Setup to update the EPG twice (recommended to update the EPG schedule times correcty)
0 6 * * * cat /home/<user>/easyepg/xml/<file> | socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock
5 6 * * * cat /home/<user>/easyepg/xml/<file> | socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock
# enter your PC name instead of "<user>"
# enter the correct file name instead of "<file>"
. . .
Contact me for support via email: [email protected]
FAQ section to follow :-)