XmlTv TV listings updated daily for 11 days
Every night, I generate an XmlTV TV guide for around 300 French channels, and you can hook it up to your IPTV player, your set-top box or your script with a single URL.
XmlTV is the format that almost all applications use to display a programme guide (the EPG, the grid you see when you press the “Guide” button). The file is compressed in GZIP, it weighs about twenty MB, and it updates itself once a night. I focus on French channels. Other countries, frankly, I have neither the time nor the inclination.
What changes for free accounts
Right, let’s be serious for two minutes. Some people were creating several accounts to download the complete guide without ever contributing. I wasn’t born yesterday, so I’ve changed the rules of the game. It can be summed up in one picture: the days in green contain the real programmes.
And since many of you only want the TV guide, without my software, there is now a plan just for that: the XMLTV subscription at €3 per month or €25 per year.
Free account
€0, registration is all you need
- Today’s and tomorrow’s programmes, in full
- 2 downloads per day
- One free account per IP address per day
- The XmlTV API: 10 requests per day
XMLTV subscription
€3 per month or €25 per year, the guide and API only
- Complete listings for 11 days
- 24 downloads per day
- The version without accents for old decoders
- The XmlTV API: 300 requests per day
- My software is not included
PRO account
€12 per month, all my software included
- Complete listings for 11 days
- 1,000 downloads per day
- The version without accents for old decoders
- The XmlTV API: 1,000 requests per day
- All my software included
One detail that matters: the free file keeps the same channels and the same schedule throughout the whole period. From the third day onward, every time slot is still there, but its title is replaced by a reminder about the subscription and it no longer has a description. Your application does not crash, it just displays a guide that stops telling you anything after tomorrow.
The subscription, XMLTV or PRO, takes effect from the next download, without changing the URL or key. It renews automatically every month or every year, and you can stop it whenever you want from the subscription page: access remains open until the end of the paid period.
Retrieve the file
You need an API key, and it takes a minute: create an account, confirm your email address, then copy the key shown in your account. Then paste it into one of these URLs in place of VotreCleApi, without brackets or quotation marks.
| Format | URL | Who it's for |
|---|---|---|
| GZIP | https://digital3d.com/api/xmltv/VotreCleApi.xml.gz | Everyone. It's the lightest, use this one. |
| Raw XML | https://digital3d.com/api/xmltv/VotreCleApi.xml | Devices that require a URL ending in .xml. |
| Old URL | https://digital3d.com/api/xmltv?userId=VotreCleApi | Those who already use it. It still works. |
The first two are the simplest: no parameter, a real file extension, and they work in IPTV applications (iMPlayer, TiviMate and the rest) that reject redirects.
Does your decoder not support HTTPS? Replace https:// with http://, it works too. It's made for satellite receivers (Enigma2, Dreambox, Vu+).
Once downloaded, the .gz can be opened with 7-Zip if you want to look inside.
The options
There are two settings, to add at the end of the URL.
Without accents, for old decoders that display hieroglyphics instead of “é”. This variant is reserved for subscribers (XMLTV or PRO), the free file only exists in one version:
https://digital3d.com/api/xmltv/VotreCleApi.xml.gz?noAccent=trueUncompressed, on the old URL only (on the new ones, the extension decides):
https://digital3d.com/api/xmltv?userId=VotreCleApi&noCompressed=trueWould you rather click? The page https://digital3d.com/XmlTv?Id=VotreCleApi starts the download from a browser.
If you receive a weird file
The service never replies with an error page, it always sends XML, so it doesn't crash the applications. Two cases to know about.
You receive TooManyDownload.xml: the daily limit has been reached, either your 2 downloads, or another free account has already downloaded from the same IP address. The counter resets at midnight UTC, so at 1 a.m. or 2 a.m. in France depending on the season.
You receive error.xml: the key isn't recognized. Check that it is complete and that your account has been validated.
And there's no point downloading ten times a day: the file only changes once per night.
On an Enigma2 decoder (Dreambox, Vu+)
The guide can load itself every day on your box.
- Install the CrossEPG plugin.
- Download my configuration file.
- Open it in a text editor and put your key in this line, making sure to keep
http://:epg_url_0=http://digital3d.com/api/xmltv/VotreCleApi.xml.gz - Copy the file to the box, into
/usr/crossepg/providers. - On the box: Settings, System, EPG, CrossEPG. Choose "XmlTV Providers", then "France - Digital3d.com", save and launch "Download Now".
For geeks: the XmlTV API
Downloading 20 MB to find out what's on TF1 tonight is a bit like taking the truck out to get bread. This is where it gets really interesting: I have an XmlTV API that responds in JSON, with the same key as the file.
The list of channels is open to everyone, with no key:
curl https://xmltv.digital3d.com/api/GetChannelIdsAnd the programs for a channel, with your key in the header:
curl -H "Authorization: Bearer VotreCleApi" "https://xmltv.digital3d.com/api/GetTvPrograms?channelId=TF1.fr"You can also find what's on right now, search by title, the highest-rated programs and an entry point for checking your quota. Everything is documented in Swagger, you can test it from the page.
As for the quota, it's the same logic as for the file. The green bar shows what you can request in one day.
Free API
€0, your account key is enough
- 10 requests per day
- All entry points, the same data as PRO
- The list of channels and categories doesn't count
- Enough to hack together a dashboard or a home automation system
XMLTV subscription API
€3 per month or €25 per year, the guide and API only
- 300 requests per day
- Enough to power a smart home or a small personal site
- The complete file for 11 days thrown in
- Active from the next request, with the same key
API PRO
Included in the same €12 per month subscription
- 1000 requests per day
- Enough for a real application or a website
- The complete file for 11 days thrown in
- Active from the next request, with the same key
The TV guide in your AI assistant
Now this was fun. Asking your assistant “what's on France 2 tonight?” and getting the real answer, with the real times, is now possible. I connected the API to an MCP server (Model Context Protocol, the standard plug that lets an assistant fetch data from somewhere other than its memory).
The assistant gets seven tools: the list of channels, the categories, what's on right now, a channel's schedule day by day, a search by title or actor, the highest-rated programs and your quota. Everything is read-only, it can't break anything at your place or mine.
In every case you need the same thing: the API key from your My account page, the one that's already used for the file. Then, go straight to the section for your tool.
With Claude Code
This is the simplest. Two lines to type in Claude Code:
/plugin marketplace add digital3d/xmltv-mcp
/plugin install xmltv@digital3dIt asks for your key, stores it in its vault, and that's it. Nothing else to install.
I tried it on a Sunday evening by asking it what was playing on TF1. It gave me the complete evening in a little table: the news at 20:00, the weather, “Aquaman and the Lost Kingdom” at 21:10 with its IMDb rating (5.6 out of 10, I'll let you be the judge), then “Fast & Furious X” until 1:50. And at the bottom, my remaining quota. Honestly, it makes quite an impression.
Don't want a plugin? The server can also be connected with a single command:
claude mcp add --transport http xmltv https://xmltv.digital3d.com/mcp --header "Authorization: Bearer VotreCleApi"With Claude Desktop
For Claude Desktop, I prepared an extension: an .mcpb file to download from the releases page, one for Windows, one for Apple silicon Macs. You open it, enter your key in the form, done. No need for .NET or a terminal, everything is in the file. I installed it at home right away, and the TV guide responds in Claude Desktop just as it does in Claude Code.
With Codex
MCP is an open standard, so it doesn't stop at Claude. Codex, OpenAI's programming assistant, reads its servers from its ~/.codex/config.toml file. Add these three lines to it:
[mcp_servers.xmltv]
url = "https://xmltv.digital3d.com/mcp"
bearer_token_env_var = "XMLTV_API_KEY"Then put your key in the XMLTV_API_KEY environment variable before launching Codex. I asked it what was on TF1 and how much quota I had left: it called both tools and replied to me, “Grands reportages, ongoing until 4:10 p.m.”
With OpenAI's API
For developers who call OpenAI's API from their own program, the server is declared as a tool, with the key in the header:
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4-mini",
"tools": [{
"type": "mcp",
"server_label": "xmltv",
"server_url": "https://xmltv.digital3d.com/mcp",
"headers": { "Authorization": "Bearer VotreCleApi" },
"require_approval": "never"
}],
"input": "Qu'est-ce qui passe en ce moment sur TF1 ?"
}'The model finds all seven tools by itself and queries the guide. Be careful not to confuse the two keys: OpenAI's authorizes the call to the model, mine opens the TV guide.
With ChatGPT
Here, it's more limited, and let's be clear about that. The ChatGPT application knows how to add an MCP server (on its plugins page, “Add custom MCP server” button), but it can't send a personal key: OpenAI only provides OAuth connection there, or no connection at all. I tried it by choosing “No authentication”: ChatGPT does call my server and gets the list of channels and categories, but as soon as you ask it for TF1's schedule, it replies that it's missing the key, without having anywhere to put it. For programs in an OpenAI tool, go through Codex or the API, just above.
On your machine, with any other client
Any MCP client that knows how to send an HTTP header can use the address https://xmltv.digital3d.com/mcp with Authorization: Bearer VotreCleApi. And if you have the .NET 10 SDK, the server runs on your machine too. The NuGet package downloads automatically on the first launch, with this block in your client's configuration:
{
"mcpServers": {
"xmltv": {
"command": "dotnet",
"args": ["dnx", "XmltvDigital3d.Mcp", "--yes"],
"env": { "XMLTV_API_KEY": "VotreCleApi" }
}
}
}
Are you on Linux and don't want to install .NET? Claude Desktop doesn't exist for Linux, so there's no extension on that side, but the releases page also offers an archive xmltv-mcp-1.0.10-linux-x64.tar.gz: a single executable that includes everything it needs. You extract it with tar -xzf, then in the block above you put the path to the xmltv-mcp file in "command" instead of dotnet, and remove the args line.
This local version has a small advantage: it keeps the answers in memory for a few minutes, so asking the same question twice only costs one request.
How many questions per day?
Nothing new, it's the API counter: 10 requests per day for free, and the channel and category lists don't count. A question generally costs one request. When you only have two left, the assistant warns you. If ten aren't enough, the XMLTV subscription goes up to 300 starting with the next request, without waiting for midnight. The complete instructions are on GitHub, and for a question or a problem, write to me.
Just watching the schedule
You don't have anything to connect and you only want to know what to watch? I made a little site for that: tv.digital3d.com. The French channels' schedule in the browser, on your phone as well as on your computer, and nothing to install.
Why a subscription?
Because all this runs on a server that I pay for. Between hosting, bandwidth and maintenance (the sources change, things need fixing), the service costs me about €1,200 per year, not counting the evenings spent on it.
Let's be clear about what you pay for: not the programs themselves. They come from third-party public sources, they belong to their publishers and I don't sell them. The subscription is a contribution to the server costs and to the work of putting everything together and maintaining it, with expanded access in return.
The free option remains there for testing and light use. If the guide is useful to you every day, you have two plans:
- The XMLTV subscription at €3 per month or €25 per year: the complete guide for 11 days and the API, nothing else.
- The PRO subscription at €12 per month: the same thing with higher limits, plus all my software.
In both cases, that's what keeps the service alive. Commercial use without a subscription isn't allowed.
Join the conversation
You need an account to comment on this article. Creating one is free and takes under a minute.
Un peu déçu de devoir payer un abonnement, même si je comprends très bien que le temps passé à entretenir cet EPG plus les frais d'hébergement représentent un coût non négligeable.
On s'habitue à un fichier de qualité gratuit. Le seul reproche que je peux faire, c'est – de ce que je peux lire entre les lignes – que ceux qui, comme moi (je pense), en faisaient un usage raisonnable avec deux téléchargements par semaine se font pénaliser par certains qui abusent (comme toujours).
Je l'ai pris pour un an, ensuite je verrai si je renouvelle.
Cette demi mauvaise nouvelle (je dis demi nouvelle car cela devait bien arriver un jour ou l'autre) ne retire en rien à la qualité du travail effectuée jusqu'à présent.
Merci en tout cas pour ton message, ta compréhension et surtout pour ton soutien. C’est vraiment apprécié.
Non je ne comprends pas ,Il passe aussi via Dormuz ou l'Ukraine ton fichier, pas sympa en tout cas.
D'autre viable existe, dommage, car tu étais sympa, mais vraiment pas cool du tout, je doute tu réussisses à avoir du fric pour cela.
Bonne continuation et santé malgré tout
@+
Bonjour,
J’aimerais vous annoncer un petit changement concernant le téléchargement du fichier XMLTV, dont vous êtes nombreux à profiter.
J’ai constaté que certaines personnes créaient plusieurs comptes afin de télécharger gratuitement le guide complet, sans jamais contribuer au service.
Comme je ne suis pas né de la dernière pluie 😉, j’ai donc décidé de limiter désormais l’accès gratuit à 2 jours de programmes.
Pour ceux qui souhaitent continuer à recevoir le fichier XMLTV complet sur 11 jours, un abonnement est disponible à partir de 3 € par mois ou 25 € par an. À vous de choisir la formule qui vous convient le mieux.
Cet abonnement comprend :
Les programmes complets sur 11 jours
Jusqu’à 24 téléchargements par jour
Une variante sans accents, compatible avec certains anciens décodeurs
L’accès à l’API XMLTV, avec jusqu’à 300 requêtes par jour
Attention : mes logiciels ne sont pas inclus dans cet abonnement. Ils restent disponibles séparément dans leur version PRO.
Merci de votre compréhension,
David