unRaid Streaming to TiVo


Recommended Posts

Recently finished building my unRaid server.  Things all seem to be working as planned/advertised.

 

I currently use pyTivo to stream video to a collection of wired Series 2 and TiVo HDs from my desktop.  I've moved some videos to my unRaid box and have pointed pyTivo (on the desktop) to the network drive.  It's working fine, but the setup is less than elegant and requires me to have both the unRaid server and my reasonably powerful (and power consuming) desktop running to stream video.

 

This is my first unRaid box and I am a complete Linux newbie.  I've been successful in installing some add-ons to my box and have run some commands (preclear, primarily) through putty.  But, those were essentially copy and paste operations for me from instructions that I found here.

 

Can anyone tell me what steps (from the beginning and with specific instructions) I need to take to run pyTivo directly on my unRaid server?

 

Is there a different program/package that I could use to serve videos directly from my unRaid server to my Tivos?

 

At present, I'm running unRaid basic, but I'm planning on updating to pro in the near future.  That doesn't really matter, correct?  If I go through the machinations to get Tivo streaming running on the basic, will I have to do it all over again when I upgrade to pro?

 

Thanks to all in advance.

 

I really dig my unRaid box.  I went for a huge 20 drive beast.  A little over $1000 in total, not a crazy amount over a MUCH smaller Drobo...I like it.

 

John

Link to comment
  • 4 weeks later...
  • Replies 81
  • Created
  • Last Reply

Top Posters In This Topic

It will work natively under Linux. PyTivo is a nothing but a Python script that wraps FFmpeg.

 

In order to run pyTivo you will need:

  • A compatible TiVo with active subscription (standalone Series 2, Series 3/HD or Series 4; limited (non-video) support for modified DirecTV Series 2 units)
  • FFmpeg (included with the Windows Installer or pyTivoX)
  • A Current Release of pyTivo
  • The Python Imaging Library -- if you plan on using the photo plugin

 

See the install pages for more detailed settings for specific operating systems. (Linux Install)

Link to comment

EDIT: For the resulting list of final packages needed please refer to this summary post: http://lime-technology.com/forum/index.php?topic=6571.msg66634#msg66634

 

Below is what kick started the process.

 

~~~

 

No. You are not alright so far. Most of those packages you are specificly talking about are not installable. You were grabbing the source files. They would have to be compiled first. Fortunately some of them are already available in installable packages. However, the pyTivo is only available as source as it is a Python script, and as such does not need to be compiled.

 

A prepackaged Slackware 13.1 ffmpeg can be found from alien. I run on a Slackware-Current (13.1+) build, so that's the version I use. It may be useable on base unRAID too. Also, I don't recall if unRAID 4.5.5 has the upgraded Slackware Package Tools or not, but if it doesn't then you will need to upgrade that to handle the current ".txz" packages.

 

Step one is to get all the files needed, Python, FFmpeg, and pyTivo and the known prereqs for FFmpeg.

 

wget http://slackware.osuosl.org/slackware-current/slackware/d/python-2.6.4-i486-1.txz
wget http://connie.slackware.com/~alien/slackbuilds/ffmpeg/pkg/13.1/ffmpeg-0.6-i486-1alien.tgz
wget http://slackware.osuosl.org/slackware-current/slackware/a/openssl-solibs-0.9.8n-i486-1.txz
wget http://slackware.osuosl.org/slackware-current/slackware/l/libusb-1.0.6-i486-1.txz
wget http://slackware.osuosl.org/slackware-current/slackware/l/libtheora-1.1.1-i486-1.txz
wget http://slackware.osuosl.org/slackware-current/slackware/l/libogg-1.1.4-i486-1.txz
wget http://slackware.osuosl.org/slackware-current/slackware/l/alsa-lib-1.0.23-i486-1.txz

 

Step two, copy these files into a location that is persistent across reboots. I don't know what the unRAID community convention is, since I run a full Slackware-Current system so I don't need to worry about continual reinstalling after reboots or in-memory root filesystem. Make sure the directory exists before you copy over.

 

mv python-2.6.4-i486-1.txz /boot/packages
mv ffmpeg-0.6-i486-1alien.tgz /boot/packages
mv openssl-solibs-0.9.8n-i486-1.txz libusb-1.0.6-i486-1.txz libtheora-1.1.1-i486-1.txz libogg-1.1.4-i486-1.txz alsa-lib-1.0.23-i486-1.txz /boot/packages

 

Step Three, from your go script install them after reboot:

 

