IPTV tvg-id Not Matching: Why Channels Show No Guide, and How to Fix It

Short answer: a channel only gets guide data when the tvg-id in your playlist is character-for-character identical to a <channel id> in the XMLTV guide you've loaded. "Looks the same" isn't enough. A capital letter, an "HD" suffix, a missing .us or a stray space will all break it. The catch most people miss: IDs aren't universal. An ID written for one guide source means nothing to another, so if you swapped EPG URLs recently, that's probably your whole problem.

At a glance

Why a channel has no guide

The rule tvg-id must equal the XMLTV channel id exactly
Usual culprit Playlist and guide from different sources
Fastest check Search the guide file for the channel's name
Best fix Remap in the player, not in the playlist
Paid service app? Not your job: report it to them

What a match looks like

Two files are involved. The playlist (M3U) lists channels and where to stream them. The guide (XMLTV) lists channels and what's on them. They know nothing about each other. The only link is a shared text label.

In the playlist:

#EXTINF:-1 tvg-id="WNBC.us" tvg-name="NBC 4 New York" group-title="Locals",NBC 4 New York

In the guide:

<channel id="WNBC.us"><display-name>NBC 4 New York</display-name></channel>

Those two WNBC.us strings are the whole relationship. Every programme in the guide is tagged channel="WNBC.us", and the player shows them against whichever playlist entry carries the same tvg-id. Change one character on either side and the channel shows "No information" while the stream plays perfectly.

That's why a missing guide is almost never a broken stream, and why reinstalling the app rarely helps. How an M3U playlist is put together covers the other attributes on that line.

Eight ways a match fails

Most mismatches fall into one of these. Some are visible at a glance. Others you'll only catch by copying both strings into a text editor side by side.

Type Playlist says Guide says Fix
Different source cnn.us I58646.json.schedulesdirect.org Use the guide your playlist was built for, or remap
Case cnn.us CNN.us Enable case-insensitive matching, or edit
Suffix ESPN.HD.us ESPN.us Remap to the base channel
Missing country BBCOne BBCOne.uk Remap
Feed or region HBO.us (West feed) HBO.us (East listings) Matches, but 3 hours wrong; pick the right feed
Invisible characters "FoxNews.us " FoxNews.us Remove the trailing space
Encoding A&E.us AandE.us Remap
Empty tvg-id tvg-id="" anything Name fallback, or remap

The first row is the big one. Different guide projects use completely different ID schemes. Community XMLTV projects tend toward Name.country style IDs, such as CNN.us. Schedules Direct, the paid North American listings service used by many DVR apps, uses its own numeric station IDs. Some public databases add a feed name after an @ sign to separate regional versions. A playlist written for one will match close to nothing in another.

So if your guide worked last month and today half the channels are blank, ask what changed. A new EPG URL, a provider who updated their playlist, or a player update that switched default sources are the usual answers.

Find the right ID in two minutes

You don't need special tools for this. You need both files open as text.

  1. Get the guide file. Paste your EPG URL into a desktop browser. If it ends in .gz, it'll download as a compressed file; open it with 7-Zip on Windows or by double-clicking on a Mac. Big guides can be 50MB or more, so use a proper editor (VS Code, Notepad++, BBEdit) rather than Notepad.
  2. Get the playlist line. Open the M3U URL the same way and search for the channel's name. Copy its tvg-id value exactly, including anything that looks like junk.
  3. Search the guide for that exact ID. Search for id=" plus the value. If it's found, the match should work and your problem is elsewhere: probably a stale cache or the guide not loading at all.
  4. If not found, search the guide for the channel's name instead. Search "NBC" or "4 New York", not the ID. You'll land on a <display-name>, and the <channel id="..."> just above it is the ID you actually need.
  5. Check it has programmes. Search for channel=" plus that ID. A channel entry with no programmes attached means the guide source lists it but doesn't carry data for it. No mapping will fix that; you need a different source for that channel.

Step 5 catches a lot of people. Free guide sources often list hundreds of channels they only have partial or stale data for. If the ID is right and the listings are still empty, the source is the problem. Our symptom-by-symptom EPG guide covers the "guide is blank everywhere" case, which is a different fault from this one.

How players decide what matches

Players don't all apply the same rules, which explains why a playlist can show a full guide in one app and gaps in another.

Kodi (PVR IPTV Simple Client) is the best documented. It tries three passes in order: the playlist's tvg-id against the guide's channel id; then the guide's display-name (with spaces turned into underscores) against the playlist's tvg-name; then against the channel name itself. There's an option to ignore case when comparing IDs. If yours is off and your IDs differ only in capitals, turning it on fixes them all at once.

