WisconsinEric

EPG from XMLTVListings

Recommended Posts

I am starting a new topic since the current (2/17/19) discussion of TV Guide not updating has gotten overcrowded.

My hope for this topic: just focus on using xmltvlistings.com as an alternative to the non-functional TV Guide EPG.

Has anyone automated the EPG from xmltvlistings similar to what is described for schedulesdirect.org in the "EyeTV Portfolio Software" Forum discussion? Specifically, not being a programmer, I need some guidance in using the API from xmltvlistings (see the link to it in their help menu). I understand what it is designed to do, but the 4MB file it downloads is not identified as an .xmltv file in format, and is not in a format that EyeTV can use. So other steps must be needed.  Thanks anyone for your help.

In comparison, the XMLTListings non-programmers option to simply download a 7-day xmltv EPG file works just fine; after preparing EyeTV*, you just drag the file onto the EyeTV icon. But it would be nice to automate it, get 14-day data, and hopefully the season/episode info (not included in the 7-day file).

* - before using the 7-day EPG direct download, manually change the EPG source to xmltv in EyeTV (use the dropdown menu in Channels) for each active channel in your lineup, and (this is important) save the result as a new lineup. Make sure the lineup is the same as the lineup you select when you sign up for XMLTVListings.com (that site allows you to customize the lineup just as EyeTV does).

Share this post


Link to post
Share on other sites

I did this a little differently. I dragged the xmltv schedule I downloaded onto the EyeTv icon (when quit) in the Finder. EyeTV started and loaded the file. When I changed each Channels listing to wmltv, I was prompted to choose a channel from a list that appeared, to assign to the channel in my list. Although the names on the popup list weren't exactly the same as the names in my Channels list, it was fairly easy to figure out which one corresponded. After I clicked ASSIGN, a schedule for that channel filled that grid row. I did this for all the channels in my Channels list. There were a few that seemed to have no corresponding listing, and these are still on EPG. I never saved the result, but the assignments and the grid persist through quitting and restarting EyeTV. Before starting, I set the Guide in EyeTV prefs to none, then quit EyeTV, although I don't know if this matters.

Edited by Earl Noe

Share this post


Link to post
Share on other sites
1 hour ago, WisconsinEric said:

Has anyone automated the EPG from xmltvlistings similar to what is described for schedulesdirect.org in the "EyeTV Portfolio Software" Forum discussion? Specifically, not being a programmer, I need some guidance in using the API from xmltvlistings (see the link to it in their help menu). I understand what it is designed to do, but the 4MB file it downloads is not identified as an .xmltv file in format

Hmm.  Their documentation says "Get listings in XMLTV Format, for a given lineup."  It looks like there are three options:  get, get_lineups, and get_channels.  Are you using "get"?  What does the 4MB file look like inside?  It should look like the example here: https://www.xmltvlistings.com/help/api/xmltv

Share this post


Link to post
Share on other sites

I gave it a try, and the command to run (or put in a script) is:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days >> xmltv.xml

That produces an xmltv file (named xmltv.xml) that EyeTV happily consumed.

However, "XML TV Listings" data is much more limited than Schedules Direct, and they only allow 5 connections per day, so that limits my ability to test.

 

  • Thanks 1

Share this post


Link to post
Share on other sites
1 hour ago, DC Rackerby said:

Hmm.  Their documentation says "Get listings in XMLTV Format, for a given lineup."  It looks like there are three options:  get, get_lineups, and get_channels.  Are you using "get"?  What does the 4MB file look like inside?  It should look like the example here: https://www.xmltvlistings.com/help/api/xmltv

