eyeControl_002.pngEye Control

Version 1.8

Copyright © 2006-2009, Jamie Curmi (curmi.com), All rights reserved.


What is EyeControl?


EyeControl allows you to remotely programme your EyeTV from any networked Mac - on a local network or across the internet.


+ View your recorded programmes - conveniently grouped and expandable by title.

+ Sort your programmes by title, date or channel.

+ Create/Edit/Delete scheduled or recorded programmes remotely.

+ Play files locally in full screen direct from EyeControl.

+ Browse TV Guides on-line, with support for scripts and URLs to add programmes direct from guides.

+ Supports text in languages other than English.


How much does EyeControl cost?


EyeControl is donation-ware. This means that the software is free, however I appreciate donations to help fund further development of this and future OS X applications. I am hopeful that some people will appreciate the work I have put in to this product, and will give as much or as little as they feel it deserves. Please see the help menu or about box for information on making donations. I appreciate your help.


Requirements


+ PowerPC or Intel Macintosh running OS X 10.5 or higher

+ EyeTV 1.8.x, EyeTV 2.x or EyeTV 3.x

+ Internet or network connection for remote operation


Installation


EyeControl should come to you as a zip file. If downloaded from certain web browsers (such as Safari), the zip file may be expanded automatically, leaving you with the EyeControl application in your download folder.


Place EyeControl in your Applications folder (or wherever you store your applications).


Running EyeControl


The first time you run EyeControl, the software will attempt to use EyeTV on your local machine. If you do not have EyeTV on your local machine the application will show no schedules or recorded programmes. You can now set your preferences for remote control of EyeTV.


Quick Start


1. Start EyeTV on the remote computer.

2. Enable "Remote Apple Events" on the remote computer. To do this, open your System Preferences, go to "Sharing", and click the checkbox next to "Remote Apple Events". Make sure your firewall is not blocking Remote Apple Events.

3. Start EyeControl on the control machine.

4. Go to the Preferences of EyeControl (see below) and set up your IP Address/Bonjour name for remote control.

5. If asked for remote username and password, input your details.


Preferences


The Preferences panel is available from the EyeControl "Preferences..." menu. There are 4 parts to the panel:


Pasted Graphic.tiff


General

This is where you set the IP address (or Bonjour name) for the remote machine that will be running EyeTV.


NOTE: You must have EyeTV already running on the remote machine for EyeControl to interact with it.

NOTE: You must have "Remote Apple Events" on on the remote computer. To do this, open your System Preferences, go to "Sharing", and click the checkbox next to "Remote Apple Events". Make sure your firewall is not blocking Remote Apple Events.


Playback

You can play back recorded programmes from EyeControl - though playback will only occur on the remote machine. Here you can choose to playback in a window, or in full screen.


TV Guide

If you use an on-line TV guide, you can set the URLs for that guide here. By default it will use YourTV.com.au (an Australian TV Guide).


You can also choose an AppleScript program to be run when you select "Add" in the TV Guide section of the interface. This script must follow certain rules, explained in the section on AppleScripting below.


NOTE: I can not provide you with a script that works for YourTV.com.au. Unfortunately, the last person who released a script to work with YourTV was sent a cease-and-decist letter from YourTV. I can't afford a legal battle.


Channel Association

Some Web-based TV Guides may use links that activate a URL scheme that EyeControl understands. However, the TV Guide may use a different naming scheme than that of your EyeTV, so an association between channel names on the guide and channel numbers on EyeTV are maintained. In most cases you will not have to edit these associations, as every new channel resulting from such a link will bring up a dialog for you to choose the correct association. This preference is here in case you need to edit these later, or for advanced users.


Using EyeControl


The main window has a tabbed area with two tabs - "Scheduled" and "Completed". "Scheduled" shows programmes yet to be recorded. "Completed" shows programmes previously recorded with EyeTV.


Pasted Graphic.tiff


"Completed" programmes are grouped by title name, and can be expanded to reveal individual episodes. This allows you to keep individual episodes of a given series together.


At the top of each table you can sort by clicking on the column heading, much like the Finder.


At the bottom of each window are a number of buttons - depending on the tab selected. These buttons are:


Refresh - this will refresh the list of scheduled and completed programmes, fetching from the remote machine.


Delete... - this will delete a selected programme.


Edit... - this will edit a selected programme.


New... - this will create a new programme schedule.


Play/Stop - this will start playing or stop playing a selected programme (on the EyeTV machine).


To the right of the window is the TV Guide. This has 3 buttons.


Guide - this will open your default internet browser to the TV guide as set in the preferences.


Personal - this will open your default internet browser to the personal part of any TV guide set in your preferences


Add - this will run an applescript supplied in your preferences. See AppleScripting below.


Firewalls


As mentioned, to use EyeControl remotely, the machine running EyeTV must have "Remote Apple Events" switched on in the system preferences. However, this alone may not be enough. You must also ensure that any firewall allows TCP port 3031 traffic through. This could mean the firewall on the control machine, along with the firewall on the remote machine running EyeTV. Just adjusting the software firewall in OS X may not be enough - your router may also need to allow port 3031 traffic through. If you use Airport, it may also need to forward data on port 3031.


More secure networking setups are possible, for example using ssh connections to the remote machine to tunnel 3031 traffic. Setups such as this are not covered here.


AppleScripting


