What is iSpyTV?

iSpyTV is an ad supported (well, not yet) freeware program that constantly searches internet TV guides to find programs matching search criteria that you specify. When a selected program begins, iSpyTV automatically tunes your TV, cable or satellite box to the correct station and invokes iuVCR to record it to your hard drive. When the program ends, iSpyTV automatically shuts down iuVCR and waits for the next program to begin.

Features

Requirements

Notes on the Actisys IR-200L. I've found when iSpyTV asks the Actisys to change the channel on my Dish receiver twice, at least one of the requests succeeds 100% of the time. Caution: Depending on your cable or satellite box (STB), the Actisys may not be a good solution. If the Actisys fails to send a complete channel to a Dish box, the Dish box does nothing. This may not be the case with your STB.

To illustrate, imagine that iSpyTV is set to send the commands to change the channel to channel 230 through the Actisys 2 times before recording a program. On the first attempt, the Actisys successfully sends "230" to the Dish receiver. The channel changes. On the second attempt, the Actisys only sends a partial channel, "30". In the case of the Dish receiver, the second attempt to change the channel is ignored and the correct program gets recorded. On your STB, it might work differently. Also, keep in mind, things might happen the opposite to the above. The first attempt might fail and the second might succeed. Investigate how your STB behaves in these scenerios carefully before plopping down your hard earned dollars on the Actisys. On the other hand, the only other alternative that I know of is the much more expensive Redrat ($125) .

Notes on IRTuner. A modified version of IRTuner is available here. Dish network users can use this irtuner.tvr file (make sure to set your Dish remote to address 4).

Installation

Main Window

The main window displays a detailed log of all of the activities of both the scheduler and the recorder "threads".

The scheduler thread scans the Internet TV guides at regular intervals (or when you select Reset from the File menu) searching for programs matching your wish list. The amount of time that the scheduler looks ahead in the Internet TV guides is configurable from the Options dialog. When the scheduler finds a program that matches an item in your wish list, it adds the program to its database queue.

The recorder thread monitors the scheduler's queue, waiting for the next selected program to begin. A minute before a selected program is about to start, the recorder thread will change your satellite or cable set top box to the appropriate channel (if the Use Tuner option is unchecked in the Options dialog). After changing the channel, the recorder thread will launch iuVCR to start recording the program. The recorder thread will wait for the program's duration and close the iuVCR application. After recording a program, the recorder thread scans all of the files in the Recording directory, sums their file sizes and deletes, if necessary, the oldest and lowest priority recordings to bring your file usage of your recordings back down below the maximum specified in the options dialog. It then waits for the next program to begin and repeats the process.

Options

Program File Directory

This is the root directory for the scheduler's database. The scheduler will create an XML file for each of the programs that it selects for recording. This directory will also contain several subdirectories. Each of these subdirectories may also contain XML files containing a program's details (see the "Examine the Contents of a Program File" for an example of what a program XML file contains). For most part, you can ignore the files that are created under this directory structure. It is only necessary to look at the contents of these subdirectories if you are curious about what programs were selected for recording, not selected due to conflicts or automatically deleted.

The Conflicts subdirectory contains a program file for each of the programs that were not selected due to a conflict with another selected program with the same or higher priority. You can examine the list of files in this subdirectory if wish to see what programs were not selected and adjust your priorities and reset the scheduler if desired.

The Deleted subdirectory contains a program file for each of the programs that were deleted when file space was reclaimed by the recorder thread. You can examine this directory's contents if you are curious about which programs were automatically deleted.

The Recorded directory contains a program file for each of the programs that were recorded. The scheduler uses the list of files in this directory to determine if a program was previously recorded. If you would like to re-record a program that was previously deleted, the next time it is broadcast, you can delete its program file from this directory and select Reset from the file menu.

If a program was selected, but not recorded because iSpyTV was not running when the program started, it's program file will be copied to the Skipped directory next time iSpyTV is run. Like the Conflicts and Deleted directories, this directory is used for informational purposes only. Although the scheduler and recorder create files in these directories, they are not actually used after they are created. Feel free to occasionally delete the files in these directories if you wish.

Provider

If you use DirectTV or Dish Network, simply select the appropriate item from the drop down list for your time zone. If you have a different provider, you will have to figure out your provider’s Yahoo! "lineup" identifier and enter that identifier into this field. The simplest way of doing this is to go to Yahoo!'s TV Listings, follow the instructions to view the TV listings for your provider. The URL address of the listing should contain a "lineup" parameter. Write down the lineup parameter's value and type it into the provider field of the Options dialog.

Hours to Look Ahead

This is the amount of time iSpyTV will look ahead in your provider's listings for programs that match the criteria you have selected in your wish list. iSpyTV will scan the listings at least once every day (more often if you select a value of less than 48 hours) and cache any listings it in pulls down in memory and on disk when it shuts down. The higher this value, the more memory iSpyTV will consume, although iSpyTV's memory requirements are fairly low. A higher value will also allow you to see a longer list of upcoming programs in the Search by Title dialog (see below).

Recordings Directory

Enter the directory path of where you want your recorded programs (AVI files) to be placed.

iuVCR Path

Enter the path to the iuVCR executable in this field. You can also enter "iSpyTvDummyRecorder" into this field, if you want to use the included dummy recorder for testing and evaluation purposes. Remember only a registered copy of iuVCR will work properly with iSpyTV.