Hi - I am using 'get' (the first of the 3 API options). The file has the information I want, but the file type is identified by my Mac as text: the file downloads with the file name '14' and no file type, presumably because I chose a 14-day EPG listing option. Whereas the Direct Download option (at https://www.xmltvlistings.com/help/start/listings) downloads a file identified with the correct .xml file type, which can be dragged directly onto the EyeTV icon to load the EPG (as Earl Noe described above, that's the method I've been using manually). Here's the first few lines of what 'get' produces:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv date="02/18/2019" source-info-url="http://www.tvmedia.ca" source-info-name="TV Media">
  <channel id="3156.stations.xmltv.tvmedia.ca">
    <display-name>ABC (WBAY) Green Bay, WI</display-name>
    <display-name>WBAY-TV</display-name>

etc. (with this detail, there are presumably thousands of lines just for 14 stations in one lineup). That matches the illustration you linked to. I also opened a Direct Download file (the more limited 7-day option); it appears identical in contents to the 'get' API file, but is identified as .xml in the file name. So . . . I wonder if it is a simple matter of just manually reassigning the file type to get EyeTV to recognize it? I'll try that later this evening (I'm recording something right now). What do you think?

 

Share this post


Link to post
Share on other sites
2 hours ago, WisconsinEric said:

Hi - I am using 'get' (the first of the 3 API options). The file has the information I want, but the file type is identified by my Mac as text: the file downloads with the file name '14' and no file type, presumably because I chose a 14-day EPG listing option. Whereas the Direct Download option (at https://www.xmltvlistings.com/help/start/listings) downloads a file identified with the correct .xml file type, which can be dragged directly onto the EyeTV icon to load the EPG (as Earl Noe described above, that's the method I've been using manually). Here's the first few lines of what 'get' produces:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv date="02/18/2019" source-info-url="http://www.tvmedia.ca" source-info-name="TV Media">
  <channel id="3156.stations.xmltv.tvmedia.ca">
    <display-name>ABC (WBAY) Green Bay, WI</display-name>
    <display-name>WBAY-TV</display-name>

etc. (with this detail, there are presumably thousands of lines just for 14 stations in one lineup). That matches the illustration you linked to. I also opened a Direct Download file (the more limited 7-day option); it appears identical in contents to the 'get' API file, but is identified as .xml in the file name. So . . . I wonder if it is a simple matter of just manually reassigning the file type to get EyeTV to recognize it? I'll try that later this evening (I'm recording something right now). What do you think?

Earlier DC Rackerby had said:

I gave it a try, and the command to run (or put in a script) is:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days >> xmltv.xml

That produces an xmltv file (named xmltv.xml) that EyeTV happily consumed.

However, "XML TV Listings" data is much more limited than Schedules Direct, and they only allow 5 connections per day, so that limits my ability to test.

Confirmed, the problem was just the file type. As soon as I manually assigned a .xml file type to the file downloaded from XMLTVListings, EyeTV recognized/loaded it correctly. You are correct too about the data: despite the longer 2-week listings time period, there are still no data on series/episode, and info about the program is more limited than it was with TV Guide. I guess that leaves Schedules Direct as the only source of series/episode data, but otherwise XMLTVListings produces a very decent EPG with an API to automate downloads and is more user friendly (hey, $5/year cheaper!). It is a fairly new service, based in Ottawa, Ontario, so maybe they will up their game in the future. Thank you, DC Rackerby, for your help and the way of using the 'get' command!

Share this post


Link to post
Share on other sites
19 hours ago, WisconsinEric said:

Hi - I am using 'get' (the first of the 3 API options). The file has the information I want, but the file type is identified by my Mac as text: the file downloads with the file name '14' and no file type, presumably because I chose a 14-day EPG listing option. Whereas the Direct Download option (at https://www.xmltvlistings.com/help/start/listings) downloads a file identified with the correct .xml file type, which can be dragged directly onto the EyeTV icon to load the EPG (as Earl Noe described above, that's the method I've been using manually). Here's the first few lines of what 'get' produces:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv date="02/18/2019" source-info-url="http://www.tvmedia.ca" source-info-name="TV Media">
  <channel id="3156.stations.xmltv.tvmedia.ca">
    <display-name>ABC (WBAY) Green Bay, WI</display-name>
    <display-name>WBAY-TV</display-name>

etc. (with this detail, there are presumably thousands of lines just for 14 stations in one lineup). That matches the illustration you linked to. I also opened a Direct Download file (the more limited 7-day option); it appears identical in contents to the 'get' API file, but is identified as .xml in the file name. So . . . I wonder if it is a simple matter of just manually reassigning the file type to get EyeTV to recognize it? I'll try that later this evening (I'm recording something right now). What do you think?

 