installpkg /boot/packages/python-2.6.4-i486-1.txz
installpkg /boot/packages/ffmpeg-0.6-i486-1alien.tgz
installpkg /boot/packages/openssl-solibs-0.9.8n-i486-1.txz
installpkg /boot/packages/libusb-1.0.6-i486-1.txz 
installpkg /boot/packages/libtheora-1.1.1-i486-1.txz
installpkg /boot/packages/libogg-1.1.4-i486-1.txz
installpkg /boot/packages/alsa-lib-1.0.23-i486-1.txz

 

Step 4, with this done, upon a reboot you should have both Python and FFmpeg installed. Verify they are, and functioning using something like:

 

ffmpeg -version

 

python --version

 

Step 5, getting pyTivo to run. Since it's a Python script, it merely needs to be unzipped somewhere, configured, and then run from there. You could install it onto your flash drive or data drive.

 

Unzip / configure

cp pyTivo-nnn.zip /boot/packages
cd /boot/packages
unzip pyTivo-nnn.zip
cd pyTivo
vi pyTivo.conf

 

Then to run pyTivo you would invoke it using:

 

/usr/bin/python /boot/packages/pyTivo/pyTivo.py

 

 

If you have issues with ffmpeg or Python, you could try older versions based off the older Slackware distros (replace the steps above with the specifics below). If you do so, you will also need to grab the proper versions of the prereq libraries for FFmpeg as well:

 

wget http://connie.slackware.com/~alien/slackbuilds/ffmpeg/pkg/13.0/ffmpeg-r22900-i486-1alien.tgz
wget http://slackware.osuosl.org/slackware-13.0/slackware/a/openssl-solibs-0.9.8k-i486-2.txz
wget http://slackware.osuosl.org/slackware-13.0/slackware/l/libtheora-1.0-i486-1.txz
wget http://slackware.osuosl.org/slackware-13.0/slackware/l/libogg-1.1.3-i486-2.txz
wget http://slackware.osuosl.org/slackware-13.0/slackware/l/alsa-lib-1.0.18-i486-2.txz
cp ffmpeg-r22900-i486-1alien.tgz /boot/packages
cp openssl-solibs-0.9.8k-i486-2.txz libtheora-1.0-i486-1.txz libogg-1.1.3-i486-2.txz /boot/packages
installpkg  /boot/packages/ffmpeg-r22900-i486-1alien.tgz
installpkg /boot/packages/openssl-solibs-0.9.8k-i486-2.txz
installpkg /boot/packages/libtheora-1.0-i486-1.txz
installpkg /boot/packages/libogg-1.1.3-i486-2.txz
installpkg /boot/packages/alsa-lib-1.0.18-i486-2.txz

 

wget http://connie.slackware.com/~alien/slackbuilds/ffmpeg/pkg/12.2/ffmpeg-0.5-i486-1alien.tgz
cp ffmpeg-0.5-i486-1alien.tgz  /boot/packages
installpkg  /boot/packages/ffmpeg-0.5-i486-1alien.tgz

 

wget http://slackware.osuosl.org/slackware-13.0/slackware/d/python-2.6.2-i486-3.txz
cp python-2.6.2-i486-3.txz /boot/packages
installpkg  /boot/packages/python-2.6.2-i486-3.txz

 

wget http://slackware.osuosl.org/slackware-12.2/slackware/d/python-2.5.2-i486-4.tgz
cp python-2.5.2-i486-4.tgz /boot/packages
installpkg  /boot/packages/python-2.5.2-i486-4.tgz

 

Link to comment

BRiT,

 

You're the man.  That's exactly the kind of instructions that I was looking for.  I don't think that I'll have a chance to give it a go tonight, but this weekend at the latest.  I'll let you know how it goes.

 

I apologize again for my ignorance with all things Linux.  I really appreciate you taking the time to give such a comprehensive reply...no small piece of work for a stranger.

 

Many Thanks

 

John

Link to comment

Got a few steps in and ran into a roadblock....

 

Followed your instructions for downloading and moving python and ffmpeg.  As I look at my flash drive, it appears as tough the unRaid convention is to save add-ons to root/packages so i changed your move instructions to:

 

mv python-2.6.4-i486-1.txz /boot/packages

mv ffmpeg-0.6-i486-1alien.tgz /boot/packages

 

etc....

 

The files appear in the appropriate folder.  I added the install instructions to my "go" script as instructed.  Upon re-boot, I found that Python was installed.  However, checking for ffmpeg returned:

 

ffmpeg: error while loading shared libraries: libasound.so.2: cannot open shared object file: No such file or directory

 

I tried the same with the other two versions of ffmpeg that you posted and had the same results.  The file is in the appropriate folder, the "go" script is edited correctly, but I get the same error message.

 

