Archive and Changelog

26 September 2020; v1.4.10.10
[Fix] the configuration GUI would prompt to save changes on every close, and fail to execute a [Save & Execute] command (broken in

25 September 2020; v1.4.10.0
Fixed column sorting that I broke in last release and corrected a mispelling.

25 September 2020; v1.4.0.0 First and foremost, the EPG123 executable files and installer/uninstaller are now signed. Hopefully this will be the start of a better relationship between EPG123 and some AV/Firewall packages out there. The more EPG123 is installed starting from this version, the higher my reputation score will be and the less false malware detections there will be.

Secondly, for a little background, I had a user that was having problems with updates and the WMC database. Turns out the machine only had 3GB RAM and would run out of memory when EPG123 tried to save the compressed cache file. This is a corner case whereas there is small memory, a large number of stations and days to download, and no cached files so everything had to be downloaded on every update, and trying to compress all the downloaded files into the cache file. I did a lot of code changes to try and reduce the memory footprint of EPG123 but it didn’t reduce it as much as I wanted. EPG123 will now check to see how much physical RAM is available before saving the cache file. If the physical memory available is less than 1GB, then EPG123 will not compress the file.

Lastly, for this release and possibly all future releases, I do not have a portable version available. This is partly due to my automated scripts with code signing doesn’t lend itself to this, but also because I would prefer the setup file be used in order to properly get everything setup correctly with shortcuts, the tray notification tool, and whatnot.

Additional updates:

  • [new] XMLTV option to include program information in the first line of the description. This will include:
    • Year of release if a movie
    • [LIVE] | [PREMIERE] | [FINALE] | [NEW] | [REPEAT] tags if a series episode
    • Season/Episode numbers if the option to prefix/append the s/e numbers in the episode title and/or description is not selected
    • TV Rating
    • MPAA Rating
    • Reasons for ratings (advisories)
    • Star rating if a movie
    • Original air date for a series episode
  • [new] Ability to override the call sign and service name of a station by editing the epg123.cfg file
  • Minor updates/corrections

31 August 2020; v1.3.10.20
There has been a duplicated report that shows performing garbage cleanup while a recording is in progress could lead to a database corruption/recovery. This release will prevent garbage cleanups from starting while a recording is in progress.

30 August 2020; v1.3.10.10
A couple minor updates.

  • [add] added the ability to run the scheduled task from the tray icon (option ‘Update Guide Now’)
  • [improvement] does a sanity check on recordings in progress. Evidently it is possible for WMC to think it is still recording after the recording has stopped and/or failed.
  • [improvement] updated HDHR2MXF to work with the tray icon.
  • [change] changed client setup step 1 to delete all contents of ehome folder rather than just the databases. It will be safe to accept the program guide terms of service this way which a lot of folks tend to forget.

10 August 2020; v1.3.10.0
A couple updates and adding a tray notification program to quickly see status, open the configuration or client GUIs, and open the trace.log file from.

  • [fix] the user of the created scheduled task would not perform updates. If your system is not always logged in and your user has a password to login the OS, you will need to create a new task to ensure the task runs regardless if the user is logged in or not.
  • [enhancement] added a tray notification program to relay status of updates and ability to access EPG123 programs.
  • [enhancement] added a DUMMY lineup with a DUMMY station to act as placeholders when the Schedules Direct lineup does not include a newly added/available station. Just map (subscribe) the dummy station to the channel and it will be enabled in the guide. When listings become available from Schedules Direct, they will automatically be mapped on next update with automatch enabled.

20 July 2020; v1.3.9.30
I had modified the wrong line of code for writing a date time entry in to the registry for the dbgc runs.

  • [fix] corrected failure to parse date for dbgc runs which would cause international users to run dbgc on every update

20 July 2020; v1.3.9.20
Needed to publish a fix for failing to read the date correctly from registry for the dbgc runs with international users.

  • [fix] corrected failure to parse date for dbgc runs which would cause international users to run dbgc on every update
  • [usability] the time for a scheduled task would be randomized after deleting the task.
  • [improvement] when demanding a guide listing update in WMC, will now provide the “update completed” prompt if it completes within 5 minutes.

12 July 2020; v1.3.9.10
Version was removed due to an error in the configuration GUI which would prompt to save changes when not successfully logged in to Schedules Direct.

Minor update but you can consider that it has a new feature. To take advantage of the first 2 bullets below, you will need to delete your current scheduled task and create a new one.

  • scheduled task status will now be accessible when running on Win10 without administrative privileges… no longer get “ERROR: Access denied.”
  • the “mcupdate” task will be redirected to the client to capture calls from WMC for downloads and updates. This means that if you click the [Get Latest Guide Listings] in WMC it will now kick off the epg123_update task instead. You can update your guide without leaving WMC.
  • PvrScheduleTask is no longer triggered directly by EPG123. It is automatically performed at the end of the ReindexSearchRoot task. No reason to do it twice after a guide update.

04 July 2020; v1.3.8.20
Let’s celebrate our freedom from Microsoft. This is a minor release to primarily improve the garbage cleanup task. By default, when performing a garbage cleanup, the mcupdate task will attempt to download the maintenance package at the beginning and kick off the reindexing task at the end. EPG123 will prevent both things from happening; the first would just generate an error in the Event Viewer, the second would cause the reindexing to be running while the updated guide listings were being imported.

  • prevents maintenance package download and reindexing task from running during a garbage cleanup
  • upon closing of the configuration GUI, if there have been any changes to the configuration the user will be notified and given the opportunity to save the changes
  • when performing a database backup, the garbage cleanup will be prevented from running
  • added option in Tweak WMC concerning the status logo to only show when there is a WARNING, ERROR, or an update available.

21 June 2020; v1.3.8.10
I had a syntax error which allowed the garbage cleanup to run for the [Save & Execute] operation. Fixed.

20 June 2020; v1.3.8.0
Due to MS shutting down their servers for WMC package updates, new WMC installs will not benefit from the client maintenance package to keep the database healthy. This version will perform a database garbage cleanup every 5 days as part of the scheduled import. There is no action for the user to take for this to happen. Any user that does not want EPG123 to take care of their database will need to edit the epg123_update scheduled task to add ” -nogc” at the end of the epg123Client action. It is strongly encouraged to run the garbage cleanup periodically or the database can become corrupted and will no longer be able to accept updated guide listings.

At the beginning of a scheduled import, EPG123 will check to see if a database cleanup is needed. If so, it will kick off “mcupdate.exe -dbgc” and wait for it to complete before importing the new MXF guide listings file. This process can take a while depending on your database size.

NOTE: The garbage cleanup will not be run as part of a [Save & Execute] operation.

  • [new] performs database garbage cleanup every 5 days as part of the guide import
  • [improvement] failed metadata downloads from Schedules Direct will try again for any closed connection issues
  • [improvement] movie poster art will prioritize to be the actual poster art instead of the DVD art (which is now second in priority)
  • [improvement] movies in XMLTV will not be considered a Repeat
  • [fix] a space will be added between the program description and the series Season/Episode text if option to append it is enabled for better readability in certain pages
  • [improvement] EPG123 will no longer create a backup of the configuration file whenever a change is made

16 May 2020; v1.3.7.30
FIX: The channel logos setting for XMLTV would revert back to “local” on subsequent loads with [Save] or [Save & Execute]. Will now keep desired setting.

13 May 2020; v1.3.7.20
Making a slight adjust to how EPG123 crops these new station logos. It is being a bit too aggressive, particularly with the white logos, and is cutting out too much.

11 May 2020; v1.3.7.10
Apologies. One of the features, to save the xmltv file anywhere, did not make it into the last build. This build corrects that.

10 May 2020; v1.3.7.0
Some new features folks might like as well as formalizing some undocumented features that have been around quite a while.

  • [new] ability to select style of station logos. Choices are “white”, “gray”, “dark” (good contrast with dark backgrounds), and “light” (good contrast with light backgrounds). Schedules Direct is working on providing these right now. Settings will take effect as soon as that happens.
  • [new] ability to use an alternate series/episode format; S1:E2 instead of s01e02.
  • [new] ability to restore deleted scanned channels using the client. Use the sudo-undo button beside the ‘+’ channel add button.
  • [new] added a column to show guide end date/time for each channel in the client
  • [new] added ability for XMLTV users to save in a different location and filename
  • increased allowed ClearQAM subchannel number from 1000 to 9999
  • reduced connection error with TMDB to Information only instead of an error
  • now compresses the cache file for an even smaller footprint
  • improved logging for some functions downloading data from Schedules Direct
  • improved configuration GUI to be tabulated. XMLTV configuration is easier to understand/manage, I hope.

21 March 2020; v1.3.6.20
More optimization. I am now including the images in the new cache file and eliminating the guideImages.xml file. I also removed more non-useful information and after adding the images, the cache file is still smaller than v1.3.6.10.

19 March 2020; v1.3.6.10
If you are consistently (more than twice in a row) getting a Warning for “Problem occurred during getAllSeriesImages(). Did not process all series image links”, this fix will solve it.

  • [fix] would stop processing image links if encountered an uncached sports (“SP”) program

17 March 2020; v1.3.6.0
Minor fixes, but big change in performance.

  • [fix] some sports programs would not get artwork
  • [fix] the -nologos switch for HDHR2MXF was ignored
  • will add a log entry when pausing an import due to an active recording
  • will now create a single flat file for the entire cache to reduce drive seek/read/write operations and usage. The conversion will happen on the first update and can take some additional time to complete.
    • [pro] less storage required
    • [pro] less stress on mechanical drives
    • [pro] quicker updates
    • [con] updates will utilize more RAM

04 February 2020; v1.3.5.30
Minor updates, no jump in version number.

  • add ability to manually add a lineup if you know the lineup id
  • add matching names for DVB-S channels to use WMC’s built-in ability to match a listing to a channel.
  • client form now shows version number in title bar
  • add ability to copy the mergedchannel list into the clipboard, tab delimited

06 January 2020; v1.3.5.0
Needed to get this out for the WMC crashing on programs without images. Those experiencing this problem will either have to wait for the current guide listings to die out, or can perform a [Save & Execute] from the configuration GUI and then use the client to [Rebuild WMC Database].

  • [fix] when looking at a single channel guide list view, WMC would crash on programs that did not have an image
  • [fix] the add lineup form would not show when run on a computer that has never had WMC installed/setup
  • [fix] client form would close when experiencing a corrupted mergedchannel in the WMC database
  • [fix] selecting to center logos while using the ‘Default’ column width would cause the logos to not be visible
  • stopped getting TMDB configurations if user elects to not use TMDB images
  • client add channel function allows ClearQAM channels with subchannels higher than 999
  • timespan tweak will now work with a non-widescreen WMC format
  • client will now wait up to 23 hours to import new guide listings if recordings are in progress rather than only 5
  • transferred recordings from MS/Rovi requests will change the channel option to ‘Any Channel’ to avoid incorrect/invalid values with new lineup(s)
  • if a scheduled task does not exist, the time entry will be a random value

31 December 2019; v1.3.4
Accumlation of v1.3.3.x updates and a couple more. MSSE/Defender AV software has decided to flag v1.3.3.40 as containing a Trojan. This was a false detection. Easiest route is to build another version. I passed the setup program through VirusTotal and no detects other than Trapmine due to low ml score.

  • [fix] scheduled task would fail to create if epg123 was installed in a custom folder with a space in it
  • the client would crash if the option to view only enabled channels was clicked while the listview was being refreshed
  • for ClearQAM channels, if the channel is encrypted there will be a padlock symbol in the TuningInfo column for that channel

29 December 2019; v1.3.3.40
Just because it has been a whole day since the last update

  • [fix] HDHR2MXF would fail if you had a HDHR device/recorder active on the network but then removed/disabled that device recently
  • [logger] the client will no longer log an error from the reindexing tasks unless both the primary and alternate methods failed to work
  • [add] added support to display tuninginfo and ability to add channels for “Freestyle generic tuning space for STB”, basically IR channels for set-top-boxes

28 December 2019; v1.3.3.30
Fix for HDHR2MXF and Cable Lineups

  • [fix] some stations in a CC lineup would not match to a guide listing in the xmltv file causing a failed import


Users of previous versions of HDHR2MXF may lose guide listings after the update. You will just need to go into the client and click the Match by: [# Number] button.

27 December 2019; v1.3.3.20

  • [patch] some xmltv program entries do not conform with the dd_progid episode numbering system and is causing aborts. HDHR2MXF will ignore invalid entries which means some stations may have no guide listings

27 December 2019; v1.3.3.10
This is for HDHR2MXF users that only have their DVR Service through the purchase of a SERVIO

  • [fix] did not include the device authorization from the SERVIO in the request string for guide data for tuner devices that did not have a DVR service

26 December 2019; v1.3.3

  • [fix] lineups with ‘SP’ type programs would abort an update when trying to update the series image

25 December 2019; v1.3.2.30

  • [fix] an unintended change made it into the last release which will cause a failure to retrieve latest EPG123 version number. This will also flag an ERROR that has no impact to the successful completion of an update.

24 December 2019; v1.3.2.20

  • [fix] this fix is only for HDHR2MXF. SiliconDust changed a requirement for requests to their servers and I had to adjust

20 December 2019; v1.3.2.10

  • [fix] if starting a [Client Setup] from a non-elevated (as administrator) session, EPG123 would not create a backup of the WMC configurations. This bug was introduced in v1.3.1.10

20 December 2019; v1.3.2

  • [fix] HDHR2MXF XMLTV would fail if encountered a movie without a description
  • when restarting the client to run as administrator for creating/deleting a task, the new window will go ahead and complete the action rather than waiting for the user to click the button again
  • improved setup routine for HDHR2MXF and included shortcut in start menu to demand an update and import for HDHR2MXF
  • HDHR2MXF will save the XMLTV file in the same folder as the MXF file

18 December 2019; v1.3.1.30

  • [fix] IF you do a Client Only install, and IF you select to include HDHR2MXF, and IF you do a Client Setup, and IF ‘Automatically proceed to next step’ is enabled (default), and IF you do NOT have a DVR Service subscription with SiliconDust, you could end up in an infinite loop on Step 3 of the Client Setup

17 December 2019; v1.3.1.20
NOTE: Do not select to install the ‘HDHR2MXF for SiliconDust HDHR Tuners’ component if you do not have an active DVR Service subscription with SiliconDust. It won’t hurt anything, but can confuse things when installing a client only setup.

  • [fix] XMLTV file creation was broken in last update
  • [fix] HDHR2MXF JSON method would fail if a movie did not have a description

15 December 2019; v1.3.1.10
This release adds another method to get guide data for WMC. There are some minor fixes but some significant improvement in efficiency and reliability of the client.

  • [growth] added HDHR2MXF program to download guide data from SiliconDust if you have an active DVR subscription with them. Guide data will only be for channels that are part of your HDHR tuners
  • [fix] found cases where the automatch routine for the scheduled task may not work
  • [fix] related to above, the EPG123 lineup(s) were not being added to the ‘About Guide’ screen
  • will no longer “refresh” all images on every updated. Reverting back to using cached links but will refresh images randomly once a month.
  • each channel number in the XMLTV will have a separate element rather than grouping channel numbers for the same station.
  • when restarting the client to run as administrator for the Client Setup, Database Restore and Rebuild buttons, the new window will go ahead and start the action rather than waiting for the user to click the button again
  • added progress bars to the client to watch while the merged channel listview is being built. This can take a while for those that have 9,999 channels.
  • improved speed of populating the merged channel list view

26 November 2019; v1.3.0
I’ve had a bit of a whirlwind of changes lately, and some of them were a little too fast. This release took a lot of work to better handle the ObjectStore. The last release broke the Rebuild and Restore functions and that led to a more robust approach. I feel the changes made deserved a larger revision bump, so welcome to v1.3! I also feel this version will be the final version until January when Microsoft stops their guide service and I may need to adjust the setup routine.

  • [fix] the Rebuild and Restore processes would fail to run due to a lock on the database file
  • [stability] no longer tries to fix merged channels upon detecting errors. Found a case where there was a false detection and a repair could do more harm than good.

18 November 2019; v1.2.23
Needed to publish with some important fixes.

  • [fix] some sports events were no longer being updated from a generic program to a specific event. This error was introduced in v1.2.21 when fixing a related error introduced in v1.2.17.
  • [fix] deleting a channel with guide data could break the guide listings for that station
  • [fix] thetvdb crashed their v1 and v2 API and did not restore completely to its original state. This caused the Transfer Tool to have issues with the responses
  • [improvement] no longer necessary to close client after adding channels with ‘+’ button
  • [improvement] if a program does not have any categories assigned to it, will be given an “Uncategorized” category for search
  • [change] will only give a warning if membership is due to expire within 7 days rather than an error if within 3 days
  • some house cleaning

26 October 2019; v1.2.22

  • [fix] v1.2.21 would not create an XMLTV file after changes around sporting events

26 October 2019; v1.2.21

  • will now remember window sizes and locations when upgrading from previous versions
  • the integrity check of the task scheduler has been improved
  • [fix] changes in v1.2.17 broke the ability to do series recordings of sports shows (not events)

13 October 2019; v1.2.20

  • [fix] the guide layout tweaks would fail on large WMC databases due to new code in v1.2.19 that verified the tuner limit had been applied

12 October 2019; v1.2.19

  • improved client setup routine
  • increased speed of initial download with station logos
  • removed scheduled task nags
  • added comparison of program location with scheduled task
  • added check for tuner setup and recording state for manual imports
  • improved channel add functions (will kill the client form to avoid a crash)
  • [fix] improved and corrected recording filename patterns
  • [fix] removed folder permission task of installation package (made software updates very long)

05 October 2019; v1.2.18.10

  • improved client setup routine

28 September 2019; v1.2.18
Restored some code for folder permissions on initial installs that I had removed previously.

26 September 2019; v1.2.17
Fix for the <Sport/> and <Teams/> elements in the XMLTV file. A null entry would throw an error and fail to create the XMLTV file.

I also decided to limit the “Sports” category to the actual sport events rather than all things about sports (documentaries, pre-game/post-game, etc…)

23 September 2019; v1.2.16
Minor update and fixes.

  • Added notifications of impending SD membership expiration (Warning at <14 days, Error at <3 days)
  • Added <Sport/> and <Teams/> elements in XMLTV file
  • Adjusted some cast & crew jobs to display
  • Added support in client for Analog Cable display and Add Channel feature
  • Improved reliability of Client Setup and tuner limit increase
  • Added enabling of ATSC OTA tuners for Canada users
  • The Transfer Tool will start in the backup folder location for initial file open request

22 July 2019; v1.2.15
Minor update for XMLTV files and minor fixes.

  • Include ability to add filler programs in the XMLTV file. The size of the program block and text are customizable in the epg123.cfg file.
<XmltvFillerProgramDescription>This program was generated by EPG123 to provide filler data for stations that did not receive any guide listings from the upstream source.</XmltvFillerProgramDescription>
  • Some cast & crew were being missed. Anyone with a “Narrator”, “Producer”, and “Story” roles will be assigned a “Host”, “Producer”, and “Writer” role respectively.
  • Step1: Clean Start will not delete any PlayReady files in the C:\ProgramData\Microsoft\eHome folder. Though there is no evidence it could be a problem to delete them, I went ahead and protected them.
  • Changed the embedded .NET 4 setup in the installation package from a Client install to a Full install. Found out that the Client was no longer sufficient. This will only benefit those with a clean Win 7 OS with only .NET 3.5 installed… so, not many.

30 June 2019; v1.2.14
This is mainly to address the issues of getting Warning status bugs due to no guide listings being provided by Schedules Direct/Gracenote on small community stations. Rather that continuously report a Warning, we now have the option to suppress them for those stations… specifically stations that start with GOAC, LOOR, EDAC, LEAC, PEG, LOAC, PPV, PUAC, SPALT, INFO. There is a new element in the epg123.cfg file to control what stations are suppressed.

Enter specific station callsigns, comma delimited, to suppress warnings for no guide data, or use a wildcard (*) for a group of callsigns. A solitary wildcard means all station warnings will be suppressed.

<!-- SuppressStationEmptyWarnings: Enter specific station callsigns, comma delimited, to suppress warnings for no guide data, or use a wildcard (*) for a group of callsigns. A solitary wildcard means all station warnings will be suppressed.-->


  • Add ability to suppress Warnings for various stations that are not guaranteed to have guide data
  • Removed possibility of duplicate channel numbers in XMLTV file for the same station
  • Improved initial setup experience (added recommended defaults and automatic fetch of headend lineups)

EPG123 Client

  • Improved initial setup experience (more automated & additional timeouts)
  • Added try/catch for applying Tweak WMC to catch possible errors

Transfer Tool

  • Improved initial setup experience (automatic transfer of eligible requests)
  • Added Manual Requests as well as OneTime Requests
    • OneTime Requests are not transferable (they are typically single program requests to include movies)

12 June 2019; v1.2.13
A very minor maintenance update.

  • [fix] will not prompt user about missing scheduled task for a manual import
  • [improvement] stations that are not available with current subscribed lineups will be grayed out in the custom lineup
  • [improvement] some stations have more than 2 logos available, we only choose the second one which tends to have better contrast
  • [improvement] judges in shows like The Voice were not being listed in Cast & Crew; they are now considered Actors
  • [improvement] environment check for the client GUI to create a needed folder if it doesn’t exist

12 April 2019; v1.2.12
A very minor update these changes have been ready for quite a while and figured it is good time to publish.

  • [fix] would fail to restart configuration GUI and client GUI in elevated mode if there was no scheduled task
  • [improvement] installation file will now create both a configuration GUI and client GUI shortcut on the desktop if selected
  • [improvement] added a /live element in the XMLTV xml file which seems to be catching on in the XMLTV community

07 February 2019; v1.2.11
A couple fixes I felt were important enough to push now in order to mitigate some problems seen recently.

  • [fix] found issue that would abort update if a program ID started with “SP”
  • [fix?] recent changes/updates with Win7 somehow changed the security permissions of some /cache folders such that epg123 could write a file into the cache folder but could not read from it. EPG123 will now check folder permission of all folders [this may not be true but rather related to the above fix for program IDs that start with “SP”]
  • [improvement] will prompt user if a scheduled task has not been created prior to exiting the configuration GUI or the client GUI
  • [improvement] added a ‘Copy to Clipboard’ feature in the configuration GUI for the lineup tabs which is tab delimited for spreadsheet type programs
  • [improvement] improved parallel download operations … more improvements to come in later version(s)

11 January 2019; v1.2.10
Sometimes it’s the little things. Minor updates for better usability and setup. Also added to the XMLTV generator to provide multiple series images in different aspect ratios.

  • Client will now notify user if WMC is not present before aborting initialization.
  • Client will analyze the merged channels to determine if any EPG123 lineup service guide listings are associated with any guide channels. Will hopefully avoid any further “No Data Available” in the WMC guide due to failure to make those associations.
  • Progress bar is smoother in operation and will notify user that closing the form will abort the update.
  • When adding lineups, the countries are now in alphabetical order rather than separated by region; search results will also be in alphabetical order.
  • Perform parallel downloads for some operations. Users with a large number of channels and/or large number of days to download may see a slight improvement in time to update.
  • XMLTV file will now have up to 4 images for any program in the different aspect ratios (2×3, 3×4, 4×3, 16×9). All images will have dimension attributes for use by consuming program(s).
  • XMLTV file will only have the content ratings from the country that matches the Windows regional language setting. This can be overridden or multiple countries can be allowed in the configuration file.

30 December 2018; v1.2.9
Version 1.2.9 is really based off of v1.2.7 with the modifications I had done for v1.2.8 done a little differently. All the same improvements just with a more robust method. Also, I added one more change related to TV Ratings.

Repeat: Earlier this month, Gracenote changed their API a little and Schedules Direct followed suit. The changes were around the TV Ratings and Advisories. If you hadn’t noticed, you have been missing a lot of the TV ratings the last couple weeks. To adapt, I had to move quite a bit of code around pay attention to the locale of the user to determine which content rating system was appropriate… and added some improvements along the way. The great thing with this adaptation is a lot of international users got a much larger support for ratings.

  • [improvement] Restored TV Ratings for programs with new API feature and added support for more users
  • [improvement] Along with the TV Ratings, will also have reasons for ratings if available for episodes (movies already had them)
  • [improvement] Improved XMLTV content for ratings as well as added theTVDB as an episode-num system if available
  • [adjustment] Will no longer cache the links for series images but will “refresh” the link on each update
  • [fix] There was a download issue when using a custom lineup and an included subscribed lineup with common stations not being selected for download.

26 December 2018; v1.2.8
Apologies, everyone. Version v1.2.8.x just wasn’t meant to be. I knew with some of the changes I made I had added some risk for race conditions, but I thought I had mitigated that… apparently not. I am abandoning that method and will be backing out most of the changes in the code and it will be released as a new version.

I had missed a ‘null’ check for determining movie star ratings and it was aborting the creation of the mxf file in v1.2.8.0/1. That has been fixed. Version v1.2.8.2 was uploaded to the server on 27 December 2018 @ 1735Z. (v1.2.8.1 was to address an error in the creation of the XMLTV file when the programme was also a premiere. It was uploaded on 27 December 2018 @ 0750Z.)

Earlier this month, Gracenote changed their API a little and Schedules Direct followed suit. The changes were around the TV Ratings and Advisories. If you hadn’t noticed, you have been missing a lot of the TV ratings the last couple weeks. To adapt, I had to move quite a bit of code around and added some improvements along the way. The great thing with this adaptation is a lot of international users got a much larger support for ratings.

  • [improvement] Restored TV Ratings for programs with new API direction and added support for more users
  • [improvement] Along with the TV Ratings, will also have reasons for ratings if available
  • [improvement] Improved XMLTV content for ratings as well as added theTVDB as an episode-num system if available
  • [adjustment] Will no longer cache the links for series images but will “refresh” the link on each update
  • [fix] There was a download issue when using a custom lineup and an included subscribed lineup with common stations not being selected for download.

05 December 2018; v1.2.7
Minor release that addresses some issues/concerns.

  • [improvement] Handle malformed JSON responses from Schedules Direct for lineup channels and mappings.
  • [fix] For lineups that have no channel number information, the program would ignore the channels. Now will accept the channels and use channel number -1.
  • [improvement] The construction of station logos will now include a small transparent border. This way whatever container it is displayed in, there will some space around it.
  • [fix] For programs without an OAD, will use date “1900-01-01” instead of “0001-01-01” for the XMLTV file. Some programs would choke on the latter.
  • [improvement] Will handle a null value for the required ShowType field of a program.
  • [fix] Found a case when adding lineups to the account, it may add the wrong one.
  • [improvement] The Transfer Tool will now be able to import some manually created program/series requests that had a different XML scheme.

20 October 2018; v1.2.6
Minor release that addresses some issues/concerns.

  • [fix] Since the message to delete the current task and create a new task is getting lost when updating from v1.2.1 and lower, I added code in the client that will adjust the location of the mxf file to import automatically.
  • [fix] Added a try/catch for the automatch routine to prevent an exception stopping the client from initiating a guide and recordings reindexing.
  • [improvement] I changed the logic and method behind the archiving of old trace.log files and determining the oldest to delete. Completely transparent to the majority of users and no impact to execution.
  • [improvement] Changed the format of the start and stop times in the XMLTV file to include offset hours in order to work with the NextPVR program. This is to work around an error currently in their code and has no side effects other than a slightly larger XMLTV file.

Message for Plex users. The option to use Plex friendly channel names has been removed. This may “break” your current mapping of guide listings to tuner channels. On a legal note, Schedules Direct informed/reminded the community that using Gracenote data through Schedules Direct for a “commercial product” is a violation of the Schedules Direct Terms of Service.

11 September 2018; v1.2.5.20
This release addresses news programs that have generic descriptions weren’t being considered as different programs, even though their original-air-dates were different. Evidently, in order to work properly, the original-air-date needed that date and the time of the program to be considered unique. Basically, for your nightly local newscasts, Plex would only list 1 episode in the guide when there are literally 1 every night…. FIXED.

08 September 2018; v1.2.5.10
This release is strictly for the benefit of Plex users and creating XMLTV files for them. Just gotta say, Plex’s implementation and interpretation of XMLTV was a guessing game. I’m not bumping the build number… no need for WMC users to update.

07 September 2018; v1.2.5
If upgrading from v1.2.1 or earlier, you must delete and recreate your scheduled task if you are running Full Mode (Server + Client).

This release is for a couple minor fixes and an improvement.

  • [fix] found case if a manual recording (date/time/channel) was in progress, the import would fail
  • [enhancement] the Tweak WMC has a new option to replace the callsigns in the guide with the station names (i.e. ‘FS1HD’ becomes ‘Fox Sports 1 HD’)
  • [enhancement] now makes extra calls to Schedules Direct to gather series supplemental data for Modern Media UI+ usage to include series premiere dates
  • [improvement] added some logic to determine whether or not to set some default settings to the scheduled task
  • [improvement] will now delete cached files that have errors to download again on next update
  • [improvement] XMLTV files will now have an “original-air-date” episode number for programmes that do not have episode specific information. This should fix the issue where Plex decides generic episodes are movies (sigh)
  • [enhancement] added the ability to create your own custom lineup
    • GUI not developed yet to create the custom lineups; manual method is only method available right now
    • assign your own channel numbers (great for ClearQAM users and those that don’t have correct lineups from SD)
    • only stations that are “members” of subscribed lineups will be downloaded (signified by a checkmark)
    • alternate stations can be used (primary as HD, secondary as SD for example)
    • comes with examples for HDHomeRun Premium TV (Eastern and Pacific), as well as Sling TV

11 August 2018; v1.2.4
This release is for a couple minor fixes and an improvement.

  • [fix] found case in which the epg123 client GUI would not populate the list views if a scheduled task did not exist
  • [adjustment] I didn’t like the flow of the install in applying the folder permissions. If needed, there will be a prompt to the user to state what the program is going to do and warn it may take a while
  • [improvement] with the new possible folder structure, I added a button to view the trace.log file on both GUIs (the Help button of the configuration GUI was re-purposed for this)

08 August 2018; v1.2.3
Quick release to fix some permission issues particularly for Win10. It also affects other operating systems but only if the user that setup epg123 is different from the user that is used for the scheduled task. The answer to this was to change the permissions of the epg123 folder (C:\ProgramData\GaRyan2\epg123 or the [epg123]\folder if not installed in a Program Files folder) to add Everyone with full control.

  • [fix] add Everyone full control of the epg123 folder. After installation, open the EPG123 Configuration GUI and the permissions will automatically be applied. For portable installs, you will need to run as administrator.
  • [fix] correctly assign the working folder when program starts; otherwise any program call from a command line outside the installation folder, or even possibly from double-clicking the exe, would fail to find the configuration file.
  • [enhancement] the configuration GUI will highlight any channels that are NEW to your lineup(s) since last save. The visual indicator will allow for easier scan of the new channels to determine if you want to add them to your downloads.

05 August 2018; v1.2.2

EPG123 Package

There has been a bit of work on how EPG123 is built. Instead of multiple builds each for the Win7, Win8, and Win8.1 versions of WMC, this old dog learned an old trick to only create 1 version that can support all of them. There will no longer be separate packages for each. Along with this new design, I no longer embed the Newtonsoft.Json.dll file in the epg123.exe or epg123Transfer.exe files.

Another major change is it supports being installed in the Program Files folder for the static files and using the ProgramData folder for the configuration files, logos, backups, logs, and generated guide files. This provides a much better structure and acceptance from the community. It will, however, require those upgrading to this version delete their existing scheduled task and create a new one due to change in location of the mxf file. Also, not shown in the graphic below, the XMLTV output file has changed from epg123.xml to epg123.xmltv for easier identification.


  • fixed gap in logging an error if the executable was already open when a scheduled task was to run (and aborted)
  • added ability to save a support file to be used by ModernMedia UI+ whenever it gets released
  • adjust logger to clear the status of any errors detected while interfacing with the user, prior to performing an update
  • added ability to include a BrandLogo visible in the guide similar to the status logo on the WMC home screen. This is for extenders that don’t have the benefit of seeing the status logo on the hosting machine. You will need to edit the epg123.cfg file and set the <BrandLogoImage> element to “light” or “dark”
  • the movie cover art searches from TheMovieDb will now search by broadcast language first with the fallback being english
  • only time discontinuities within 2 days from the time of update will be registered as a warning; otherwise it is just an information only entry
  • added TV ratings support for German (Freiwillige Selbstkontrolle der Filmwirtschaft), French (Conseil Supérieur de l’Audiovisuel), and UK/GBR (UK Content Provider and British Board of Film Classification)

EPG123 Client

  • fixed text placement of status logo when the screen dpi has changed due to using 125% or 150% text size
  • added ability to catch and log an unhandled exception from the main program
  • will no longer log a recording in progress when attempting to import an update as a warning
  • will notify user of any programs that are locking the shell dll file when trying to update it using the Tweak WMC form
  • greatly improved the client setup routine to include a status bar with descriptions of actions and adjusted for new knowledge that a mcupdate -uf will reset the tuner limit increase back to the default limit of 4
  • now display the form while the listviews are being populated for better user experience
  • automatically corrects correctable errors in the database merged channels
  • corrected some erroneous TuningInfo values of merged channels due to overrides

Installation Scenarios (Updating from previous versions)

Previous installation is not in a Program Files folder:
v1.2.2 will install over the current location. The generated MXF and XMLTV files will now be located in the [epg123]\output folder. Action: create a new scheduled task.

Previous installation is in a Program Files folder:
v1.2.2 will install over the current location. The generated files will now be located in the ProgramData\GaRyan2\epg123 folder and subfolders. Action: move the \backup, \cache, \logos, and \sdlogos folders to ProgramData\GaRyan2\epg123 folder along with the epg123.cfg, EPG123Status.png, epg123Task.xml, guideImages.xml, and your trace.log files. Create a new scheduled task.

Uninstall previous version and install v1.2.2 to Program Files folder:
Action: move the same files as above to the ProgramData\GaRyan2\epg123 folder and create a new scheduled task.

22 June 2018; v1.2.1


  • [Change] Downgraded the severity of an update available from a Warning to just Information. The exit code for a successful update with no errors or warnings, and an update available, will be a 1.
    • 0=SUCCESS; 1=SUCCESS with Upgrade Available; 47825=WARNING; 57005=ERROR

EPG123 Client

  • [Enhancement] Added the ability to delete lineups from the database. A user that has tried multiple lineups and/or moved to a different provider can now remove the unused lineups.
  • [Improvement] Improved the Client Setup routine. Found that sometimes it would not open and hide WMC successfully during Step 1 to properly prepare the new database for increased tuner limits.
  • [Enhancement] Added the ability to have an EPG123 status logo on the WMC Start Menu. Configuration is in the Tweak WMC window from the client. Default is the light accent logos with 100% opacity. The logo is updated upon each MXF file import.
    • The date stamp is when the status was updated (last MXF file import)
    • If the MXF file is older than 24 hours, logo will be a red ‘X’ assuming the updates are no longer occurring.

22 May 2018; v1.2.0


  • [enhancement] Restored using the ISO language codes to include regional languages.
  • [improvement] Slight improvement in downloading of station schedules. Your mileage may vary.
  • [enhancement] Added ability to download 2×3 series artwork instead of 4×3.

EPG123 Client

  • [improvement] Added some error correction and trapping when dealing with the object store.
  • [improvement] Greatly improved the reliability of deleting channels.
  • [enhancement] Added ability to Add channels (currently only ATSC, Digital Cable, and ClearQAM)
  • [improvement] Added indexing of the PVR schedule automatically after a MXF file import.
  • [improvement] Revamped the Client Setup routine for an even easier install experience. Also adds ability to increase tuner limits* even before running TV Setup in WMC.
  • [enhancement] Changes all recording request’s ‘anyLanguage’ attribute to true in order to avoid missing recordings due to changing from a language string to an ISO code.
  • [bonus] Running the executable with the -X argument (epg123Client.exe -x) will present 2 more buttons dealing with the object store. With Store Explorer, you can browse and change the contents of the store database directly.

* due to a flaw in the object store in accepting the letter ‘t’ for the TvSignalSetupParams, it is not possible to increase the tuner limits for everyone. The countries that the tuner increase will work for are:

  • AU – Australia
  • BE – Belgium
  • BR – Brazil
  • CA – Canada
  • CH – Switzerland
  • CN – China
  • CZ – Czechia
  • DE – Germany
  • DK – Denmark
  • ES – Spain
  • FI – Finland
  • FR – France
  • GB – United Kingdom
  • HK – Hong Kong
  • HU – Hungary
  • IE – Ireland
  • IN – India
  • JP – Japan
  • KR – Korea
  • MX – Mexico
  • NL – Netherlands
  • NO – Norway
  • NZ – New Zealand
  • PL – Poland
  • RU – Russian Federation
  • SE – Sweden
  • SG – Singapore
  • SK – Slovakia
  • US – United States
  • ZA – South Africa

The countries that will not work are:

  • IT – Italy
  • PT – Portugal
  • TR – Turkey
  • TW – Taiwan
  • Default – Everyone else

21 March 2018; v1.1.25

Explanation for v1.1.25:

It was discovered that the language value of a program would have to match any series recording requests’ prototypicalLanguage value in order to be scheduled to record. Starting in v1.1.20, I had changed the program language value to be the 2-character plus locale ISO language codes. It appears that “English” and “en” is equivalent in WMC, but “English” and “en-GB” are not for the purpose of recording. This caused a lot of scheduled series recordings to no longer “find” episodes to record. I have reverted back to the original method to be the common language name with no locale information in order for existing series recordings to work. If you created any series recordings while using v1.1.20 – v1.1.24, please check your schedule to see if they are still working. If not, you will have to cancel the current request and create a new one.

  • [fix] Restored the method of recording the program language value to the method used in v1.1.19 and below. (v1.1.25)
  • [fix] One more flaw fixed for new installs. If a epg123.cfg file did not already exist, epg123 would throw an exception when trying to save the configuration. (v1.1.24)
  • [fix] Found another flaw in the v1.1.2x version that would not create the scheduled task due to encoding of the xml file. (v1.1.23)
  • [fix] A flaw in the new XMLTV feature would abort updates if the downloaded service did not have a station logo entry. (v1.1.22)

13 March 2018; v1.1.21


  • [enhancement] Form now remembers size and location of window to restore each time you open it.
  • [feature] Can now create XMLTV files for use in programs other than WMC.

EPG123 Client

  • [enhancement] Form now remembers size and location of window to restore each time you open it.
  • [feature] TweakWMC can now center channel logos in available space.
  • [enhancement] TweakWMC will now increase the show image size for improved visibility.
  • [enhancement] Form will try to automatically repair any orphaned merged channels from scanned lineups. Will also delete channels that are not associated with tuners.
  • [enhancement] Added column in merged channels to display tuning info.
  • [enhancement] Merged channel call sign and channel number are highlighted to identify any custom names or numbers.

07 January 2018; v1.1.19
Small update but wanted to get it out there. I will mostly be out-of-pocket (disconnected for the next week) so didn’t want to hold this one longer. I have not updated the manual, so it is still behind.


  • [fix] I may not have been restoring the computer’s power/sleep settings once an update had been completed. Fixed.

EPG123 Client

  • [fix] I may not have been restoring the computer’s power/sleep settings once an update had been completed. Fixed.
  • [fix] Evidently DVB-S tuning devices in WMC do not populate some database entries which the client was expecting and throws an exception. Protections put in place to catch the exception(s) and continue with the update. This was only for the automatically match feature of the scheduled task.
  • [improvement] Lots of improvements in the Tweak WMC form.  Optimized the code and really enhanced the ability for the guide tweaks to scale properly while maintaining balance.
  • [improvement] Instead of modifying the current resource files for the guide tweaks, everything uses the base default WMC settings as a starting point for each tweak. This means a MCL XL user will no longer need to worry about setting MCL XL settings to default before using the guide tweak.
  • [improvement] Added some filename protections in the recording filename pattern setting.
  • [improvement] The Client Setup form will no longer need to exit in order to perform a backup of the ehome backups.
  • [enhancement] Added a button for the Transfer Tool in the client.

Transfer Tool

  • [fix] Found a case in which some Series Requests would not show in the form. Fixed.

28 December 2017; v1.1.18
Lots of new features primarily in the client GUI. Big improvement in the ability to match merged channels with lineup listings.


  • [fix] Updates would fail if theTVDB season number exceeded 255. If the series uses the year as the season number that series is ignored.
  • [fix] Updates would fail if theTMDB series ID value from Schedules Direct was an invalid 0xFFFFFFFF.
  • [feature] Added tray icon which will be visible when update is run on-demand. To see the icon during a scheduled update, the task will have to be altered to be interactive (select the ‘Run only when user is logged on’ balloon in Task Scheduler).
  • [feature] Lineups can now be previewed prior to adding to your account by right-clicking the lineup in the lineup search results.
  • [enhancement] Channel logos downloaded from Schedules Direct to be included in the guide will now be as large as possible with a 3:1 ratio. It is advised to delete current smaller logos and download again. The “BigLogos” feature has now been deprecated… files with the suffix _b will be ignored and can either be deleted or the suffix removed to replace the smaller logo.
  • [improvement] Now separates multiple lineups in account to be multiple lineups in the guide. There will no longer be a “EPG123 Lineups with Schedules Direct” lineup.

EPG123 Client

  • [feature] Added tray icon which will be visible when import is run on-demand. To see the icon during a scheduled update, the task will have to be altered to be interactive (select the ‘Run only when user is logged on’ balloon in Task Scheduler).
  • [feature] Can now apply custom numbers as well as custom call signs to the merged channels. A button provided to enable toggling between displaying the original or custom values.
  • [feature] Can filter the merged channels by scanned tuners. This is advantageous to matching with different lineups.
  • [feature] Can now backup and restore WMC configurations (not guide listings).
  • [feature] Client setup is now mostly guided using the [Client Setup] button.
  • [feature] Can now tweak some WMC settings.
    • Dynamically change the guide grid layout, font sizes, time span, details, number of rows, …
    • Increase tuner limits
    • Enable the Movie Guide for non-US/UK/Canada users
    • Configure filename of recording file
    • Adjust pause buffer, skip ahead and instant replay intervals

Transfer Tool

  • [improvement] Can pull the recordings.mxf file directly from the WMC configurations backup file.

16 September 2017; v1.1.17
There was a problem with v1.1.16 in handling program files cached by v1.1.15 for the new S/E numbers from TVDB feature. That has been fixed with v1.1.17. The silver lining to this is realizing that if anyone wants to take advantage of the new feature immediately, then you must clear the cache and rebuild/update to actually use the new data on programs that already exist in the guide.

16 September 2017; v1.1.16
Here are the changes in no particular order.


  • [feature] Added 2-letter language id codes all stations in the lineups.
  • [feature] Added option to prefix episode description with S/E numbers.
  • [feature] Added option to use S/E numbers as provided by Schedules Direct. If not available, it will use the Gracenote S/E numbers followed by production number as a last option.
  • [fix] Working the S/E code, found that production numbers were not being used in all cases.
  • [improvement] Column widths of list views now adjust to display DPI.
  • [change] Changed max number of days to download from 30 to 21. This ensures there is no confusion with the number of days available from Schedules Direct.
  • [fix] Program will no longer get stuck in a continuous loop when trying to configure TMDb when the API is down.
  • [stability] Improved robustness of the program when dealing with incomplete/incorrect responses from the SD API.
  • [fix] Will now try to retrieve movie coverart that was not possible in previous updates due to TMDb API being down.

EPG123 Client

  • [improvement] Will retry to import .mxf file after the initial attempt was aborted due to recording(s) in progress. Will try every 60 minutes, or 1 minute after current recording(s) are scheduled to complete, whichever is earlier. Will only retry for 5 hours and then abort if WMC is still recording.
  • [stability] Improved robustness of code to handle errors in the WMC database when populating the list views.

Transfer Tool

  • [improvement] Directly imports recording requests into WMC database rather than use loadmxf.exe.
  • [improvement] Now automatically kicks off the PvrSchedule task to index the new requests. Results should be pretty much immediate after transfer.
  • [fix] TheTVDB search strings were not URL encoded so would fail for titles containing invalid characters such as ampersands.

19 August 2017; v1.1.15
Quick release to address issues with EPG123 handling some changes in the SD json response for station/channel mappings.

  • [fix] EPG123 now handles ‘null’ entries in the station/channel mappings
  • [fix] EPG123 will now handle station/channel mappings that contain both QAM and Cable channel numbers. Previously would only use the QAM value.

19 August 2017: REMOVED v1.1.14 due to not completely fixing the null entry issue.

06 August 2017; v1.1.13
The fix for the Win7 issue with the Newtonsoft.json.dll assembly version has been addressed by embedding the dll into the epg123Transfer.exe file. This approach created the need to embed the dll into the epg123.exe file as well and remove the Newtonsoft.json.dll from the installation folder. If you install epg123 using the epg123Setup package, the dll file will automatically be removed. For those that use the portable files and copy into the epg123 folder, you will have to manually remove the dll file in order to use the transfer tool for Win7 machines.

The solution makes the Visual Studio solution package a little more interesting, but in the end it is cleaner for the user.

05 August 2017; v1.1.12
Attention users of v1.1.12 on Windows 7 machines, the transfer tool will not work in its current configuration without some intervention. The Win7 tool was built with the .NET 3.5 version of the Newtonsoft.Json.dll file while the version shipped with EPG123 is the .NET 4.0 version. A workaround is to move the epg123Transfer.exe file into its own folder and download the .NET 3.5 version of the dll here. Extract the dll file from the download and place in the same folder as the transfer tool.

When I have a more elegant solution, I’ll release a new rev.

Minor update for the core program but a big improvement for the series recording transfer tool from Rovi to Gracenote/SD. For those series that have not aired yet and are not part of the database, you can now use information provided by to make the transition.

  • [fix] The transfer tool would not allow transfer of Wish List items.
  • [enhancement] Transition tool can now use theTVDB to get Gracenote/SD series IDs to make the transition.

28 July 2017; v1.1.11
For the most part this is a maintenance update with the exception of a new tool included. For the newer installers of EPG123, there is now a transition tool to convert your Rovi recording requests into EPG123 recording requests. The database created to make this happen will continually be updated but currently stands at 11,164 series from the major US broadcasters, DirecTV, and DISH Network. I apologize to my international friends … performing the database updates takes time and I can only devote so many resources to this effort.

  • [fix] Somehow broke the ability of the configuration GUI to handle password changes. It is now fixed.
  • [fix] Corrected exception handling with trying to read an empty xml file for MCL XL.
  • [enhancement] Added transition tool for recording requests.
  • [enhancement] Greatly improved the ability of the client to delete the WMC database and clear the eHome folder. Should no longer be needed to boot into Safe Mode for some machines.
  • [enhancement] Added the ability to increase max tuner limit from 4 to 32 tuners per type. It does the exact same thing as TunerSalad and Ceton InfiniTV software does.
  • [growth] There is evidently an active project out there with the goal to refresh the look of the guide within WMC. Part of the effort will be to have ‘New’, ‘Premiere’, ‘Live’,… indicators in the grid listings. EPG123 supports that effort by including the isRepeat flag in the MXF file.

05 July 2017; v1.1.10
Sorry. I had planned on leaving the version response from SD at 1.1.9, but in light of the current problems with MS/Rovi guide the downloads for v1.1.10 far exceed the downloads for v1.1.9. I just changed the version response to v1.1.10.

04 July 2017:
Actually found out yesterday that there is a difference between WMC for Win8 and WMC for Win8.1. All previous builds of the client will not work for Win8. I have built a new version (1.1.10) which is the same as 1.1.9 with the following exceptions:

  • added a epg123Client build that supports Win8 in the installation package
  • changed the epg123Client reporting to the trace.log file to include which OS it was built for

For those running v1.1.9, no need to upgrade and I am going to leave the response from Schedules Direct at v1.1.9 to avoid the warnings in the event log for out-of-date software. This version would only be required for those trying to install EPG123 on a Win8 machine.

30 June 2017; v1.1.9
Improved the station logo downloads and crops. Added some more protection to the initial installs to ensure steps are followed in the correct sequence.

  • [enhancement] now downloads/crops/resizes with the below rules:
    • if MCLXL is installed and configured for Big Logos, logos will be 225×75
    • if <BigLogosMCLXL> is true in epg123.cfg file, logos will be 225×75
    • otherwise, logos will be 144×64
  • [enhancement] when adding lineups you can now right-click a lineup from the search results to preview its channels.
  • [enhancement] will prevent any guide import if the tuners have not been setup (TV Setup). This avoids corrupting the database before you can even use it.
  • [enhancement] added progress window when downloading all SD logos. The downloaded logos will be cropped but not resized into the .\sdlogos folder.

18 June 2017; v1.1.8
I lied, one more quick release. I wasn’t expecting this one.

  • [enhancement] now have the option to download channel logos from Schedules Direct right into your guide. EPG123 will download, crop, resize, and save in the .\logos folder automatically. Currently logos are saved at 225×75 pixels which may change in the future or allow the option for 96×42 pixels. The initial build of the logos can take some time to process so be patient if you have a lot of channels you are downloading.

14 June 2017; v1.1.7
A last quick release with some enhancements to mitigate some risks and recovery options

  • [enhancement] added mutexes to ensure only 1 instance of EPG123 is running at a time, only 1 instance of the EPG123 Client GUI is running at a time, and only 1 instance of a guide import is running at a time. Avoids quite a few possible issues with SD API tokens and database access.
  • [enhancement] Every time the [Step 1: Clean Start] button is used, the ehome\backup files are backed up to your epg123\backup folder. The backup files that are backed up are the tuner configurations, scheduled recordings, and subscriptions which can be restored manually if things go wrong.
  • [enhancement] Every time the EPG123 configuration is changed, the epg123.cfg file is backed up to your epg123\backup folder.
  • [backtrack] Evidently no one appreciated using Zulu time in the log file. This has now been reverted back to using local time.

With the previous release and this release, disturbances to upstream data or problems with data sourced from Schedules Direct should not impact the guide too much. There is still a chance that if there are missing channels, but less than the 10% threshold, those channels will be missing from the guide. With the backups available, a quick recovery is possible.

Note for the backups: There is no limit to the number of backups you can have in the backup folder. If you change your configuration 100 times, you will have 100 config file backups.

09 June 2017; v1.1.6
Quick release with some minor enhancements.

  • [enhancement] In light of the problems the upstream source to Schedules Direct has caused for EPG123 users, I have added a sanity check in the EPG123 GUI. When saving the configuration, the number of expected channels to download will be evaluated prior to committing the changes. This will prevent unintentionally overwriting a configuration with bad lineup data.
  • [enhancement] Added a -P switch to epg123.exe to show the progress window while creating the MXF file.

06 June 2017; v1.1.5
A lot of behind the scenes work in support of future growth in an all in one package.

  • [growth] Created installation package for future updates and upgrades
  • [growth] Revamped the trace and event logging for better support of multiple programs. Now have 2 sources in Event Viewer (EPG123 and EPG123Client) with Event IDs 0:SUCCESS, 0xBAD1:Warning, 0xDEAD:Error
  • [enhancement] Removed all console windows and now use progress windows to monitor updates and imports
  • [enhancement] No longer deletes the ehome folder during Step 1. Instead deletes contents of folder to allow for symbolic links or junctions to the ehome folder if desired. Same is true for the cache folder (no change)
  • [enhancement] Improved grab of movie images from Schedules Direct for Video-On-Demand and straight-to-video movies
  • [fix] Configuration GUI would not allow changing Schedules Direct password and would fail to login
  • [fix] There was a copy/paste error in determining series images (minor). Thanks NNate!
  • [fix] Found case where epg123Client would crash if failed to open the WMC database

16 April 2017; v1.1.4
A very minor update to address some usability and exception handling issues.

  • [fix] added exception handling to all JSON messages from Schedules Direct to gracefully abort on malformed responses.
  • [fix] corrected issue in epg123 GUI where all channels will be selected when the ‘Save’ button was clicked multiple times in a single session. This only affected those that had the ‘Automatically download new stations in lineups’ option selected.
  • [enhancement] added ability to force an update regardless of recording state; refer to guide appendix for command line arguments.
  • [enhancement] added button in epg123Client GUI to only show enabled channels in the listview.

03 March 2017; v1.1.3
This version fixes the column sorting of the listviews (what v1.1.2 should have been) as well as removed reporting Md5 mismatches to the event log. Also of note, the guide has been updated to hopefully be clearer on how to get up and running with EPG123.

The self-extracting executable files are now contained in a zip file. This should limit the nagging from browsers and operating systems to just 1 instance (maybe 2). The real purpose is to ensure the .exe files are not flagged as downloaded/untrusted.

Those upgrading from v1.0.2 and below still need to use the utility for a seamless transition.

Now let’s pretend v1.1.2 never happened.

27 February 2017; v1.1.2
Quick release of v1.1.2 which corrects an issue with the listview sorters on systems that use a comma (,) as a decimal separator. Package is now a self-extracting 7-zip file for everyone’s convenience. No other changes from v1.1.1 to v1.1.2.

NOTE: Though this version makes the GUIs functional for international users, the actual sorting is now broken. That has been corrected in the code and will be in the next release. Recommend continue using v1.1.1 if it works for your system configuration.

26 February 2017; v1.1.1
Minor changes, but wanted to get something out there for the new Win10 users and to address the Md5 mismatch notices.

  • Added EventID 57005 (0xDEAD) to the event log for when EPG123 fails to update or import latest guide listings
  • Updated column sorters to treat channel numbers as Channel.Subchannel instead of decimal
  • Client form can now automatically adjust panel sizes for larger text display settings
  • Client form now shows number of merged channels, lineups, and service channels available in status bar
  • Database rebuild in safe mode will now rebuild everything except listings instead of just delete database file
  • Added a button to clear the cache in the EPG123 GUI (to include image links in guideImages.xml)
  • Task created for Win10 users now use NT AUTHORITY\NETWORKSERVICE account due to Win10 1607 Anniversary Update bug
    • Need to run GUI as administrator to see task status and exit code
  • Updated code in preparation for upcoming updates to Schedules Direct API
  • Corrected error when identifying and dealing with Md5 mismatches for programs and schedules

09 February 2017; v1.1.0
Lots of improvements on this one. The most noticeable change is the epg123Client now has a GUI and a much larger purpose.

  • can perform Step 1 and database rebuild without going into Safe Mode
  • can subscribe/unsubscribe any channel to any lineup station
  • can perform matching of the entire channel listings to any selected lineup
  • can enable/disable a channel in the guide, delete channels, and rename channel call signs
  • identifies which lineup a channel is subscribed to
  • can create a scheduled task for client mode only or full mode


  • client will abort import if it detects a recording is in progress
  • sanity check on number of stations being imported to number of stations expected. If number is 90% or lower of expected, client will abort import
  • mismatched Md5 hashes between schedule entry and program will no longer prevent an update
  • fixed channel ID naming scheme which prevented some users of accessing some of their downloaded stations. This is a breaking change that requires user intervention for those upgrading to this version.

Other Improvements:

  • epg123 GUI responds much quicker and functions better
  • epg123 GUI now automatically logs in to Schedules Direct when opened
  • the automatch code has been reworked and seals some gaps to better handle changes in lineups
  • scheduled task has been improved and now controls the auto import and automatch options
  • sporting events are now identified by their title so they can be treated as part of the same series for recording purposes

For those upgrading from previous versions, there is a utility program and instructions included in the download describing what needs to be done. Upgraders also need to delete their existing scheduled task and create a new one with either the epg123 GUI or the epg123Client GUI.

Apparently, MS introduced a bug in Win10 version 1607 (anniversary update) that affects the execution of Scheduled Tasks. The bug causes only 1 action, of the possible 32 actions, in a task to execute unless the task Principal is elevated or a service. Unfortunately, my new scheme for scheduling update tasks with epg123 is to have 2 actions; 1 for epg123.exe and the other for epg123Client.exe. So for those running epg123 in full mode on Win10, you’re updating the MXF file but not importing it into WMC. You’re going to have to edit the task to get it to function fully. There are, of course, a number of ways to make the updates happen, but the below method is the least complicated. Reference the graphic below:

  1. Open Task Scheduler and select folder ‘Task Scheduler Library’.
  2. Double-click the epg123_update task and click the [Change User or Group…] button.
  3. Click [Advanced] button.
  4. Click [Find Now] button.
  5. Double-click the NETWORK SERVICE user.
  6. Close all windows by clicking [OK].

The side effect of doing the above is the epg123 GUI’s will no longer show the task status unless the window is opened with elevated privileges.

25 September 2016; v1.0.2
Mostly cosmetic changes. Pushing this release due to Microsoft once again deciding EPG123 is a trojan. I’m starting to think this is intentional.

  • Changed the created scheduled task to ‘Run with highest privileges’. Without it, epg123 would not successfully kick off the reindex task and had to do it old school.
  • Alters keyword/category listings to be TitleCase… the text would be ‘Science Fiction’ instead of ‘Science fiction’.
  • Added the language identifier to the programs.
  • Updated code in the lineup search to be much more flexible and robust at the same time. Also includes transmitter sites for Great Britain, Australia, and New Zealand.
  • Added 2 buttons to the GUI that will only be visible when OS is in safe mode
    • [Step 1: Clean Start] will be used during Step 1 to delete the ProgramData\Microsoft\eHome directory instead of requiring DOS commands
    • [Rebuild WMC Database] can be used to completely wipe out the database, and restore the tuner channels, subscriptions,  and scheduled recordings
    • import the latest epg123 guide listings

The database rebuild is very useful when the guide just simply won’t correct itself of “missing” or wrong programs. If Zap2it says one thing, and your guide says another, then your guide is probably wrong. If it stays wrong for longer than a day, give the rebuild a shot.

28 August 2016; v1.0.1
There are a lot more changes than you would expect after releasing v1.0.0 last month. Here are the highlights.

  • Reworked the tracing code to also add entries in the Event Log (see below). Note: to gain this feature, the epg123 GUI must be run once ‘as Administrator’ to create the registry entry.
  • Checks for 0-byte length cache files that were causing execution to fail (0-byte length files occur when the drive runs out of space).
  • Improved SDOverride flag to work correctly in all configurations.
  • Brought back any Paid Programming images that are available.
  • Corrected (again) the spacing for ‘Season XX, Episode YY’ in the episode description so it would appear properly in some views.
  • Includes the newly added ‘Oceania’ geographic zone to include Australia and New Zealand in the lineups able to be added to the client’s account.
  • Now cleans up the cache directory right after mxf file creation rather than after completion of the reindex task.
  • Back to the original method of calling the ‘ReindexSearchRoot’ task to perform reindexing. If the task is not available (deleted), then will revert to using the ehprivjob.exe method.
  • Prevents the host machine from entering sleep mode while updating the guide for those long downloads and short sleep timeouts.

17 July 2016; v1.0.0
This one has been a long time coming. Originally just wanted to get something for the Hauppauge! HD PVR/Colossus users to completely break from the MS/Rovi mess, but seemed to have found some minor bugs to fix as well.

  • Hauppauge! HD PVR/Colossus users can now function without MS/Rovi setup data. Also now have 9999 channels just like the CableCARD users with all the benefits.
  • Added a new checkbox in the GUI for appending the description with Season XX, Episode YY information instead of being automatic when episode prefix if false. This basically now gives 4 options to presenting season/episode information; sXXeYY in episode title, Season XX, Episode YY in description, both, or none.
  • There is now another undocumented tweak in the epg123.cfg file called SDOverride. The HDOverride will flag all programs on a station as HD, while the SDOverride will removed all HD flags from a station.
  • User now has the ability to exclude any lineup on their account with Schedules Direct. This is a very nice feature if you use multiple lineups for multiple hardware/tuner configurations.
  • There is a limitation of 100 keywords per keyword group in the category searches. A workaround has been found and we now have the capability for 200 which should be plenty.
  • Corrected a bug where it was assumed all language identifiers from SD would strictly be the 2 letter ISO language name… evidently not. This caused some (specifically our Great Britain friends “en-GB”) to not get program descriptions.

19 June 2016; v0.9.9
Very minor update for guide images. Whether due to an oversight by me, or changes to the Gracenote data structure, there were many series images that were missing. I also added a “Paid Programming” category just for completeness. If there is anyone out there searching for paid programming to watch, you can now find them easily.

23 May 2016; v0.9.8
Minor updates mainly to support international users.

  • corrected problem with calculating movie star ratings. For European users, epg123 was not respecting the culture format of 2,5 in place of 2.5.
  • corrected sports images in 2 places. Oversight in previous releases was actually downloading the sports image links twice and archiving both. Corrected the error in allowing team logos to be used for an entire series of sports.
  • added some more error handling/logging in the epg123Client. Restored the logging of station match and unmatch in the trace.log file … lost in last update.
  • now includes actor/character names for TV series. This will double up on actors for all programs that already exist in guide; new downloads will not exhibit this issue.
  • no longer a pop-up when opening the GUI and there is an update available… there will be bold, red text on the bottom of the GUI declaring an update is available with the newest version displayed.

08 May 2016; v0.9.7
This release is much more significant than I had anticipated, but it is all for the good.

  • the About Guide now provides the version of EPG123 in use, along with a notification if an update is available
  • there is a new option to automatically download newly added stations to your lineups
    • for CableCARD users, this means it will also be automatically added to your guide if automatch is enabled
    • there will be an alert in the trace.log file to identify any new channels regardless of choice to auto download or not
  • renamed executable from epgAutomatch.exe to epg123Client.exe to reflect new role
    • moved WMC database functions into epg123Client for whole home configurations
  • corrected oversight in not applying the isGeneric flag to pre- and post- sports event live shows which resulted in them being identified as Repeats
  • added “Miniseries Premiere” in the Premiere Category
  • renamed “_Premiere_” in the movie genres to simply “Premiere” for aesthetic reasons
  • now prevents Paid Programs from being identified as a series
    • currently this means there will be no art for the paid programs; might fix later

26 April 2016; v0.9.6
Some pretty cool enhancements on this release.

  • added a “Premieres” category for search which will show Series Premieres and Season Premieres for everything but movies
  • added a “_Premiere_” genre for movies to take care of the rest
  • added a button on the GUI (probably temporary) to download all the station logos provided by SD/Gracenote for the user to use/modify into the .\logos directory
  • added a checkbox to allow the “New” flag to override any Original Air Date from the program metadata. This will correct oversights in the data for live sports, or programs that are new to the clients host country. It is not yet understood of any possible negative side effects so use at your own risk. This is easily recovered by unchecking the box and running another update.
  • limited the number of reported time discontinuities in the schedule to only 1 per schedule day. Provides enough information for investigation and doesn’t flood the trace.log file with repetitive information.

There is also a new feature that currently only resides in the epg123.cfg file. For every station in the file there is now an attribute called “HDOverride” which if set to true will ensure that every program on that station is identified as HD. There is an interesting feature of WMC which remembers the zoom setting for HD programs and the zoom setting for SD programs. If the program is not properly identified as HD, then WMC will automatically change the zoom setting to the latest SD zoom.

17 April 2016; v0.9.5
Most of the changes are behind the scene on this one.

  • Sports events are now part of a series for recordings.
  • epg123 lineup is now recognized in the About Guide

08 April 2016; v0.9.4
Quick release to provide more information when there is a WebException thrown from Schedules Direct. Also now has proper parsing of the 4DTV channels to remove the satellite designator and only use the channel number for automatching.

v0.9.3 appears to be a great success, and it shows with the 190 downloads in the last 4 days. We are in the final stretch, so if anyone has any improvements they would like, even nit-picky ones, let me know at The Green Button.

04 April 2016; v0.9.3
This is a very minor update, but a big improvement in the automatch function. I’ve been learning more and would say that the method used is much better than what was in previous versions. This may even help with some users that just can’t seem to shake Rovi out of their MC.

There is one improvement in the main program to lessen the calls to TMDb … it no longer searches TMDb for any “Adult Only” movies. This will also reduce the log file size from showing the adult titles not being found.

30 March 2016; v0.9.2
Small update based on observations from v0.9.1 release.

  • registry check and edit is now limited to just GUI operation upon open instead of all operations; also allows registry settings to not exist for those installing on servers/systems without WMC for Whole Home configuration.
  • reporting of time discontinuities was pretty messed up … I was trying to do 2 different things at the same time and the logged info was confusing (read useless). Info now provided in the log file is convenient to reporting any problems to Schedules Direct.

28 March 2016; v0.9.1
There has been quite a few improvements made since v0.7.6. Here is a non-comprehensive list:

  • removed requirement to edit registry after ‘tv setup’ performed (Step 1) in order to see the guide … this is now handled in code
  • added capability to match stations with channels to remove the need for using the Lineup Selector tool (Step 3)
  • added capability to disable non-matched channels to remove the need for using the Guide Tool (Step 3)
  • made the epg123 lineup visible in Guide Tool. This appears functional but there are some quirks/errors…use at your own risk
  • includes generic series descriptions (only visible in search result series synopsis)
  • added tracing to log when there is a time discontinuity in the schedule
  • now uses ehPrivJob.exe directly instead of the Task Scheduler to reindex the guide
  • we now have icons! thanks to IT Troll … looks good

Due to adding the automatch feature, two builds were required; 1 for Win7 based WMC, and another for Win8 based WMC. Also included in each compressed file is the Newtonsoft.Json.dll file to make initial setup even easier.

14 March 2016; v0.7.6
Major improvements with the API calls to the SD server and tracing. Expect updates to take approximately half the time it did before with v0.7.5. Some minor updates that you probably won’t even notice.

Of note on the GUI, added a checkbox for the scheduled task to wake the computer to execute. Forgot to add it in v0.7.5 even though the code was there to handle it.

Happy 4 week anniversary!

07 March 2016; v0.7.5
After this one, I’m going to regroup for a little while. Need my energy to tackle the changes needed to cache schedules which will reduce network traffic and speed up mxf file generation. I’m pushing this one out for a user that ran into problems with the task scheduler. The project was targeted to .NET 4.5 framework and the user only had 4.0 installed.  Only caused an issue with task scheduler functionality.

  • Compiled for .NET 4.0 framework
  • Big improvement in tracing information
    • Actually removed the check box for turning tracing on/off. Tracing is now always on.
  • Increased the web timeout from 60 seconds to 120 seconds. Some out there are still timing out even after 3 retries and a final timeout setting of 4 minutes.
  • Not much else … it’s only been ~24 hours.

06 March 2016; v0.7.4
I know, it hasn’t been very long since last release, but this one is good. Most of the changes were GUI related.

  • Changed the definition of the checkbox for prepending “sXXeYY” season/episode information to the episode title. If the checkbox is unchecked, the episode description will be appended with SERIES: Season X, Episode Y.  It is one or the other.
  • Added another column to the channel lists of the lineups. Now includes a column for the channel name and it looks pretty good.
  • Finally added controls to add/delete a scheduled task to perform daily updates.
  • Minor corrections to the code and I’m working on better tracing information, but not much of that is in this release.

05 March 2016; v0.7.3
This is a minor release for the v0.7.x line. It includes descriptive names of the stations instead of just a callsign + “(EPG123).” I am also including a utility that will remove all station logos from the guide in case you are stuck the SD logos and do not have MCL XL to remove them for you.

02 March 2016; v0.7.2
Now includes the season number below the description text. That’s how it used to be! Who knew!?!

26 February 2016; v0.7.1
Obviously this site is under construction! In the meantime, it is simply a location to store the latest build of the epg123 program.