Setting up the programme guide (EPG)
A programme guide turns a wall of channel names into television you can plan around — what is on now, what is next, what starts at nine. The data behind it is XMLTV, a separate file from your channel list, and almost every guide problem comes from the two not lining up.
Find out where your guide data lives
If you connect over Xtream Codes, the guide usually arrives automatically — the server carries it. If you use a plain M3U playlist, you generally need a second link, an XMLTV URL, which your provider lists separately. It often ends in .xml or .xml.gz.
Add the XMLTV link
In Tivsy, open the source and add the guide URL beneath it. Compressed files are handled without unpacking them yourself. The first download can be large — a full week for a thousand channels is a lot of text — so do it on Wi-Fi.
Let the channels match up
Guide data identifies channels by an id, not by name, and the player pairs each channel to its listings using the tvg-id in your playlist. When those ids are right, the guide fills in by itself. When a provider leaves them out, some channels stay blank however good the data is.
Check the clock, not the data
If every programme is right but an hour or two out, the guide is fine and the time zone is not. XMLTV timestamps carry an offset; a file built for one country and read in another lands shifted. Correct the offset for the source rather than searching for a different guide.
How a channel is joined to its listings
Two signals, in order of trust. First, the channel's own tvg-id: if the guide file declares a channel with that id, it is believed straight away. If there is no id, or the guide has never heard of it, the cleaned-up channel name is compared against every name the guide declares for its channels. If neither works, the row is left empty on purpose. A guide showing the wrong channel's programmes is worse than a blank one, because you would believe it.
Why "BBC One FHD" still finds its programmes
Because the name is cleaned before it is compared. Quality and duplication tags are stripped — 4K, UHD, FHD, HD, SD, 1080p, VIP, PLUS, BACKUP, ALT and the rest — along with accents, capitals and punctuation. So "BBC One FHD", "bbc one hd" and "BBC ONE" all reduce to the same key, and one guide entry can serve every quality variant your provider lists. It is also why two channels that differ only by a tag share the same listings, which is correct.
The guide refreshes on a schedule, not every time you open the app
XMLTV files are large — often tens of megabytes — and providers regenerate them a few times a day at most. So the guide is only re-downloaded when it is more than six hours old, and the request asks for a compressed copy. Opening the app twenty times in an evening downloads nothing. Each playlist keeps its own guide address, so if you have two subscriptions, each can point at the file its own provider publishes.
Common questions
Why is my EPG empty?
Either no guide source is attached, or the guide has no entries for your channels' ids. Open a major channel first: those are the best-labelled, so if the guide works anywhere it works there.
Why do only some channels show programmes?
Because the guide covers those and not the rest, or the missing ones have no tvg-id in the playlist. This is a property of the data you were given, not of the player.
Everything is shifted by exactly one hour. What is wrong?
A time zone mismatch, usually daylight saving. The listings are correct; the offset used to read them is not.
How often does the guide refresh?
Tivsy refreshes in the background and on demand. Providers typically publish a few days ahead and update daily, so a guide that ends after tomorrow is a limit of the source.
Some channels have listings and others that look identical do not.
Then both signals failed for those channels: their tvg-id is missing or is not one your XMLTV file declares, and their name after cleaning does not equal any name in it. That is a mismatch between two files, not a fault in either. The reliable fix is at the source — a guide published by the same provider as the playlist almost always matches, because both are generated from the same channel table.
Can I use more than one guide file?
Yes, one per playlist. The guide address belongs to the playlist rather than to the app, so a subscription can be pointed at its own provider's XMLTV while a second subscription uses a different one. A channel is only ever matched against the guide belonging to its own playlist, which is what stops two providers' listings bleeding into each other.
A guide that fills in correctly but plays badly is a different problem — that one is about connection and format.