I was running unRaid 4.5.3, so I updated to 4.5.4, but I cannot find 4.5.5 that you referenced.

 

Any advice?

 

Once again, many thanks

 

John

Link to comment

Tried a few more versions of ffmepg. Again, no luck.

 

"command not found"

 

Don't know where to go from here.....

Unless compiled "statically" all programs use "shared libraries"  You'll need to identify those missing and install them too.

 

You can use the "ldd" program to learn all the shared libraries needed by any given version of ffmpeg.

 

Type

ldd /full/path/to/ffmpeg

It will tell you all that are missing.  You can probably find installable packages for them at the same download sites you are finding ffmpeg.

 

/you can find the full path of ffmpeg by typing

which ffmpeg

 

Link to comment

There's quite a few libraries which Fmpeg uses, but only a few come with the package. Here's the dump from the Slackware 13.1 FFmpeg 0.6 package. I'll try striking through the ones included by FFmpeg or that unRAID 4.5.4 should have.

 

usr/lib/libavdevice.a

usr/lib/libavdevice.so.52.2.0

usr/lib/libavutil.so.50.15.1

usr/lib/libavcodec.a

usr/lib/libpostproc.a

usr/lib/libavutil.a

usr/lib/libpostproc.so.51.2.0

usr/lib/libswscale.so.0.11.0

usr/lib/libavfilter.so.1.19.0

usr/lib/libavformat.so.52.64.2

usr/lib/libavcodec.so.52.72.2

usr/lib/libavformat.a

usr/lib/libswscale.a

usr/lib/libavfilter.a

 

       linux-gate.so.1 =>  (0xffffe000)

       libssl.so.0 => /lib/libssl.so.0 (0xb77e3000)

       libcrypto.so.0 => /lib/libcrypto.so.0 (0xb769b000)

       libz.so.1 => /usr/lib/libz.so.1 (0xb7687000)

       libusb-0.1.so.4 => /usr/lib/libusb-0.1.so.4 (0xb7683000)

       libavdevice.so.52 => /usr/lib/libavdevice.so.52 (0xb7659000)

       libavfilter.so.1 => /usr/lib/libavfilter.so.1 (0xb764d000)

       libavformat.so.52 => /usr/lib/libavformat.so.52 (0xb7570000)

       libavcodec.so.52 => /usr/lib/libavcodec.so.52 (0xb66d2000)

       libpostproc.so.51 => /usr/lib/libpostproc.so.51 (0xb6696000)

       libswscale.so.0 => /usr/lib/libswscale.so.0 (0xb6639000)

       libavutil.so.50 => /usr/lib/libavutil.so.50 (0xb6626000)

       libm.so.6 => /lib/libm.so.6 (0xb6600000)

       libpthread.so.0 => /lib/libpthread.so.0 (0xb65e7000)

       libc.so.6 => /lib/libc.so.6 (0xb6484000)

       libdl.so.2 => /lib/libdl.so.2 (0xb6480000)

       libusb-1.0.so.0 => /usr/lib/libusb-1.0.so.0 (0xb6473000)

       librt.so.1 => /lib/librt.so.1 (0xb646a000)

       libasound.so.2 => /usr/lib/libasound.so.2 (0xb63a5000)

       libX11.so.6 => /usr/lib/libX11.so.6 (0xb628a000)

       libXext.so.6 => /usr/lib/libXext.so.6 (0xb627c000)

       libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6276000)

       libbz2.so.1 => /lib/libbz2.so.1 (0xb6265000)

       libtheoraenc.so.1 => /usr/lib/libtheoraenc.so.1 (0xb6222000)

       libtheoradec.so.1 => /usr/lib/libtheoradec.so.1 (0xb6209000)

       /lib/ld-linux.so.2 (0xb7853000)

       libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb61f0000)

       libogg.so.0 => /usr/lib/libogg.so.0 (0xb61eb000)

       libXau.so.6 => /usr/lib/libXau.so.6 (0xb61e8000)

       libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb61e3000)

 

 

Some of the additional libraries needed and where to find them within the Slackware-Current distro:

 

libcrypto.so.0, libssl.so.0 - http://slackware.osuosl.org/slackware-current/slackware/a/openssl-solibs-0.9.8n-i486-1.txz

 

libusb-1.0.so.0 - http://slackware.osuosl.org/slackware-current/slackware/l/libusb-1.0.6-i486-1.txz

 

libtheoraenc.so.1, libtheoradec.so.1 - http://slackware.osuosl.org/slackware-current/slackware/l/libtheora-1.1.1-i486-1.txz

 

libogg.so.0 - http://slackware.osuosl.org/slackware-current/slackware/l/libogg-1.1.4-i486-1.txz

 

