EPGs (Schedules Direct and Zap2it)

Is there a guide somewhere that explains (in simple terms) how to install and use an EPG such as Zap2it or Schedules Direct with OSMC?

I’ve found a couple of threads, and some info on the Kodi and TVheadend sites, but didn’t know how much is current and what actually works seamlessly with OSMC.

Thanks in advance!

I’m no expert, but I use NextPVR on a Windows 10 “server” and use Schedules Direct with NextPVR. Schedules Direct accounts are cheap and there is really nothing to do but open the account and supply your credentials to NextPVR.

I suspect from your question that you’re using TVheadend, and I’m sure that’s different. I’ve never used that.

Thank you, Tom. I will give this a shot! It’s a bit more complex than I expected for what is likely a common need… hopefully it will work.

Does anyone know if there is a Schedules Direct solution to do this on the Raspberry Pi 3?

FrogFan, you are correct–I’m using a RPi 3. Sorry for not making that clear at the beginning.

Sorry kwc01, it was I who was not clear. I’m running OSMC on an RPi 3. I’ve installed the NextPVR addon in OSMC. I run NextPVR on a Windows 10 machine, where my TV cards are installed, and where I store videos and recorded TV. I access my content via fstab based samba share mounts.

I’m not sure how your architecture compares to mine. My point was that Schedules Direct plays very nicely with NextPVR.

Edited to correct typo.


  1. Switch to the hts account
    sudo -u hts /bin/bash

  2. Run the tv_grab_na_dd and follow prompts
    tv_grab_na_dd --configure



  1. Navigate to Configuration > Channel/EPG > EPG Grabber Modules
  2. Select Internal: XMLTV: North America (Direct Data)
  3. Check Enabled
  4. Click the Save button
  5. Click the “Re-run Internal EPG Grabbers” button and wait until is complete (~ 30 minutes)


That looks simple enough, and I decided to try this.

However, there is no hts account on my OSMC system–AFAIK TVheadend runs as the user ‘osmc’ by default. (I get ‘sudo: unknown user: hts’).

Additionally, XMLTV doesn’t seem to be installed by default, either.

So here’s what I tried:

  • Installed XMLTV utilities: sudo apt-get install xmltv-util
  • Established an SD account
  • Ran tv_grab_na_dd --configure
  • Restarted TVheadend: sudo service tvheadend restart
  • Configured the EPG Grabber from the TVheadend web interface as you advised
  • Waited a couple of hours, then rebooted

Unfortunately, the schedule shown in the Electronic Program tab still projects only a few hours into the future.

I also attempted to configure the EPG via tv_grab_sd_json, which created an SD-JSON type lineup in Schedules Direct for my OTA zip code. However, selecting the Internal: Schedules Direct JSON API as the EPG source results in the same outcome–no extended program listing beyond 4 hours or so.

Any other thoughts on getting this to work?

Thanks again for the help.

For what it’s worth, here is the log output in TVheadend when spawning tv_grab_na_dd:

It looks to me as though the program listing is being downloaded, but isn’t being stored in a location accessible to TVheadend. That’s just a guess coming from someone who really doesn’t quite know what he is doing. :wink:


I’m assuming, when you ran:

tv_grab_na_dd --configure

It asked how may days to do the epg for, is this correct?

also it should ask where to store the config the file, the default appears to be:


Could you please provide the contents of that file:

cat ~/.xmltv/tv_grab_na_dd.conf | paste-log

Please double check the location of tv_grab_na_dd.conf and replace in the command above if required.

Thanks Tom.

AThe configuration file is at the location you posted. It did not request the # of days when I configured it.

It turns out that all of the EPG data in TVHeadend is coming from the OTA grabber (PSIP: ATSC Grabber). Once I disabled that the guide emptied over the next few hours.

Contents of the config file are as follows (with user/pwd masked):

username: xxxxxx
password: yyyyyy
timeoffset: +0000
lineup: PC:45458
auto-config: add
channel: 43-5 WKOIDT5
channel: 26-1 WBDTDT
channel: 64-2 WSTRDT2
channel: 6-1 WSYXDT
channel: 22-3 WKEFDT3
channel: 12-1 WKRCDT


All of the channels appear in the TVHeadend “EPG Grabber Channel” listing, but the schedule guide doesn’t populate.


I would try running the epg grabber manually and piping to a file, to check to see there is any issues with the grabber:

tv_grab_na_dd --config-file ~/.xmltv/tv_grab_na_dd.conf --days 7 > ~/test.xml

It will probably be a bit big to open in a text editor, so you check it with less:

less ~/test.xml

enter key moves a line at a time, spacebar moves several lines at a time.

:q to quit less.

Thanks Tom.

That appears to have worked fine, and generated a large file with all of the programming data.


Sounds like there is an issue with the TVheadend configuration. Could you provide a screenshot of the grabbers configuration.

Thanks Tom.


How many channels are you scrapping for, its found 68?

Thanks Tom.

17 channels


I think you need to set the epg source under channels tabs.

If you edit a channel you see option to select the epg source, think you either need to set it to internal or Internal: XMLTV: North America (Sorry doing this memory, but you should be able to see which option it is from the drop down menu). The click apply.

You may need to re-run the grabber again.

Thanks Tom.

Whoa! That was the missing step. Thanks so much–I really appreciate the help.

For some reason these steps (start to finish) are hard to locate, despite browsing several related sites. Maybe my Google fu is getting weak.

Again, thanks for the help!

1 Like


When I was setting this up I couldn’t find a complete guide either, had to use quite few guides to price it all together.

Thanks Tom.