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. Oct 4, 2009 #741 of 1437
    fredtwd

    fredtwd New Member

    40
    0
    Sep 18, 2006
    Southern NH
    Trying to use pyTivoX (Mac OS X 10.6.1) for the first time and all I get is a standard broken image for all the photos. The following message is displayed in the logfile (pytivo.log)

    Code:
    ERROR:pyTivo:Resize failed on /Users/robert/Documents/Misc/Favs/053.jpg -- The _imaging C module is not installed
    INFO:pyTivo:192.168.1.148 [04/Oct/2009 21:04:25] code 404, message Not Found
    INFO:pyTivo:192.168.1.148 [04/Oct/2009 21:04:25] "GET /Favs/053.jpg?Width=88&Height=60&PixelShape=40%3A33&Format=image%2Fjpeg HTTP/1.0" 404 -
    
    I assume this is related to:

    http://code.google.com/p/pytivox/issues/detail?id=26#c0
    Sep 26, 2009
    issue 26 (Broken image icons displayed instead of pics (and no images)...) reported by techworkspro

    Any suggestions would be welcome.

    Thanks,

    Robert
     
  2. Oct 4, 2009 #742 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    pyTivo uses the Python Imaging Library (a natively compiled addon for Python) to do photo manipulation. pyTivoX is supposed to include the PIL libraries, but they were probably compiled for 10.5. You'll have to wait for Yoav to fix it.
     
  3. Oct 4, 2009 #743 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    If you are up for compiling your own ffmpeg from source, you can use my source patches for this from here:

    http://pytivo.sourceforge.net/forum/rdian06-s-ffmpeg-builds-t468-30.html#6913

    I never got around to making an Intel build with the patch, but I do have a G5 build with it here:

    ffmpeg-SVN-r19249-rdian06-0.98-macosx-g5.zip
    http://pytivo.sourceforge.net/forum/rdian06-s-ffmpeg-builds-t468.html#3558

    Or you could ask Yoav to include the patch in his ffmpeg build.
     
  4. Oct 4, 2009 #744 of 1437
    generaltso

    generaltso Member

    964
    0
    Nov 3, 2003
    Vermont
    I'm up for anything, but I've never compiled anything so I'm not sure where to start. I don't suppose it's as simple as dumping the source code into a compiler and calling it a day?

    Thanks for your help. It's very much appreciated!
     
  5. Oct 5, 2009 #745 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    ffmpeg has lots of external libraries that it depends on so it's kinda an involved process to get it all compiled properly unless you use MacPorts.

    Start by looking here:
    http://pytivo.sourceforge.net/wiki/index.php/OS_X_Install

    The directions are old, but they'll get you started. Once you can successfully compile ffmpeg using MacPorts, you can copy and modify the ffmpeg ports file to include my patch.
     
  6. Oct 5, 2009 #746 of 1437
    generaltso

    generaltso Member

    964
    0
    Nov 3, 2003
    Vermont
    Thanks, I'll take a look and see what I can figure out. In the meantime, I figured I could just use Parallels with Windows XP and your build of pyTivo to get around the problem. But all the files I move over to the Windows side show up as copy protected when I look at them from the TiVo. These are the same files that transfer fine from the Mac side (except for the audio channel problem). Any idea why that would be? Thanks again.
     
  7. Oct 5, 2009 #747 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    You're probably having a permissions problem with the files.

    If you're running pyTivo as a Windows Service, it runs as the Local System account (unless you supplied credentials at setup time) and can only access files on the local Windows disks. If you tell it to access a network share, it may be able to see the filenames, but not actually read them.

    If you're running pyTivo from Console, you need to make sure the files are readable by the account running the Console.

    The copyright symbol is displayed whenever pyTivo cannot read the files or has trouble with ffmpeg processing them to find the basic file specs.
     
  8. Oct 5, 2009 #748 of 1437
    generaltso

    generaltso Member

    964
    0
    Nov 3, 2003
    Vermont
    Well, the copyright symbol is gone today for some reason, so I can select the file to transfer to the TiVo. When I select the file, the TiVo says that it has been added to my To Do list. The blue light on the TiVo comes on immediately, and I can see ffmpeg.exe starts using 100% of the CPU of the VM. But nothing actually shows up in the Now Playing List on the TiVo. After about 10 minutes, ffmpeg crashes. Maybe it doesn't work well in a virtual machine? So close.
     
  9. Oct 5, 2009 #749 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    Are we talking crashes with a Windows error dialog crash? Or is there some console message indicating a ffmpeg fatal error related to the media file?
     
  10. Oct 5, 2009 #750 of 1437
    generaltso

    generaltso Member

    964
    0
    Nov 3, 2003
    Vermont
    It's a crash with a Windows dialog. Something along the lines of "ffmpeg.exe referenced memory that could not be read". The only options are cancel and debug. Neither seems to do anything.
     
  11. Oct 5, 2009 #751 of 1437
    clark_kent

    clark_kent Member

    118
    0
    May 6, 2007
    I'm using Elgato EyeTV to record some programs off cable. I'd like to transfer those programs to the TiVo.

    EyeTV puts all the recorded programs into a folder called "EyeTV Archive" and this is the folder that pyTivoX "Shared Directories" is pointing to. If I look at the "EyeTV Archive" folder with Finder, all the recorded programs have the program name with .eyetv file extention. The program name includes the episode title, as an example:

    Two and a Half Men - Whipped Unto the Third Generation.eyetv

    When I launch pyTivoX, "EyeTVshare" shows up at the bottom of Now Playing List on the TiVo. When I select "EyeTVshare" all the recorded programs are listed with a "Group" icon; each single recording is it's own Group since each program has the program "episode" as part of the program name making each recording unquiet, as an example:

    (Group icon) Two and a Half Men - Whi... (1) Mon 9/28 edit: this the "Whipped Unto the Third Generation" episode

    If I turn Group/OFF on the TiVo, I get no program names, just a list of big numbers.

    A program that is scheduled to be recorded by EyeTV is listed in the Finder as:

    Two and a Half Men - Mmm, Fish. Yum.eyetvsched

    On the TiVo, this scheduled recording is listed as:

    (Group icon) Two and a Half Men - M... (0) Mon 10/5

    On the TiVo, when I select the Group "Two and a Half Men - Whi... (1) Mon 9/28" the TiVo displays 3 lines:

    At the top: "Group (EyeTVshare)"
    Below that: "Two and a Half Men - Whipped Unto the Third G..."
    3rd line: (Green circle icon) 000000001071d9e0 Mon 9/28

    I then select to transfer that program. It all looks OK (but for the name) and TiVo says the program is transferring. I didn't time it, but the transfer completes and the program does play.

    I pulled up the pytivo.log and it's got a big LONG list of stuff, not sure what might be useful, this is some of the log (sorry this is so long), hope someone finds something useful:

    INFO()pyTivo:192.168.1.101 [05/Oct/2009 15:06:59] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
    DEBUG()pyTivo.video.transcode:CACHE HIT! /Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg
    ...
    DEBUG()pyTivo.video.transcode:TRANSCODE=YES, container mpegts not compatible, /Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg
    ...
    DEBUG()pyTivo.video.transcode()optres: False
    DEBUG()pyTivo.video.transcode:File=/Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg vCodec=mpeg2video vWidth=1920 vHeight=1080 vFps=29.97 millisecs=1799520 TIVO_HEIGHT=1080 TIVO_WIDTH=1920
    ...
    INFO()pyTivo:192.168.1.101 [05/Oct/2009 15:06:59] "GET /TiVoConnect?Command=QueryContainer&Container=EyeTVshare%2FTwo%20and%20a%20Half%20Men%20-%20Whipped%20Unto%20the%20Third%20Generation.eyetv&SortOrder=!CaptureDate&ItemCount=8&Filter=x-tivo-container%2Ftivo-videos,x-tivo-container%2Ffolder,video%2Fx-tivo-mpeg,video%2F* HTTP/1.1" 200 -
    INFO()pyTivo:192.168.1.101 [05/Oct/2009 15:06:59] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
    ...

    INFO()pyTivo:192.168.1.101 [05/Oct/2009 15:07:02] "GET /TiVoConnect?Command=TVBusQuery&Container=EyeTVshare&File=%2FTwo%20and%20a%20Half%20Men%20-%20Whipped%20Unto%20the%20Third%20Generation.eyetv%2F000000001071d9e0.mpg HTTP/1.1" 200 -
    INFO()pyTivo:192.168.1.101 [05/Oct/2009 15:07:07] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
    INFO()pyTivo:192.168.1.101 [05/Oct/2009 15:07:07] "GET /TiVoConnect?Command=QueryItem&Url=http%3A%2F%2Fa%2Fb%3FContainer%3D%2FNowPlaying%26id%3D%2FEyeTVshare%2FTwo%2520and%2520a%2520Half%2520Men%2520-%2520Whipped%2520Unto%2520the%2520Third%2520Generation.eyetv%2F000000001071d9e0.mpg HTTP/1.1" 404 -
    DEBUG()pyTivo.video.transcode:CACHE HIT! /Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg
    DEBUG()pyTivo.video.transcode:TRANSCODE=YES, container mpegts not compatible, /Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg
    INFO()pyTivo:192.168.1.101 [05/Oct/2009 15:07:13] "GET /EyeTVshare/Two%20and%20a%20Half%20Men%20-%20Whipped%20Unto%20the%20Third%20Generation.eyetv/000000001071d9e0.mpg HTTP/1.1" 206 -
    DEBUG()pyTivo.video.video:/Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg is not tivo compatible
    ...
    DEBUG()pyTivo.video.transcode:transcoding to tivo model 652 using ffmpeg command:
    DEBUG()pyTivo.video.transcode:/Users/mr_me/Documents/TiVo/pyTiVoX/pyTivoX.app/Contents/Resources/ffmpeg.bin -i /Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg -vcodec copy -b 13862k -maxrate 30000k -bufsize 4096k -ab 448k -ar 48000 -acodec copy -f vob -
    FFmpeg version SVN-r19732, Copyright (c) 2000-2009 Fabrice Bellard, et al.
    configuration: --shlibdir=@executable_path --arch=i386 --cpu=i686 --disable-static --enable-shared --enable-pthreads --enable-gpl --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-libfaad --enable-libx264 --extra-cflags='-I/Users/yoav/src/lame/include -I/Users/yoav/src/faad2-2.7/include -I/Users/yoav/src/faac-1.28/include -I/Users/yoav/src/x264' --extra-ldflags='-L/Users/yoav/src/lame/libmp3lame/.libs -L/Users/yoav/src/faad2-2.7/libfaad/.libs -L/Users/yoav/src/faac-1.28/libfaac/.libs -L/Users/yoav/src/x264/'
    libavutil 50. 3. 0 / 50. 3. 0
    libavcodec 52.34. 0 / 52.34. 0
    libavformat 52.38. 0 / 52.38. 0
    libavdevice 52. 2. 0 / 52. 2. 0
    libswscale 0. 7. 1 / 0. 7. 1
    built on Aug 27 2009 10:32:06, gcc: 4.0.1 (Apple Inc. build 5484)

    Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 29.97 (30000/1001)
    Input #0, mpegts, from '/Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg':
    Duration: 00:29:59.52, start: 12089.652922, bitrate: 14246 kb/s
    Program 4
    Program 7
    Program 5
    Program 1
    Stream #0.0[0x48]: Video: mpeg2video, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 65000 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x49](eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.2[0x4a]: Data: 0x0006
    Stream #0.3[0x4b]: Data: TVG1 / 0x31475654
    Stream #0.4[0x4c]: Data: TVG2 / 0x32475654
    Output #0, vob, to 'pipe:':
    Stream #0.0: Video: mpeg2video, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 65000 kb/s, 90k tbn, 29.97 tbc
    Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Press [q] to stop encoding
    [vob @ 0x1809a00]buffer underflow i=0 bufi=234735 size=250396
    [vob @ 0x1809a00]packet too large, ignoring buffer limits to mux it
    [vob @ 0x1809a00]buffer underflow i=0 bufi=234735 size=250396
    Last message repeated 1 times
    [vob @ 0x1809a00]packet too large, ignoring buffer limits to mux it
    [vob @ 0x1809a00]buffer underflow i=0 bufi=234735 size=250396
    [vob @ 0x1809a00]buffer underflow i=0 bufi=236759 size=250396

    ...

    DEBUG()pyTivo.video.transcode:transcoding to tivo model 652 using ffmpeg command:
    DEBUG()pyTivo.video.transcode:/Users/mr_me/Documents/TiVo/pyTiVoX/pyTivoX.app/Contents/Resources/ffmpeg.bin -i /Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg -vcodec copy -b 13862k -maxrate 30000k -bufsize 4096k -ab 448k -ar 48000 -acodec copy -f vob -
    FFmpeg version SVN-r19732, Copyright (c) 2000-2009 Fabrice Bellard, et al.
    configuration: --shlibdir=@executable_path --arch=i386 --cpu=i686 --disable-static --enable-shared --enable-pthreads --enable-gpl --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-libfaad --enable-libx264 --extra-cflags='-I/Users/yoav/src/lame/include -I/Users/yoav/src/faad2-2.7/include -I/Users/yoav/src/faac-1.28/include -I/Users/yoav/src/x264' --extra-ldflags='-L/Users/yoav/src/lame/libmp3lame/.libs -L/Users/yoav/src/faad2-2.7/libfaad/.libs -L/Users/yoav/src/faac-1.28/libfaac/.libs -L/Users/yoav/src/x264/'
    libavutil 50. 3. 0 / 50. 3. 0
    libavcodec 52.34. 0 / 52.34. 0
    libavformat 52.38. 0 / 52.38. 0
    libavdevice 52. 2. 0 / 52. 2. 0
    libswscale 0. 7. 1 / 0. 7. 1
    built on Aug 27 2009 10:32:06, gcc: 4.0.1 (Apple Inc. build 5484)

    Seems stream 0 codec frame rate differs from container frame rate: 59.94 (60000/1001) -> 29.97 (30000/1001)
    Input #0, mpegts, from '/Users/mr_me/Documents/EyeTV Archive/Two and a Half Men - Whipped Unto the Third Generation.eyetv/000000001071d9e0.mpg':
    Duration: 00:29:59.52, start: 12089.652922, bitrate: 14246 kb/s
    Program 4
    Program 7
    Program 5
    Program 1
    Stream #0.0[0x48]: Video: mpeg2video, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 65000 kb/s, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0.1[0x49](eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream #0.2[0x4a]: Data: 0x0006
    Stream #0.3[0x4b]: Data: TVG1 / 0x31475654
    Stream #0.4[0x4c]: Data: TVG2 / 0x32475654
    Output #0, vob, to 'pipe:':
    Stream #0.0: Video: mpeg2video, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], q=2-31, 65000 kb/s, 90k tbn, 29.97 tbc
    Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Press [q] to stop encoding
    [vob @ 0x1809a00]buffer underflow i=0 bufi=234735 size=250396
    [vob @ 0x1809a00]packet too large, ignoring buffer limits to mux it
    [vob @ 0x1809a00]buffer underflow i=0 bufi=234735 size=250396
    Last message repeated 1 times
    [vob @ 0x1809a00]packet too large, ignoring buffer limits to mux it
    [vob @ 0x1809a00]buffer underflow i=0 bufi=234735 size=250396
    [vob @ 0x1809a00]buffer underflow i=0 bufi=236759 size=250396
     
  12. Oct 5, 2009 #752 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    wmcbrine was right. Your eyetv files are actually bundles which the Mac Finder is showing as a single file, but on disk they are represented as folders with an mpg file inside.

    If you right click on an eyetv "file" in Finder, you should get a choice to "Show package contents" which will display the contents of the bundle including the mpg file will the long name.
     
  13. Oct 5, 2009 #753 of 1437
    clark_kent

    clark_kent Member

    118
    0
    May 6, 2007
    Thanks, I forgot to look using the "Show package content."

    But, I still don't understand why TiVo lists all the program titles correct as long as the TiVo "list by Group" option is ON.
     
  14. Oct 6, 2009 #754 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    So each eyetv "file" is really a folder. The folder has the name of the "file" so those have the names you expect. When you go into the folder, it lists the individual mpg file by the number name because pyTivo supports looking inside subfolders. When you turn grouping off, the whole hierarchy is displayed as a flat list and since each mpg is really named by number in the subfolders, that's what you see in the flat list.
     
  15. Oct 6, 2009 #755 of 1437
    clark_kent

    clark_kent Member

    118
    0
    May 6, 2007
    That's not quite correct:

    The TiVo Folder has the correct, expected name. Selecting that Folder displays that program name as "big number."

    The "show package" in the Finder indicated the file name as big_number.mpg and the actual "expected name" of the program is one level up. So:

    1. Why is TiVo displaying each single program as a "Folder?"
    2. With TiVo Folder/ON, why is TiVo displaying "the name" that is one level up from the actual .mpg file?

    Is this a bug in pyTivoX? How would I report a potential bug?

    I did make progress on a workaround:

    I renamed the "big_number.mpg" to "expected_name.mpg" and low and behold, the program transferred with the (correct) expected name. Unfortunately, the program actual recording date is not correct and the program caption is missing.
     
  16. Oct 7, 2009 #756 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    I'm trying to digest this but I'm getting a little confused. Could you take a couple screenshots and post them or PM them to me?

    I think the point is that "bundles" are an illusion that the Mac Finder maintains. The actual way the OS stores the files on disk is that each bundle is a folder. pyTivo lists files and folders using the more basic Unix methods so it sees the raw folders and files, not the "bundle" abstraction.

    If it is a bug in pyTivo (the core running inside pyTivoX), then reporting it here is fine because wmcbrine reads this thread.
     
  17. Oct 7, 2009 #757 of 1437
    wmcbrine

    wmcbrine Ziphead

    10,368
    22
    Aug 2, 2003
    There is no bug, AFAICT, and I don't know why clark_kent says "that's not quite correct", but then goes on to describe the exact same thing you did.

    I guess we could consider adding special support for EyeTV bundles. Of course that would be easier if I had EyeTV...
     
  18. Oct 8, 2009 #758 of 1437
    clark_kent

    clark_kent Member

    118
    0
    May 6, 2007
    I've seen post's with photos, but I don't know how to embed photo's into a post...
     

    Attached Files:

  19. Oct 8, 2009 #759 of 1437
    Rdian06

    Rdian06 New Member

    463
    0
    Apr 12, 2008
    Ok, your photos show EXACTLY what I described and as wmcbrine said, it's NOT a bug. Let me try to explain this again.

    The Now Playing list supports grouping based on seriesID. When grouping is on, shows from the same series with proper metadata will show up in folders with the series name as the name of the folder. When you navigate into those folders, you get individual episode names on each recording with the green circle. If you turn grouping off for the Now Playing list, then all the recordings show in a flat list (i.e. no folder hierarchies) with their individual episode names.

    Now when you navigate a Tivo share provided by a computer, similar grouping applies but the grouping is based on the folder structure on your computer. You can actually have multiple levels of subfolders and they will show up as folders inside folders inside folders when navigated from the Tivo.

    Your EyeTV recordings are created by the EyeTV software as Mac "bundles". These "bundles" are an illusion that the Mac Finder presents to you for convenience. If they were real individual files, then when you right click on them there would be no "Show Package Contents" option. They are really stored as a folder having the recording name as the folder name and with the real MPG file inside the folder having some unique number as the file name.

    So when you navigate to a pyTivo provided share on your Tivo, each EyeTV recording will be treated as a sub-folder of the share (with the name of the EyeTV bundle as the name of the sub-folder) and inside each subfolder will be the real mpg file with the number name.

    If you want pyTivo to special case your EyeTV bundles, then you'll have to convince one of the developers to code it into pyTivo. Translation - donate an EyeTV to wmcbrine or figure out how to write Python code and do it yourself :)
     
  20. Oct 8, 2009 #760 of 1437
    wmcbrine

    wmcbrine Ziphead

    10,368
    22
    Aug 2, 2003
    I might even be able to do something if I just had some .eyetv bundles to look at...
     

Share This Page