libasound.so.2 - http://slackware.osuosl.org/slackware-current/slackware/l/alsa-lib-1.0.23-i486-1.txz

Link to comment

Wow, you guys are awesome.

 

BRiT, I see that you edited your first reply with the 5 additional libraries that you think I need to get.  I'll give those a try today.

 

Regarding the other libs that you listed that you think I may, or may not, need...

 

I took a peek at the slackware directory that you posted, and I want to make sure that I'm on the right track if I want to try to grab those and install as well.  I searched for "libX11.so.6" and could not find it.  However, I did find libX11-1.3.3-i486-1.txz http://slackware.osuosl.org/slackware-current/slackware/x/libX11-1.3.3-i486-1.txz.  Is that the same thing?  If so, I can find the rest.

 

You also mentioned that those other libs relate to X-Windows.  Would/could installing them cause problems?

 

Once again, many thanks to all for your time and efforts to help me get this running.  I apologize for my ignorance and the amount of hand-holding that has been necessary so far.  Wish I could buy you guys some beers...

Link to comment

Tried the first 5, and it appeared that there were still some libs missing.  I've installed a few more one at a time, then checked ffmpeg --version after each install.  Install the lib that it says it missing....rinse and repeat.  I'm assuming that it's going to end up asking for all of them, but I'm just going to grind through it to see if there are any that it doesn't ask for.

Link to comment

Tried the first 5, and it appeared that there were still some libs missing.  I've installed a few more one at a time, then checked ffmpeg --version after each install.  Install the lib that it says it missing....rinse and repeat.  I'm assuming that it's going to end up asking for all of them, but I'm just going to grind through it to see if there are any that it doesn't ask for.

That's exactly how you need to do it.
Link to comment

I think that I've got ffmpeg installed!

 

Looks like there were 7 more packages that needed to be installed.  After installing these (listed below) ffmpeg -version yields:

FFmpeg version 0.6, Copyright © 2000-2010 the FFmpeg developers

 

There's a lot more text under that, but none of it is obvious to me that there are errors or anything missing.

 

Below is a summary of what I've done so far:

 

Download Python, FFmpeg, and associated libs:

wget http://slackware.osuosl.org/slackware-current/slackware/d/python-2.6.4-i486-1.txz

wget http://connie.slackware.com/~alien/slackbuilds/ffmpeg/pkg/13.1/ffmpeg-0.6-i486-1alien.tgz

wget http://slackware.osuosl.org/slackware-current/slackware/a/openssl-solibs-0.9.8n-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libusb-1.0.6-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libtheora-1.1.1-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libogg-1.1.4-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/alsa-lib-1.0.23-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libX11-1.3.3-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXext-1.1-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXfixes-4.0.4-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libxcb-1.6-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXau-1.0.5-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXdmcp-1.0.3-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/a/glibc-solibs-2.11.1-i486-3.txz

 

Move all to /boot/packages:

mv python-2.6.4-i486-1.txz ffmpeg-0.6-i486-1alien.tgz openssl-solibs-0.9.8n-i486-1.txz libusb-1.0.6-i486-1.txz libtheora-1.1.1-i486-1.txz libogg-1.1.4-i486-1.txz alsa-lib-1.0.23-i486-1.txz libX11-1.3.3-i486-1.txz libXext-1.1-i486-1.txz libXfixes-4.0.4-i486-1.txz libxcb-1.6-i486-1.txz libXau-1.0.5-i486-1.txz libXdmcp-1.0.3-i486-1.txz glibc-solibs-2.11.1-i486-3.txz /boot/packages

 

Installed and added the following to my go script:

installpkg /boot/packages/python-2.6.4-i486-1.txz

installpkg /boot/packages/ffmpeg-0.6-i486-1alien.tgz

installpkg /boot/packages/openssl-solibs-0.9.8n-i486-1.txz

installpkg /boot/packages/libusb-1.0.6-i486-1.txz

installpkg /boot/packages/libtheora-1.1.1-i486-1.txz

installpkg /boot/packages/libogg-1.1.4-i486-1.txz

installpkg /boot/packages/alsa-lib-1.0.23-i486-1.txz

installpkg /boot/packages/libX11-1.3.3-i486-1.txz

installpkg /boot/packages/libXext-1.1-i486-1.txz

installpkg /boot/packages/libXfixes-4.0.4-i486-1.txz

installpkg /boot/packages/libxcb-1.6-i486-1.txz

installpkg /boot/packages/libXau-1.0.5-i486-1.txz

installpkg /boot/packages/libXdmcp-1.0.3-i486-1.txz