Directory Size

This is the preferred maximum amount of filespace (in megabytes) you wish to allow iSpyTV to use for recordings. Note that iSpyTV is not aware in advance of how large the recorded output of a program will be, so files are only deleted after this maximum has been exceeded. Calculate this value by subtracting the amount of space required for the longest program you ever expect to be recorded (probably 2 hours) from the free space on your hard disk.

For example, suppose you are using iuVCR with the DIVX codec at 1480 kbps and PCM audio codec. A two-hour recording might consume about 3 gigabytes of disk space. You have 100 gigabytes free on your hard drive. You could enter up for 97000 for the Directory Size value.

Use Tuner

Check this box if you want to use the internal tuner on your TV card. Uncheck it, if you are using an IR transmitter to control your satellite or cable box. If is value is checked, iSpyTV will pass the “ch” parameter to iuVCR when iSpyTV launches it. iuVCR will handle changing the channel on your TV card to the passed channel before recording. If this value is unchecked, iSpyTV will use IRTuner to change the channel thru your IR Transmitter before recording a program.

Return Channel

Enter the number of the channel that you wish iSpyTV to return to after a recording. This value is only applicable if the Use Tuner option is unchecked. This is intended to be a parental control of sorts. This prevents your cable or satellite box being left on a premium channel after a late night program was recorded.

Available Channels

The channels that should be searched by iSpyTV must be initially set before any programs will be selected. By default, no channels are included. It is important to only select the channels that you actually receive. Besides for the obvious reasons, this is especially important for Dish Network subscribers. On a Dish Network receiver, changing to an unsubscribed channel will leave your receiver in a state where the channel can only be changed through use of the guide. Entering a new channel number will have no effect.

When you select the “Set Available Channels…” option from the main menu for the first time (or after changing your provider), iSpyTV will build a list the channels offered by your provider. This may take a few moments, since this will require accessing the Internet.

The Available Channels dialog contains two exclusive lists, “Don’t Search” and “Search”. Only programs that match at least one of items in your wish list AND will be shown on one of the channels in the “Search” list will be selected for recording.

Channels can be added to the “Search” list by selecting the channels in the “Don’t Search” list and clicking on the Add button. Channels can be removed from the “Search” list by selecting the channels in the “Search” list and clicking on the remove button. Removing a channel from the “Search list” adds it back to the “Don’t Search” list.

WishList

You can use the Wish List to tell iSpyTV what programs to search for. You can add two types of searches to the Wish List, title searches and actor searches.

With a title search, the search string should consist of keywords separated by a single space. The keywords are case insensitive. Programs must match all of the keywords in your search string to be selected. A title search string of “fast times ridgemont” would select for example, “Fast Times At Ridgemont High”.

With a actor search, the search string should exactly match the actor’s and director’s name. A search string of “Anthony Hall” would not select programs starring “Anthony-Michael Hall”. Actor searches are much more expensive to make than title searches. Each actor search requires a separate query to the Internet TV guide and therefore, actor searches should be used sparingly. Always use title searches in place of actor searches if either can accomplish matching a program you are looking for.

The priority allows you to prioritize each of the searches in your Wish List. The higher the priority the more important the program. Priorities are used when resolving conflicts. Priorities are also used to select which recordings should be deleted first when space needs to be reclaimed.

To add a new title or actor search to your wish list, click on the New button. The fields at the bottom of the dialog will be enabled. Select the search type. Enter either title keywords or an actor’s name and select the priority. To edit an existing search, select it from the list and make desired changes in the fields below. To delete a search, select it and click on the delete button.

Click on the Search button to view the Title Search dialog.

Title Search

The Title Search dialog will display a list of all of the upcoming programs being shown on your selected channels (see Available Channels section). Each time the scheduler thread downloads a TV guide from the Internet, it adds all of the programs in that guide to this list. The time period that the list covers depends on how far in the future the scheduler thread has scanned the guides.

If this list doesn’t display any programs, it means that you have either not selected any channels to search in the Available Channels dialog or the scheduler thread has not yet scanned any Internet TV guides.

Doubling clicking on a program title in the list will add a title search with a search string equal to the title and the default priority (5) to your Wish List. Selecting a title from the listing and clicking on the “Info…” button will launch Internet Explorer and display a Yahoo! WebPage with the programs details.

Recording

Looking at the Schedule in Explorer

Examining the Contents of a Program File

Looking at Recordings in Explorer

Advanced Options

Most of the iSpyTV’s configuration settings can be changed via the Options dialog, however there are two IRTuner related settings that can only be changed by directly editing the “SchedulerSettings.xml” file:

MaxIRTunerAttempts – this is the maximum number of times iSpyTV should attempt to call IRTuner’s SetFrequency function if it returns a failure response. The SetFrequency function should return a successful response if IRTuner is configured correctly and it is able to open the needed COM port. During development, I found that IRTuner occasionally was unable to COM port and that attempting to open it multiple times usually correctly the error. A bug may have caused this in the early stages of iSpyTV that has since been corrected, but this setting is still available. It should not be necessary to have to change its default value.

NoIRTunerRepeats – this is the number of times iSpyTV will call the SetFrequency function successfully before starting the recording of a program. This setting is only applicable if you are using the Actisys IR-200L.See my notes on the Actisys.

Download