XMLTV Generator
HTTP service for generating XMLTV/EPG files. Ideal for testing EPG parsers, IPTV apps, and populating demo environments.
Health check
Returns HTTP 200 with body OK. Also shown live in the topbar.
curlcurl http://{host}:{port}/health_check
Get XMLTV file (v2) current
Recommended endpoint. Supports season/episode metadata and per-programme EPG overrides.
curlcurl "http://{host}:{port}/get_xml_tv_ver_2?tv_count=1&programme_count=10&minute=60&gmt_time=3"
defaultscurl "http://{host}:{port}/get_xml_tv_ver_2"
anchor_time fixes the start of the central programme and therefore every programme boundary. Use it to test timezone conversion, past/current/future state, catch-up and archive windows.
seed fixes catalog selection, ratings, censorship, random blackouts, IDs and other generated metadata. Use it to reproduce parser and import failures. Set both fields for byte-identical XML and programme editing.
Catalog mode uses a local deterministic snapshot of real TV and episode metadata from TVmaze under CC BY-SA.
| Parameter | Description | Default |
|---|---|---|
tv_count | Number of channels | 1 |
programme_count | Slots in past & future from now | 10 |
minute | Programme duration (minutes) | 60 |
gmt_time | Timezone offset (hours) | 3 |
anchor_time | Fixed start of the central programme; ISO date-time | current time |
seed | Stabilizes generated metadata, blackout positions and programme IDs | random |
ch_id_start | First channel id | 69 |
programme_title | Title template; ignored in catalog mode | Programme |
programme_desc | Description template; ignored in catalog mode | Description |
icon_link | Programme icon URL | http://default.icon/link |
content_mode | template or deterministic real TV/episode catalog content | template |
country | Optional country override for every programme | Ukraine |
age_rating | Optional MPAA override for every programme | generated |
star_rating | Optional 0–10 rating override for every programme | generated |
episodes_per_season | Episodes per season | — |
seasons_count | Total seasons | — |
start_season | Starting season | 1 |
start_episode | Starting episode | 1 |
insert_every | Insert episode-num every N programmes | 3 |
mode | Format: season_episode, season, episode | off |
censored_multiplier | Amplifier for censored probability (0 disables). Base rates: G=0%, PG=1%, PG-13=3%, R=7%, NC-17=15%. | 1.0 |
blackout_mode | random or manual timeline ranges | random |
blackout_windows | Number of blackout windows per channel | 1 |
blackout_window_size | Blackout window length in programme slots | 3 |
blackout_ranges | Inclusive shared default ranges, for example 3-5,10-12 | — |
blackout_channel_ranges | JSON per-channel range overrides; missing channels inherit the shared default | — |
ov | Constructor-managed JSON overrides keyed by channel_id:slot | — |
Generated XMLTV fields read-only defaults
These fields are emitted automatically. The table documents whether each value is fixed, derived from URL parameters, seeded, or conditional.
| XML field | Source | Default / algorithm | Status |
|---|---|---|---|
| Loading field catalog… | |||
Get XMLTV file (v1) deprecated
Kept for backward compatibility. New clients should use v2.
curlcurl "http://{host}:{port}/get_xml_tv?tv_count=1&programme_count=10&minute=60&gmt_time=+0300"
defaultscurl "http://{host}:{port}/get_xml_tv"
| Parameter | Description | Default |
|---|---|---|
tv_count | Number of channels | 1 |
programme_count | Past & future programme slots | 10 |
minute | Programme duration (minutes) | 60 |
gmt_time | Timezone offset string | +0300 |
ch_id_start | First channel id | 69 |
programme_title | Title template | "Programme title text" |
programme_desc | Description template | "Programme desc text" |
icon_link | Programme icon URL | simplware demo logo |