XMLTV Generator› Manual

Manual

Practical workflows for creating, reproducing, and sharing EPG data.

Create your first schedule

Open the Constructor, choose the channel and programme counts, then use Preview XML to inspect the result. The central programme represents the current slot; past and future counts can be overridden independently.

When the preview is correct, copy the generator URL, open the XML response, or download it as a file.

Programme images can use the built-in pool, one custom URL, or be omitted entirely. To test irregular schedules, edit a preview row and set its duration or the empty gap before the next programme.

Reproduce the same EPG

Set anchor time to fix programme boundaries and seed to stabilize titles, catalog entries, ratings, censorship, blackouts, programme IDs, and other generated metadata. Using both produces byte-identical XML for the same configuration.

Both values are also required before individual programmes can be edited in preview. Those edits are stored as stable URL overrides.

Choose the content source

Custom text mode repeats your title and description templates. Realistic catalog mode uses a local, deterministic TVmaze-derived snapshot with real series and episode metadata. Seed catalog mode when a test must be reproducible.

Use short URLs recommended for Ministra

Ministra may truncate long epg_source values. Save the Constructor configuration as a permanent /g/{opaque-id} URL instead. The public short URL generates XML without authentication.

Sign in through the short-lived Admin session to create or update a preset. Use Presets for search, revision history, rollback, and deletion. Import a short URL into the Constructor to edit the linked preset or use it as a detached template.

Migrate a legacy v1 URL

Paste an existing /get_xml_tv URL into Import from URL. The Constructor converts supported values to the v2 format and reports parameters that need attention. Review the generated URL before replacing the legacy source.

Integrate without the Constructor

Call the current endpoint directly when building automated tests:

curlcurl "http://{host}:{port}/xmltv?tv_count=1&programme_count=10&minute=60&gmt_time=3"

Invalid parameters return HTTP 400 with a JSON error object. See the API Reference for the complete parameter, limit, and generated-field catalog.

Check service availability

Infrastructure liveness probes can call:

curlcurl http://{host}:{port}/health_check

A healthy service responds with HTTP 200, text/plain, and body OK.