installpkg /boot/packages/glibc-solibs-2.11.1-i486-3.txz

 

Another question before I move ahead and try to fumble my way through installing pyTivo itself...

 

What's the difference between -version and --version?

 

When I check python -version I get:

unkown option -e

usage: python [option]...[-c cmd | -m mod | file | -] [arg] ...

Try 'python -h' for more information.

 

When I check python --version I get:

Python 2.6.4

 

However, ffmpeg -version works, but ffmpeg --version prints the first half of the text that ffmpeg -version does, but then says:

ffmpeg: missing argument for option '-version'

 

I guess my question is why does --version work for python, but -version works for ffmpeg? Is that normal?

 

Once again, thanks all for your help so far.  I feel like I've learned quite a bit, but, since I started at zero, that's still not saying much...

 

I'm going to forge ahead and try to get pytivo installed...wish me luck...Though I'll probably be back here squealing for help within the hour...

 

Cheers

 

John

Link to comment

I think that I've got ffmpeg installed!

 

Looks like there were 7 more packages that needed to be installed.  After installing these (listed below) ffmpeg -version yields:

FFmpeg version 0.6, Copyright © 2000-2010 the FFmpeg developers

 

There's a lot more text under that, but none of it is obvious to me that there are errors or anything missing.

 

Below is a summary of what I've done so far:

 

Download Python, FFmpeg, and associated libs:

wget http://slackware.osuosl.org/slackware-current/slackware/d/python-2.6.4-i486-1.txz

wget http://connie.slackware.com/~alien/slackbuilds/ffmpeg/pkg/13.1/ffmpeg-0.6-i486-1alien.tgz

wget http://slackware.osuosl.org/slackware-current/slackware/a/openssl-solibs-0.9.8n-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libusb-1.0.6-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libtheora-1.1.1-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libogg-1.1.4-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/alsa-lib-1.0.23-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libX11-1.3.3-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXext-1.1-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXfixes-4.0.4-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libxcb-1.6-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXau-1.0.5-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXdmcp-1.0.3-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/a/glibc-solibs-2.11.1-i486-3.txz

 

Move all to /boot/packages:

mv python-2.6.4-i486-1.txz ffmpeg-0.6-i486-1alien.tgz openssl-solibs-0.9.8n-i486-1.txz libusb-1.0.6-i486-1.txz libtheora-1.1.1-i486-1.txz libogg-1.1.4-i486-1.txz alsa-lib-1.0.23-i486-1.txz libX11-1.3.3-i486-1.txz libXext-1.1-i486-1.txz libXfixes-4.0.4-i486-1.txz libxcb-1.6-i486-1.txz libXau-1.0.5-i486-1.txz libXdmcp-1.0.3-i486-1.txz glibc-solibs-2.11.1-i486-3.txz /boot/packages

 

Installed and added the following to my go script:

installpkg /boot/packages/python-2.6.4-i486-1.txz

installpkg /boot/packages/ffmpeg-0.6-i486-1alien.tgz

installpkg /boot/packages/openssl-solibs-0.9.8n-i486-1.txz

installpkg /boot/packages/libusb-1.0.6-i486-1.txz

installpkg /boot/packages/libtheora-1.1.1-i486-1.txz

installpkg /boot/packages/libogg-1.1.4-i486-1.txz

installpkg /boot/packages/alsa-lib-1.0.23-i486-1.txz

installpkg /boot/packages/libX11-1.3.3-i486-1.txz

installpkg /boot/packages/libXext-1.1-i486-1.txz

installpkg /boot/packages/libXfixes-4.0.4-i486-1.txz

installpkg /boot/packages/libxcb-1.6-i486-1.txz

installpkg /boot/packages/libXau-1.0.5-i486-1.txz

installpkg /boot/packages/libXdmcp-1.0.3-i486-1.txz

installpkg /boot/packages/glibc-solibs-2.11.1-i486-3.txz

Nice work.

Another question before I move ahead and try to fumble my way through installing pyTivo itself...

 

What's the difference between -version and --version?

Each programmer gets to decide on the command arguments for any given command.  Typically the library routine used to parse them only expects a single letter if a single "-" is given, although you can give a group of single letter arguments appended to a single dash.

 

Example, to get a file listing is

ls

to get a long listing is

ls -l

to get the listing of files including those with a leading "." as the first character in their name

ls -a

to get a long listing of the files, including those with a "." as the first character in their name

ls -al

You can see I could use a single "-" and combine the two arguments.

 

    The double-dash is used if the argument is spelled out, so the program does not try to parse individual letters.

When I check python -version I get:

unkown option -e