You could try changing "open with" to EyeTV in GetInfo.

Share this post


Link to post
Share on other sites
8 hours ago, Earl Noe said:

You could try changing "open with" to EyeTV in GetInfo.

Good idea, though simply manually assigning the .xml file type did the trick too (see my post from 2/17). I am moving toward automating getting the EPG, so I'll use the command that DC Rackerby wrote in his post above. That's step 1, downloading the EPG file, which I know works. Step 2 is loading it into EyeTV; in the other discussion thread, there's a command given by Weber and Rackerby should work for this file from xmltvlistings as well (they are using schedulesdirect). Finally, Step 3 is to save this as an executable script, and have it run daily at 5 am or so. For that there have been a few suggestions, so I have to work that out, but since I have a son who does this sort of thing for a living I am going to rely on him. 😀

Share this post


Link to post
Share on other sites
11 hours ago, WisconsinEric said:

I am moving toward automating getting the EPG, so I'll use the command that DC Rackerby wrote in his post above. 

This command:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days >> xmltv.xml

will append the new info to the xmltv.xml file.  So, file will get larger and larger.

This is probably better:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days > xmltv.xml

> redirects output to a file, overwriting the file.

>> redirects output to a file appending the redirected output at the end.

 

Share this post


Link to post
Share on other sites
10 minutes ago, DC Rackerby said:

This command:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days >> xmltv.xml

will append the new info to the xmltv.xml file.  So, file will get larger and larger.

This is probably better:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days > xmltv.xml

> redirects output to a file, overwriting the file.

>> redirects output to a file appending the redirected output at the end.

 

Ah, good point, thank you again (and I learned something). 😀 I assume that (a) the two commands are equivalent if the file does not currently exist, and (b) the file will go to the default location for downloads set up for the web browser. No need to reply unless I'm wrong on either count.

Share this post


Link to post
Share on other sites
1 hour ago, WisconsinEric said:

Ah, good point, thank you again (and I learned something). 😀 I assume that (a) the two commands are equivalent if the file does not currently exist, and (b) the file will go to the default location for downloads set up for the web browser.

As the command is written, the xmltv.xml file will be created in the directory where the command is executed.

If you want it to be created in a particular directory, you would specify that.  For example:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days > ~/Downloads/xmltv.xml

  • Thanks 1

Share this post


Link to post
Share on other sites
15 minutes ago, NotInUse said:

Okay so it seems the XMLTV file includes ALL channels for my provider in my zip code, not merely those channels "enabled" at schedulesdriect. This is what is bogging down EyeTV.. loading 800 + channels rather than the 50-75 I have enabled.

 

Does anyone know how to restrict the XML to only enabled channels?

Did you edit the Channels window in EyeTV to select xmltv from the dropdown EPG menu (has to be done manually for each enabled channel)? You have to do this after you download the .xml EPG file and drag it onto the EyeTV icon. With 50-75 channels enabled that will be a PIA, but you only have to do it once. The channels you have checked as enabled should exactly match the channels you edited schedulesdirect to form your channel lineup.

Share this post


Link to post
Share on other sites

 

8 hours ago, NotInUse said:

Yeah seems the mc2xml by default pulls every channel for the provider/zip code. The key was to tell mc2XML to ONLY pull specific channels via a mc2xml.chl file in the same directory (just list the channels you want in the file, that's all).

You can modify your lineup via the web site (see attached).

Screen Shot 2019-02-20 at 9.44.07 AM.png

Edited by DC Rackerby

Share this post


Link to post
Share on other sites
8 hours ago, NotInUse said:

Yeah seems the mc2xml by default pulls every channel for the provider/zip code.

You can also edit your lineup via Schedules Direct's web site (if you are using that service).

Screen Shot 2019-02-11 at 4.16.11 PM.png

Share this post


Link to post
Share on other sites
1 hour ago, NotInUse said:

DC...

The saved lineup at SchedulesDirect does NOT alter what mc2XML pulls. I have a saved lineup. 

Well, it does if you are using the older service (-T flag in mc2xml), but not with the JSON service (-J flag in mc2xml).

If you click on "Lineup Support" on the Schedules Direct web site, you'll probably see that you have two lineups (one of which you cannot edit).

However, I thought this thread was primarily about xmltvlistings.com

Share this post


Link to post
Share on other sites
On 2/19/2019 at 11:38 AM, DC Rackerby said:

This command:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days >> xmltv.xml

will append the new info to the xmltv.xml file.  So, file will get larger and larger.

This is probably better:

curl https://www.xmltvlistings.com/xmltv/get/API Key/LineupID/Days > xmltv.xml

> redirects output to a file, overwriting the file.

>> redirects output to a file appending the redirected output at the end.

 

Still trying to get automating xmltvlistings to work. Using the curl command above (see below) does not download a file, only creates a 4K file with that filename (and it is not listed as a download in my xmltvlistings account). I am trying to figure out what I'm doing wrong. I know the API works, because I ran it from Firefox; it produces a 4MB .xml file named <14> (for the # of days requested), I do have to manually add the file type to get EyeTV to accept it. In the curl command, does the URL portion have to be a clickable link as you have it? In mine it is not, since I saved the script file as a plain text file (TextEdit wants to save by default as RTF, which I had assumed would not work in Terminal). Here is the script I used (the only one of the 3 commands that works is the 30-second pause, which I put it as a safety margin so the download would be completed before loading into EyeTV). I had previously identified it as executable in Terminal (the file name of the script is xmltvepg):

cd /Users/godfreye/Scripts/
chmod 755 xmltvepg

Anything wrong jump out at you? Thanks for the help.

#!/bin/bash
cd /Users/godfreye/Scripts/
curl https://www.xmltvlistings.com/xmltv/get/[my API key]/[my lineup number]/14 > xmltv.xml
#allow time for download to complete
sleep 30s
#load EPG into EyeTV
open -a EyeTV xmltv.xml

Share this post


Link to post
Share on other sites
31 minutes ago, WisconsinEric said:

Using the curl command above (see below) does not download a file, only creates a 4K file with that filename (and it is not listed as a download in my xmltvlistings account).

I just re-read this.  That sounds like a typo in your URL.

Share this post


Link to post
Share on other sites

^ Thank you DC Rackerby, you pointed me to the correct source of the error. It is actually working now! My mistake was copying and pasting the commands into a text document; I think I picked up some stray characters or unseen formatting markers. On that theory, I retyped the entire curl command and ran it from Terminal. Then the program worked: it ran without error message; the downloaded file was the correct size and content; and the EPG in EyeTV jumped to 2 full weeks out from its previous maximum. Thank you for your help! My next step is to automate it, and I've set up the script using launchd provided in the other thread. I'll answer my own question in starting this thread with a summary for whoever's interested.

Share this post


Link to post
Share on other sites

AUTOMATING DOWNLOADING 14-DAY EPG FROM XMLTVLISTINGS.COM, Steps 1 & 2 of 3

This is for a Mac; I am running 10.14.3 (current OS) on a 2010 Mac Mini Server. I'll try to spell this out in simple commands; I'm not a programmer - if I can do this, so can you.

Thanks to LOTS of help from posters above & on the other thread in this Forum, and some Internet sleuthing, here is a short program that will accomplish 2 of 3 steps needed to automate the EPG sourced from xmltvlistings.com: download a 14-day EPG and load it into EyeTV. The 3rd step for full automation, running it daily at, say, 5 am, requires a different short set of commands that I will test in the next 48 hours and post Step 3 when it's running.

WHAT YOU HAVE TO DO FIRST:

a. Sign up for an xmltvlistings.com account (14 day free trial), set up your custom channel lineup, and in your dashboard there take note of 2 pieces of information: the API key, and your 4-digit channel lineup number. The lineup number appears after you've set up the lineup; the API key is issued when you sign up for the account. Both numbers are in your dashboard whenever you log in. When entered in the program below, these numbers eliminate the need for you to log in to download the EPG.

b. Prepare EyeTV to receive an xmltv EPG file: do a manual download (just this once) from xmltvlistings of the EPG for your channel lineup. It will give you a 7-day EPG listing. Open EyeTV and in Preferences set the EPG source to 'none'. Next, drag the downloaded EPG file onto the EyeTV icon to load the EPG. You won't see it in program listings until you go to the Channels window and do 3 things. First, mark as active (checkbox) exactly the same channels you specified for your xmltvlistings channel lineup. Second, in the EPG column, open the drop down menu and select the bottom option, xmltv. This must be done manually for each active channel, but just this once. Ignore the inactive channels. For each channel when you do this, you will be asked to assign the corresponding channel from your xmltvlistings lineup (which is why you had to load it into EyeTV first). Third, save this as a new channel lineup (see bottom of Channels page) and delete the previously active one; the new one will become your active channel lineup for the EPG. This last step is necessary because I found by trial and error that otherwise the EPG selections revert back to TVGuide or ATSC whenever you quit EyeTV / restart the computer.

c. On your Mac, in your User/[username]/ directory, create a new folder named Scripts.

PROGRAM TO DOWNLOAD EPG / LOAD INTO EYETV:

Notes: I tested this, it works. If you try it and it doesn't work, try retyping the commands yourself. Mine initially errored because I evidently had picked up some stray characters when copying & pasting. Type the following program into TextEdit (first set it to do plain text files, not rich text, in Preferences). Save it with a descriptive file name, here I'll use getepg. No file type is needed. I dispensed with a conditional command in the example previously posted here to check for an active Internet connection; I added a 30 second pause to make sure the download has time to complete (that can be shortened if you wish). In line 3, the '14' is a variable you choose with the number of days listings you want (14 is the maximum). You can also delay it, for example 14 days listings starting tomorrow; see the xmltvlistings site under Help . . . API for how to do that. Now here's the program. Be sure to substitute the name you chose for your program each time the name I chose (getepg) appears. Brackets show information you need to insert (without the brackets!).

#!/bin/bash
cd /Users/[yourusername]/Scripts/
curl https://www.xmltvlistings.com/xmltv/get/[your API key]/[your lineup #]/14 > xmltv.xml
#pause 30 seconds as cushion for download to complete
sleep 30s
#load EPG into EyeTV
open -a EyeTV xmltv.xml

Save this script as a text file without file type, and drag the file into the Scripts folder you previously created. As written, that's where the downloaded EPG file will automatically go.

To identify this as an executable program, now open Terminal and type the following 2-lines of instructions (you only have to do this once):

cd /Users/[yourusername]/Scripts/
chmod 755 getepg

My next and final step is to automate this, and I'll post a working result. Meanwhile, to run the above program manually, log into Terminal and type these 2 commands; the first is not necessary if you are already in Terminal in the Scripts directory:

cd /Users/[yourusername]/Scripts/

./getepg

What this will accomplish: log into your xmltvlistings account, download a 14-day EPG into your Scripts folder (where it will overwrite any previous EPG download), and load it into EyeTV, where it will almost instantly populate the Program Guide.

THANK YOU, THANK YOU to everyone who has contributed on this Forum with their time and knowledge and enabled me and others to restore an EPG to EyeTV!

 

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for the instructions for getting lists from the xmltvlistings.com site.  I generally followed them and they worked for me.  However, I had a few differences.  I left the server setting on TV Guide instead of resetting it to none.  In the Channels window, after an initial download, I switched only my favorite channels to xmltv using the dropdown menu.  I didn't save anything, channel lineup or otherwise..  However, even if I quit and reopen EyeTV, my changes seem to persist.  The download did populate the listings window for the channels that were switched to xmltv.

For convenience I also created a EyeTV script as described in the EyeTV Help guide.  This is actually an AppleScript so I used the AppleScript editor (in Applications/Utilities) to construct it.  All it does is execute the unix shell script described by the previous post. (Thanks again!)  To build it, just type something like

    do shell script "/Users/Bill/scripts/getepg"

into the AppleScript editor window, and save it with some name like getupdate. The AppleScript editor will give the file an extension so the full name will be something like getupdate.scpt in the folder where you saved.  For EyeTV to see it, it needs to be moved to a /Library/Application Support/EyeTv/Scripts/ folder, which must be created if it does not already exist.  Also EyeTV must be quit and restarted for the scripts menu to appear (as a funny symbol between the Windows and Help menus on the main menu bar).

This is probably irrelevant if the download process is automated, but it is nice to be able to invoke an update from directly within EyeTV.

Share this post


Link to post
Share on other sites

^ You're welcome & thanks, UnixGuy. What you suggest is actually useful: when TV Guide was the EPG source, the Program Guide window had an "Update Program Guide" option in the same dropdown menu that had/still has "Go to Now." This option to manually update the EPG is missing when your source is xmltv (and ATSC too, for that matter); your AppleScript (which I haven't tried yet) brings it back. That's occasionally been useful when TV stations/networks are slow to update program listings, or an unexpected event alters previously scheduled programming. So thanks!

