Recently I’ve accomplished the herculean task of setting up my parents’ cable connection to stream through Plex using a HD Homerun 3 cablecard network tuner. It works! This is how I got XMLTV guide working for the HDHR Viewer plugin for Plex on CentOS 7 Linux.
Required reading: http://hdhrviewer.zynine.net/hdhrviewerv2-initial-setup/xmltv-zap2xml/
First, install and configure the required perl and java packages
sudo yum install perl-Compress-Zlib perl-HTML-Parser perl-HTTP-Cookies perl-LWP-Protocol-https perl-JSON gcc cpan java-1.7.0-openjdk-headless sudo cpan JSON::XS #accept all defaults when prompted
Download the zap2xml perl module (zap2xml.pl) Place it somewhere it can be easily accessed.
Test to make sure the script will run properly:
perl zap2xml.pl -u <zap2it username> -p <zap2it password>
If you get an error like this:
Can't locate Compress/Zlib.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at zap2xml.pl line 26.
It means you haven’t installed the correct perl modules. Double check that you installed them all.
Once we know it runs properly e need to configure a cron job to run zap2xml daily (to make sure the guide data is always up to date.)
crontab -e #press i to begin inserting 0 0 * * * perl <full path to where you downloaded zap2xml>/zap2xml.pl -u <zap2it e-mail> -p <zap2it password> #ESC :wq to save and exit
Next download and unzip the Channel Guide app. I placed it in the same place I downloaded zap2xml to keep things simple.
Test it out to make sure it works:
java -jar channel-guide-app-0.0.3.jar server app-config.yml
If it starts and doesn’t crash, you know it’s working.
Now we want to configure the channel guide app to run on startup
sudo vi /etc/systemd/system/channelguide.service
[Unit] Description=Plex Channel Guide [Service] TimeoutStartSec=0 ExecStart=/usr/bin/java -jar <full path to channel-guide dir>/channel-guide-app-0.0.3.jar server <full path to channel-guide dir>/app-config.yml [Install] WantedBy=multi-user.target
Make sure this systemd service is enabled:
sudo systemctl enable /etc/systemd/system/channelguide.service
Lastly make sure you’ve configured the HDHRViewer plugin in Plex to use xmltv and rest API as per the how-to on their site.
Success!