Smart TV programme guide grid used to match public-channel XMLTV IDs
Tips & Tricks 10 min read

EPG XMLTV IDs for SRF, ERT, VRT, SVT (2026): IBO, MAT, Duplex

Ava Kowalski

Ava Kowalski

Troubleshooting & Tech Tips

I already wrote the walkthrough for pasting an XMLTV URL, setting the offset, and forcing a refresh. That is the IPTV EPG setup complete guide. It does not fix the case I still get every week: the file loaded, the grid looks full, and SRF 1 or ERT1 is showing last night’s film.

The guide data is sitting on a different ID than the playlist row. Public channels are the worst offenders because the on-screen name keeps changing while old IDs stay in the file. This page is the ID and matching hub for four European public stacks. SRF in Switzerland, ERT in Greece, VRT in Belgium, and SVT in Sweden. Country posts can keep the ISP and player advice. Point the mapping work here.


TL;DR

  1. Use your provider’s XMLTV URL first. The file is already keyed to their playlist more often than a public grab is.
  2. The string that matters is the XMLTV channel id, not the pretty name. SRF1.ch and srf1.ch are not the same token in a picky player.
  3. Map the flagship channel in each stack first. SRF 1, ERT1, VRT 1, SVT1. Then map the siblings.
  4. IBO Player, MAT Player, and Duplex TV all auto-match by name. They all guess wrong on HD copies, +1 rows, and rebrands.
  5. If times are shifted by a clean hour, stop mapping and go back to the setup guide. That is a clock problem.

What an XMLTV ID actually is

An M3U row can carry a tvg-id. The XMLTV file has a <channel id="...">. The player binds those two strings. Display names, logos, and group titles are decoration.

When the bind works, the guide on SRF 1 is Tagesschau at 19:30 in Zurich. When it fails, you get a full-looking grid attached to the wrong row, or a polite “No information” on the one channel you actually watch.

Three ID families show up in European playlists:

  • iptv-org style. Title case plus a country suffix. SRF1.ch, ERT1.gr, VRT1.be, SVT1.se. The public iptv-org/epg project is the cleanest published list of those tokens. The Greece guide already points at that repo for ERT scrapers.
  • Lowercase copies. Same token, folded down. srf1.ch, ert1.gr. Our country posts already scatter these because that is what most provider files use.
  • Legacy brand names. een.be after VRT 1 stopped calling itself Één. canvas.be after Canvas became VRT Canvas. rtsun.ch next to RTS1.ch.

If you only remember one rule: search the XMLTV file for the id, not for the name you see on the remote.


Start with the provider URL, then check the file

Most lines ship an EPG URL that looks like /xmltv.php or /epg.xml on the same host as the playlist. Ask for that link before you hunt a public file. A provider URL is not a partnership and it is not guaranteed to be complete. It is simply the feed already keyed to their channel list.

Open the downloaded XML and search for srf1, ert1, vrt1, or svt1. If the id is in the file and the playlist row is empty, matching is the job. If the id is missing, no amount of manual mapping in IBO, MAT, or Duplex will invent a schedule.

A public grab such as iptv-org is useful when the provider file covers movies and sports and skips the public channels. Use it as a second source, then map by id. Do not paste it and hope the names line up.


Switzerland: SRF

The Switzerland IPTV guide already lists the lowercase IDs Swiss playlists tend to use. Here they sit next to the iptv-org forms, because that mismatch is why SRF 1 stays blank after a “successful” refresh.

Channeliptv-org IDCommon playlist alias
SRF 1SRF1.chsrf1.ch
SRF zweiSRFzwei.chsrfzwei.ch
SRF infoSRFinfo.chsrfinfo.ch
SRF Sportno stable iptv-org idsrfsport.ch

SRF Sport is a label on playlists more than a separate public channel in iptv-org. Search the file for srfsport and, if it is missing, bind the row to SRF zwei rather than inventing an id.

Swiss households also keep RTS and RSI in the same favourites list. Those IDs wander more than SRF.

Channeliptv-org IDCommon playlist alias
RTS UnRTS1.chrtsun.ch
RTS DeuxRTS2.chrtsdeux.ch
RSI LA 1RSILa1.chrsila1.ch
RSI LA 2RSILa2.chrsila2.ch

Map SRF 1 first and check Tagesschau. If that row is right and SRF zwei is still empty, you have a sibling-id problem, not a broken EPG URL. IBO Player’s manual map is the least painful way to bind srf1.ch when auto-match grabbed “SRF 1 HD Backup”.


Greece: ERT

Nina already published the Greek table in the Greece IPTV guide. The ids below are the same ones, plus the iptv-org TitleCase form, so you can match either file.

Channeliptv-org IDCommon playlist alias
ERT1ERT1.grert1.gr
ERT2ERT2.grert2.gr
ERT3ERT3.grert3.gr
ERTSports 1ERTSports1.grertsports1.gr
ERT NewsERTNews.grertnews.gr