Note to all: notice that xmltvlistings.com has a daily maximum of 5 downloads, so you can't be too liberal with trial runs.

Share this post


Link to post
Share on other sites

If you are running into strange errors with the bash script try this in terminal:

tr -d '\r' <FileWithCarriageReturns> FileWithOutCarriageReturns 

I have no idea where my script acquired the carriage returns but I had the hardest time getting the script to work before running the tr command.

Share this post


Link to post
Share on other sites

Here is Step 3 (see Steps 1 & 2 above) in automating an EPG from xmltvlistings.com. Steps 1 & 2 download the EPG and upload it to EyeTV, where it will populate the Schedule for 14 days out. UnixGuy yesterday added an AppleScript that will put a command to do this with one click in a new AppleScript menu added to EyeTV's menu bar (see Step 4 below). Now we're ready for Step 3: automate Steps 1 & 2 to run every day at a specific time, here I'll use 5 am (it will actually be 5:02 am, see below). Tested this and after fixing an inordinate number of typos and syntax errors, it works fine. I'll number the parts starting with 3, since this is Step 3. This is for a Mac, I'm running OS 10.11.6 on a mid-2010 Mac Mini Server.

Step 3: Automate the Program to Download an EPG from xmltvlistings.com and Load It Into EyeTV

3.1  Wake up your computer to run the program: Pick the time you want this to run (I am using 5:02 am). Go the Mac's Preferences, then under Energy Saver click on Schedule (lower right corner). I set my computer to wake up 2 minutes before the job runs (so 5 am daily). Optionally, you can sleep it 15 minutes later (give ample time for the program to finish).

