I wrote a small German tutorial a while ago because I was tired of missing or outdated EPG on my IPTV channels in Tvheadend.
Many people seem to find it useful, so here’s the English short version:
https://speefak.spdns.de/oss_lifestyle/epg-fuer-iptv-kanaele-in-tvheadend-einrichten-und-automatisch-aktualisieren/
In a nutshell what the guide does:
Use the External XMLTV grabber (socket: /var/lib/tvheadend/epggrab/xmltv.sock)
Map your IPTV channels to real XMLTV IDs (like 3sat.de, rtl.de, zdf.de, …)
Download a free daily EPG file (e.g. from open-epg.com or similar sources)
Push it automatically into Tvheadend once a day via a tiny bash script + cron
That’s basically all. After that you usually get 10–14 days of clean, up-to-date EPG without much hassle.
The tutorial contains:
exact config steps
ready-to-use script example
cron line
few important gotchas (especially if you run Tvheadend in Docker)
If you only have IPTV and no DVB tuner at all, this is probably the most stable & simple method I’ve found so far.
Feedback, questions or improvements are very welcome!
Cheers
speefak