# Streaming video from Mac (Tiger) to Tivo - how?



## manacubus (Feb 13, 2009)

I've spent several hours this morning searching and reading posts here to no avail it seems  So here is my simple question:

How can I stream video files (such as DivX AVI's) from my Mac (10.4 - Tiger) to my Tivo (which has wireless adapter)?

If I was running Leopard, it would seem that pyTivo would be the ideal choice.

Thanks for any advice!


----------



## Yoav (Jan 13, 2007)

manacubus said:


> I've spent several hours this morning searching and reading posts here to no avail it seems  So here is my simple question:
> 
> How can I stream video files (such as DivX AVI's) from my Mac (10.4 - Tiger) to my Tivo (which has wireless adapter)?
> 
> ...


Simple question, not-so-simple answer.
First you will need to install Xcode so that you can compile things: You can install it from your Tiger DVD, or you can register at apple and download it from http://developer.apple.com/TOOLS/xcode/

You will then need to set up fink (http://www.finkproject.org/) or macports (http://www.macports.org/). I will describe the rest of these instructions for fink, you should be able to figure out the equivalent for macports. Install fink as per instructions here: http://www.finkproject.org/download/index.php?phpLang=en

Once you have fink installed, you will want to install ffmpeg:

```
fink install ffmpeg
```
 If you want to use pyTivo, you will need to install python 2.5 or 2.6:

```
fink install python25
```
 Then you need to install pyTivo: get either wmcbrine's or wgw's version of pyTivo from http://pytivo.armooo.net/wiki/CurrentRelease

Then you need to configure pytivo.conf, and make sure to point at the correct ffmpeg (I believe it will be in /sw/bin/ffmpeg), as well as create shares to view.

Finally you can run pyTivo

If you prefer streambaby, same concept, just point the streambaby.ini at the right ffmpeg.

Anyways, that's the gist of it... It's gonna take a while.


----------



## manacubus (Feb 13, 2009)

Thanks, I'll have a try and let you know how I get on.

Cheers!


----------



## Yoav (Jan 13, 2007)

(fink and macports are nice for installing lots of software by the way, so it's worthwhile installing one of them anyways) -- but if it does get too annoying, Leopard really is a nice upgrade...


----------



## manacubus (Feb 13, 2009)

Whoa, that did take some time!

I think I'm close. I've installed XCode, fink, ffmpeg (already had that one) and python 2.5. I've downloaded wmcbrine's version of pyTivo and unzipped it. However in that package of files there isn't a pyTivo.conf file (which is what I believe I must update). There's a pyTivo.conf.dist file which looks like an installer, but when I double click it I get an error - 'Open Failed'.

Any ideas?

Sorry if this is basic stuff, but I'm used to sexy installers that do all the work for me.


----------



## wmcbrine (Aug 2, 2003)

It's not an installer, just an example file. pyTivo.conf is a text file... For future reference, BTW, you could've gotten Python pre-built from python.org; I wouldn't suggest fink for that. ffmpeg, I dunno -- does the one in pyTivoX not work on 10.4?


----------



## manacubus (Feb 13, 2009)

There wasn't a pyTivo.conf in that package as far as I (and Spotlight) could see - ??

Also, I thought pyTivoX was OSX 10.5 only? Should I be trying to install it on 10.4?

I had already had ffmpegX installed (the Mac GUI converter) which presumably means ffmpeg was installed on my system. However, after my earlier errors, I tried using fink to install ffmpeg. I ended up getting dependency errors.

Sigh. Really struggling!

Edit: In desperation, grabbed Streambaby-0.23beta which claims works for OSX. Ran the executable in Terminal and got the following:


```
02/13/09 20:25:04 FFmpegJavaVideoModule: Unable to load FFmpeg native libraries
<cut>
```
I may simply be in over my head, but I really think I'm close!


----------



## wmcbrine (Aug 2, 2003)

Yes, pyTivo.conf is a text file you have to create yourself. With a text editor. Use pyTivo.conf.dist as an example (although I don't really recommend it... it's got all the options there, most of which you won't need), or read the docs.


----------



## manacubus (Feb 13, 2009)

Thanks, will look at that, but also would accept any streambaby help. I don't care how I get it working, only that I do


----------



## manacubus (Feb 13, 2009)

So I've switched focus to streambaby...

I've uncommented the appropriate lines in the ini file *slaps forehead* and I'm now getting the video file list (woohoo!).

When I try to play a file I get "Failed to open stream" which I gather has to do with my ffmpeg error.

*Edit:*
Have found the similar issue here:
http://tivocommunity.com/tivo-vb/showthread.php?p=7018258#post7018258

Not sure how to check if I have the libraries installed. Have tried spotlight and they're not showing up.

*Another (late night) edit:*
Well I think I'm fairly stuck now. I am working on the assumption that the reason everything is giving me "failed to open stream" is because of an incomplete (?) install of ffmpeg.

So, whilst again trying to install ffmpeg using fink...


```
Setting up fontconfig2-dev (2.4.1-5) ...
Reading buildlock packages...
Could not resolve inconsistent dependencies!

Fink isn't sure how to install the above packages safely. You may be able to fix
things by running:

  fink scanpackages
  sudo apt-get update
  sudo apt-get install gettext-dev=0.10.40-25 gettext=0.10.40-25

Updating the list of locally available binary packages.
Scanning dists/stable/main/binary-darwin-i386
New package: dists/stable/main/binary-darwin-i386/x11/fontconfig-config_2.4.1-5_darwin-i386.deb
New package: dists/stable/main/binary-darwin-i386/x11/fontconfig2-dev_2.4.1-5_darwin-i386.deb
New package: dists/stable/main/binary-darwin-i386/x11/fontconfig2-shlibs_2.4.1-5_darwin-i386.deb
Downloading the indexes of available packages in the binary distribution.
/sw/bin/apt-get-lockwait -q update
Hit http://bindist.finkmirrors.net 10.4/release/main Packages
Hit http://bindist.finkmirrors.net 10.4/release/main Release
Hit http://bindist.finkmirrors.net 10.4/release/crypto Packages
Hit http://bindist.finkmirrors.net 10.4/release/crypto Release
Hit http://bindist.finkmirrors.net 10.4/current/main Packages
Hit http://bindist.finkmirrors.net 10.4/current/main Release
Hit http://bindist.finkmirrors.net 10.4/current/crypto Packages
Hit http://bindist.finkmirrors.net 10.4/current/crypto Release
Reading Package Lists...
Building Dependency Tree...
Failed: Fink::SysState: Could not resolve inconsistent dependencies

lee-cujes-computer:/usr/local leecujes$ sudo apt-get install gettext-dev=0.10.40-25 gettext=0.10.40-25
Reading Package Lists... Done
Building Dependency Tree... Done
You might want to run `apt-get -f install' to correct these:
Sorry, but the following packages have unmet dependencies:
  gettext-dev: Conflicts: libgettext3-dev but 0.14.5-2 is to be installed
  gettext-tools: Depends: gettext (= 0.10.40-19) but 0.10.40-25 is to be installed
  libgettext3-dev: Conflicts: gettext-dev but 0.10.40-25 is to be installed
  xfree86: Conflicts: xfree86-base-threaded
           Conflicts: system-xfree86 but 2:4.5-2 is to be installed
  xfree86-shlibs: Conflicts: xfree86-base-threaded-shlibs
                  Conflicts: system-xfree86 but 2:4.5-2 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

lee-cujes-computer:/usr/local leecujes$ apt-get -f install
E: Could not open lock file /sw/var/lib/dpkg/lock - open (13 Permission denied)
E: Unable to lock the administration directory (/sw/var/lib/dpkg/), are you root?
lee-cujes-computer:/usr/local leecujes$ sudo apt-get -f install
Reading Package Lists... Done
Building Dependency Tree... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  system-xfree86 system-xfree86-manual-install system-xfree86-shlibs 
0 packages upgraded, 0 newly installed, 3 to remove and 3  not upgraded.
1 packages not fully installed or removed.
Need to get 0B of archives. After unpacking 0B will be used.
Do you want to continue? [Y/n] y
dpkg - warning: ignoring request to remove system-xfree86-manual-install which isn't installed.
dpkg - warning: ignoring request to remove system-xfree86 which isn't installed.
dpkg - warning: ignoring request to remove system-xfree86-shlibs which isn't installed.
Setting up xfree86 (4.5.0-1045) ...
ERROR: /etc/X11 exists, but is not a symlink to /usr/X11R6/etc.
/sw/bin/dpkg: error processing xfree86 (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 xfree86
E: Sub-process /sw/bin/dpkg returned an error code (1)
```
I suspected I may have been over my head and I'm now tasting salt water.


----------



## Yoav (Jan 13, 2007)

sigh 
Ok, first of all the ffmpeg thing is a warning. It will still stream fine, although when you fast forward, you may see a gray square instead of a mini-image of your show. You *can* fix it, but I'd leave that for later.

Do you know how you hadd ffmpeg installed from before? did you already have fink or macports on your system? or did you manually build ffmpeg?

Also, you can probably get more useful info from streambaby if you change simplelog.properties to use 'debug' instead of 'Warn' for the log levels


----------



## Yoav (Jan 13, 2007)

Ok, so I'm going to semi-quietly remove the restriction of pyTivoX running on 10.5
(i.e. pyTivoX will be compiled to work on 10.4-universal).

HOWEVER. It will not work on 10.4 unless you manually make sure that /usr/bin/python is 2.5 or greater for pyTivo support. It should still work on any 10.4 system for streambaby. (I don't recall making any 10.5 SDK calls in the gui.. so it should at least run.. tell me if that's not the case).

So that should at least be enough to get your 'going'? (the docs are still going to require 10.5.. because I don't want to have to deal with the nightmare of guiding people through python installs).

It should be up as 1.1b18 as soon as it finishes compiling -- probably about 30 mins.


----------



## Yoav (Jan 13, 2007)

Ok it's up.

Can you try it and tell me if it works for you (at least streambaby should 'just work'). For pyTivo you'll need to make /usr/bin/python a symlink to /sw/bin/python or whatever python 2.5 on your system is.

Also, I believe 'launch at startup' will be broken since it depends on 10.5 features.


----------



## wmcbrine (Aug 2, 2003)

May I suggest, instead of forcing /usr/bin/python to be changed, just find python via the path. (This is why python scripts are typically marked as "#!/usr/bin/env python" instead of "#!/usr/bin/python", BTW.) /usr/bin/python on my system is the original (2.3), but typing "python" in terminal brings up 2.6.


----------



## Yoav (Jan 13, 2007)

wmcbrine said:


> May I suggest, instead of forcing /usr/bin/python to be changed, just find python via the path. (This is why python scripts are typically marked as "#!/usr/bin/env python" instead of "#!/usr/bin/python", BTW.) /usr/bin/python on my system is the original (2.3), but typing "python" in terminal brings up 2.6.


My original worry was that the default python in the path could be python 3.x, and that would cause issues. On 10.5, I was guaranteed that /usr/bin/python is 2.5.


----------



## manacubus (Feb 13, 2009)

Thank you both. Will try today and advise.


----------



## manacubus (Feb 13, 2009)

Yoav said:


> sigh
> Ok, first of all the ffmpeg thing is a warning. It will still stream fine, although when you fast forward, you may see a gray square instead of a mini-image of your show. You *can* fix it, but I'd leave that for later.
> 
> Do you know how you hadd ffmpeg installed from before? did you already have fink or macports on your system? or did you manually build ffmpeg?
> ...


I believe I had ffmpeg on my system because I had the program ffmpegX installed (the GUI) which I believed was just a front-end to ffmpeg. Not true?

I had the streambaby log set to verbose which seems the same(?) as debug. It's set on debug now. Thanks. Here's some logging spam from streambaby which may or may not be helpful.


```
Initializing...
02/14/09 10:27:23 StreamBabyConfig: WorkingDir: /Users/leecujes
02/14/09 10:27:23 StreamBabyConfig: StreamBabyDir: /Applications/streambaby-0.23beta
02/14/09 10:27:23 StreamBabyConfig: CurDir: /Users/leecujes
02/14/09 10:27:24 FFmpegJavaConfig$1: Loading avutil, default: avutil
02/14/09 10:27:24 FFmpegJavaConfig$1: Error attempting toload ffmpeg libraries: Unable to load library 'avutil': dlopen(libavutil.dylib, 1): image not found
02/14/09 10:27:24 FFmpegJavaVideoModule: Unable to load FFmpeg native libraries
02/14/09 10:27:24 FFmpegExeVideoModule: FFmpegPath: /usr/lib/ffmpeg
02/14/09 10:27:24 FFmpegExeVideoModule: FFmpegExeModule: Loaded
02/14/09 10:27:24 StreamBabyMain: STARTING StreamBaby v0.23beta...
02/14/09 10:27:24 Main: args= start=true
02/14/09 10:27:24 Main: args= [email protected]
02/14/09 10:27:25 Listener: [email protected] [email protected]
02/14/09 10:27:25 Listener: factoryList=[StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]]
02/14/09 10:27:25 Listener: factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]
02/14/09 10:27:25 Listener: name=/streambaby/
02/14/09 10:27:25 Listener: 
02/14/09 10:27:25 Listener: added factory
02/14/09 10:27:25 Main: factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]
02/14/09 10:27:25 Main: MDNS: http://10.1.1.3:7290/streambaby/
02/14/09 10:27:25 Main: streambaby ready & listening.
02/14/09 10:27:25 Main: mdns_type=_tivo-hme._tcp.local. factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream] port=7290
02/14/09 10:27:48 Listener: http=HttpRequest /streambaby/icon.png
02/14/09 10:27:48 Listener: path=/streambaby/icon.png uri=/streambaby/
02/14/09 10:27:48 Listener: 
02/14/09 10:27:48 Listener: 10.1.1.4 icon.png HTTP GET - to factory /streambaby/
02/14/09 10:27:48 StreamBabyStream$StreamBabyStreamFactory: uri=icon.png
02/14/09 10:27:54 Listener: http=HttpRequest /streambaby/
02/14/09 10:27:54 Listener: path=/streambaby/ uri=/streambaby/
02/14/09 10:27:54 Listener: http=HttpRequest /streambaby/ factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]
log after close : initContext version=47
02/14/09 10:27:54 Listener: 
02/14/09 10:27:54 Factory: HME receiver connected
02/14/09 10:27:54 Listener: app=StreamBabyStream[#1,uri=null] [email protected]
02/14/09 10:27:54 StreamBabyStream: width: 640
02/14/09 10:27:54 StreamBabyStream: height: 480
02/14/09 10:27:54 StreamBabyStream: aspect: 1/1
02/14/09 10:27:54 HostContext: key=pw applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:27:54 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:27:54 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:27:54 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:27:54 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:27:54 StreamBabyStream$StreamBabyStreamFactory: uri=blue.jpg
02/14/09 10:27:55 RootDirEntry$dirEntryHandler: dirEntry: file:/Volumes/Elements/TV/
02/14/09 10:27:55 RootDirEntry$dirEntryHandler: dirEntry: file:/Users/leecujes/Documents/Azureus%20Downloads/
02/14/09 10:27:55 HostContext: key=pw value=
02/14/09 10:27:55 HostContext: key=pw value=applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:27:55 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:27:55 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:27:55 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:27:55 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:27:55 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:27:55 RootDirEntry$dirEntryHandler: dirEntry: file:/Volumes/Elements/TV/
02/14/09 10:27:55 RootDirEntry$dirEntryHandler: dirEntry: file:/Users/leecujes/Documents/Azureus%20Downloads/
StreamBabyStream[#1,uri=null] warning: resource 2057 not found.
StreamBabyStream[#1,uri=null] warning: resource 2057 not found.
02/14/09 10:27:55 StreamBabyStream$StreamBabyStreamFactory: uri=folder.png
02/14/09 10:27:55 SelectionScreen: focusOn entry=null
02/14/09 10:27:57 SelectionScreen: action=right
02/14/09 10:27:57 SelectionScreen: focusOn entry=null
02/14/09 10:27:58 SelectionScreen: action=right
02/14/09 10:27:58 StreamBabyStream$StreamBabyStreamFactory: uri=movie.png
02/14/09 10:27:58 SelectionScreen: focusOn entry=null
02/14/09 10:28:00 SelectionScreen: action=pop
02/14/09 10:28:00 SelectionScreen: focusOn entry=Balls of Steel - Season 1
02/14/09 10:28:11 SelectionScreen: action=right
02/14/09 10:28:11 VideoModuleHelper: GetVidInfo: file:/Volumes/Elements/TV/Lee%20and%20Sam%20Wedding.mpg
02/14/09 10:28:11 FFmpegExeVideoModule: FFmpegCmd: /usr/lib/ffmpeg -i /Volumes/Elements/TV/Lee and Sam Wedding.mpg
02/14/09 10:28:12 FFmpegExeVideoModule: ChannelStr to parse: stereo, 224 kb/s
02/14/09 10:28:12 FFmpegExeVideoModule: VideoInfo:
uri: file:/Volumes/Elements/TV/Lee%20and%20Sam%20Wedding.mpg, Container: mpeg, Duration: 762.4 seconds
Video: mp1v 384x288 0.0 fps
  PixAspect: 1.0, Aspect: 1.3333334
Audio: mp2 48000HZ 0 channels
02/14/09 10:28:12 HostContext: key=mpos:file:/Volumes/Elements/TV/Lee%20and%20Sam%20Wedding.mpg applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:28:12 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:28:12 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:12 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:18 PlayScreen: action=right
02/14/09 10:28:18 HostContext: key=mpos:file:/Volumes/Elements/TV/Lee%20and%20Sam%20Wedding.mpg value=0
02/14/09 10:28:18 HostContext: key=mpos:file:/Volumes/Elements/TV/Lee%20and%20Sam%20Wedding.mpg value=0applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:28:18 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:28:18 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:18 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:18 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:18 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:18 ViewScreen: Desc: Lee and Sam Wedding.mpg
02/14/09 10:28:19 PreviewWindow: pWidth: 640
02/14/09 10:28:19 PreviewWindow: preview parent=BView[#2639,bounds=0,0,640x480]
02/14/09 10:28:19 HostContext: key=mpos:file:/Volumes/Elements/TV/Lee%20and%20Sam%20Wedding.mpg applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:28:19 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
02/14/09 10:28:19 HostContext: applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:19 HostContext: compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
02/14/09 10:28:19 ViewScreen: goto position: 0, vidlen: 762400
02/14/09 10:28:19 ViewScreen: Position not in buffer, starting new stream
02/14/09 10:28:19 ViewScreen: Openening stream at position: 0(0 secs)
02/14/09 10:28:19 VideoModuleHelper: quality setting is above quality of video, streaming normally
02/14/09 10:28:20 NamedStream: Registering named stream: f80b4068-f132-495e-8b05-e2c74e919260.stream
02/14/09 10:28:20 ViewScreen: error=ERROR: 0x2e006a
Lee and Sam Wedding.mpg
02/14/09 10:28:20 ViewScreen: error=ERROR: 0x2e006a
Lee and Sam Wedding.mpg
02/14/09 10:28:20 ViewScreen: error=ERROR: 0x2e006a
Lee and Sam Wedding.mpg
02/14/09 10:28:20 ViewScreen: error=ERROR: 0x2e006a
Lee and Sam Wedding.mpg
02/14/09 10:28:20 ViewScreen: error=ERROR: 0x2e006a
Lee and Sam Wedding.mpg
02/14/09 10:28:20 ViewScreen: error=ERROR: 0x2e006a
Lee and Sam Wedding.mpg
02/14/09 10:28:22 Listener: 
02/14/09 10:28:22 Listener: connection to receiver closed
```



Yoav said:


> Ok, so I'm going to semi-quietly remove the restriction of pyTivoX running on 10.5
> (i.e. pyTivoX will be compiled to work on 10.4-universal).
> 
> HOWEVER. It will not work on 10.4 unless you manually make sure that /usr/bin/python is 2.5 or greater for pyTivo support. It should still work on any 10.4 system for streambaby. (I don't recall making any 10.5 SDK calls in the gui.. so it should at least run.. tell me if that's not the case).
> ...


I used fink to install python25 as you'd previously suggested. But here's three bits of conflicting weirdness...
1. /sw/src/ contains the file Python-2.5.1.tgz
2. /usr/bin/ does not contain python 2.5 that I can see - just 2.3.
3. If I type python in Terminal I get Python 2.3.5


----------



## manacubus (Feb 13, 2009)

Update:

Found a nice easy Python 2.5.4 installer which I have now run.

Now in Terminal when I type python, I get 2.5.4. 

Have installed pyTivoX, and double clicking seems to launch something momentarily...but I'm actually not sure what's supposed to happen


----------



## Yoav (Jan 13, 2007)

manacubus said:


> Update:
> 
> Found a nice easy Python 2.5.4 installer which I have now run.
> 
> ...


what version of python do you get when you run
/usr/bin/python ?

normally /usr/bin/python is a symlink to /System/Frameworks/.......2.5/bin/python and you can see that by typing

```
ls -l /usr/bin/python
```
 If you want to change that, the following commands should do it:

```
mv /usr/bin/python /usr/bin/python.old
ln -s /sw/bin/python /usr/bin/python
```
(replace /sw/bin/python with whatever your python is). Then to undo it:

```
rm /usr/bin/python
mv /usr/bin/python.old /usr/bin/python
```
Now for the other question: What should happen? When you run pyTivoX you should see a gui that lets you do things. If you're not even seeing that, then I'm just going to assume that it still doesn't work on 10.4  sorry.


----------



## manacubus (Feb 13, 2009)

When I do /usr/bin/python I get 2.3.

So I found where 2.5 is living - it appears to be at /Library/Frameworks/Python.framework/Versions/2.5/


----------



## manacubus (Feb 13, 2009)

Actually I made a mistake, it seems to be at:

/Library/Frameworks/Python.framework/Versions/2.5/bin/python.2.5

/usr/bin/python is now invoking 2.5.4! 

But sadly, pyTivo.app still isn't bringing up a GUI 

So I thought it would be worth running streambaby now that /usr/bin/python is pointing to 2.5. Here's some log spam...


```
lee-cujes-computer:~ leecujes$ /Applications/pyTivoX.app/Contents/Resources/streambaby/streambaby
Initializing...
Sat 2009/02/14 17:20:01.731|   |main|StreamBabyConfig|WorkingDir: /Users/leecujes
Sat 2009/02/14 17:20:01.732|   |main|StreamBabyConfig|StreamBabyDir: /Applications/pyTivoX.app/Contents/Resources/streambaby
Sat 2009/02/14 17:20:01.733|   |main|StreamBabyConfig|CurDir: /Users/leecujes
Sat 2009/02/14 17:20:01.900|   |main|FFmpegJavaConfig$1|Loading avutil, default: avutil
Sat 2009/02/14 17:20:01.902|   |main|FFmpegJavaConfig$1|Error attempting toload ffmpeg libraries: Unable to load library 'avutil': dlopen(libavutil.dylib, 1): image not found
Sat 2009/02/14 17:20:01.902|   |main|FFmpegJavaVideoModule|Unable to load FFmpeg native libraries
Sat 2009/02/14 17:20:01.914|   |main|FFmpegExeVideoModule|FFmpegPath: /usr/lib/ffmpeg
Sat 2009/02/14 17:20:01.914|   |main|FFmpegExeVideoModule|FFmpegExeModule: Loaded
Sat 2009/02/14 17:20:02.012|   |main|StreamBabyMain|STARTING StreamBaby v20090213-0913...
Sat 2009/02/14 17:20:02.013|   |main|Main|args= start=true
Sat 2009/02/14 17:20:02.013|   |main|Main|args= [email protected]
Sat 2009/02/14 17:20:02.265|   |main|Listener|[email protected] [email protected]
Sat 2009/02/14 17:20:02.310|   |main|Listener|factoryList=[StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]]
Sat 2009/02/14 17:20:02.310|   |main|Listener|factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]
Sat 2009/02/14 17:20:02.310|   |main|Listener|name=/streambaby/
Sat 2009/02/14 17:20:02.311|   |main|Listener|
Sat 2009/02/14 17:20:02.315|   |main|Listener|added factory
Sat 2009/02/14 17:20:02.317|   |main|Main|factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]
Sat 2009/02/14 17:20:02.317|   |main|Main|MDNS: http://10.1.1.3:7290/streambaby/
Sat 2009/02/14 17:20:02.317|   |main|Main|streambaby ready & listening.
Sat 2009/02/14 17:20:02.317|   |main|Main|mdns_type=_tivo-hme._tcp.local. factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream] port=7290
Sat 2009/02/14 17:20:28.583|   |Acceptor|Listener|http=HttpRequest /streambaby/icon.png
Sat 2009/02/14 17:20:28.583|   |Acceptor|Listener|path=/streambaby/icon.png uri=/streambaby/
Sat 2009/02/14 17:20:28.584|   |Acceptor|Listener|
Sat 2009/02/14 17:20:28.584|   |Acceptor|Listener|10.1.1.4 icon.png HTTP GET - to factory /streambaby/
Sat 2009/02/14 17:20:28.585|   |Acceptor|StreamBabyStream$StreamBabyStreamFactory|uri=icon.png
Sat 2009/02/14 17:20:31.557|   |Acceptor|Listener|http=HttpRequest /streambaby/
Sat 2009/02/14 17:20:31.558|   |Acceptor|Listener|path=/streambaby/ uri=/streambaby/
Sat 2009/02/14 17:20:31.558|   |Acceptor|Listener|http=HttpRequest /streambaby/ factory=StreamBabyStreamFactory[/streambaby/,Stream, Baby, Stream]
log after close : initContext version=47
Sat 2009/02/14 17:20:31.769|   |Acceptor|Application|init context resolutionReceived=false
Sat 2009/02/14 17:20:31.770|   |Acceptor|Listener|
Sat 2009/02/14 17:20:31.770|   |Acceptor|Factory|HME receiver connected
Sat 2009/02/14 17:20:31.770|   |Acceptor|Listener|app=StreamBabyStream[#1,uri=null] [email protected]
Sat 2009/02/14 17:20:31.771|   |Acceptor|Application|handleChunk: ResolutionInfo
Sat 2009/02/14 17:20:31.790|   |Acceptor|Application|calling initResolution()
Sat 2009/02/14 17:20:31.791|   |Acceptor|Application|Current resolution is: com.tivo.hme.sdk.Resolution[640x480-PAR=1/1]
Sat 2009/02/14 17:20:31.791|   |Acceptor|StreamBabyStream|width: 640
Sat 2009/02/14 17:20:31.792|   |Acceptor|StreamBabyStream|height: 480
Sat 2009/02/14 17:20:31.792|   |Acceptor|StreamBabyStream|aspect: 1/1
Sat 2009/02/14 17:20:31.792|   |Acceptor|HostContext|key=pw applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:31.792|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:31.793|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:31.793|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:31.793|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:31.802|   |Acceptor|StreamBabyStream$StreamBabyStreamFactory|uri=blue.jpg
Sat 2009/02/14 17:20:32.052|   |Acceptor|RootDirEntry$dirEntryHandler|dirEntry: file:/Volumes/Elements/TV/
Sat 2009/02/14 17:20:32.053|   |Acceptor|RootDirEntry$dirEntryHandler|dirEntry: file:/Users/leecujes/Documents/Azureus&#37;20Downloads/
Sat 2009/02/14 17:20:32.054|   |Acceptor|HostContext|key=pw value=
Sat 2009/02/14 17:20:32.054|   |Acceptor|HostContext|key=pw value=applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:32.054|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:32.054|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:32.054|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:32.054|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:32.055|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:32.060|   |Acceptor|RootDirEntry$dirEntryHandler|dirEntry: file:/Volumes/Elements/TV/
Sat 2009/02/14 17:20:32.061|   |Acceptor|RootDirEntry$dirEntryHandler|dirEntry: file:/Users/leecujes/Documents/Azureus%20Downloads/
Sat 2009/02/14 17:20:32.139|   |Acceptor|Application|Received resolution event: ResolutionInfo[current=com.tivo.hme.sdk.Resolution[640x480-PAR=1/1],supported=com.tivo.hme.sdk.Resolution[1280x720-PAR=1/1]com.tivo.hme.sdk.Resolution[704x480-PAR=40/33]com.tivo.hme.sdk.Resolution[640x480-PAR=1/1]]
Sat 2009/02/14 17:20:32.139|   |Acceptor|Application|unknown event opcode : 10
Sat 2009/02/14 17:20:32.144|   |Acceptor|Application|Already initialized, not re-initing.
Sat 2009/02/14 17:20:32.145|   |Acceptor|Application|Already initialized, not re-initing.
StreamBabyStream[#1,uri=null] warning: resource 2057 not found.
StreamBabyStream[#1,uri=null] warning: resource 2057 not found.
Sat 2009/02/14 17:20:32.305|   |Acceptor|Application|Received event for unknown resource id. Id = 2057, event = 2057.RESOURCE_INFO(complete, {})
Sat 2009/02/14 17:20:32.341|   |master|StreamBabyStream$StreamBabyStreamFactory|uri=folder.png
Sat 2009/02/14 17:20:32.342|   |master|SelectionScreen|focusOn entry=null
Sat 2009/02/14 17:20:33.675|   |Acceptor|SelectionScreen|action=right
Sat 2009/02/14 17:20:33.904|   |master|SelectionScreen|focusOn entry=null
Sat 2009/02/14 17:20:34.768|   |Acceptor|SelectionScreen|action=right
Sat 2009/02/14 17:20:34.993|   |master|StreamBabyStream$StreamBabyStreamFactory|uri=movie.png
Sat 2009/02/14 17:20:34.995|   |master|SelectionScreen|focusOn entry=null
Sat 2009/02/14 17:20:36.759|   |Acceptor|SelectionScreen|action=right
Sat 2009/02/14 17:20:36.772|   |Acceptor|VideoModuleHelper|GetVidInfo: file:/Volumes/Elements/TV/Balls%20of%20Steel%20-%20Season%201/Balls%20of%20Steel%20-%201.3.avi
Sat 2009/02/14 17:20:36.774|   |Acceptor|FFmpegExeVideoModule|FFmpegCmd: /usr/lib/ffmpeg -i /Volumes/Elements/TV/Balls of Steel - Season 1/Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:37.277|   |Acceptor|FFmpegExeVideoModule|ChannelStr to parse: stereo, 128 kb/s
Sat 2009/02/14 17:20:37.295|   |Acceptor|FFmpegExeVideoModule|VideoInfo:
uri: file:/Volumes/Elements/TV/Balls%20of%20Steel%20-%20Season%201/Balls%20of%20Steel%20-%201.3.avi, Container: avi, Duration: 2137.5 seconds
Video: UNK 704x492 0.0 fps
  PixAspect: 1.0, Aspect: 1.4308943
Audio: mp3 48000HZ 0 channels
Sat 2009/02/14 17:20:37.302|   |Acceptor|HostContext|key=mpos:file:/Volumes/Elements/TV/Balls%20of%20Steel%20-%20Season%201/Balls%20of%20Steel%20-%201.3.avi applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:37.302|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:37.302|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:37.302|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:39.422|   |Acceptor|PlayScreen|action=right
Sat 2009/02/14 17:20:39.423|   |Acceptor|HostContext|key=mpos:file:/Volumes/Elements/TV/Balls%20of%20Steel%20-%20Season%201/Balls%20of%20Steel%20-%201.3.avi value=0
Sat 2009/02/14 17:20:39.423|   |Acceptor|HostContext|key=mpos:file:/Volumes/Elements/TV/Balls%20of%20Steel%20-%20Season%201/Balls%20of%20Steel%20-%201.3.avi value=0applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:39.423|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:39.424|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:39.424|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:39.425|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:39.425|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:39.725|   |Acceptor|ViewScreen|Desc: Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:39.738|   |Acceptor|FFmpegExeVideoModule|FFmpegCmd: /usr/lib/ffmpeg -ss 0 -i /Volumes/Elements/TV/Balls of Steel - Season 1/Balls of Steel - 1.3.avi -s 352x288 -qscale 24 -r 1 -f mjpeg -v 0 tcp://127.0.0.1:8500
Sat 2009/02/14 17:20:39.797|   |Acceptor|PreviewWindow|pWidth: 640
Sat 2009/02/14 17:20:39.797|   |Acceptor|PreviewWindow|preview parent=BView[#2456,bounds=0,0,640x480]
Sat 2009/02/14 17:20:39.802|   |Acceptor|HostContext|key=mpos:file:/Volumes/Elements/TV/Balls%20of%20Steel%20-%20Season%201/Balls%20of%20Steel%20-%201.3.avi applicationId=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:39.803|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream applicationGlobal=false
Sat 2009/02/14 17:20:39.803|   |Acceptor|HostContext|applicationIdStr=com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:39.803|   |Acceptor|HostContext|compKey=66300018022ABF4-and-com.unwiredappeal.tivo.streambaby.StreamBabyStream
Sat 2009/02/14 17:20:39.810|   |Acceptor|ViewScreen|goto position: 0, vidlen: 2137500
Sat 2009/02/14 17:20:39.810|   |Acceptor|ViewScreen|Position not in buffer, starting new stream
Sat 2009/02/14 17:20:40.009|   |Acceptor|Application|Already initialized, not re-initing.
Sat 2009/02/14 17:20:40.010|   |Acceptor|Application|Already initialized, not re-initing.
Sat 2009/02/14 17:20:40.061|   |master|ViewScreen|Openening stream at position: 0(0 secs)
Sat 2009/02/14 17:20:40.061|   |master|VideoModuleHelper|quality setting is above quality of video, streaming normally
Sat 2009/02/14 17:20:40.067|   |master|FFmpegExeVideoModule|Using ffmpeg transcode args: -acodec ac3 -vcodec mpeg2video -f vob -async 1 -r 23.976 -v 0 -sameq -ab 192k
Sat 2009/02/14 17:20:40.068|   |master|FFmpegExeVideoModule|FFmpegCmd: /usr/lib/ffmpeg -ss 0.0 -i /Volumes/Elements/TV/Balls of Steel - Season 1/Balls of Steel - 1.3.avi -acodec ac3 -vcodec mpeg2video -f vob -async 1 -r 23.976 -v 0 -sameq -ab 192k tcp://127.0.0.1:8501
Sat 2009/02/14 17:20:40.245|   |master|NamedStream|Registering named stream: 4ebe06a8-4fa5-4781-aaa5-509471483e41.stream
Sat 2009/02/14 17:20:40.500|   |Acceptor|ViewScreen|error=ERROR: 0x2e006a
Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:40.500|   |Acceptor|ViewScreen|error=ERROR: 0x2e006a
Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:40.501|   |Acceptor|ViewScreen|error=ERROR: 0x2e006a
Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:40.501|   |Acceptor|ViewScreen|error=ERROR: 0x2e006a
Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:40.501|   |Acceptor|ViewScreen|error=ERROR: 0x2e006a
Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:40.501|   |Acceptor|ViewScreen|error=ERROR: 0x2e006a
Balls of Steel - 1.3.avi
Sat 2009/02/14 17:20:43.792|   |Acceptor|Listener|
Sat 2009/02/14 17:20:43.792|   |Acceptor|Listener|connection to receiver closed
Sat 2009/02/14 17:20:43.799|   |Acceptor|Listener|
Sat 2009/02/14 17:20:43.799|   |Acceptor|Factory|HME receiver disconnected
```


----------



## Yoav (Jan 13, 2007)

is pyTivoX b18? that's the only one built for 10.4u.


----------



## manacubus (Feb 13, 2009)

I grabbed the pyTivoX-1.1b18.zip BETA one off your site after you put it up.


----------



## manacubus (Feb 13, 2009)

Well, thanks for trying to help guys. Much appreciated!


----------



## RealityCheck (Feb 15, 2007)

Could someone repost pyTivoX-1.1b18? Thanks.

I would like to try it on my iMac G5 running Mac OS X 10.4.11.


----------



## AudioNutz (Nov 10, 2008)

I'm another that wishes for pyTiVoX to work on Tiger. I upgraded to Leopard Server specifically so I could run pyTiVoX on it, but Leopard Server (and the workstation version) seems to have troubles with Folder Action Scripts staying active.

It's not useful automation if I need to re-enable folder actions every 5mins... (Ugh, Leopard)


----------



## wmcbrine (Aug 2, 2003)

You can run pyTivo (without the X) on Tiger...


----------



## AudioNutz (Nov 10, 2008)

Very funny.


----------



## wmcbrine (Aug 2, 2003)

Eh? It's not a joke.


----------



## AudioNutz (Nov 10, 2008)

The user above looked like he made a valiant attempt... Are there step-by-step instructions somewhere?


----------



## wmcbrine (Aug 2, 2003)

AudioNutz said:


> The user above looked like he made a valiant attempt...


Well, he flailed around a lot. I don't see that as valiant.

Look, _my_ only copy of OS X is 10.4. Consequently, I've never even tried pyTivoX. Yet, I got pyTivo running on my Mac in seconds. Of course that was without ffmpeg -- getting a working ffmpeg is the only part that's a bit complicated. (Perhaps the one from pyTivoX will work on 10.4, even if pyTivoX itself won't? I dunno. I ended up building it from fink IIRC.)



> _Are there step-by-step instructions somewhere?_


Steps:

1. Install ffmpeg.
2. Install Python 2.4 or later (but not 3.x) -- 2.3 is unfortunately too old.
3. Install the Python Imaging Library if you want to use the photo module.
4. Grab a snapshot of pyTivo.
5. Unzip it.
6. Create pyTivo.conf.
7. ./pyTivo.py

If you want more, there's a page about it at pytivo.armooo.net, but the site seems to be down right now.


----------



## Yoav (Jan 13, 2007)

I'll short-cut the guessing:

the ffmpeg in pyTivoX will not work on 10.4. It's compiled 10.5u (even though it has no dependencies on 10.5 features).

However, a while ago there was a 10.4 build I made which included an ffmpeg that is 10.4u. You're welcome to pull it out of there if you can't find a better build elsewhere.... It would end up under Contents/Resources/ffmpeg...


----------



## AudioNutz (Nov 10, 2008)

wmcbrine said:


> Well, he flailed around a lot. I don't see that as valiant.
> 
> Look, _my_ only copy of OS X is 10.4. Consequently, I've never even tried pyTivoX. Yet, I got pyTivo running on my Mac in seconds. Of course that was without ffmpeg -- getting a working ffmpeg is the only part that's a bit complicated. (Perhaps the one from pyTivoX will work on 10.4, even if pyTivoX itself won't? I dunno. I ended up building it from fink IIRC.)
> 
> ...


Hmmm...
Thanks for the step-by-step. I'll give it a shot the next time I'm home...


----------



## AudioNutz (Nov 10, 2008)

Yoav said:


> I'll short-cut the guessing:
> 
> the ffmpeg in pyTivoX will not work on 10.4. It's compiled 10.5u (even though it has no dependencies on 10.5 features).
> 
> However, a while ago there was a 10.4 build I made which included an ffmpeg that is 10.4u. You're welcome to pull it out of there if you can't find a better build elsewhere.... It would end up under Contents/Resources/ffmpeg...


I've got a compiled copy of ffmpeg that I was using with KMTTG and Tiger. I'll give it a shot...


----------



## AudioNutz (Nov 10, 2008)

HEY! Would you look at that... It worked. I tried it on a "Workstation" class OS, now all I need to do is back my Server OS back down to Tiger, and re-do the steps there. (Hopefully these things work on the Server OS.


----------

