Check XMLTV when programme information is missing
Video playback and programme-guide information come from different parts of a streaming setup. A channel may play normally while its title, current programme or schedule is missing. This XMLTV checker helps you examine the guide file itself. It counts channel definitions and programmes, identifies duplicate or missing identifiers, and evaluates supported timestamps. It works with the text you provide in the browser rather than attempting to connect to an external programme-guide service.
This is a focused diagnostic tool, not a complete XMLTV certification service. It does not validate every possible element against the entire document type definition and cannot verify what a broadcaster actually transmitted. A quiet report does not establish that the guide is current, complete or compatible with every application. It provides specific observations that help you decide what to inspect next, without presenting unmeasured behaviour as a successful test.
Load a file and read the first results
Open a local XML file or paste the complete XMLTV text. A URL alone is not sufficient because the checker does not fetch remote addresses. If your source supplies a compressed file, decompress it on your device first. The interface accepts uncompressed text up to two MiB. Use the built-in sample if you want to learn the workflow before opening a real guide. The sample contains one fictional channel and one programme with an explicit numeric timezone.
After analysis, start with the programme count. Channel definitions without programme entries can describe channel names and icons, but they do not provide a schedule. Conversely, an XMLTV file can include programmes without declaring every channel separately. Programmes referring to undeclared channels are therefore reported as an advisory observation rather than automatically treated as malformed XML. This distinction prevents an optional part of the format from becoming a false error.
Next inspect the individual issue counters. Duplicate identifiers, missing titles and a stop time before a start time provide different clues. A missing optional stop time is not the same thing as an invalid timestamp. A permitted timestamp format that this tool does not evaluate is different again. Read these categories separately before editing the file, so that an unusual but legitimate representation is not mistaken for corrupted data.
Channel identifiers connect the information
The displayed channel name is intended for people. The identifier connects programme records to a channel. In a playlist, a tvg-id may need to match the identifier expected by the programme-guide source or by the player's mapping rules. Two names that look almost identical do not prove that the identifiers agree. When one channel has no guide, compare the actual identifiers instead of assuming that a similar logo or name must be enough.
This tool compares programme channel attributes with channel definitions inside the same XML document. It does not simultaneously compare your M3U playlist with your XMLTV file. The undeclared-channel counter therefore describes the internal guide structure only. To investigate a playlist-to-guide mismatch, examine the playlist metadata as well. The existing M3U validator can help you inspect that side of the configuration, while your player may offer a separate manual mapping option.
Several display names inside one channel definition can be legitimate, for example when names are supplied in different languages. That is not the same as separate channel elements sharing one identifier. The checker counts repeated channel identifiers. If you merged multiple guide sources, review whether you imported the same channels twice or whether different sources happen to reuse a key for different stations. Resolving that conflict requires understanding the sources, not merely deleting a random repeated record.
Supported timestamps and timezone handling
For chronological comparisons, the checker evaluates complete dates containing year, month, day, hour and minute, with optional seconds. Numeric timezone offsets such as +0200 and -0500 are supported. The values are converted to UTC before comparing a programme's start and stop. This avoids treating two different numeric offsets as though their written local clock values were directly comparable. What matters is the represented instant after the offset is applied.
The XMLTV specification assumes UTC when a timezone is omitted. The checker counts such start values separately but does not automatically call them invalid. This matters because treating every timestamp without an offset as device-local time would introduce an incorrect assumption. If a source accidentally writes local time without its offset, or a player interprets it differently, the visible guide may still be shifted. Investigate the source and application behaviour before adding a compensating adjustment.
XMLTV also permits reduced date precision and named timezones. This small browser tool does not fully evaluate those representations and reports them as unassessed. That is a coverage limit, not a format error. Invalid calendar values within the supported complete format are counted separately. A programme with an end that is not later than its start is flagged too. Missing stop values remain a separate observation because stop is optional in XMLTV.
Interpret the latest assessed stop time carefully
The report shows the latest successfully assessed stop time in UTC. It gives you a quick indication of the furthest timestamp found, but does not establish that every channel has a complete guide up to that point. One future programme can determine the maximum while another channel's schedule ends much earlier. Check the channels important to you in the player instead of treating a single maximum as a guarantee of overall coverage.
The same limitation applies to freshness. A recently downloaded file can contain gaps, and an old file can still include a few future events. Regional versions and time-shifted channels may also have different schedules. For a meaningful check, choose one known channel and programme time, then compare the source and your application. A concrete example is more useful than a large aggregate count of programmes that may not belong to the channel you are troubleshooting.
Common import messages and what to do next
A message about malformed XMLTV means that the XML parser could not read the expected document or that its root element was not tv. The input may be an HTML login page, a server error, compressed bytes, or truncated text. An unescaped ampersand inside XML content can also break parsing. Inspect the beginning of the actual file and its origin before removing characters at random. A filename ending in XML is not proof of valid contents.
Missing titles are programmes without a nonempty title element. A description does not necessarily substitute for a proper title. Missing channel identifiers can prevent reliable association even if the visible name looks correct. The report uses aggregate counters rather than inserting thousands of raw records into the page. This keeps the interface usable on a phone, but it is not an automatic repair system. It will not invent titles or identifiers and write guessed information back to your file.
A conventional external tv DTD declaration is removed before local parsing, without requesting the referenced document. Internal DTD subsets and custom entity declarations are not processed. This is a deliberately restricted import path, not a claim that every XML document using such features is inherently invalid. Use an appropriate XML validation tool if you need full DTD validation for a complex source. The browser checker is intended to help with common, inspectable guide problems.
Move from a file diagnosis to a working guide
If the document can be read and contains programmes, inspect the guide source selected in your player. Does the selected channel match the expected identifier? Has the application refreshed the guide or is it showing an older cached version? Is there a global time adjustment as well as a per-playlist adjustment? Record the existing settings before changing several things at once. Otherwise you may lose track of which change actually affected the result.
For a consistent time shift, use a known programme as your reference. Compare the source timestamp, its UTC offset and the device or application setting. Correct the place where the mismatch arises rather than adding several overlapping offsets. A manual compensation may appear to work temporarily and then become wrong when seasonal clock changes occur. This tool does not change your application settings or rewrite timestamps; it gives you information for a more deliberate decision.
Frequently asked questions
### Is my programme guide uploaded? No. The analysis runs in the loaded browser page. It does not fetch guide URLs, channel logos or external DTD files, and it does not save the input to an account or local browser storage. Files already stored on your device remain there. The clear button removes the current input and displayed result, not other copies.
Does the checker detect schedule gaps and overlaps?
It compares start and stop within each programme. It does not calculate complete gaps or overlaps between all programmes on a channel. A clean timestamp counter therefore does not establish an uninterrupted daily schedule. Review the relevant channel timeline in your player or a specialised schedule-analysis tool when continuity is the actual question.
Can I use the sample as my real EPG?
No. The sample is intentionally fictional. It shows how a channel definition, a programme and a numeric timezone produce the reported counters. Your actual setup needs the guide source appropriate to your access and playlist. The sample is a demonstration, not a source of live television listings.
Continue your setup
Find a suitable IPTV player → · M3U Validator
Technical references: XMLTV format · XMLTV DTD
