Program: replaySchedule.exe Version: 116.42 Author: Kevin J. Moye (moyekj@yahoo.com) Update: 05/20/2005 Desc: Program to generate a recording schedule html file for ReplayTV 4000/4500/5000/5500 DVR series for those using ethernet connection. Web: http://replayguide.sourceforge.net/replaySchedule PROGRAM HIGHLIGHTS ------------------ o Creates an html file containing listings of programs to be recorded by one or more of your Replay units (A.K.A. to-do list). For multiple RTVs you can create a single to-do list output for all of them combined. o Considers single, show-based (recurring) and theme-based channels for determining the schedule. Zone-based channels are not considered due to lack of information to determine matching shows. o Any scheduled recordings in conflict are highligted in red in the html file. The conflict winner determined using Replay conflict resolution algorithm is highlighted in yellow indicating the show most likely to be recorded among the conflicting shows. o Implements the record "at or around" logic of Replay for determining which shows will be recorded for Recurring Channels. o Considers "padded" show times in the generated schedule. o You have the option of having the program list programs you may be missing. Missed programs are those whose titles and channel names match those of Recurring Channels you have setup but that are not scheduled to be recorded (not part of to-do list). This enables you to catch programs that may move around a lot in scheduling that you would otherwise miss. This option can be turned on using --missing command line option or in a replaySchedule config file. You can further specify to only consider certain channel names for this option to limit the listings to certain channels of interest. When this option is enabled the program will also flag recurring channels with no schedule matches. This is very useful to catch changes in recurring show titles in the schedule that make the RTV miss recording them because of the name change. This also helps identify channels on your RTVs that are no longer needed since the show is no longer airing. These channels are listed in the html output under the default title (can be changed) of: "Recurring Record Channels with no Matches" o You also have the option of generating a listing of already recorded shows by your RTV(s) in html format. o Note that there are now quite a few command-line options to control the output of the program so take some time to get acquainted with all of them. There are several examples given below illustrating most of them. SIGNUP FOR A DATADIRECT ACCOUNT ------------------------------- If you don't already have an account, sign up for a free DataDirect account by visiting the following link: http://labs.zap2it.com/ Use following certificate for signing up: "DGYM-ZKZM-CBUT" You will be able to configure your specific lineups once you have signed up and logged in. DOWNLOAD TV LISTINGS (xmltv tv_grab_na_dd method) ------------------------------------------------- (See below to download TV listings in DataDirect format instead of xmltv format - much faster but requires Perl to be installed) 1. If you don't already have an account, sign up for DataDirect account as described above in this README file. 2. Install xmltv-0.5.31 or later (http://sourceforge.net/projects/xmltv) You will need to use the xmltv tv_grab_na_dd program for downloading program schedules. (Note: previously this program used tv_grab_na listings but the new DataDirect listings are much faster to download so is now used instead). 3. Make a config file to store your DataDirect account login name & password. For example, make a file called dd.conf that contains the following 2 lines: username: YourLoginName password: YourPassword (Obviously substitute YourLoginName & YourPassword with your DataDirect user name and password) 4. To grab 8 days worth of listings and store in "schedule.xml": xmltv.exe tv_grab_na_dd --config-file dd.conf --days 8 --output schedule.xml DOWNLOADING TV LISTINGS (DataDirect Perl client method) ------------------------------------------------------- (See above to download TV listings in xmltv format instead of DataDirect format - slower method but does not require Perl to be installed) 1. If you don't already have an account, sign up for DataDirect account as described above in this README file. 2. Once you have an account there are various methods for obtaining listings. The file "ddgrab.pl" released with the replaySchedule distribution is a sample Perl script for obtaining the listings. You should edit the "ddgrab.pl" file and modify the following settings to suit your needs: $username = "username"; # Username for DataDirect $password = "password"; # Password for DataDirect $cnf_xmlfile = "./dd.xml"; # XML Output File $days = 8; # Default Days to Download Obviously you will need Perl installed to use this script. You can download a Perl installation for any platform from here: http://www.activestate.com/Products/ActivePerl/ The 5.6.1 version is sufficient for running this script. DOWNLOAD TV LISTINGS (traditional xmltv tv_grab_na method) ---------------------------------------------------------- (See above DataDirect-based methods to download TV listings which are much faster than using this method). 1. Install xmltv-0.5.31 or later (http://sourceforge.net/projects/xmltv) You will need to use the xmltv tv_grab_na program for downloading program schedules. 2. If this is your first time you must first configure: xmltv.exe tv_grab_na --configure 3. To grab 8 days worth of listings and store in "schedule.xml": xmltv.exe tv_grab_na --days 8 --listings schedule.xml SAMPLE replaySchedule RUNS -------------------------- NOTE: replaySchedule supports two different tv listings formats. By default the program assumes you are using xmltv format. If using DataDirect format you must specify "--dd" as a command line option. This program is command-line based so you need to run from a Windows command window (or DOS box) or from a UNIX shell. In Windows you can make a shortcut out of the command or a batch file. In unix you can setup a shell script. Here are some sample runs that are explained below: 1. replaySchedule --ip 192.168.1.100 2. replaySchedule --ip 192.168.1.100 --schedule na.xml 3. replaySchedule --ip 192.168.1.100 --html rtv.htm 4. replaySchedule --ip 192.168.1.100 --ip 192.168.1.101 5. replaySchedule --ip 192.168.1.100 --notheme 6. replaySchedule --ip 192.168.1.100 --recorded recorded.htm 7. replaySchedule --ip 192.168.1.100 --missing KCBS,KNBC,KABC,KTTV,KCOP,ESPN,ESPN2 8. replaySchedule --ip 192.168.1.100 --missing !HBOP 9. replaySchedule --ip 192.168.1.100 --ip 192.168.1.101 --schedule na.xml --html rtv.htm --missing KCBS,KNBC,KABC,KTTV,KCOP,ESPN,ESPN2 --notheme 10. replaySchedule --dd --ip 192.168.1.100 --ip 192.168.1.101 --schedule dd.xml --html rtvdd.htm These are the details on the above examples: 1. Simplest run. Expects XMLTV listings file "schedule.xml" to be present in same directory where you run the program. Generates a "sched.html" output file with the to-do list for RTV with IP 192.168.1.100. 2. Same as 1. but use listings file "na.xml". 3. Same as 1. but use html file "rtv.htm" for the to-do list output. 4. Similar to 1. but additionally query RTV with IP 192.168.1.101 and generate a to-do list of the combined machines in "sched.html". 5. Same as 1. but leave out theme matches from the html output file. 6. Generate to-do list html and recorded programs html. Same as 1. but also generate file "recorded.htm" that contains listings of programs already recorded by the RTV. 7. Same as 1. but additionally list any programs you may be missing on the specified channels. NOTE: You can avoid using --missing option and instead use replaySchedule.conf file (or --config file option) to specify the list of channels to consider for displaying "missed" programs. 8. Similar to 7. but this time list any programs you may be missing on all channels EXCEPT the ones specified (HBOP) following the --missing option. Note that essentially the leading '!' character reverses the logic of the --missing option compared to the previous example. 9. Combining various options all together Create listings in file "rtv.htm" using XMLTV listings file "na.xml" for two RTV's on your LAN. Furthermore, exclude Theme-based channel matches from the output and also list any programs you may be missing on the specified channels. 10. Sample run specifying that listings are in DataDirect format instead of XMLTV format and in file dd.xml. NOTE: You can assign names corresponding to your RTV IP numbers in the replaySchedule.conf file. replaySchedule will then you these more friendly names in place of the IP numbers in the html output. NOTE ON USING CONFIGURATION FILES --------------------------------- A sample config file called replaySchedule.conf with default settings comes with the program. You can place this file (or a copy of it) in the same directory where you run replaySchedule to control the output of the program. See the file itself for more details. You can also use the "--config configFile" option to specify a full path to a config file. Things you most likely will want to change are the "replayMap" IP->Name lines and perhaps the "htmlMissingChannels" line (don't forget to uncomment the line if you want to use this feature). CHANNEL MAPPING --------------- In some cases the Replay channel names do not always match the channel names given in the xmltv schedule (for some channels) This can cause all those programs on these channels to not show up in the generated recording schedule html file. If this is the case you can supply a './channelMap' file to map xmltv channel names to Replay channel names. Syntax is: xmltvChannelName replayChannelName Example: USA USAP Maps xmltv channel name USA to Replay channel name USAP. NOTE: You can supply command-line option "--mapFile file" to specify an alternate file instead of the default "./channelMap". TROUBLESHOOTING --------------- o There are many command-line switches for this program. For a summary of all of them use the --help option. For example: replaySchedule --help o If things don't appear to be working right you can attempt to troubleshoot yourself using the --debug switch and redirecting STDOUT to a file. For example: replaySchedule --ip 192.168.1.11 --debug > debug.out 2> stderr.out o The debug.out file contains details on the channel information extracted from the RTV as well as matched show information. For example, you can tell from the debug output if the channel times are being computed correctly. o If you have a problem you can't resolve please do as follows: 1. Run replaySchedule the normal way but be sure to use the following arguments: --bindump bin --asciidump asc For example: replaySchedule --ip 192.168.1.11 --bindump bin --asciidump asc 2. The run in step 1 should create 2 files in the directory you ran: asc_IP and bin_IP (where IP is your replay IP with . replaced by _) Make a zip file which includes these 2 files and your tv listings file and a description of your problem. 3. email me at: moyekj@yahoo.com and include the above zip file.