usage: python [option]...[-c cmd | -m mod | file | -] [arg] ...

Try 'python -h' for more information.

 

When I check python --version I get:

Python 2.6.4

That is because the "-e" option does not exist in python, but odds are the "-v" option does, but has a very different purpose:

From the python manual page:

-v

Print a message each time a module is initialized, showing the place (filename or built-in module) from which it is loaded.

 

However, ffmpeg -version works, but ffmpeg --version prints the first half of the text that ffmpeg -version does, but then says:

ffmpeg: missing argument for option '-version'

 

I guess my question is why does --version work for python, but -version works for ffmpeg? Is that normal?

There is a convention to use either -v, or -V, or --version, but it is up to the programmer who originally wrote it to use as they preferred.

Easiest is to look at the actual "man" page.  In google type:

man python linux

to see what is valid for a specific command as arguments. (and they may evolve over time as the command is improved/extended. )

Once again, thanks all for your help so far.  I feel like I've learned quite a bit, but, since I started at zero, that's still not saying much...

 

I'm going to forge ahead and try to get pytivo installed...wish me luck...Though I'll probably be back here squealing for help within the hour...

 

Cheers

 

John

You've learned a lot.  And, if you get ffmpeg working, then it is easy for others to follow in your footsteps.

 

Joe L.

Link to comment

I guess my question is why does --version work for python, but -version works for ffmpeg? Is that normal?

 

John

 

Each program has its own way of doing certain things.  -version and --version are not a system wide thing, they are associated with ffmpeg and python respectively. There is no real standard for the command line arguments but they are usually fairly standard between all the programs.

 

On some programs you can if use "-V" to get the version number.  It will do almost exactly the same thing as -version or --version most of the time.

Link to comment

So far...so good...

 

There are two current "forks" in pytivo development, wmcbrine's fork and TheBayer's fork.  I chose TheBayer's fork because it apparently has a plugin to read DVDs.  I have backed up some of my DVD collection as ISOs to my unRaid box.  If this plugin will allow me to stream those, then that would be great.  So, I chose TheBayer's fork:

 

wget http://repo.or.cz/w/pyTivo/TheBayer.git/snapshot/79fd85b2b5af79da8923cbb833f37fb08d11316a.zip

then

 

mv 79fd85b2b5af79da8923cbb833f37fb08d11316a.zip /boot/packages

 

Since the filename was cumbersome, I renamed it to thebayerpytivo.zip

 

The unraid didn't understand the command unzip. So, I installed infozip through unMenu.

 

Then:

cd boot/packages

unzip thebayerpytivo.zip

 

I now have a /boot/packages/thebayer folder

 

cd /boot/packges/thebayer

then

vi pyTivo.conf

 

I get several lines of tildes (~) then:

pytivo.conf: new file: line 1

 

????

 

There is no pyTivo.conf file in that folder.  There is a pyTivo.conf.dist file (attached) that says that it is a sample config file, but as I try to read through it, it says a lot of things that I don't understand.

 

So, I copied the pytivo.conf.dist file to a new file named pytivo.conf

 

then:

 

/usr/bin/python /boot/packages/thebayer/pyTivo.py

 

I get:

INFO:pyTivo.beacon:Announcing shares...

INFO:pyTivo.beacon:Registering: My Movies

INFO:pyTivo.beacon:scanning forTiVos...

INFO:pyTivo:pyTivo is ready.

 

When I go check my TiVo, there is a new folder at the bottom "My Movies" that contains no files. (I do not have a "My Movies" folder)

 

However, there is a pyTivo web configuration utility...http://localhost:9032 doesn't work....BUT http://tower:9032 does!

 

Unfortunately, the web configuration utility isn't responding to any commands.

 

So, pyTivo seems to be working, but I'm not sure how to configure it to point to my files on my unRaid box.  I'm making some attempts at editing the pytivo.conf file to see if I can get it working.

 

I'll be back....

 

 

 

 

pyTivo.conf.dist.txt

Link to comment

OK, I added the following lines to my pyTivo.conf file and rebooted

 

[Tower2 videos]

type=video

path=/video

 

I have a user share called "Video" set up on my unRaid box.

 

I then invoked pyTivo:

/usr/bin/python /boot/packages/thebayer/pyTivo.py

 

When I go to my Tivo, there is a new folder called Tower2 videos.  However, there is no content there, and my PuTTy session otputs:

[Errno 2] No such file or directory: '/video'

 

So, pyTivo seems to be working, but I still have two questions....

 

1: If I have a user share "video" on my unRaid box, what is the path that I should point pyTivo to so that it finds them?

 

