Channel ids

Normalized tvg-ids

Players match a guide row to a playlist channel by id. In XMLTV that id is the channel id. In an M3U playlist the same string is tvg-id. When those two strings differ, the guide stays empty even though the channel name looks right.

A stable id

FAST exports often ship a private token that changes between pulls. A name-shaped id stays put, so a playlist can keep it:

CBC.News.Explore.CA.plex.ca

Read it as the channel name, then the source suffix. Spaces and hyphens in the name become dots. .plex.ca is the Plex Canada pack, the same suffix as /epg.php?source=.plex.ca. A US Plex channel ends in .plex.us. Pluto US ends in .pluto.us.

Why matching fails

  • A hash or platform token in the guide never equals the tvg-id in your playlist, and the next export may use a new token.
  • Display names drift: “CBC News Explore” and “CBC News Explore CA” do not match when the player falls back to names.
  • Two packs can share a channel name. The suffix (.plex.ca versus .pluto.ca) keeps those rows apart.

Put the normalized id on the playlist channel as tvg-id, and leave the player on id matching. Setup steps are on Add the EPG.

What is rewritten

Where an upstream id is already a readable tvg-id, epg.monster keeps it. epgshare01 packs are in that group. Where the id is an internal code, the published guide offers the dotted name form instead.

The listings still come from the upstream projects, including i.mjh.nz and epgshare01. Normalization only changes the identifier used for matching.

Look up an id

The public diff on this site searches channel names and shows the original id next to the normalized one. It runs in the browser.