Made by aCiDjEsUs, a Hamtramck kid · EPGTalk.com · free
Why your mc2xml stopped working: the original mc2xml has an expiry date built in. When that date passes it simply refuses to run. That's why it died on Sept 25, and why an older copy from archive.org only worked for a while.
This is the replacement that runs all of EPGTalk every day. It's a drop-in swap:
-c -g -D -C -R -I -o -d -U -u -F -a and the rest.dat (lineup), .chl (channels to keep), .ren (renames)-I works, so several providers plus antenna locals go into one file| File | What it is |
|---|---|
mc2xml.py | The program itself (one file, plain Python). |
mc2xml.bat | Windows launcher. You run this instead of the old mc2xml.exe. |
mc2xml | Linux / Mac launcher. It has the same name as the old Linux program, so your scripts don't change. |
EPGTalk-Builder.pyw | NEW: EPGTalk Guide Builder — the same program in a window: no commands, no files to edit (see below). |
epgtalk-builder | Linux / Mac launcher for the Guide Builder window. |
GUIDE.html | This page. |
README.txt | The short version of this page. |
Everything on this page, with buttons instead of commands:
.dat / .chl / .ren come along (it works on copies, your originals are never changed).http://192.168.1.20:8765/guide.xml.gz. Only the guide is shared, nothing else.Windows: install Python (step 3a below), then just double-click EPGTalk-Builder.pyw.
Linux: install the window toolkit once, then start it:
sudo apt install python3-tk ./epgtalk-builder
Keep EPGTalk-Builder.pyw and mc2xml.py in the same folder. The builder keeps its settings, your providers and the log (builder.json, lineup1.dat…, builder.log) in that folder. You can use the window, the commands below, or both.
mc2xml-backup).
That way, whatever happens, you can always go back. The new program also keeps a copy of each old .dat file automatically, as name.dat.orig.
EPGTalk-Builder-Setup.exe and double-click it.Documents\EPGTalk Guide.Using mc2xml in your own batch files? The portable zip (EPGTalk-Builder-Windows-portable.zip) contains a new mc2xml.exe: copy it over your old mc2xml.exe and your batch files work exactly as before — no Python, no other changes.
Prefer running the Python files from this zip instead? Follow the steps below.
Win, type cmd, press Enter) and type:py --version
You should see something like Python 3.12.x. (The free “Python 3” app from the Microsoft Store works too.)
Copy mc2xml.py and mc2xml.bat into your mc2xml folder, the one with your .dat, .chl and .ren files. You can leave the old mc2xml.exe there; it just won't be used.
In Command Prompt, go to your mc2xml folder (replace the path with yours):
cd C:\mc2xml
Then run one of your usual commands with mc2xml.bat instead of mc2xml.exe. For example:
mc2xml.bat -c us -g 12345 -D mylineup.dat -C mylineup.chl -R mylineup.ren -d 24 -U -F -o test.xml
Use your own zip code and file names. When it finishes, you'll have test.xml (see step 4 for what you'll see).
In your own .bat files, change every mc2xml.exe to call mc2xml.bat. Everything after it stays exactly the same.
rem before: mc2xml.exe -c us -g 12345 -D provider1.dat -C provider1.chl -o one.xml rem after: call mc2xml.bat -c us -g 12345 -D provider1.dat -C provider1.chl -o one.xml
call. Without it, Windows runs the first mc2xml line and then quietly stops your batch file. That's the most common mistake.If you run your batch file from Task Scheduler, nothing else changes. Just make sure the task's “Start in” folder is your mc2xml folder.
epgtalk-builder_1.3.1_all.deb.EPGTalk Guide folder in your home folder.If double-clicking opens the wrong program: right-click the file → Open With → Software Install / App Center. Or in a terminal, in the download folder:
sudo apt install ./epgtalk-builder_1.3.1_all.deb
It also gives you the mc2xml command for scripts. To remove it later: sudo apt remove epgtalk-builder.
Prefer the files from this zip instead (or another Linux)? Follow the steps below.
python3 --version
If it says “command not found”, install it. On Ubuntu / Debian / Mint:
sudo apt install python3
(Fedora: sudo dnf install python3 · Mac: it's included, or get it from python.org.)
The new launcher has the same name as the old Linux program, so move the old one out of the way first. In your mc2xml folder:
cd ~/mc2xml mv mc2xml mc2xml.old
Now copy mc2xml and mc2xml.py from this package into that folder, and make the launcher runnable:
chmod +x mc2xml
./mc2xml -c us -g 12345 -D mylineup.dat -C mylineup.chl -R mylineup.ren -d 24 -U -F -o test.xml
Use your own zip code and file names. When it finishes, you'll have test.xml (see step 4 for what you'll see).
Nothing to change. Your scripts call ./mc2xml (or the full path) exactly as before, and cron keeps running them. The one thing to check: the script should cd into the mc2xml folder first (most do), because the launcher looks for mc2xml.py right next to itself.
Something like this (the names will be yours):
.dat was converted to the new format. The original is kept as .dat.orig.cache folder appears. It keeps downloads for 4 hours, so running again soon is quick and easy on the servers.For several providers plus your antenna / HDHomeRun locals: each run adds to the file before it with -I (“include”), and the last file has everything.
call mc2xml.bat -c us -g 12345 -D provider1.dat -C provider1.chl -R provider1.ren -U -F -o step1.xml call mc2xml.bat -c us -g 12345 -D provider2.dat -C provider2.chl -R provider2.ren -U -F -I step1.xml -o step2.xml call mc2xml.bat -c us -g 12345 -D provider3.dat -C provider3.chl -R provider3.ren -U -F -I step2.xml -o step3.xml call mc2xml.bat -c us -g 12345 -D antenna.dat -C antenna.chl -R antenna.ren -U -F -I step3.xml -o guide.xml
./mc2xml -c us -g 12345 -D provider1.dat -C provider1.chl -R provider1.ren -U -F -o step1.xml ./mc2xml -c us -g 12345 -D provider2.dat -C provider2.chl -R provider2.ren -U -F -I step1.xml -o step2.xml ./mc2xml -c us -g 12345 -D provider3.dat -C provider3.chl -R provider3.ren -U -F -I step2.xml -o step3.xml ./mc2xml -c us -g 12345 -D antenna.dat -C antenna.chl -R antenna.ren -U -F -I step3.xml -o guide.xml
--lineup and type the number. It's saved in the .dat file for next time:
mc2xml.bat -c us -g 12345 -D antenna.dat --lineup -o test.xml
./mc2xml instead of mc2xml.bat.)
| Option | What it does |
|---|---|
-c us | Country: us, ca, mx (more with Schedules Direct) |
-g 12345 | Zip / postal code |
-D file.dat | Which lineup (provider). Your old .dat files work. |
-C file.chl | Channels to keep: call signs or channel numbers, one per line |
-R file.ren | Renames: CALLSIGN:New Name, one per line |
-o file.xml | Output file |
-I file.xml | Merge an earlier file into this one (can be used more than once) |
-d 168 | How many hours of listings (168 = 7 days) |
-U | Write UTF-8 (recommended: accents and symbols come out right) |
-u | Times in UTC instead of local time |
-F | Channel name first (“FOX 2” rather than “2 FOX”) |
-a / -A | Add “ [NEW]” / “ [LIVE]” to titles |
-i 1000 | Add a number to every channel number |
-f | Ignore the cache and download fresh |
--lineup | Show the lineups for your zip and pick one again |
--network-names | Name channels by network (“NBC (WDIV)”, “Movies!”) instead of call sign (“WDIVDT”), unless you renamed them |
-J user:pass | Use a Schedules Direct account instead (paid; more countries). -J @file reads it from a file. With -J, -g is only needed to search for a lineup that isn't on your account yet. |
-h | Show all options |
-L, -1 and --movie-details are accepted so old command lines don't break, but they don't do anything.
Python isn't installed, or “Add python.exe to PATH” wasn't ticked. Run the Python installer again, choose Modify, and tick Add Python to environment variables. Then close and reopen Command Prompt.
Put call in front: call mc2xml.bat …. See step 3d.
Install Python (step 3a), and make the launcher runnable: chmod +x mc2xml. You can also always run it directly: python3 mc2xml.py …
The provider renamed or retired that lineup. Run the command once by hand with --lineup added, and pick the right one from the list. It's saved for next time. (It has to be run by hand once, because it asks you a question. After that, scheduled runs work.)
Schedules Direct only allows a few lineup adds/removes per day on an account. Lots of test runs with different lineups can use them up. Nothing is broken: wait about 24 hours and it resets.
This program helps you not hit it again:
.dat files are matched to the lineups already on your account first. That makes no changes and needs no zip code.--lineup), or after asking you “Add … to your Schedules Direct account? [y/N]”.Each line it prints tells you what happened: Found …: … on your Schedules Direct account means nothing was changed.
Just information: those channels in your .chl aren't in the lineup any more (renamed or dropped). Nothing breaks. You can remove them from the .chl, or look up their new call sign with --lineup.
Try adding -u (UTC times). Most players handle either, but some prefer UTC.
Add -U so the file is written as UTF-8.
Yes. Restore your backup folder from step 2. (Your old .dat files are also still there as .dat.orig: rename them back.)
-J, the public Gracenote TV listings (USA, Canada, Mexico), the same ones the old mc2xml used.
With -J, your Schedules Direct account. For personal use, please.