2: After I rebooted, I went back an manually to pyTivo to start.  Is this necessary?  If so, is there a way that I can add this to my 'go' script to have it happen automatically?

 

Once again, many thanks.  I think that we are close to getting this working....

 

John

Link to comment

Hmmm...

 

Changed the share to:

 

path=/mnt/user/video

 

No videos

 

Changed the share to:

 

path=/mnt/user/Video and...Success!!!  Temporarily....

 

I started a transfer and it was working and working pretty well...faster than real time then it stopped...

 

I got the error:

INFO: pytivo.video.transcode [errno 104] connection reset be peer

INFO: pytivo.video.video [errno 34] broken pipe

 

I'm giving it another shot...

 

A different error....

Operation not permitted by bitrate

Received signal 15: terminating

 

Hmmm....

 

I suspect this issue is probably better addressed on the pyTivo forum...but I'll take any advice that I can get....

 

On another note, how do I get pyTivo to run automatically on reboot? Do I add:

/usr/bin/python /boot/packages/thebayer/pyTivo.py

to my 'go' script?

 

Thanks all....

 

Link to comment

Updated as of 04/30/11...multiple lib updates....

 

Updated as of 12/01/10, added additional libs and modified the go script for picture viewing...thx to pogopogo.  And Thx again to BRiT, Joe L, and the others that helped me get this working  Despite a few hiccups on the first day or so, it's been working transparently for several months now.

 

Well, pyTivo is up and running on my unRaid box!  Thanks once again to everyone here for the extraordinary amount of assistance they gave me.

 

 

Anyway, I want to summarize here the steps that it took to get to this point, in case someone else wants to do this...

 

1. Download Python, FFmpeg, and associated libraries:

wget http://connie.slackware.com/~alien/slackbuilds/ffmpeg/pkg/13.1/ffmpeg-0.6.1-i486-1alien.tgz

wget http://connie.slackware.com/~alien/slackbuilds/ffmpeg/pkg/13.1/ffmpeg-0.6-i486-1alien.tgz

wget http://slackware.osuosl.org/slackware-current/slackware/a/openssl-solibs-0.9.8r-i486-3.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libusb-1.0.8-i486-2.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libtheora-1.1.1-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libogg-1.2.2-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/alsa-lib-1.0.24.1-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libX11-1.4.3-i486-2.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXext-1.2.0-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXfixes-5.0-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libxcb-1.7-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXau-1.0.6-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/x/libXdmcp-1.1.0-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/a/glibc-solibs-2.13-i486-4.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/libjpeg-v8a-i486-1.txz

wget http://slackware.osuosl.org/slackware-current/slackware/l/pil-1.1.7-i486-1.txz

 

2. Move all to /boot/packages:

mv libjpeg-v8a-i486-1.txz pil-1.1.7-i486-1.txz python-2.6.6-i486-1.txz ffmpeg-0.6.1-i486-1alien.tgz openssl-solibs-0.9.8r-i486-3.txz libusb-1.0.8-i486-2.txz libtheora-1.1.1-i486-1.txz libogg-1.2.2-i486-1.txz alsa-lib-1.0.24.1-i486-1.txz libX11-1.4.3-i486-2.txz libXext-1.2.0-i486-1.txz libXfixes-5.0-i486-1.txz libxcb-1.7-i486-1.txz libXau-1.0.6-i486-1.txz libXdmcp-1.1.0-i486-1.txz glibc-solibs-2.13-i486-4.txz libjpeg-v8a-i486-1.txz pil-1.1.7-i486-1.txz /boot/packages

 

3. Install and/or add the following to your go script:

installpkg /boot/packages/python-2.6.6-i486-1.txz

installpkg /boot/packages/ffmpeg-0.6.1-i486-1alien.tgz

installpkg /boot/packages/openssl-solibs-0.9.8r-i486-3.txz

installpkg /boot/packages/libusb-1.0.8-i486-2.txz

installpkg /boot/packages/libtheora-1.1.1-i486-1.txz

installpkg /boot/packages/libogg-1.2.2-i486-1.txz

installpkg /boot/packages/alsa-lib-1.0.24.1-i486-1.txz

installpkg /boot/packages/libX11-1.4.3-i486-2.txz

installpkg /boot/packages/libXext-1.2.0-i486-1.txz

installpkg /boot/packages/libXfixes-5.0-i486-1.txz

installpkg /boot/packages/libxcb-1.7-i486-1.txz

installpkg /boot/packages/libXau-1.0.6-i486-1.txz

installpkg /boot/packages/libXdmcp-1.1.0-i486-1.txz

installpkg /boot/packages/glibc-solibs-2.13-i486-4.txz