The TV Guide allows you to choose an AppleScript to be run when the "Add" button is selected. This applescript may, for example, take the front most window of Safari, and from this extract the details of the TV programme selected in that window.


If you want to make use of an AppleScript, your AppleScript should return the following representing a single selected programme:


{date, duration, title, channel, description, episode}


where:


date is an AppleScript "date" object, representing the day and time of the scheduled recording.


duration is a "real" representing the number of seconds the recording will go for.


title is a "string" representing the title of the programme


channel is a "real" representing the channel number of the programme


description is a "string" representing a description of the programme


episode is a "string" representing the episode name.


In the TV Guide preference, a user can also choose to say that "Programmes available in HD should use HD channels by default". The idea of this option is that some programmes may be shown in both SD and HD. Your script may want to always use the SD version (saving space) unless this preference is set.


To make use of this preference, in AppleScript you should do something like the following:


set useHD to false

try

do shell script "defaults read com.curmi.EyeTrack useHD"

set useHD to ((result as integer) as boolean)

end try


and later check "useHD" to see if you should record the HD version.


URL Scheme


A website can use the EyeControl URL Scheme to automatically add a schedule to the application when the user clicks a button on the website. This URL Scheme is described below:


eyecontrol://new?command=value&...


The commands and expected value formats are as follows:


title should have a value that is a string representing the title of the programme


episode should have a value that is a string representing the episode name of the programme


desc should have a value that is a string representing the description of the programme


channelName should have a value that is a string representing the channel name


channel should have a value that is an integer representing the channel number (this has precedence over the channelName)


date should have a value that is a string of the form YYYYMMDD HHMM representing the date and time of the programme


duration should have a value that is the number of seconds duration for the programme (default is 2 hours)


All values should be URL encoded. At a minimum, the title and date should be supplied, along with one of channelName or channel. It is best to supply a duration, rather than just accept the default of 2 hours.


The following simple example script will run in a web browser and produce appropriate URL calls to create new recording schedules. This may aid you in understanding the URL scheme or setting up your web based guide to work with EyeControl:


<HTML>

<BODY>

<FORM action="eyecontrol://new" method="GET">

<P>

<LABEL for="title">Title: </LABEL>

<INPUT type="text" name="title"><BR>

<LABEL for="episode">Episode: </LABEL>

<INPUT type="text" name="episode"><BR>

<LABEL for="desc">Desc: </LABEL>

<INPUT type="text" name="desc"><BR>

<LABEL for="channel">Channel Name: </LABEL>

<INPUT type="text" name="channelName"><BR>

<LABEL for="date">Date (format YYYYMMDD HHMM) </LABEL>

<INPUT type="text" name="date"><BR>

<LABEL for="date">Duration (seconds) </LABEL>

<INPUT type="text" name="duration"><BR>

<INPUT type="submit" value="Send"> <INPUT type="reset">

</P>

</FORM>

</BODY>

</HTML>


Known Bugs and Limitations


+ Schedule conflicts will bring a dialog to the front of EyeTV, locking up EyeControl until this dialog is dismissed

+ Custom repeat settings can not be created or edited.


Disclaimer


EyeControl is not a product of Elgato - makers of EyeTV. It is not maintained or supported by Elgato. No warranty is made to EyeControl's usefulness, and no responsibility will be taken for loss incurred through its use or misuse.


Icon


The icon used by EyeControl was provided by Adam 'Elroy' Mazzitelli (http://www.elroyonline.com)


Contact


EyeControl is Copyright © 2006-2009, Jamie Curmi, All rights reserved.


Please let me know if you find the product useful. Also let me know of features you might like to see implemented, or any bugs you find.


Jamie (jamie@curmi.com) - http://curmi.com


Revision History


Version 1.8, 22nd August 2009

o Universal 32/64-bit build

o Snow Leopard ready

o Minor bug fixes

o Note there is a bug with the "Play" feature and EyeTV 3.1.2. This should be fixed in Elgato's next release.


Version 1.7, 9th August 2008

o Updated to work with EyeTV version 3.03


Version 1.6, 25th November 2007

o Fixed bug that occured when editing/deleting files in Leopard

o Added new larger Leopard icon (thanks Elroy)


Version 1.5, 6th April 2007

o Fixed bug where a deleted recording was still selected on next deletion or edit

o Added ability to stop a playing recording, rather than just play another

o Remembers column sort order for tables

o Added support for URL scheme eyecontrol://. See help file for details.


Version 1.4, 23rd July 2006

o Fixed bug where a blank episode name could be displayed incorrectly

o Potential bug fix for channels with same numbers but different names

o No longer prevents playback from a remote machine to the local machine


Version 1.3, 19th March 2006

o Fixed bug where refresh wasn't called after creating new programmes

o Fixed bug that prevented creation and editing of programmes in some locales

o Error messages now include slightly more detail as to the type of error encountered


Version 1.2, 13th March 2006

o Fixed bug where application could get stuck in a dialog loop if you didn't have EyeTV on the same machine as EyeControl

o Error messages now include slightly more detail as to the type of error encountered

o Improved help


Version 1.1, 12th February 2006

o Fixed bug when text was too long in description of new recording

o Fixed date bug on parent when displaying multiple recordings with same title

o Fully tested on EyeTV 2.x (thank you Elgato)


Version 1.0, 5th February 2006

o First release