I can't take the credit for this one, my friend Reinhard (who's not on this forum yet) made the discovery. When you download the EPG you're actually downloading an encrypted .xml file. The encryption method is DES and uses the following key:
"Copyright Microsoft Corp. All rights reserved"
The source code for decrypting the guide file is
here . It will produce an
xml file with all the guide data. We're currently researching the xml file to understand what all the attributes mean. Anyone want to help?
To load guide data into MCE, all you have to do is:
1 - run XMLTV to get an xml file with guide data.
2 - convert the xml file to Microsoft's xml format for guide data.
3 - DES-encrypt the xml file with the above key.
4 - run the code below to install the guide data.
ZITAT
string fname = @"guide.xml";
Microsoft.Ehome.Epg.GuideLoader gl = new Microsoft.Ehome.Epg.GuideLoader();
bool b = gl.LoadSync(fname, Microsoft.Ehome.Epg.Helper.EpgFileHelper.CurrentEpgFile);
This method is more elegant than what MCEGuider does because we're using Microsoft's own guide loader function. We are currently working on a tool that converts XMLTV data to the Microsoft guide format. I'll keep you posted on our progress...
Being able to control the guide download is actually quite usefull. You could use it to build an MCE kiosk with access to only a few tv channels, you could create a filtered guide for your kids, or build a smart web service that generates a personalized tv guide based on your preferences. Loads of possibilities, so I hope Microsoft decides to open up the format in the future.
Disclaimer: please keep in mind that decrypting guide data can be interpreted as a violation of the DMCA in the USA. However, grabbing your own guide data in countries not (yet) supported by Microsoft, and then simply using encryption to feed the data to MCE should be legal. You might want to check your national legislation.