Schedule a recording by importing a command script into WMC?
-
- Posts: 6
- Joined: Sun Aug 26, 2018 6:10 pm
- Location:
- HTPC Specs:
Schedule a recording by importing a command script into WMC?
I searched a lot in this forum before asking...
Does anyone know how to import a script (XML, I think) into WMC to schedule the recording of a single show?
I am using a Hauppauge "WinTV-quadHD" tuner card for OTA shows, and TitanTV for a program guide. TitanTV generated a .TVPI script (sample below) which also contains metadata for the show. In all my poking around in WMC, I have not yet found a way to "read" or use that script file - did I miss something?
I am not (yet) interested in EPG123 and its requirement for a $25/year subscription to Schedules Direct. TitanTV works good enough for me to find shows to watch or record. I just want use the recording script it generates.
If this post belongs elsewhere, please let me know where to move it.
Thanks for reading, and for any helpful suggestions!
##### Sample .TVPI file from TitanTV follows this line. #####
<tv-program-info version="1.0">
<program>
<station>WDPN-DT5</station>
<tv-mode>digital</tv-mode>
<program-title>The Roy Rogers Show</program-title>
<episode-title>Jailbreak</episode-title>
<program-description>When a young man is mistakenly accused of murdering his fiances father, a local cafe owner takes his side and helps him break out of jail so that that they can prove the lads innocence and he can thus win his love back.</program-description>
<start-date>20210225</start-date>
<start-time>16:00</start-time>
<end-date>20210225</end-date>
<end-time>16:30</end-time>
<duration>00:30</duration>
<rf-channel>2</rf-channel>
<psip-major>2</psip-major>
<psip-minor>5</psip-minor>
<stream-number>5</stream-number>
</program>
</tv-program-info>
Does anyone know how to import a script (XML, I think) into WMC to schedule the recording of a single show?
I am using a Hauppauge "WinTV-quadHD" tuner card for OTA shows, and TitanTV for a program guide. TitanTV generated a .TVPI script (sample below) which also contains metadata for the show. In all my poking around in WMC, I have not yet found a way to "read" or use that script file - did I miss something?
I am not (yet) interested in EPG123 and its requirement for a $25/year subscription to Schedules Direct. TitanTV works good enough for me to find shows to watch or record. I just want use the recording script it generates.
If this post belongs elsewhere, please let me know where to move it.
Thanks for reading, and for any helpful suggestions!
##### Sample .TVPI file from TitanTV follows this line. #####
<tv-program-info version="1.0">
<program>
<station>WDPN-DT5</station>
<tv-mode>digital</tv-mode>
<program-title>The Roy Rogers Show</program-title>
<episode-title>Jailbreak</episode-title>
<program-description>When a young man is mistakenly accused of murdering his fiances father, a local cafe owner takes his side and helps him break out of jail so that that they can prove the lads innocence and he can thus win his love back.</program-description>
<start-date>20210225</start-date>
<start-time>16:00</start-time>
<end-date>20210225</end-date>
<end-time>16:30</end-time>
<duration>00:30</duration>
<rf-channel>2</rf-channel>
<psip-major>2</psip-major>
<psip-minor>5</psip-minor>
<stream-number>5</stream-number>
</program>
</tv-program-info>
- garyan2
- Posts: 7438
- Joined: Fri Nov 27, 2015 7:23 pm
- Location:
- HTPC Specs:
You would need to create a MXF file (xml) like the below and then import it using c:\windows\ehome\loadmxf.exe. All you need is the start time, duration, and channel number. I believe this will work. So you would need something to read the script TitanTV generates, and creates the MXF file for import.
Reference this and this.
Code: Select all
<?xml version="1.0" encoding="utf-8" ?>
<clickToRecord xmlns="urn:schemas-microsoft-com:ehome:clicktorecord">
<body>
<programRecord programDuration="30">
<service>
<key field="urn:schemas-microsoft-com:ehome:epg:service#mappedChannelNumber" match="exact">4</key>
</service>
<airing>
<key field="urn:schemas-microsoft-com:ehome:epg:airing#starttime">2006-05-15T11:00:00+09:00</key>
</airing>
</programRecord>
</body>
</clickToRecord>
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io
Keeping WMC alive beyond January 2020. https://garyan2.github.io
- garyan2
- Posts: 7438
- Joined: Fri Nov 27, 2015 7:23 pm
- Location:
- HTPC Specs:
Looks like the file extension needs to be .c2r ... not quite sure yet.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io
Keeping WMC alive beyond January 2020. https://garyan2.github.io
- garyan2
- Posts: 7438
- Joined: Fri Nov 27, 2015 7:23 pm
- Location:
- HTPC Specs:
Here's an example with some more options shown. I've never dealt with c2r, but it looks like you don't need to import it with loadmxf. Just double-click the file... WMC is associated with it and will import it.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<!-- Sample click-to-record (MSNBC Single-Episode Scenario) -->
<clickToRecord xmlns="urn:schemas-microsoft-com:ehome:clicktorecord">
<body>
<metadata>
<description>Record tonight's news on MSNBC</description>
</metadata>
<!-- Include 5 minutes of hard prepadding and postpadding. If the
specified airing is not found, allow an alternate to be scheduled. -->
<programRecord prepadding="-300" postpadding="300" allowAlternateAirings="true" allowAlternateService="false">
<program>
<key field="urn:schemas-microsoft-com:ehome:epg:program#title" match="exact">MSNBC News Live</key>
</program>
<service>
<key field="urn:schemas-microsoft-com:ehome:epg:service#callsign" match="exact">MSNBC</key>
</service>
<!-- For the EST time zone (-300 minutes from UTC), specify an explicit time. -->
<airing timeZone="-300">
<key field="urn:schemas-microsoft-com:ehome:epg:airing#starttime">2004-04-17T18:00:00Z</key>
</airing>
<!-- In other time zones, record if the program is found within
three hours (180 minutes) of the specified UTC time. -->
<airing searchSpan="180">
<key field="urn:schemas-microsoft-com:ehome:epg:airing#starttime">2004-04-17T18:00:00Z</key>
</airing>
</programRecord>
</body>
</clickToRecord>
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io
Keeping WMC alive beyond January 2020. https://garyan2.github.io
-
- Posts: 6
- Joined: Sun Aug 26, 2018 6:10 pm
- Location:
- HTPC Specs:
Thanks, garyan2. Now that I see the format of two types of files that can be imported into WMC (the "loadable" .c2r and the "importable" MXF) I see the TitanTV file format is significantly different. Rats.
Below, you wrote "So you would need something to read the script TitanTV generates, and creates the MXF file for import."
Seems I am still looking for that "something".
Below, you wrote "So you would need something to read the script TitanTV generates, and creates the MXF file for import."
Seems I am still looking for that "something".
- garyan2
- Posts: 7438
- Joined: Fri Nov 27, 2015 7:23 pm
- Location:
- HTPC Specs:
Right, you'll need something to translate/convert the TitanTV file to the c2r file for WMC. I was wrong about the mxf file, though it can be done that way as well to create ManualRequests in the mxf format and import, but c2r is really what you need.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io
Keeping WMC alive beyond January 2020. https://garyan2.github.io
-
- Posts: 2838
- Joined: Sun Jun 02, 2013 9:44 pm
- Location:
- HTPC Specs:
Here is some documentation for c2r from Microsoft (already linked above by Gary).
It appears that you are looking to create a "manual" recording request from TitanTV, since you will not have a TV guide.
Here is example code from the above documentation for a manual request:
It actually looks pretty simple (assuming it works). You just need the channel number to record, the start date/time and the duration.
Note that I modified the code from that site to add the "metadata" section so that the manual recording can have a specified name. I found that in this post.
You can also add certain elements to the "programRecord" section, like isRecurring="{true | false}" and daysOfWeek="{bitmask}" to have it record the same channel and time each weekday(s).
It appears that you are looking to create a "manual" recording request from TitanTV, since you will not have a TV guide.
Here is example code from the above documentation for a manual request:
Code: Select all
<?xml version="1.0" encoding="utf-8" ?>
<clickToRecord xmlns="urn:schemas-microsoft-com:ehome:clicktorecord">
<body>
<metadata>
<description>Test Recording</description>
</metadata>
<programRecord programDuration="30">
<service>
<key field="urn:schemas-microsoft-com:ehome:epg:service#mappedChannelNumber" match="exact">4</key>
</service>
<airing>
<key field="urn:schemas-microsoft-com:ehome:epg:airing#starttime">2006-05-15T11:00:00+09:00</key>
</airing>
</programRecord>
</body>
</clickToRecord>
Note that I modified the code from that site to add the "metadata" section so that the manual recording can have a specified name. I found that in this post.
You can also add certain elements to the "programRecord" section, like isRecurring="{true | false}" and daysOfWeek="{bitmask}" to have it record the same channel and time each weekday(s).
- StinkyImp
- Posts: 669
- Joined: Thu May 11, 2017 7:53 pm
- Location:
- HTPC Specs:
Hi GarbeDown!
May I ask you for some assistance?
I decided to take this on as a challenge but have run into an issue that you may be able to confirm for me.
I've successfully parsed the "program.tvpi" from TitanTV as follows:
Here's the grid from TitanTV:
As you can see, the TitanTV grid has this program starting at 2:00AM but the "program.tvpi" has it starting at 9:00AM. This is the GMT bias for my timezone.
Would you be so kind as to download a tvpi file from Titan and verify that the start time in the tvpi file is offset by your timezone bias (GMT - XX:00)? If so, I can start programming for that.
Thank you!
-
- Posts: 13
- Joined: Wed Jan 15, 2020 9:06 pm
- Location:
- HTPC Specs:
I'm not GarbeDown, but I just tried it and the time in the tvpi file was indeed GMT. My time zone is PST and a 11pm show had a time of 7am the next day.
- StinkyImp
- Posts: 669
- Joined: Thu May 11, 2017 7:53 pm
- Location:
- HTPC Specs:
Thank you so much! I don't use Titan TV or have easy access to multiple time zones, so any help I can get is welcome!
As Space said, "It actually looks pretty simple (assuming it works). You just need the channel number to record, the start date/time and the duration." and so far appears to be pretty simple. Sooo...
- Channel number
- Start Date
- Start Time
- Duration
Maybe Gary can shed some light on Item 1 since he's an expert on WMC channel design. According to Microsoft's Click to Record documentation:
The channel number must be in the format "major-minor" and isn't vague on the format. In preliminary testing on a few tvpi files, it imports just fine but doesn't map to the correct "minor" subchannel. I have some ideas but it's the workweek so time's limited!
Gotta go for now...
- garyan2
- Posts: 7438
- Joined: Fri Nov 27, 2015 7:23 pm
- Location:
- HTPC Specs:
I took a look at the ehRecObj.dll code and they have a flaw. When it finds the channel based on the channel number provided for ATSC, it returns the major channel number of that channel rather than the entire major-minor channel number. That means any c2r for ATSC will only properly work for the x.1 channels and not for the rest of the subchannels. The only other method I see is to use the channel callsign, which probably won't match what TitanTV is providing.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io
Keeping WMC alive beyond January 2020. https://garyan2.github.io
- StinkyImp
- Posts: 669
- Joined: Thu May 11, 2017 7:53 pm
- Location:
- HTPC Specs:
I wish this was consistent because consistency sometimes presents a solution. In the majority of cases the c2r submission maps to the x.1 channel. In a few cases it always maps to the highest numbered "minor" channel.
For example... I have five subchannels in the threes. No matter what channel I select, the c2r file maps to channel 3.5, not 3.1
I considered that BUT was immediately inundated by thoughts of the nightmare that would create...
At this point I'm not willing to throw in the towel. I'll probably spend more time on it this weekend. Thanks for your insights Gary. They're much appreciated!
- garyan2
- Posts: 7438
- Joined: Fri Nov 27, 2015 7:23 pm
- Location:
- HTPC Specs:
I didn't see that, but I didn't do a whole lot of tests. From what I saw, parsing of the c2r for the channel number would work correctly, but when it actually creates the request in ehrecobj.dll it only provides the major channel number. When the request is actually processed it simply finds the "closest" channel number. So it would be c2r = 3.3, init request = 3, final request = 3.1 (being the nearest channel number). But there must be something else for the final request for you to see 3.5 being chosen for that recording.
- Gary
Keeping WMC alive beyond January 2020. https://garyan2.github.io
Keeping WMC alive beyond January 2020. https://garyan2.github.io
- StinkyImp
- Posts: 669
- Joined: Thu May 11, 2017 7:53 pm
- Location:
- HTPC Specs:
You did enough to confirm that unless an x.1 channel is being selected, the c2r import will most likely end up elsewhere.
I did a cursory review of the MXF file structure to see if I could force a recording using loadmxf as you mentioned in your first response. It appears that I could load the actual episode or movie into an otherwise blank grid and then the user could go to that show and hit the record option.
Using the c2r option that I've developed, it imports into the scheduled recordings just fine BUT the user has to go into its properties and select the correct minor channel (if required).
This is one of the very rare cases where I've taken on a project that I won't personally use. Normally if I can use a product I'll go ahead and develop it. If anyone else can get use out of it, that's great.
With that in mind... This proof of concept is valid (if the minor channel is manually updated) and I'm going to throw in the towel. This will now join my pile of uncompleted projects.
-
- Posts: 6
- Joined: Sun Aug 26, 2018 6:10 pm
- Location:
- HTPC Specs:
I just confirmed renojim's answer about time zone is correct. The following snip from a .TVPI file was for a show at 2 AM Eastern time (GMT-5):
...
<start-date>20210304</start-date>
<start-time>07:00</start-time> <----- it added 5 hours!
<end-date>20210304</end-date>
<end-time>08:00</end-time>
<duration>01:00</duration>
...
-
- Posts: 6
- Joined: Sun Aug 26, 2018 6:10 pm
- Location:
- HTPC Specs:
StinkyImp and garyan2: Thanks for putting so much time into this question! I don't blame you for adding this topic to your collection of un-finished projects. I will also stop pursuing my idea of getting program information metadata from the TitanTV .TVPI file into WMC. Seems like a lot of trouble just to get the "basic" information converted into something that the WMC importer can use. I already had basic recording functionality covered.
I was looking for an easy way to save the "extra" information with each recording so I could see it using Windows Explorer. Desired information is program title, program sub-title (a.k.a. episode title, most important), season & episode (if possible) and program description (not as important). So I will probably stay over here on the "dark side" and stick with WMC's competitor: Hauppauge's WinTV, which works well with TitanTV's .TPVI files. I have asked them to add program sub-title as a new feature request (fingers crossed!).
FWIW: For the past 2 years, I have had good luck with WinTV. In fact, the recording/scheduling abilities of WinTV provide some controls WMC lacks, including:
- Standby or shutdown or keep running when done - individual choice for each recording/"series".
- Start date and stop date (or indefinitely) for each "series" recording.
- Individual pad-before and pad-after minutes for each recording.
- Recurrence setting for each recording: just once, daily, or weekly (each day has a checkbox).
I was looking for an easy way to save the "extra" information with each recording so I could see it using Windows Explorer. Desired information is program title, program sub-title (a.k.a. episode title, most important), season & episode (if possible) and program description (not as important). So I will probably stay over here on the "dark side" and stick with WMC's competitor: Hauppauge's WinTV, which works well with TitanTV's .TPVI files. I have asked them to add program sub-title as a new feature request (fingers crossed!).
FWIW: For the past 2 years, I have had good luck with WinTV. In fact, the recording/scheduling abilities of WinTV provide some controls WMC lacks, including:
- Standby or shutdown or keep running when done - individual choice for each recording/"series".
- Start date and stop date (or indefinitely) for each "series" recording.
- Individual pad-before and pad-after minutes for each recording.
- Recurrence setting for each recording: just once, daily, or weekly (each day has a checkbox).
- StinkyImp
- Posts: 669
- Joined: Thu May 11, 2017 7:53 pm
- Location:
- HTPC Specs:
The reason this post piqued my interest is because I'm in the same situation as you. Hauppauge tuners, OTA, want to use WMC and want it as cheap as possible. I tried WinTV but the wife hated it compared to WMC so it was a no go from the start.
Based on your reply I'm pretty sure the "Click to Record" solution won't do some of the things you require. If you want to use WMC with OTA on your Hauppauge tuners, the only thing I've found that addresses the majority of your wish list items (and is free) is EPG Collector. You might want to give that a shot.
As for me... EPG123 solves my "Happy wife, happy life!" situation and delivers an exceptional WAF.
$25 per year to Schedules Direct is a small price to pay for those two items.
Based on your reply I'm pretty sure the "Click to Record" solution won't do some of the things you require. If you want to use WMC with OTA on your Hauppauge tuners, the only thing I've found that addresses the majority of your wish list items (and is free) is EPG Collector. You might want to give that a shot.
As for me... EPG123 solves my "Happy wife, happy life!" situation and delivers an exceptional WAF.
$25 per year to Schedules Direct is a small price to pay for those two items.