Skip to main content
The EPG page is where you generate, download, and monitor your XMLTV output. It provides controls for on-demand generation, a preview of the XML, a history of past runs, and the URL you give to Dispatcharr or media players.

Actions bar

The top bar contains the primary EPG controls:
ActionDescription
GenerateManually triggers EPG generation. Disabled while a run is already in progress.
CancelAppears while a run is in progress. Cancels the current generation.
DownloadDownloads the latest XMLTV file to your browser.
XMLTV URLCopyable URL for pointing Dispatcharr or media players at the live EPG output.
When generation is running, a progress toast appears showing the current phase (Teams, Event Groups, Finalizing) and a percentage complete.

Statistics cards

Six cards across the top summarize the current EPG content:
CardDescription
ChannelsTotal channels in the current EPG
EventsGame and match programmes
PregamePregame filler programmes
PostgamePostgame filler programmes
IdleIdle filler programmes for team channels with no game scheduled
TotalSum of all programmes (events + pregame + postgame + idle)

Manual generation workflow

1

Click Generate

Press Generate in the actions bar. The button disables and a progress toast appears in the corner.
2

Watch the phases

The toast cycles through the generation phases: processing teams, then event groups, then finalizing. A percentage tracks overall progress.
3

Review the results

On completion, the statistics cards update with the new counts and the run appears at the top of the Recent Runs table.
4

Fix any failures (optional)

If the Failed count is non-zero, click it to open a drill-down and use the Fix button to manually resolve unmatched streams.
Clicking Cancel during generation stops the run cleanly. The partial run appears in the history with a cancelled status.

Run history table

The Recent Runs table shows the history of EPG generation runs:
ColumnDescription
StatusCompleted, failed, cancelled, or running
TimeTimestamp when the run started
ProcessedNumber of teams and event groups processed
ProgrammesTotal programmes generated in this run
MatchedStreams successfully matched to real events
FailedStreams that could not be matched
ChannelsActive channels after this run completed
DurationHow long the generation took
SizeXMLTV output file size

Drilling into matched and failed counts

Click any Matched or Failed number to open a drill-down modal. The modal shows per-stream details grouped by event group — you can see exactly which stream matched which event, and which streams failed and why.

Fixing unmatched streams

The Failed drill-down includes a Fix button next to each unmatched stream. Clicking Fix opens the event matcher, where you can:
  1. Search for the correct real-world event by team name, league, or date
  2. Select the matching event from the results
  3. Save the association
Once saved, future generation runs will match that stream automatically without manual intervention.
Unmatched streams produce channels without EPG data. If your provider uses non-standard stream names, use the event matcher to fix high-value streams and consider configuring a custom regex extractor on the event group to prevent recurring failures.

XML preview

An expandable section below the statistics cards shows the raw XMLTV output. Use the search bar at the top of the preview to find specific channels or programmes by name. This is useful for verifying that your templates are producing the expected output and debugging formatting issues.

Scheduling

EPG generation runs automatically on a cron schedule configured in Settings > EPG. The default schedule is hourly. To change the schedule:
  1. Go to Settings > EPG
  2. Update the cron expression
  3. Save — the next scheduled run will use the new interval
You can always trigger an additional manual run using the Generate button regardless of the schedule.
If your IPTV provider refreshes streams frequently, set a shorter cron interval (every 30 minutes) to keep event group matches current. For team-based EPG, once or twice a day is usually sufficient since team schedules change slowly.

XMLTV URL

The XMLTV URL is the live endpoint for your EPG output:
http://<your-host>:9195/api/v1/epg/xmltv
Click the XMLTV URL button in the actions bar to copy it to your clipboard.

Using with Dispatcharr

Paste the XMLTV URL into Dispatcharr’s EPG source configuration. Dispatcharr will fetch the latest output on its own refresh cycle.

Using with media players

Most IPTV players that support XMLTV (Jellyfin, Emby, Plex, TiVo Stream 4K, etc.) accept a URL directly in their EPG or guide source settings. Paste the XMLTV URL there.

All-time statistics

Below the recent runs table, cumulative statistics across all generation runs provide a long-term view of your EPG output — total programmes ever generated, total matched streams, total failed streams, and total channels created.

Build docs developers (and LLMs) love