Menu

Media Center Guide

Expanse
2020-02-02
2020-02-09
  • Expanse

    Expanse - 2020-02-02

    Note, these are not instructions or a guide, just what worked for me to overcome some problems I was having. I can't offer support for any of the apps I used. I just want to share what tools I used to get my WMC working. I used EPG Collector with Fixpak18 because I ran into issues with Fixpak15. I was able to restore my settings and start over because I had a backup from before I changed anything in Media Center.

    The following worked in my case to successfully replace the Media Center EPG that ended 31-Jan. for free. This was tested on my US ATSC Over The Air (OTA) lineup using EPG Collector for two methods: OTA guide and xmltv.xml import. I ran it twice and so far no issues with Fixpak18.

    I'm not an expert on this, and I'm sure Steve will correct any errors in my process.

    Short version:
    Backed up my WMC settings.
    Unsubscribe (unmap) my channels from the old WMC guide service.
    Run EPG Collector to generate my OTA guide or import my xmltv file into WMC (I tried both).
    Subscribe (map) my channels to the new EPG Collector generated lineup.
    Transfer my old scheduled recordings to the new EPG Collector lineup.
    Set EPG Collector to run on a schedule.

    Applications [don't know if links are allowed here]:
    -EPG123 - Very helpful to manage backups, lineup subscriptions and transfer scheduled recordings. It is actively supported by the author on thegreenbutton forum. It is only needed to help set up this configuration.
    -EPG Collector EPG Collector V040300 Install AND EPG Collector v4.3 Fixpak18 - This program to collect EPG data and import it into WMC.
    -zap2xml (optional) or another source for an xmltv.xml file - For those not satisfied with the OTA guide.

    My steps:

    1. Ran epg123Client clicked Backup. This allows Media Center settings to be restored if needed.
      EPG123 recommends a Clean Start, but I found this to be risky because I could not get past the stage of
      Windows Media Center is downloading setup data for your region, before it would allow me to scan for channels. It was not necessary to scan since all my channels were already working. Also WMC only scans UHF OTA frequencies. You would have to manually add any VHF frequencies, in my case that was 24 channels.

    2. Before using EPG Collector for the OTA guide, I used the TuningInfo found on the left side of the epg123client window to note the frequencies my current channels are using. Just ignore the sub number. This saved me a lot of time running an ATSC collection in EPG Collector because it scans empty frequencies for 5 min. before going to the next one. I was not satisfied with the OTA guide for my region of the US. Some stations only provided up to 9pm for the same day. I would have had to run EPG Collector several times a day.

    3. In epg123Client my previous lineup was OTA Antenna. I unsubscribed my channels from the old Media Center service. I clicked in the left side, hit CTRL-A to select all channels then right clicked and selected Unsubscribe.

    4. Configure and run EPG Collector to generate OTA guide or import my xmltv.xml file into Media Center.
      On the Output tab I only enabled Windows Media Centre Output, set Series and Repeats to Not Used. I did not select Automatic Mapping because I used epg123 to subscribe. I believe Run standard tasks after import will need to be checked when I automate my collection process.

    5. Once EPG Collector is finished. I ran epg123Client. On the right side drop down Lineup Services menu I selected EPG Collector. On the left side I then clicked match by # Number and within seconds my channels were subscribed (mapped) to my EPG Collector guide data.

    6. To transfer my scheduled recordings to the new lineup clicked on the Transfer Tool button at the top of epg123Client. On the left side select the backup made earlier to list old scheduled recordings, then press the >>> button to transfer the ones it can match to the right side. The items in green should be working. I selected all the pink/salmon shows and right clicked to cancel. I had to run Task Scheduler\ Microsoft\ Windows\Media Center: PvrScheduleTask and ReindexSearchRoot, because I didn't select it earlier in EPG Collector WMC Output.

    7. I Then opened Media Center to check my results. I would recommend making another backup once you have everything setup the way you want. You do not need to use epg123 once everything is setup. Just run EPG Collector and set it up to run on a schedule, if you like.

     
  • Steve Bickell

    Steve Bickell - 2020-02-03

    That's great work. Nothing I would correct there.

    It's possible EPGC could scan the VHF frequencies if they were added to the ATSC tuning file so were then available to select in EPG Centre but I can't try it so can't defintely say yes or no.

    Whoever developed EPG123 obviously knows a lot more about the inner workings of WMC than I do if it can reliably map the data to channels in a lineup.

     
  • Gary Ryan

    Gary Ryan - 2020-02-08

    Thanks from the developer of EPG123.

    I would make a caution to #6 above. Those series recording requests that are green on the left and right side of the transfer tool is only so because they have the Gracenote (TMS/Zap2it/Schedules Direct) series ID. It won't work using the IDs from the stream provided by EPGC, and it won't work with an XMLTV source other than EPG123, zap2xml, mc2xml, or XMLTV sdjson projects.

    If your series recordings are WishList requests, then it will work no problem.

     
  • Steve Bickell

    Steve Bickell - 2020-02-08

    Hi Gary,

    Which Zap2it tag are you referring to for the series ID? One of the episode-nums? I presume it becomes the UID of the series.

    It should be possible for EPGC to use it as the series ID when importing a Zap2it/Schedules Direct file.

     
  • Gary Ryan

    Gary Ryan - 2020-02-08

    In the XMLTV file, it will be the dd_progid episode_num system. Here is a breakdown (I'm quoting myself from a different forum):

    Episode
    “EP< series id >.< production number >” where < series id > is 8 digits and the < production number > is 4 digits.

    Series/Show
    “SH< series id >.0000” where < series id > is 8 digits and the production number is all zeros. Typically the SH data will be the generic series information. It could just be a placeholder until the episode specific information gets entered in the listings, or it could be something like a daily news broadcast which will not continually update the descriptions or production numbers.

    Movies
    “MV< movie id >.0000” where < movie id > is 8 digits. From what I have seen, the same movie can have different IDs for the different languages, rather than using the same ID and just adding the titles/descriptions/metadata for the different languages to it.

    Sports
    Sports is tricky in general. They can be “SP”, “SH”, or “EP” which makes things fun. You will have to rely on other data provided for the program to determine what it is.

    So the < series id > is what is used for the series requests. I don't know how you populate the SeriesInfo field of the MXF, but the Transfer Tool will use a uid of "!Series!< series id >" instead of the MC format of "!MCSeries!< ms series id >".

     

    Last edit: Gary Ryan 2020-02-08
  • Steve Bickell

    Steve Bickell - 2020-02-08

    Thanks I can work with that.Of course all the series for my current users wil have a UID of the current format so changing it will duplicate all the seriesinfo records. Seeing as I create a series for every program that could be a lot of extra data. Some users logs I've seen indicate 20,000+ program.

    While you are around maybe you can answer a question for me. What's the difference between the Id and the UID of an object? I've always used the UID (via GetUidValue) but I've come to question that lately.

     
  • Gary Ryan

    Gary Ryan - 2020-02-08

    Within the MXF file? An easy way to think of it the ID is only referenced within that specific MXF file. It must be unique only to that file. The UID needs to be unique and constant between all MXF files... that is the UID that will be used within the WMC database.

    I'm looking at one of your MXF files right now, and you're pretty much okay. My notes:

    1. GuideImages - id can be simpler for the reason above (i1, i2, ...) and no need for a uid.
    2. SeriesInfo - I wouldn't bother with the shortTitle, any descriptions or dates that you don't have. This info is only available if you do a category search, get a return on a series with multiple episodes in the results, and look at the synopsis. Since you don't have that information, just leave them empty.
    3. Program - only use the year attribute if it is a movie. For any attributes that are "false", just populate with a null/empty string rather than a "0". I take it you have these set as booleans?
    4. Program - how are you determining the UID? Just curious.
    5. Service - Need to make sure the UID for multiple different stations are not duplicated. I'm looking at multiple "!Service!-1👎-1" services which will screw everything up nicely. I made this back in November so can't remember how it was created. My have been my setup.
    6. ScheduleEntry - Only the first program in a service's ScheduleEntries needs a startTime. You would only need to populate another entry for that service if there is a gap in the schedule.
    7. Channel - for ATSC, recommend using the number and subnumber, i.e. channel 9.1 would be number="9" subnumber="1". (I use these entries to do my mapping in the EPG123 Client)

    Almost all of my suggestions above are really to shrink the size of the MXF file; make it more efficient. Content/structure wise, it works.

    Big thing I noticed for your XMLTV to MXF work. You are giving the XMLTV channels IDs that are treated as UIDs within WMC. It looks like the first channel in the XMLTV file is something like XMLTV1 and the second is XMLTV2, and so on. If the XMLTV file changes such that the channels are in a different order, or you added a channel, then the listings will get all scrambled. This is related to your question about ID and UID. My suggestion would be to give the XMLTV channels a UID based on the channel ID within the XMLTV file itself. That should keep them constant and unique and will be as reliable as the XMLTV file (user's responsibility).

    There are definitely challenges when trying to take in ANY XMLTV file and create an MXF. I think overall, you could leave everything as-is EXCEPT the channel UIDs. That should really be fixed to avoid problems. That is the only reason I have tried to steer folks away from using EPGC for converting XMLTV to MXF... too much risk.

     

    Last edit: Gary Ryan 2020-02-09
  • Steve Bickell

    Steve Bickell - 2020-02-09

    Actually I meant within the WMC database. I understand the difference in the MXF.

    Thanks for the comment on the MXF contents. I don't know how old the file is that you are looking at but my responses below are based on the very latest. It hasn't quite made it to general release yet although recent releases to NA users have changed the format since November when the first US ATSC user contacted me because the Microsoft guide was coming to an end. Prior to that EPGC didn't work for Zap2it/Schedules Direct because it didn't understand the XMLTV channel ID format. Thats why you are seeing channel UID's that look like an incrementing number. Now when importing an XMLTV file you can specify the channel ID is in Zap2it/Schedules DirectATSC format and you end up with valid channel UID's. It will also optionally download the thumbnails referred to in the Zap2it file and maintain them locally.

    Point 4: UID is now as follows

    ONID:TSID:SID:dd-MM-yyyy+HH-mm-ss

    ONID, TSID and SID will all have valid values for DVB. For ATSC ONID will be zero, TSID will be channel number and SID will be subnumber (0 for cable). Date/time as per .Net custom format and is start time for programme. Should guarantee uniqueness.

    EPGC generates one programme for every EPG entry. It doesn't try and share a common programme entry between multiple EPG entries of the same programme.

    Point 5: UID is ONID:TSID:SID. Comments as for point 4.

    Point 7: The current format does this.

    Thanks for taking the time to comment. It's appreciated. I've attached a more recent MXF file so we are talking about the same thing.

     
  • Gary Ryan

    Gary Ryan - 2020-02-09

    Ah, well internally the ID isn't used... it doesn't make it past loadmxf.exe. If you want to see the WMC database in all its glory, you can download the epg123 portable package and run epg123Client.exe -x . The -x switch gives some additional buttons. In the toolbar above the leftside listview, there is a button called 'Store Explorer'... click that and see everything.

    Point 4: certainly understand the approach, and for EPGC it is probably the best way to reach commonality for multiple sources. Looks good.

    Point 7: looks good, and I see you are using the matchName as well. Are you doing that for DVB-S and DVB-T as well?

    Looks good, and thanks!

     
  • Steve Bickell

    Steve Bickell - 2020-02-09

    I mean the Id property that a lot of classes In the WMC code use (where would we be without ILSpy?). Anything that inherits from StoredObject has both an Id property and a Uids property (also accessed via GetUidValue).

    I've always wondered what the difference betwwen the two as far as usage is concerned. One is a long and the other string.

    I'll take a look at your explorer. I wrote something similar just for my own use when I originally did the MXF import several years ago.

    Yes, the match name is present for all types of input. Hopefully DVB-T2 is the same format as DVB-T and DVB-C is the same as the DVB-T with a different prefix because I've never seen examples of either.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.