TiviMate matches on tvg-id first and lets you override per channel. In current versions you can long-press a channel and choose its guide data from any loaded EPG source, which is the cleanest fix there is. Some of this sits behind TiviMate Premium; what Premium adds lists it.

OTT Navigator leans more on automatic name matching, so it can fill gaps that stricter players leave blank. The trade-off is occasional wrong matches, like a regional sports network picking up the national channel's listings.

Plex asks you to confirm the channel-to-guide mapping when you set up live TV from an M3U and XMLTV. You can revisit it under the DVR's channel settings and pick the right guide entry from a list. Plex with an M3U playlist walks through the setup.

Channels DVR lets you edit any channel and assign guide data from a search, independent of what the playlist says.

IPTV Smarters-style apps using an Xtream login usually take guide IDs straight from the provider's server and give you little control. If those don't match, there's not much to do on your side.

Fix it at the right layer

There are five places you can correct a mismatch. Pick the one that survives.

Where Good for Downside
Player remap (TiviMate, Plex, Channels) A handful of channels Lives on one device only
Player setting (case-insensitive, name fallback) Many channels with the same kind of mismatch Can produce wrong matches
Edited playlist file A playlist you own and host yourself Overwritten when the provider refreshes it
Guide tool (Dispatcharr, Threadfin, xTeVe-style) Large playlists, several devices Something else to run and maintain
The provider Anything wrong in a playlist they supply Depends on them answering

For most households: try the player setting first, remap the stragglers by hand, and stop there. Editing a provider's M3U and hosting your own copy works until they change a stream URL, and then your copy is stale and you're debugging two problems.

A self-hosted guide tool earns its keep once you have three or more TVs or a playlist with hundreds of channels. It holds the mapping once and serves a clean playlist and guide to every device. That's a weekend project, not a quick fix.

Why fixes vanish after a refresh

You remap thirty channels, and a week later they're blank again. Three common reasons.

The provider changed IDs. Playlists get regenerated. If they swap their ID scheme or rename channels, player-side remaps can point at nothing. Most players key manual remaps to the channel's name or stream ID, so a renamed channel loses its mapping.

The guide source changed IDs. Community guide projects tidy their IDs from time to time. Your mapping to FoxSports1.us fails if it becomes FS1.us.

You reinstalled or cleared data. Remaps are stored in the app's data. Clear it and they're gone. TiviMate's backup option, under Settings, saves them to a file. Use it after any big round of remapping.

Keep a small text note of your manual mappings: channel name, the ID you set, and the guide source. It turns a lost evening into ten minutes.

When it isn't yours to fix

If you're paying for a licensed live TV service and using its own app, you shouldn't be touching tvg-ids at all. YouTube TV, Sling, Fubo, DirecTV and the rest ship their own guides. A blank channel there is a fault for their support team, and they'll want the channel name, your device, and roughly when it started.

Where you supply your own guide is with a player app and a playlist you're entitled to: a provider that offers M3U access, your own HDHomeRun tuner, or a legitimate free channel list. That's where this article applies. If a "provider" hands you a playlist with no guide, no support and no company name, the missing guide is the least of the issues. The warning signs of an IPTV scam are worth a read.

When you do contact a provider about mismatches, make it easy to fix. Send the exact tvg-id from their playlist, the guide URL they told you to use, and the line from that guide where the channel appears under a different ID. A precise report gets fixed. "The guide doesn't work" gets a template reply.

Quick answers

What is tvg-id in IPTV? A label in each playlist line that tells the player which channel in the XMLTV guide holds its listings. It has to match the guide's channel id exactly.

Is tvg-id case sensitive? In most players, yes. Kodi's IPTV Simple Client has an option to ignore case; many other apps don't.

Why do some channels have a guide and others don't? The ones without a guide have a tvg-id that isn't in your guide file, or the guide lists the channel but carries no programmes for it.

Can I use any EPG URL with any playlist? Only if both use the same ID scheme. IDs from one guide project usually mean nothing in another.

What if tvg-id is empty? Some players fall back to matching by name. If yours doesn't, remap the channel by hand.

Why did my guide break after the playlist updated? The provider probably renamed channels or changed IDs, which breaks manual remaps tied to the old values.

Do licensed streaming apps need this? No. Services like YouTube TV and Sling provide their own guide. This only applies when you load a playlist and guide into a separate player.


Player menus and matching options change between versions. Guide ID formats depend on the source you use. Checked September 2026.