How to Setup

The easy way:

Warning: You need to use EyeTV internal tuner for this to work; not S-Video or composite (RCA) cables to listen to TV. i.e. EyeTV must be able to change channels by itself for EEP to work. This is a limitation in EyeTV.

1. Install EyeTV EPG Proxy using the installer.

2. Continue with step 7 below. The installer took care of all the rest!


The hard way:

1. Install the PHP binaries for OS X from this page: http://www.entropy.ch/software/macosx/php/
Note: Choose the package for Apache 1.3
Note 2: The default PHP 4 install from Mac OS X 10.4 won't work! You need PHP 5 with SOAP enabled.

2. In TextEdit, create a new file with this content:
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName data.titantv.com
    DocumentRoot /Library/WebServer/Documents/eyetv-epg-proxy
</VirtualHost>
<VirtualHost *:80>
    ServerName partners.titantv.com
    DocumentRoot /Library/WebServer/Documents/eyetv-epg-proxy/dataservice.asmx/partnertools
</VirtualHost>
<VirtualHost *:80>
    ServerName services.eyetv.com
    ServerAlias xmlrpc.macrovision.com
    DocumentRoot /Library/WebServer/Documents/eyetv-epg-proxy/dataservice.asmx/tvguide
</VirtualHost>
<Directory /Library/WebServer/Documents/eyetv-epg-proxy>
    AllowOverride All
</Directory>

Save the file as /private/etc/httpd/users/eep.conf

3. Go in System Preferences > Sharing
Disable Personal Web Sharing (if it's enabled).
Enable Personal Web Sharing.

4. Create a new folder in /Library/WebServer/Documents called "eyetv-epg-proxy".
Create a new folder in /Library/WebServer/Documents/eyetv-epg-proxy called "dataservice.asmx" (yes, it looks like a filename...)

5. Copy eyetv-epg-proxy.tar.gz in that new folder (dataservice.asmx)
Extract it by double-clicking it.
Delete both eyetv-epg-proxy.tar.gz and eyetv-epg-proxy.tar files when you're done extracting.

6. In Terminal:
cd /Library/WebServer/Documents/eyetv-epg-proxy/dataservice.asmx/ sudo chown www cache
sudo chmod 777 cache
cd tvguide
sudo ln -s .. xmlrpc

7. In TextEdit, open /Library/WebServer/Documents/eyetv-epg-proxy/dataservice.asmx/config.inc.php; enter the details of your provider, and your account information to access SchedulesDirect or XMLTV data. Change all the text that looks like 'your_xxx_here'.
Here's an example of what a configured file would look like:
<?php

$config = array();

$config['providers'] = array(
'A_00001' => array('epg-source' => 'sd', 'type' => 'cable', 'desc' => 'Videotron', 'city' => 'Montreal'),
);

$config['sd_access'] = array(
'A_00001' => array('username' => 'gboudreau’, 'password' => 'something'),
);

?>

The type of a provider is important. If you don't use the correct value, the Channels Lineup dropdown menu in EyeTV will be empty.
Step 5.a of the EyeTV Installation instructions will tell you how to verify that you have the correct value.

8. [Optional] If you want to override some channel names (I prefer my own names instead of using SchedulesDirect channel names), then create a file named "providerId.channels" (Example: "A_00001.channels"), and enter each channel name in it. The format is: channel_number[TAB]channel_name
See example.channels to see how it should look like.

Important note about the .channels file

EyeTV seems to keep a cache of the channels lineup (including channel names) on it's side. If you want to change the channel names from an already existing .channels file, you need to also change the provider ID in your configuration to disable any cache that EyeTV might keep.

For example, if your provider ID was A_00001, and you want to change your A_00001.channels file, first rename it to A_00002.channels, then edit your config.inc.php to change A_00001 for A_00002 and finally rename cache/A_00001.cache to A_00002.cache. Then, in EyeTV, select again your channel lineup to see your changes.

Continue with either XMLTV Installation instructions (if you're not in Canada) or the EyeTV Installation instructions.