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 - thank you! :-)
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: sunsettrack4@gmail.com
FAQ section to follow :-)