ERT1 is the row to prove first. If that guide is Greek and on Athens time, the rest of ERT usually follows. Cosmote Sport is a different problem. Community files cover ERT more reliably than pay-sports, which is why a “Greek EPG” can look complete and still leave Saturday night empty.

Set the player to UTF-8 before you decide ERT titles are broken. Boxes in ΕΡΤ1 are encoding, not a bad id.


Belgium: VRT

Belgium is where name matching goes to die. VRT 1 used to be Één. Canvas is now VRT Canvas. Playlists still ship both names, plus a French RTBF group in the same file. The Belgium IPTV guide is the place for Proximus and Telenet. The ids live here.

Channeliptv-org IDCommon playlist alias
VRT 1VRT1.bevrt1.be, een.be
VRT CanvasVRTCanvas.becanvas.be
KetnetKetnet.beketnet.be

The Family 4K Belgium post already warns that VRT often arrives as vrt1.be or canvas.be. Believe the file, not the current logo. If auto-match bound “VRT 1” to a Dutch regional clone or to a +1, Duplex TV will look fine in the grid and still be wrong on the programme title.

I do not treat RTBF as optional in a Belgian house, but it is a second stack. Map VRT 1, then Canvas, then go looking for La Une if the French group is empty. Do not let the player merge “VRT 1” and “La Une” because both say “1”.


Sweden: SVT

The Sweden IPTV guide tells you the guide should cover SVT1, SVT2, and SVT24. It does not list the ids. Here they are.

Channeliptv-org IDCommon playlist alias
SVT1SVT1.sesvt1.se
SVT2SVT2.sesvt2.se
SVT24SVT24.sesvt24.se
SVT BarnSVTBarn.sebarnkanalen.se, svtbarn.se
KunskapskanalenKunskapskanalen.sekunskapskanalen.se

Barnkanalen is the name people still type. The current channel is SVT Barn. If MAT Player matches “Barn” to a random kids row in a 8,000-channel Europe file, you will get the wrong language and the wrong clock. Bind SVTBarn.se or barnkanalen.se by hand and leave the rest of the kids group alone.

Prove SVT1 against a news slot you can check without guessing. Then SVT2. TV4 is commercial and uses a different family of ids. Do not steal an SVT row to fill it.


How IBO, MAT, and Duplex bind these IDs

None of these apps want you to edit XML by hand. They all offer auto-match, then a manual override. Use the override on public channels. Auto-match is fine for a movie pack with unique names. It is sloppy on “SRF 1”, “SRF 1 HD”, and “SRF 1 FHD”.

IBO Player

Open the playlist you actually watch, then the EPG or channel-mapping screen. IBO Player will try names first. When it misses, search the loaded XMLTV for the id in the tables above and attach it to that row.

Two IBO habits that save time:

  • Confirm you are editing the EPG for the correct playlist. A Swiss line and a “Europe” line in the same app do not share maps.
  • Map SRF 1, ERT1, VRT 1, or SVT1, refresh once, then do the siblings. A full auto-rematch after that will undo the work.

IBO Player is the app I still use when the same household wants one map on Android TV and a phone. The mapping UI is not pretty. It is predictable.

MAT Player

MAT Player’s auto-match is better than IBO’s on tidy European lists. It still loses on rebrands. VRT 1 versus Één, SVT Barn versus Barnkanalen, RTS Un versus RTS 1.

If the guide is dense and only the public rows are empty, skip another full refresh. Open channel matching, paste the id, save. MAT caches hard, so trigger one manual EPG update after the bind or you will think the id was wrong.

MAT is the nicer grid once the ids are right. It is not a reason to skip the id check.

Duplex TV

Duplex TV is the picky one. Duplicate groups, Dutch and French copies of the same public brand, and leftover “HD” rows all compete for one XMLTV id. The Duplex TV Belgium setup already treats VRT mapping as part of first-run setup. That habit belongs on SRF, ERT, and SVT too.

Before you map:

  • Delete or hide the backup and +1 copies you do not watch.
  • Keep Flemish VRT and French RTBF in separate groups.
  • Bind one id to one visible row.

If the guide exists and the titles are from the wrong language community, rematch. Do not add a second XMLTV URL on top and hope the app picks the right one.


A short matching order that actually works

  1. Confirm the XMLTV file contains the flagship id. Search, do not scroll.
  2. Bind that one row in the player. Refresh.
  3. Check a programme you can verify from another source. News is easier than a film title.
  4. Bind the siblings in the same stack.
  5. Only then touch sports or commercial rows.

If the whole grid is blank, you do not have an ID problem yet. Go to the EPG setup complete guide and fix the URL, the refresh, and the time zone. Come back here when the file is loaded and four public channels are still empty.


Ava Kowalski

Ava Kowalski

Troubleshooting & Tech Tips

Ava specializes in fixing IPTV issues and writing advanced configuration guides. When your stream is buffering or your EPG is broken, her troubleshooting articles have the answers.

@avakowalski

Related Articles