1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

pyTivoX

Discussion in 'TiVo Home Media Features & TiVoToGo' started by Yoav, Dec 10, 2008.

  1. philvh

    philvh New Member

    11
    0
    Apr 3, 2007
    I reinstalled pyTivoX and ran it with the host computer connected only to the guest network. Shared content shows on all three TiVos.
     
  2. Fofer

    Fofer XenForo Rocks! TCF Club

    82,165
    321
    Oct 29, 2000
    Yes, because all those devices (7-8 really isn't a lot) are still sharing the same bandwidth. Segregating "guests" is more about security than anything.

    So now they're all on the guest network? Awesome :D
     
  3. mattack

    mattack Active Member

    20,750
    4
    Apr 9, 2001
    sunnyvale
    Is there a way to add commands to the CLI pyTivo that the GUI shell calls? I didn't find the info in a quick search, but in one of the other threads, it says you can add a simple command to use the transport stream method (IIRC), so then closed captions will be retained when transferring back to the Tivo.. (On Premieres, you almost never get closed captions when simply sending the same file back..)

    I looked inside the app package and didn't see an obvious "file with CLI parameters" in a quick search.
     
  4. wmcbrine

    wmcbrine Ziphead

    10,369
    22
    Aug 2, 2003
    Actually the transport stream option is a pyTivo.conf option, not command-line. I don't know if that helps... Of course, last I checked, the latest version of pyTivoX long predates the feature.
     
  5. mattack

    mattack Active Member

    20,750
    4
    Apr 9, 2001
    sunnyvale
    Is there a pytivo.conf file I didn't see in my look around? and even if pyTivoX long predates the feature, isn't it correct that the GUI app is basically a shim on top of the CLI pytivo, so especially if just turning on transport stream is "invisible" to the caller, adding it should be easy?
     
  6. wmcbrine

    wmcbrine Ziphead

    10,369
    22
    Aug 2, 2003
    pyTivoX is bundled with its own copy of pyTivo. You'd have to replace that. (It's doable; I've done it. But that was a while ago.) I can't speak to the .conf file offhand, except that it must exist (if not necessarily with that name) for pyTivo to function. Another thing I'd have to look up... But, this is an abandoned project, and IMHO it's quixotic to continue using it, unless someone resumes maintaining it.
     
  7. berkinet

    berkinet New Member

    34
    0
    Dec 20, 2013
    Trying to run pyTivoX on a Mac: MacOS 10.9.1, java 1.7.0_45-b18, pyTivoX 1.3.

    pytivo starts and runs fine. However, I cannot get stream baby to start. The log shows:
    Code:
    Error: This Java instance does not support a 32-bit JVM.
    Please install the desired version.
    If I startstream baby from inside the pyTivoX app bundle, it works fine.

    Ideas?
     
  8. berkinet

    berkinet New Member

    34
    0
    Dec 20, 2013
    Resolved, at least for me.

    I scanned the binary executable (pyTivoX/Contents/MacOS/pyTivoX) and found where streambaby was called (actually 2 places). I then used a hex editor to change the -d32 argument to -d64 and it now works fine.

    Now that I have the base application working I will check to see if there is a need to update the bundled pyTivo or streambaby.

    BTW, based on the low volume on this topic, I am guessing I am the only person trying to use pyTivoX on MacOS with 64-bit java. If there is anyone else out there with interest in this, please post back.
     
  9. Jan 2, 2014 #1389 of 1437
    cweb

    cweb New Member

    106
    0
    May 29, 2004
    Can you state where the two places were that you changed?
     
  10. Jan 2, 2014 #1390 of 1437
    berkinet

    berkinet New Member

    34
    0
    Dec 20, 2013
    Offsets 40789 & 11476
    But, its easier to just search for -d32

    BTW, I used Hex Fiend to edit the binary.
     
  11. Jan 2, 2014 #1391 of 1437
    JohnnyO

    JohnnyO Crimper

    325
    0
    Nov 3, 2002
    Twin...
    Nice work.

    I had been using PyTiVoX until about a year ago. I've just been using pyTiVo since then to stay up with the modifications.
     
  12. Jan 4, 2014 #1392 of 1437
    berkinet

    berkinet New Member

    34
    0
    Dec 20, 2013
    On the odd chance that someone with a bit of clue is still tuned in here...

    Having patched pyTivoX to run under Mavericks, my next goal was to update the enclosed streambaby to 0.29. Got that working too. Now I am trying to get streambaby to load the FFmpeg libs rather than running FFmpeg directly. So far I have built FFmpeg-1.2.4 and now have 64-bit versions of the needed libs and streambaby seems to recognize them . However, on loading "FFmpeg-java Module" it blows up. Here is the log...
    Code:
    FFmpeg-java Module
    I suspect this is a path issue, but it is hard to tell.

    BTW, to get ffmpeg-1.2.4 to run, I had to delete ffmpeg.bin and recreate it as a link to ffmpeg
     
  13. Jan 4, 2014 #1393 of 1437
    berkinet

    berkinet New Member

    34
    0
    Dec 20, 2013
    Running pyTivoX under Java 1.6 AFTER you have installed Java 1.7.

    So, as has been discussed in this (and the streambaby) thread, if you "upgrade" to Java 1.7 you will have problems with any any file names or meta-data that contain anything except straight ascii. Unfortunately, the only option presented has been to re-install Java 1.6.

    Also unfortunately, pyTixoX has the java executable path hard coded in the app. However, here is a way to keep your Java 1.7 installation and still get pyTivoX to run correctly under Java 1.6.

    First, create a link to the Java 1.6 executable, we will call it jav6.
    Code:
    cd /usr/local/bin
    sudo  ln -s /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java jav6
    You can test this by entering:
    Code:
    jav6 -version
    You should get something like:
    java version "1.6.0_65"
    Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
    Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)​
    Now, use a hex editor to edit the pyTivoX executable as noted in the post on changing to a 64 bit java. This time you need to search for -d64 and then change "/usr/local/bin/java" (just preceding the -d64) to "/usr/local/jav6". Then search for the second appearance of -d64 and do the same thing.

    That's it.

    BTW, the reason for using jav6 instead of something more standard like java6 is that you cannot change the byte count of the executable.
     
  14. epstewart

    epstewart Member

    652
    0
    Mar 1, 2003
    berkinet,

    I don't know how much of a clue I have, but I am interested. I would like to get PyTivoX to deal with closed captions, both when it runs pyTivo and especially when it runs StreamBaby.

    I do know how to get pyTivo, running standalone in Terminal, to support CCs. The global config parameter "ts = on" in pytivo.conf tells it to send MPEG Program Stream files as Transport Streams instead. My Roamio Plus can then see and show the captions.

    That works based on some change to how ffmpeg is getting called, but I don't know much more than that. I don't know that much about ffmpeg.

    It would be nice to modify PyTivoX to do the same thing, so I could use PyTivoX and get access to StreamBaby and pyTivo.

    If that's doable, it might even be possible to get StreamBaby within PyTivoX to support captions, since I believe StreamBaby also uses ffmpeg and might be able to tell ffmpeg to remux PS files to use the TS format.

    I realize PyTivoX and StreamBaby seem no longer to be supported, and that's a shame. Both were, and are, very useful.
     
  15. moyekj

    moyekj Well-Known Member

    11,151
    35
    Jan 23, 2006
    Mission...
    Eric, in the case of Streambaby it is using HME and there is no provision on TiVo itself for handling captions. However, Streambaby does support captions if you use ccextractor to extract captions from video file to a .srt file. When streambaby sees an accompanying .srt file it will automatically create its own captions for the stream. i.e. If you are streaming file1.mpg and have an accompanying file1.srt file with captions you will get captions in the stream. Streambaby has a bunch of options for controlling look and feel of captions:
    http://code.google.com/p/streambaby/wiki/StreamBabyIni
    (Look for Closed Captioning Options section)
    There is a toggle in Streambaby using remote to turn captions on/off.
    You can configure kmttg for ccextractor and then enable "captions" task to extract captions from to .srt file from a decrypted .mpg file.

    EDIT: It's easy to find with Google, but ccextractor can be downloaded from here:
    http://ccextractor.sourceforge.net/

    Also note the version of streambaby with extra caption options is here (probably different than what is packaged with pyTivoX):
    http://code.google.com/p/streambaby/downloads/detail?name=streambaby-20111203-2132.zip&can=2&q=

    Personally I would recommend getting streambaby working standalone as you did with pyTivo instead of trying to retrofit pyTivoX.
     
  16. epstewart

    epstewart Member

    652
    0
    Mar 1, 2003
    Kevin,

    Your suggestion about using ccextractor is a good one. Also, about getting the latest streambaby working standalone ... which I have not been able to do yet. Help!

    My streambaby.ini file is:

    Code:
    #
    # ./streambaby --help for more configuration file options
    #
    
    #dir.1=/path/to/my/videos
    #dir.1.name=My Videos
    
    dir.1=/Volumes/Seagate 3TB Drive/TiVo Downloads Decrypted
    dir.1.name=Seagate Decrypteds
    
    #dir.2=/media/disk
    #dir.2.name=External Drive
    # Ip address to bind to
    # most people don't need to change this. 
    #ip=192.168.1.37
    # port to use
    #port=7290
    
    cc.fontsize=medium
    
    
    When I run the streambaby binary in Terminal, I see:

    Code:
    [imac:~] eric% /Users/eric/Desktop/streambaby-20111203-2132/streambaby 
    Initializing StreamBaby v20111203-2132...
    04/29/14 15:28:06 FFmpegJavaVideoModule: Unable to load FFmpeg native libraries
    Apr 29, 2014 3:28:06 PM javax.jmdns.impl.JmDNSImpl closeMulticastSocket
    WARNING: closeMulticastSocket() Close socket exception 
    java.net.SocketException: Can't assign requested address
    	at java.net.PlainDatagramSocketImpl.leave(Native Method)
    	at java.net.PlainDatagramSocketImpl.leave(PlainDatagramSocketImpl.java:232)
    	at java.net.MulticastSocket.leaveGroup(MulticastSocket.java:341)
    	at javax.jmdns.impl.JmDNSImpl.closeMulticastSocket(JmDNSImpl.java:311)
    	at javax.jmdns.impl.JmDNSImpl.openMulticastSocket(JmDNSImpl.java:292)
    	at javax.jmdns.impl.JmDNSImpl.init(JmDNSImpl.java:262)
    	at javax.jmdns.impl.JmDNSImpl.<init>(JmDNSImpl.java:218)
    	at javax.jmdns.JmDNS.create(JmDNS.java:41)
    	at com.unwiredappeal.tivo.streambaby.host.Main.<init>(Main.java:161)
    	at com.unwiredappeal.tivo.streambaby.StreamBabyMain.main(StreamBabyMain.java:152)
    04/29/14 15:28:06 Listener: added factory
    04/29/14 15:28:06 Main: streambaby ready & listening.
    
    
    When I go to the TiVo Roamio Plus and navigate to

    Apps & Games > Stream,\032,\032Stream

    I get an error message on the TiVo:

    Code:
    Can't Start Application
    
    The DVR was unable to start the requested application. (V313)
    
    The message then goes on to suggest that I initiate contact with the TiVO service, which was no help. It then suggests I call the TiVo Customer Service phone number.

    Maybe I need to hard code my Mac's IP address in the streambaby.ini file?

    Do I need to set up streambaby to have access to ffmpeg and its dynamic libraries? If so, how?

    Or is there something else wrong?

    Thanks in advance ...
     
  17. moyekj

    moyekj Well-Known Member

    11,151
    35
    Jan 23, 2006
    Mission...
    Eric, to run Streambaby you need to use a Java 6 (1.6) installation. That doesn't have to be your main Java version, but you can edit "streambaby" script to put full path to Java 6 binary instead of just "java".
     
  18. epstewart

    epstewart Member

    652
    0
    Mar 1, 2003
    OK, Kevin, when I just enter 'java -version' in Terminal I get:

    Code:
    [imac:~] eric% java -version
    java version "1.6.0_65"
    Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
    Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
    [imac:~] eric% 
    
    It looks like I do have a 1.6 installation, no?
     
  19. moyekj

    moyekj Well-Known Member

    11,151
    35
    Jan 23, 2006
    Mission...
    Eric, OK that's good. Try adding the 2 settings to your streambaby.ini:

    ip=<your Mac IP>
    com.unwiredappeal.tivo.vm.ffjava.FFmpegJavaVideoModule=false
     
  20. epstewart

    epstewart Member

    652
    0
    Mar 1, 2003
    Thank you, Kevin ... That worked! I note that

    com.unwiredappeal.tivo.vm.ffjava.FFmpegJavaVideoModule=false

    does not appear in the output of

    ./streambaby --help

    Yet using it seems to have gotten rid of the message

    FFmpegJavaVideoModule: Unable to load FFmpeg native libraries

    I'm wondering if there aren't situations, such as possibly when I want to push files from streambaby to the TiVo, where streambaby would need ffmpeg? What would I do in that case?

    Also, just for curiosity's sake: the default streambaby.ini says "most people don't need to change this" with regard to specifying the Mac's IP address. That seems wrong. What's that all about?
     

Share This Page