3.2 Open TextEdit, in Preferences, New Document: Under Format, set it to Plain text. Rich text has additional characters for formatting that can crash a program.

3.3 Open a new document in TextEdit, and type in the following code. You can try copying & pasting, but I always seem to pick up extra characters that way that foul things up. This code will run the program you created in Steps 1 & 2 (previous post). Information you have to type in that is specific to you and your computer is in red. Notes beside the program are for your information, they are not part of the code.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.[yourusername].[yourprogramname]</string>       [note: do not include .plist in this name]
  <key>UserName</key>
  <string>[yourusername]</string>
  <key>Program</key>
  <string>/Users/[yourusername]/Scripts/[yourprogramname]</string>    [note: you put the named program for Steps 1 & 2 in a Scripts folder you created]
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>5</integer>
    <key>Minute</key>
    <integer>2</integer>
  </dict>
</dict>

What the above program does: runs your previously-created program "yourprogramname" to download the EPG and load it into EyeTV every day at 5:02 am. In the above code, time is the 24 hour clock (so you'd enter '13' under the key variable Hour to run it every day at 1 pm). There are additional optional capabilities in launchd, which this is using (e.g., to check for an Internet connection before proceeding); you can find several beginners manuals that are pretty easy to follow - just search "launchd user guide" under Google.

3.4 Install the above file in the right place.

(a) Save it with the file name you chose in Steps 1 & 2 previously, except the name will now end in .plist, using this format: com.[yourusername].[yourfilename].plist. For example: com.smithj.getepg.plist. 

(b) Save it into this folder location: /Users/[yourusername]/Library/LaunchAgents . Or you can save on the desktop and drag it into that folder. Note: there is also a LaunchAgents folder in the System Library, you don't want that one.

3.5 Final step: load the program so it will run automatically. Launchd has a procedure for loading a program manually using Terminal, but since all programs in LaunchAgents load on computer startup, just reboot your computer and it's ready to run. You're done. Hopefully, you will have to do all this just once. From now on, you will see an updated 14-day schedule in EyeTV every day.

Step 4: Return Update EPG Now capability to EyeTV.

This capability was lost when you switched from TV Guide to xmltv as the EPG source. It used to appear in the Program Guide drop down menu (that starts with "Go to Now"). Thanks to UnixGuy (post above) for the following procedure/code.

What this will do: add an AppleScript menu to your EyeTV Menu Bar (it will appear as an icon between Window and Help). It will have just one program: to update the EPG Guide immediately (I called mine UpdateEPGNow). Click it, and the program you prepared for Steps 1 & 2 will run instantly; it seems to take 30 seconds to a minute to complete. EyeTV appears to freeze while this runs, so I suggest not doing it when you record or watch.

4.l Open Apple's "Script Editor" software; you will find it in Applications/Utilities. Enter just the following one line command:

    do shell script "/Users/[yourusername]/Scripts/[yourprogramname]"      [note: this is the program from Steps 1 & 2]

4.2 Save it with a descriptive file name (I used UpdateEPGNow); this file name will appear in the AppleScript menu in EyeTV. Save it into this obscure location:

/Library/Application Support/EyeTV/Scripts/

Notes on step 4.2: if there is no Scripts folder, create one. There is also an EyeTV folder within a different Application Support folder in your user account; you do not want that one.

Comment: as UnixGuy points out in his post above, Step 3 probably makes Step 4 superfluous, but in rare occasions (e.g., a late change in TV programs due to a major event) you might want to run it.

 - - - -

That's it folks. Please call any errors to my attention so I can edit in corrections. I suggest you download/save this; who knows how long Geniatch will maintain this Forum, it could disappear without warning one day. And NOTE THE FOLLOWING:

Most of what I've posted here is not my original work, I have simply collected in one place work posted by others who know more than I do about writing code, and in minor ways adapted it for using xmltvlistings.com as an EPG source (most of what has been posted is for using schedulesdirect.org, which is more complicated). In particular, SPECIAL THANKS TO DC Rackerby (responsible for most of the code I've posted), Earl Noe, and Millstadt Weber, and to UnixGuy for the AppleScript code to update EPG now from within EyeTV!

 

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.