installpkg /boot/packages/libjpeg-v8a-i486-1.txz

installpkg /boot/packages/pil-1.1.7-i486-1.txz

 

4. Reboot

 

5. Check to see that both Python & ffmpeg are installed

python --version

ffmpeg - version

yes --version for one -version for the other

 

You should get output like:

python-2.6.6

 

and

 

ffmpeg-0.6... (followed by several more lines of text)

 

 

6. Download a version of pyTivo here: http://pytivo.sourceforge.net/wiki/index.php/Current_Releases.  In my case, I chose the latest version of TheBayer Fork.  I then moved the .zip file to /boot/packages and renamed the zip file to an easy to remember name.  In my case thebayerpytivo.zip.  I renamed it by just browsing to the folder on my unRaid flash drive on a windows machine and renaming it that way.  I suppose that you could download and unzip on your windows machine and copy and paste to your flash drive as well.

wget http://repo.or.cz/w/pyTivo/TheBayer.git/snapshot/79fd85b2b5af79da8923cbb833f37fb08d11316a.zip

 

then

 

mv 79fd85b2b5af79da8923cbb833f37fb08d11316a.zip /boot/packages

 

then renamed 79fd85b2b5af79da8923cbb833f37fb08d11316a.zip to thebayerpytivo.zip using windows

 

7. Unzip your pyTiVo package in your /boot/packages folder

cd boot/packages

unzip thebayerpytivo.zip

 

If you don't have a unzip program on your unRaid box, then the download to windows, unzip, and copy & paste to your /boot/packages folder method is probably just as easy.

 

8. Create a pytivo configuration file (pytivo.conf)

In this case I browsed to my /boot/packages/thebayer folder from my windows machine and copied the pytivo.conf.dist to a new file pytivo.conf.  I'm sure that you can do this through Linux, but I don't know how and this method was very easy

 

This, essentially, creates a basic pytivo configuration file for you to use.  It creates a pytivo share My Movies, but the settings will not be correct for your needs.  You'll need to edit the pytivo.conf file later to point to your specific shares.  

 

9. Regardless, your ready to run pyTiVo and check to see if your TiVo can see your unRaid box

/usr/bin/python /boot/packages/thebayer/pyTivo.py

 

You'll want to change thebayer portion of the above command to the name of whatever folder was created when you unzipped your pytivo zip file.

 

10. You should see:

INFO:pyTivo.beacon:Announcing shares...

INFO:pyTivo.beacon:Registering: My Movies

INFO:pyTivo.beacon:scanning forTiVos...

INFO:pyTivo:pyTivo is ready.

 

11. Now go to your TiVo, scroll to the bottom of your Now Playing list.  There should be a new item there My Movies.  If so, it's working...if not...hell I don't know....

 

12.  Open your pytivo.conf file in a text editor and add some lines similar to the following::

[Tower videos]

type=video

path=/mnt/user/Video

 

The text inside the brackets is the name of the share that your TiVo will show

The text behind the "=" is the type of share (viedo, photo, or music)

The last line is a path to your user share.  In my case I have an unRaid user share setup called "Video" that holds my video files. So, change the last portion of this line to suit your needs.  Letter case is important here. "video" is not the same as "Video"

 

13. You can also delete the three lines in the in the pytivo.conf file associated with the My Movies share, or just edit the last line to point to your user share.

 

14. Set pyTivo to run automatically on reboot.  Add the following line near the bottom of your 'go' script.  Again, change thebayer portion of this line to a folder appropriate for you

/usr/bin/python /boot/packages/thebayer/pyTivo.py

 

15. Reboot your unRaid box.  Python, ffmpeg, and pyTivo should be running on your unRaid box.  Your video shares should now be visible on your TiVo.

 

I've only had this going for about 24 hours, and, as I mentioned, at the moment it is working, but not quite 100%.  I'll also note that you should be able to edit you pytivo.conf file from a web browser by pointing it to http://tower:9032/, however, this is not working for me.  I can view the web configuration utility, but I am unable to make any changes.  So, I/you will have to become familiar with editing the pytivo.conf file manually http://pytivo.sourceforge.net/wiki/index.php/Configure_pyTivo.  Perhaps this behavior is specific to the "Fork" that I chose (wmcbrine's fork vs thebayer fork), or perhaps it has something to do with running it on an unRaid box.  I don't know.

 

Thanks once again to everyone for their invaluable help in getting this running.  I am as novice a Linux user as you will come across.  There is no way that I could have gotten this done by myself.  It was a very educational experience for me.  Hopefully I won't need quite as much help the next time I want to add something to my unRaid server.

 

Cheers

 

John

 

 

 

 

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.