Advanced Configuration

Custom EPG Data Sources: Build Your Own Program Guide

The moment your provider's EPG cannot cover the channels you actually watch, the answer stops being 'find a better feed' and becomes 'build your own'. Custom EPG generation — pulling schedules from the broadcaster's site, merging them with the provider's XMLTV and serving a single clean guide to every player — is a deep but hugely satisfying power-user skill. This is the honest roadmap, from the basic generation tool to a fully merged pipeline.

12hand-built channels beat 20,000 empty ones
UTCnormalized timecodes kill the classic bug
Dailyregeneration keeps live schedules fresh
1merged URL serves every player on the LAN

Why build your own guide at all

Three honest reasons: coverage gaps (your niche channels have no schedule anywhere), accuracy (the only reliable source for a broadcaster's schedule is the broadcaster), and consolidation (you run several providers and want one guide, not three).

The effort is only worth it when the payoff is real — for a family that lives on a dozen channels, a hand-built guide for those twelve beats fighting a 20,000-entry XMLTV.

Treat it as targeted surgery: you are not replacing your provider's EPG; you are patching the holes where it fails. Build only the feed you need, merge it, and serve the union.

WebGrab++: the generation workhorse

WebGrab++ is the standard workhorse of the craft: a config-driven tool with grabber plugins that scrape broadcaster sites and JSON endpoints, normalize the schedule and emit a standard XMLTV file on a schedule.

Its setup is configuration, not code: add a config entry per source site, map channel IDs to your playlist's tvg-id values, set the timezone and let it run. The included guides do the heavy lifting for the major networks.

The tool earns its reputation in the gaps: where a broadcaster has a proper API or feed, the grabber is accurate to the minute; where it scrapes HTML, expect periodic breakage as sites change layout — hence the maintenance rhythm below.

Merging sources into one XMLTV

Once you have two or three feeds — the provider's, your own WebGrab++ output, a community project — the craft becomes merging: one union file where each channel appears once with data from its best source.

A simple merger is a hierarchy: for each channel, prefer the curated source when it has data and fall back to the provider's feed when it does not. De-duplication by channel ID prevents double listings in the guide.

Free merger tools and small scripts both do this well; the engineering discipline is determinism — the same inputs should always produce the same merged output, so your player sees a stable, predictable guide.

Timezone discipline: the silent killer

The classic custom-EPG failure is timezone mismanagement: XMLTV carries UTC timecodes, and any player worth using converts to local time. But a scraper that mislabels local time as UTC shifts every program by hours — the single most common 'my custom guide is broken' report.

Normalize everything to UTC at generation time and let the player convert; resist the urge to embed local offsets in the file. One format rule fixes an entire category of bugs.

A quick verification pass after generation — checking that tonight's prime-time shows land at the expected local hour — catches drift before it reaches the couch.

Serving the merged guide to every player

Your final XMLTV needs a home and a schedule: an always-on machine serves the file over HTTP (a tiny static server or a cron-regenerated file on any web service), and each player points its EPG source at that URL.

Refresh cadence matters: regenerate the guide several times a day to cover live updates, and set each player's EPG refresh to a matching interval so the merged data stays current.

The payoff is the single-source dream: one URL, maintained centrally, consumed by every TV, box and phone — and your custom patches ride along with your provider's feed automatically.

The maintenance rhythm and honesty

Custom EPG is a garden, not a lawn: scraper sites change, broadcasters re-architect, and a working feed can decay without any signal. The honest maintenance contract is a weekly verification glance and a monthly scrape-fix pass.

Log what breaks and how — the repair memory turns a recurring breakage into a ten-minute fix instead of a re-discovery. Most experienced builders keep a changelog of site changes.

And the honesty rule of thumb: build custom EPG only where it pays. For mainstream coverage, a provider with a self-healing pipeline (as we run at IPTVXtream) already does the gardening so you can watch instead.

Frequently asked questions

What generates a custom EPG?

WebGrab++ is the reference tool: config-driven grabbers scrape broadcaster sources and emit standard XMLTV on a schedule.

Can I merge my custom guide with my provider's?

Yes — a hierarchical merger prefers the curated source per channel and falls back to the provider's feed. De-duplicate by channel ID.

Why are my custom programs off by hours?

Classic timezone bug: local-time content labeled as UTC (or vice versa). Normalize everything to UTC at generation and let the player convert.

Is custom EPG worth the effort?

Only where it pays — niche channels, accuracy, consolidation. For mainstream coverage, a provider with a healthy pipeline is the easier answer.

The bottom line

Custom EPG is the deepest lever in the guide game: capture your own schedules with WebGrab++, merge them with the provider's feed, normalize timecodes to UTC and serve one URL to the whole household. It is a garden that pays in accuracy precisely where commercial feeds fail — and a maintenance rhythm is the true cost of admission. If you would rather skip the gardening, message us on WhatsApp at +1 (555) 364-8853 and test our self-healing pipeline on a trial account instead.

Ready to test it yourself?

Start a free trial and judge the quality with your own eyes.

Start Free Trial on WhatsApp
JB
Jordan BlakeFounder & Protocol Engineer · IPTVXtream

Jordan is a software engineer who spent years building streaming infrastructure before founding IPTVXtream. He designed our routing stack, EPG pipeline and failover systems — and still answers edge-case questions on WhatsApp himself.