# Installing pyTivo on the Mac for Beginners



## bareyb

PyTivo is a cool little program that allows you to Transfer media from your computer to your Tivo Box. You can watch all those adorable Home Movies and illegal UFC downloads in the comfort of your familiar Tivo GUI. Great right? 

If you would like to try pyTivo (and I definitely think you should), but are new to command-line Unix type stuff, then this is the thread for you. Hopefully this will save you some time and some therapy bills for our local Unix experts.

Note: If you have been having trouble getting it to work, I suggest you simply do it EXACTLY the same way I do it in the guide here. Once you have an understanding of how it works it will be much easier to customize it to your personal taste. This guide assumes you have downloads downloaded to your "downloads" folder in your Dock and that you keep your Applications in the Applications folder. I'm using OSX version 10.6.8 (Snow Leopard) so your views may vary depending on what version you have.

There are a couple of different versions of pyTivo available, including the forks by Iluvatar ,Lucasnz, and wmcbrine who are well known contributors on this site. You can read about the different versions at the pyTivo Wiki Page.

*When you are ready to start the Tutorial, proceed to Step One: *


----------



## bareyb

*Step One: Download the latest version of pyTivo*

1. For the purposes of this Tutorial, I used the most recent wmcbrine fork. Click here to go to the download Site: http://repo.or.cz/w/pyTivo/wmcbrine.git

2. Once you are at the Website, you will see a list of recent versions. Go to the top line and click on the very end of the line where it says: tar, gz, zip. (I used zip). Your download will begin automatically and (once unzipped) will place a folder with the label "wmcbrine" in your downloads folder in your dock.

3. Open your downloads folder in the finder (see pic) and move the "wmcbrine" folder to your DESKTOP.


----------



## bareyb

*Step Two: Download the correct version of ffmpeg*

1.Be sure you are getting the latest ffmpeg build. We used the most recent version from Iluvatar's excellent "ffmpeg Builds for Mac OSX" thread. Click here to go to the download site: http://pytivo.sourceforge.net/forum/ffmpeg-builds-for-mac-os-x-t1803.html

2. Once you are at the Website, scroll down the page until you see a list of recent versions. Go to the topmost attachment window, and click on the blue "Download" link as pictured below.

3. The download will begin automatically and (once unzipped) you will end up with the little square thing pictured below in your downloads folder. That's ffmpeg. Put it on your desktop too. We will get to that later...


----------



## bareyb

*Step Three: Place Everything in your Applications Folder *

1. First change the name of the folder you downloaded (should be on your desktop) from "wmcbrine" (or whatever else is on it) to "pyTivo" (without the quotes).

2. Then open the newly named pyTivo folder and create a new folder in it named "bin".

3. Place ffmpeg (the little gray thing you put on your desktop) into the bin folder you created within the pyTivo folder.

4. Place the newly named pyTivo folder with the bin containing ffmpeg into your Applications Folder.


----------



## bareyb

*Step Four: Create your pyTivo Configuration File (pyTivo.Conf)*

UPDATE: With the latest version of pyTivo, you no longer need to create a pyTivo Configuration file to launch the Web Interface! Be grateful, this eliminates a whole bunch of potential problems... Big THANKS to wmcbrine for the update! Proceed to the next step...


----------



## bareyb

*Step Five: Use the "Terminal" App to launch pyTivo! *

Okay. It's time to start up pyTivo for the first time. Once we get that up and running the rest can be done through the Web Interface instead of through the Terminal. This is where it usually falls apart for people because they don't enter the command line correctly. I suggest you simply Copy and Paste the code from this thread directly into the Terminal Window.

1. Open the"Terminal" App on your Mac. It should be in the Applications folder in the subfolder "Utilities".

2. Once that is running and in your Dock you should copy and paste the following into the window:



Code:


cd /Applications/pyTivo 
./pyTivo.py

_Note: Copy and paste the code exactly as it is into the window. If you insist on typing it in yourself be aware there is a space between "cd" and "/Applications" in the path. Easy to miss. Don't ask me how I know...There may be other text in the window already, but simply paste in at the end after the square cursor. (see pic below). _

3. If you entered the code correctly, you will see the Screen below showing the TiVo Boxes on your Network:


----------



## bareyb

*Step Six: Setting up your Video Share*

This is where we show pyTivo where our Movies are so they can be downloaded to our TiVos! We are getting very close now....

1.Launch the pyTivo configuration webpage here: http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings

2.That brings up the webpage that will help you complete the setup. Once the "Config" webpage is open you will need to click on the button that says: "Add Section". This will open the "Add Section" window.

3. In the top field of the "Add Section" window that opens, enter whatever you would like the folder to be called on your Tivo. I chose to use "Movies" since that's the name of the folder I'm using. Hit "Save Changes" to save pyTivo. Once it relaunches you are ready for the next step.

4. A new "Movies" section should appear in the left pane of the pyTivo web config tool. Click on that to select it (see pic). A new set of text entry boxes will then appear.

5. Enter the TYPE of share you are creating In the first box down labeled "type" (see pic) you will enter the word "video" (no quotes of course and in lower case)

6. In the next box down labeled "path" you will enter the path to the Movies folder on your Mac. In my case the path is: /Users/bareyb/Movies.










_Note: If you are unclear about what the path is you can click on the folder and the path will be shown at the bottom of the window on your Mac (see pic below). Don't use the part that says "Macintosh HD" and simply start with "/Users". _

7. Once you have entered the text into those three fields, hit the "SAVE CHANGES" button in the web config tool. When it comes back up, restart pyTivo to make sure all the changes took effect. It should look something like this"










8. Next you should put some videos into the Movies folder on your Mac if you haven't already. Put something in there you know works...

9. Lastly, check the bottom of your "Now Playing List" aka "Your Shows" on your Tivo boxes and see if there is a nifty little icon that looks like a Computer with the name "Movies" next to it.










If so, SUCCESS! Right Arrow and the The Videos you placed in the Movies folder on your Mac should be visible. These are now available to TRANSFER to your Tivo Boxes. They transfer faster than real time, so you can watch them as they download! Once they complete the transfer to your Tivo, they will reside on your TiVo Hard Drive along with your other shows. Free to watch or delete at will. You can even use MRV to transfer them from one Tivo to another. How cool is that? If you would like to make your Music folder available to your Tivo too, stay tuned, it's a piece of cake, or should I say py? 

*You will need to have your Computer and pyTivo up and running for all of this to work of course. If you log out or shut down, there will not be any videos available on your Tivo for Transfer until you relaunch pyTivo again.*

Congratulations! You have just installed a basic pyTivo video server on your Mac! There are a couple very easy methods for launching pyTivo automatically and/or running pyTivo in the background that I will get to later. For now if you quit Terminal, you will need to re-enter the code that launches pyTivo again.

*To restart pyTivo copy the "launch code" (below) and paste it into the Terminal window again:*



Code:


cd /Applications/pyTivo 
./pyTivo.py


----------



## bareyb

*Adding a Music Share to pyTivo:*

Adding your "Music" Folder to your Tivo is even easier than adding your "Movies" folder (hopefully) was.

1. Make sure the pyTivo App is up and running. If you haven't set up pyTivo to run in the background, or downloaded the "pyTivo Launcher.app" yet, you will need to paste in the "launch code" as you did the last time you launched pyTivo.

Copy and paste the code below as you did before and enter it into the Terminal Window.



Code:


cd /Applications/pyTivo 
./pyTivo.py

2. Go to the Web Config page: http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings

3 Click the "Add Section" button as you did when you created your "Movies" share. This opens the "Add a section" box where you will type the word "Music" into the "Section Name" field. Click SAVE and wait for pyTivo to relaunch.

4. You will now have a "Music" share listed on the left pane of pyTivo (see pic). Click on that and you will see some boxes appear to enter some text in.

5. Under "Type" put "music" (lower case)

6. Under "Path" type in the path to the STOCK Music Folder on your Mac which resides in the side bar under your "Movies" and "Pictures" folders

In my case the path is: Users/bareyb/Music Your path will be the same with your own username in place of "bareyb".

5. Click "Save Changes" Wait for pyTivo to restart and click the "restart pyTivo" button. Wait for pyTivo to relauch and you're done. It should look something like this:










If all goes well, you should be able to go into your Tivo's "Music, Photos, & Showcases" section (under the "Tivo Central" main menu) and see a Folder there named "Music". Navigate to your iTunes' "Music" folder and all your iTunes songs will be in there ready to play. 










NOTE: If you are using a Series 4 TiVo with the new GUI the screens will look different but the Apps will be there.


----------



## bareyb

*Setting Up "PUSH" and "PULL" in pyTivo*

This is REALLY cool... Besides being able to PUSH video TO your Tivo from your computer, you can now PULL Movies FROM your TiVo and save them to your Hard Drive. Nice! Let's do it...

1. Open the Web Config Page and click on "Global Server Settings" in the left pane.

2. Enter the username you use to log-in at Tivo.com (usually your email address) in the tivo_username box (ignore underscore in "tivo_username", that's just Unix-ese for "TiVo Username". It should look something like this: [email protected]

3. Enter the password you use at Tivo.com in the "tivo_password box. Something like this: passwordexample123

4. Enter the 10 digit MAK address from the "Account & System Information" Menu under the heading "Media Access Key" on your Tivo. It's the same for all of your Tivos so you only need to get it once.

5. Save your changes and restart pyTivo. When pyTivo comes back up you should see the screen below with all the info you entered from your TiVo Account, and the path to your Movies Folder.










*Go back out to the pyTivo Homepage (http://localhost:9032/) and you should see the screen below:*










*Click the link to any of your TiVos, and you can PULL shows off any of them and save them to your Hard Drive where you can store them or convert them for other devices. It's always nice to have a few shows on your laptop for power outages. *

*Click the "Movies" link under the "Push" menu and it brings up a list of shows in your Movie Folder, ready to push to any Tivo box on your Network. Who knew all this cool stuff was under the Hood! 
*


----------



## bareyb

*Bonus Step: Setting up pyTivo to Run in the Background Automatically*

Iluvatar came up with a nifty little script that will allow pyTivo to start up automatically and run in the background when you log in. Pretty cool eh? To make the magic happen all you have to do is:

1. Open the Application "TextEdit" from the Applications folder on your Mac

2. Make sure that you save your new pyTivo.conf file in "Plain Text format". Open TextEdit's Preferences and set the new Document checkbox to "Plain Text" format.

3. In a new blank document paste in the following:



Code:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>pyTivo</string>
	<key>ProgramArguments</key>
	<array>
		<string>python</string>
		<string>/Applications/pyTivo/pyTivo.py</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
</dict>
</plist>

4. Save the document with the title "pyTivo.plist" to your DESKTOP, making _sure_ to UNCHECK the "Add .txt" checkbox in the "Save" window (see pic).










5. *IMPORTANT: Make sure that the file does not end in .txt or .rtf (or really anything other than .plist).*

*To make sure please select/highlight the pyTivo.plist you created and use the "Get Info" command from the menus or simply type in: "Command-I". This will bring up the "Get Info" screen where you can see what the file name really is. Sometimes Macs will have extensions turned OFF by default. If so, there may be an extension appended to the file and you won't see it in the finder. You MUST uncheck the "Hide Extensions" checkbox to see any extensions so you can remove them.*

_Note: If you need to open your "pyTivo.plist" document with TextEdit again, you will not be able to double click the file since we removed the extension, but you can still open it from within TextEdit using the Menu<Open command if you need to get back in there for any reason._

_*Example of completed pyTivo.plist file:*_










2. Navigate to the Launch Agents Folder, in my case it would be: (/Users/bareyb/Library/LaunchAgents) and place the pyTivo.plist file from your desktop into the Launch Agents folder. After that, pyTivo should launch in the background and leave the Terminal free. If you want to turn it off just remove the file from the Launch Agents folder. If you'd like to further hone your command-line skilz check out the quote below. Iluvatar put some scripts in there that will have Terminal place the files for you... Big thanks to Iluvatar for putting it all together.

_Note: If you would prefer not to have pyTivo running full time in the background, there is a cool little "Launcher" App described in the next section that will Launch pyTivo with a couple of clicks.
_



> *If you have trouble finding your user library folder just use this exact command in Terminal (assuming you saved pyTivo.plist file to your desktop):*
> 
> 
> 
> Code:
> 
> 
> mv ~/Desktop/pyTivo.plist ~/Library/LaunchAgents/
> 
> *To delete the file use:*
> 
> 
> 
> Code:
> 
> 
> rm ~/Library/LaunchAgents/pyTivo.plist
> 
> Remember by using this you will have no indication that pyTivo is running other than by being able to see your shares in the TiVo NPL or opening http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings/ which is your pyTivo WebAdmin interface.


----------



## bareyb

*Bonus Step #2: Fofer's pyTivo Launcher.app*.

If you would prefer _not_ to have pyTivo running full time in the background and would rather use it "on demand". Well. Ahem... There's an App for that. 

Fofer over at TCF created a handy little Applescript App that will automatically launch pyTivo when you double click it. To shut pyTivo back down, you simply go into the pyTivo Web Configuration Page (which opens automatically when you launch the App) and click the "Shut Down pyTivo" Button.

1. To Download the pyTivo Launcher App click on the large TivoMan Icon below or use the "pyTivo Launcher.app.zip file link in the attachment window.

2. Get it out of your downloads folder (it probably just bounced) and put it in the pyTivo Folder you put in your Applications folder earlier. It should look like the pic below... If it doesn't and looks like a fifty gallon drum with a trim waist, then you probably need to unzip it. Normally they unzip automatically...

*Click on TiVoMan to Download the Launcher:*


3. Double-Click the pyTivoLauncher.App whenever you want to launch pyTivo. That's it! No command line to remember or paste in. It does it all for you. When you're done use pyTivo's built-in Web Interface to shut it down. 

pyTivo Web Interface: http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings


----------



## bareyb

*Congratulations! You have completed the pyTivo Tutorial! I hope this guide made it a little easier. If you have any questions or run into any roadblocks feel free to post. Enjoy!*










*Updated info and Side Notes:*

1. If you decide to update your version of pyTiVo to a newer version, you can use the same .conf file that you created previously so you won't have to copy all your information all over again. Just be sure you download the latest version of ffmeg too so you will get the latest features. 

2. If you have a Series 4 TiVo, you can add a setting to the Global Server Settings that will allow you to download H.264 Movies natively without pyTiVo having to convert it. It's extremely _FAST_ for downloads. Took me about 20 seconds to download an hour and half movie. 

All you have to do is paste in the command: "ts = on" under the server settings on your .conf file. Or conversely you can do it in the Web Gui by "Add Section" name it "ts" and set it to "on". It will look like the pic below when you're done.


----------



## lrhorer

bareyb said:


> *Bonus Step #2: Fofer's pyTivo Launcher.app*.
> 
> If you would prefer _not_ to have pyTivo running full time in the background and would rather use it "on demand".


Why? That's a rather poor idea - certainly not a best practice. PyTivo is a server, and properly servers should run 24/7.


----------



## bareyb

lrhorer said:


> Why? That's a rather poor idea - certainly not a best practice. PyTivo is a server, and properly servers should run 24/7.


Some people will probably only use it on rare occasion though, and I can see the logic of wanting to start it up only when necessary /shrug. Different strokes...


----------



## lrhorer

bareyb said:


> Iluvatar came up with a nifty little script that will allow pyTivo to start up automatically and run in the background when you log in.


This is also not the best idea. PyTivo (and other servers) shoud never require a login. I am not intimately familiar with OS X, and I know it does not employ a System V init, but it does employ a similar init function, and it is from there pyTivo (and other such servers) should run. Hamstringing a server like pyTivo by requiring a user login on the server side is a really bad idea.


----------



## Fofer

lrhorer said:


> Why? That's a rather poor idea - certainly not a best practice. PyTivo is a server, and properly servers should run 24/7.


Huh? I'd disagree. My primary computer is a MacBook Pro, that I carry with me everywhere. I have all my media on it, and I travel frequently. And I use AppleTV quite a bit more than my TiVo these days.

Once in a blue moon, when I am at home, in front of my bigscreen TV, I'll want to use PyTiVo to transfer a video over to my TiVo. And so I'll launch PyTiVo (or PyTiVoX) to get the job done.

Surely you're not suggesting I need to "properly" leave the PyTiVo "server" running 24/7 on my laptop?


----------



## lrhorer

bareyb said:


> Agreed and that's how I plan to run it. Some people will probably only use it on rare occasion though


How frequently it is deployed is really not the issue. How randomly is perhaps more salient, but even that is really not the point. PyTivo is not a user application. Its functionality in no way depends upon or should require a console, and it should be available transparently whenever any user has need of it. Now of course one can implement things any way they like, but implementing pyTiVo, vidmgr, etc. as console applications is just not really a good idea. At best it is clumsy, error-prone, and almost surely inconvenient.


----------



## Fofer

Why in the world should I saddle my laptop with the task of running the PyTiVo server 24/7 when at most I use it for manually transferring a couple of shows every few months?


----------



## bareyb

lrhorer said:


> This is also not the best idea. PyTivo (and other servers) shoud never require a login. I am not intimately familiar with OS X, and I know it does not employ a System V init, but it does employ a similar init function, and *it is from there pyTivo (and other such servers) should run.* Hamstringing a server like pyTivo by requiring a user login on the server side is a really bad idea.


You do realize we don't have dedicated servers for this right? How would you keep it up all the time without that? Either way, if you have a better way. I'm sure people would love to hear it.


----------



## lrhorer

Fofer said:


> Huh? I'd disagree. My primary computer is a MacBook Pro, that I carry with me everywhere.


So don't use your McaBook pro for a server. Using any workstation - certainly a laptop - as a server platform is anohter rather poor idea. Best practice is to deploy a headless system, and the most economical is an old P4 or some such. 'No need to have more than $150 tied up in the server, excluding possibly a RAID array.



Fofer said:


> I have all my media on it, and I travel frequently. And I use AppleTV quite a bit more than my TiVo these days.


Which is not relevant.



Fofer said:


> Once in a blue moon, when I am at home, in front of my bigscreen TV, I'll want to use PyTiVo to transfer a video over to my TiVo. And so I'll launch PyTiVo (or PyTiVoX) to get the job done.


The more "blue moonish" the use, the more useful a headless server. It sits waiting for whomever, wherever to make a request.



Fofer said:


> Surely you're not suggesting I need to "properly" leave the PyTiVo "server" running 24/7 on my laptop?


No, I'm saying a laptop is a poor choice of platform on which to run any server. Workstations in general are a poor choice for server platforms, but laptops are particulalry so. My home servers are offline at most once or twice a year, usually due to extended power outages. The entire rest of the time, they provide DHCP, DNS, IMAP & SMTP, DDNS, NTP, VPN, rsync, HVAC, SMB, NFS, web, pyTivo, Galleon, and vidmgr services to every workstation and TiVo on the network, with no logins on the server side, no keyboards, no mice, and no monitor. As long as the server stations have power, those sevices are available. Of course, they also all log any important activity or errors to log files, in case there is a problem.


----------



## lrhorer

Fofer said:


> Why in the world should I saddle my laptop with the task of running the PyTiVo server 24/7 when at most I use it for manually transferring a couple of shows every few months?


That's backwards. Why would you put an application that should not be on a laptop on your laptop? Secondly, it is not "saddling it" with anything. Workstation or not, services like pyTivo use essentially no resources (other than a small amount of memory) when not providing the service.


----------



## Iluvatar

lrhorer said:


> This is also not the best idea. PyTivo (and other servers) shoud never require a login. I am not intimately familiar with OS X, and I know it does not employ a System V init, but it does employ a similar init function, and it is from there pyTivo (and other such servers) should run. Hamstringing a server like pyTivo by requiring a user login on the server side is a really bad idea.


This is just the way I described it to bareyb and seemed appropriate for his target audience (I didn't want to be held responsible for people mucking up their system library folder). On the wiki it also describes how to launch with on system startup. More advanced users can do what they want with it.


----------



## lrhorer

bareyb said:


> You do realize we don't have dedicated servers for this right?


Then you shouldn't really consider running a server. Again, you can do whatever you want, but the best practice is to get a machine for this purpose, not try to shoehorn an inappropriate application and hardware mixture. It makes for poor use of the workstation and poor performance / capabilities of the server. A laptop in particular has far too little of what the server requires (massive storage and ready expandability) and far too much of that for which the server has no use (keyboard, pointing device, monitor, fast CPU and GPU).



bareyb said:


> How would you keep it up all the time without that?


That's how.



bareyb said:


> Either way, if you have a better way. I'm sure people would love to hear it.


I think most people probably have an old PC lying around they aren't using. If not, one can be had off Craigslist for $45 - $150. Load the OS, load the servers, and sit it over in a corner or in a storage closet out of the way. Let it do its thing, without tying up an expensive workstation. When the need arises for more storage, add more drives to the chassis, or add an external RAID chassis.


----------



## Fofer

lrhorer said:


> So don't use your McaBook pro for a server. Using any workstation - certainly a laptop - as a server platform is anohter rather poor idea. Best practice is to deploy a headless system, and the most economical is an old P4 or some such. 'No need to have more than $150 tied up in the server, excluding possibly a RAID array.
> 
> Which is not relevant.


Of COURSE it's relevant. I don't want server hardware, headless or not, running in my home. I don't need it. Suggesting that I do, so that a few times a year I can send a video file to my TiVo... is just asinine.

I don't want the extra expense, clutter, nor administration of a server. I have no need whatsoever for it. My setup and my backup drives work just fine for me. All internet services I use are in the cloud.

I like being able to launch PyTiVo when I need it, and quit it when don't. I like having all my video files in one local directory, under my control. It's simple and satisfies all my needs. I'll just call it an application and not a server, does that sit with you better?

Sheesh.


----------



## Wil

My god, I've fallen into a time warp.

The names have changed, but this a mainframer's/personal computer owner's discussion from 1979.


----------



## bareyb

Decided to move this over there and out of the pyTivoX thread... 



Fofer said:


> transparent PNG logo:


Yes. Much better... :up:

Hey Fof.... Before I upload the new version with the logo... You know what would be REALLY cool for your App? 

Is there any way you could make it open the pyTivo configuration webpage after it launches?

You have to launch that page to Shut Down pyTivo anyway, (our little pyTivo Launcher App stays in the dock until PyTivo shuts down), so why not? I think it would add an additional layer of _awesomeness_. Can it be done? 

Original Applescript:



Code:


do shell script "cd /Applications/pyTivo 
./pyTivo.py"

Direct URL to the Config webpage: http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings



Code:


http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings


----------



## lrhorer

Fofer said:


> Of COURSE it's relevant.


No, not really. What you do outside of the situation under discussion has little to do with this discussion. My favorite passtimes are flying RC helicopters and SCUBA diving. They both require travel, and have just as much to do with this discussion as the fact you travel and what you do when you travel, which is to say nothing. What you do away from the house is not particularly relevant to what you do when you are in the house, or what is done in your house while you are away. (Although, because I have a server running pyTivo, I often do initiate the transfer of videos using pyTivo when I am away from the house, and so do my friends and family when they are coming over to visit.)



Fofer said:


> I don't want server hardware, headless or not, running in my home. I don't need it. Suggesting that I do, so that a few times a year I can send a video file to my TiVo... is just asinine.


Again, that's backwards. By needlessly and deliberately making it somewhat more difficult to use the application, you have artifically limited your use of the application. It's a self-fulfilling prophecy. The presence of a server allows for a great many more features than just TiVo software. Do you or anyone else "need" it? No, but then, no one "needs" a TiVo, or a TV, or a laptop, or a computer, or a car, for that matter. The sugestion is not, "You need a server so you can run pyTivo", but rather, "PyTivo is just one more good reason to run a server." That and the fact running a server - any server - under a user login as if it were an application is not the best idea in the world.

My servers control my HVAC system, saving me several thousand dollars a year, and allow me web access to the HVAC system from anywhere in the world. The servers allow secure VPN access to my sister's house (60 miles away from me), allowing me to support and maintain the systems in her house (including her TiVo) without having to drive 120 miles every time she has a computer or video problem. They provide IMAP service, allowing me to easily maintain a single set of mail folders from multiple ISPs on any computer, anywhere in the world. They provide accurate timekeeping for every device on my LAN. They assign IP addresses (or at least reserve them) for every device on the LAN. All of the workstations in the house (all 9 of them, including a laptop) pull their files from the file server, so that I can manage my financial information and taxes from any workstation in the house. 'Ditto for database applications like Cookbook Wizard. All of the equipment manuals for dozens of different devices are available on evry workstation. They provide audio and video files to any workstation in the house, including of course my Tivos, but also including Linux and Windows workstations in the theater, the guest room, and even my alarm clock. They provide caller ID from incoming and outgoing phone calls on any workstation where I might choose to view the information, including the TiVos if I were so inclined. (I am most decidely not so inclined.) They keep my DNS entries updated in the DNS servers, which is why you can access the URLs above to see some of the applications I have running in the house. They maintain and control the UPS systems that keep not only the servers running, but also keep the LAN and the phones up during a power outage. They provide backup functions not only for the file server, but also for a number of workstations in the house and at my sister's house. I have my own secure section of the file server which only I can access, my roommate has hers, and each of her daughters has one of their own, all available anywhere in the house, at up to 9 different workstations simultaneously.

Do you personally have any desire for any of these specific applications? Perhaps not, but they are but the top snowflake on a very large iceberg of what is possible and practical after deploying a server, and many of the applications may not only be handy, they may save a great deal of money. Note also the presence of servers in my household long predates the very existence of pyTivo.



Fofer said:


> I don't want the extra expense


The expense is minuscule. Other than the cost of the hard drives, I spend a lot more on ink. More to the point, the server can frequently save small to large amounts of money. See above.



Fofer said:


> clutter


Depending on your needs, the box may not need to be more than a fraction of the size of your laptop. A $50 diskless PC no larger than a paperback book may be sufficient, depending on the individual's needs. Of course, in my case, I have a pair of 18T RAID6 volumes, and 18T arrays can't fit in one's back pocket...



Fofer said:


> nor administration of a server.


The last time I touched either of my servers for administration purposes was when I upgraded the arrays from 10T to 18T. That was well over a year ago. Before that, it was an OS upgrade, a little more than 2 years ago. Of course, I have added a service from time to time, but that doesn't count.



Fofer said:


> I have no need whatsoever for it.


You also have no need for a car if you have a bicycle, or even if you just walk. Having a car, however, is not only more convenient, it also allows you to do many more things that shoe leather just can't accomplish. Making a conscious decision to forego those accomplishments is not the same as saying one could not and would not make use of them if one had a car. Making an uninformed decision that foregoes those accomplishments based upon not knowing the potential is yet another thing.



Fofer said:


> My setup and my backup drives work just fine for me. All internet services I use are in the cloud.


I don't use much in the way of internet services, comparatively speaking. I could be fatuous and say, "I have no need whatsoever for it." Instead, I simply use the services I require and investigate the rest, making whatever use of the services I choose when I choose. Doing so requires servers, though, since you seem not to have noticed. I can pay someone else for the use of their servers (and I do), or I can save money while providing a more tailored application set by providing my own where appropriate.

The cloud is not only too insecure for my purposes, it also would be hideously expensive (from a home user's perspective) to manage dozens of Terabytes of data in the cloud, not to mention terribly slow and tedious.



Fofer said:


> I like being able to launch PyTiVo when I need it, and quit it when don't.


Which is no doubt why you don't use it much. I never launch it, and I never quit it. It is ready for anyone (who is authorized), anywhere in the world to use any time of day or night. If you want to make it more difficult for yourself, fine, but that doesn't mean it is easier or that none of the other capabilities of a server could ever appeal to you. It definitely does not make it a best practice.



Fofer said:


> I like having all my video files in one local directory


Where you cannot access them from anywhere else, and where you yourself must perform any manipulations that could otherwise be performed automatically. You also must have an awfully tiny number of them, but that's your choice to make.



Fofer said:


> under my control.


Are you suggesting the server or any files on it would not be under your control?



Fofer said:


> It's simple


Well, it's not complex either way, but the server solution is simpler. You have to intervene (every time) with your solution. That is not simpler than a solution which requires no intervention.



Fofer said:


> I'll just call it an application and not a server, does that sit with you better?


No, because it is not an application. That is a major point. It is a client-server system, which is completely different. The clients in this case reside either on a workstation (for web access) or on a Tivo. The client-server architecture is a highly flexible and powerful one capable of many things not even remotely possible with a stand-alone application. The closest thing to an application in this mix is what resides on the TiVo, and we aren't talking about the TiVo NPL.

Once again, you can do whatever you choose with your equipment, but this deployment does not make effective use of time and resources and artifically limits the capabilities of the system to no positive effect. For your own purposes, it is whatever you wish to make of it, but as a recommendation for other users viewing this thread, it is far suboptimal.


----------



## Fofer

tl;dr


----------



## Fofer

bareyb said:


> Is there any way you could make it open the pyTivo configuration webpage after it launches?
> 
> You have to launch that page to Shut Down pyTivo anyway, (our little pyTivo Launcher App stays in the dock until PyTivo shuts down), so why not? I think it would add an additional layer of _awesomeness_. Can it be done?


Yup! Here ya go. (At least, I set it up to open the page in Safari. It also opens up Terminal now, so you can see what pyTiVo is doing.)



Code:


tell application "Terminal"
	do script "cd /Applications/pyTivo 
./pyTivo.py"
end tell

delay 1

tell application "Safari" to open location "http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings"

This is great. Makes it super easy to launch pyTiVo _(the few times I use it a year,)_ and then quit it when I'm done. I'm sure many others will appreciate it too!

Thanks for your work on this, bareyb. :up:


----------



## lrhorer

Wil said:


> My god, I've fallen into a time warp.
> 
> The names have changed, but this a mainframer's/personal computer owner's discussion from 1979.


Not quite, although there are certainly simiularities. The difference is a mainframe in that day served more as a computing platform than a file repository, while the PC was viewed as more of a file repository with limited computing abilities. That's reversed, now, and many servers don't require much in the CPU department comparatively speaking, while their storage capabilities often soar through the roof, especially when talking about a home environment. The development of client-server applications was also very much in its infancy, and mainframes usually made use of dumb terminals, not high powered workstations.

You do know the IBM PC was not introduced until 1981, though?


----------



## gteague

Fofer said:


> Thanks for your work on this, bareyb. :up:


yes, great work indeed in pulling together all the bits & pieces needed to get this running. i know how difficult it was to collect and consolidate all these disparate pieces

and i strongly support everything fofer said about running pytivo on demand as i plan to do the same although i have a desktop and plentiful resources to run it 24/7 if i wished. streambaby meets my needs 99% of the time and i'm not going to run pytivo full time for the few times it will be needed.

/guy


----------



## Wil

lrhorer said:


> You do know the IBM PC was not introduced until 1981, though?


The revolution was in 1977-82. The Apple II running Visicalc (and its earlier bootleg predecessor "The Spreadsheet") and other accounting/modeling/graphic representational programs changed the business world; in enough microcosmic niches that the genie was out of the bottle.

The later failed IBM pc you mentioned served the useful purpose of stealthing personal computers in volume (mostly clones) past the Mainframe gatekeepers, but the huge leap in demonstrating workflow impact had already been accomplished by then. Lotus 123, etc, and other improvements subsequently allowed by Intel horsepower were incremental refinements in concept, though obviously many magnitudes of magnitudes of enlargement of scope.

No, by 1982 it was all over, with implementation left to the interested student.

EDITED TO ADD: BTW, I had money upfront on the table for IBM pc's in late Summer 1981, but I don't think I actually saw product in any volume until just after the first of the year 1982. But that was a long time ago and my memory could be off a few months.


----------



## bareyb

Fofer said:


> Yup! Here ya go. (At least, I set it up to open the page in Safari. It also opens up Terminal now, so you can see what pyTiVo is doing.)
> 
> 
> 
> Code:
> 
> 
> tell application "Terminal"
> do script "cd /Applications/pyTivo
> ./pyTivo.py"
> end tell
> 
> delay 1
> 
> tell application "Safari" to open location "http://localhost:9032/TiVoConnect?Command=Settings&Container=Settings"
> 
> This is great. Makes it super easy to launch pyTiVo _the few times I use it a year,_ and then quit it when I'm done. I'm sure many others will appreciate it too!
> 
> Thanks for your work on this, bareyb. :up:


Schweet! That works perfectly! :up:

[Steve Jobs] Here's a dopey idea...[/Steve Jobs] 

Is there any way we could (notice I say "we"  ) make it so the pyTivo Icon stays in the Dock and you can use it to Shutdown pyTivo when you're done? I'd still like to have it launch the web interface, but it would be nice if you could quit from the Dock too.

Of course, it's totally AWESOME the way it is, and I'm completely happy, but it WOULD take it to the next level in terms of being "intuitive" for newbies to use. What do you think? Can it be done?


----------



## Fofer

I'd thought about that, and tried to create a "shut down" AppleScript (or .command file for Terminal) and wasn't successful. It's a bit more complex than it should be, I'm afraid, having to figure out the dynamically-assigned "process ID" to kill each time -- and I don't have any more free minutes to devote to it right now. 

Truth be told, PyTiVoX works fine for me too and I prefer it as a "launch when I need it" kinda thing. So I think I'm done working on this.


----------



## bareyb

Fofer said:


> I'd thought about that, and tried to create a "shut down" AppleScript (or .command file for Terminal) and wasn't successful. It's a bit more complex than it should be, I'm afraid, having to figure out the dynamically-assigned "process ID" to kill each time -- and I don't have any more free minutes to devote to it right now.


No problem. Just a thought... and I'm not even so sure it would be an improvement anyway. I like it a LOT as it is and it's exactly what I wanted. I think I'm done too. It's been a fun little project... I appreciate your help as always.


----------



## gteague

didn't @wmcbrine address this issue very nicely indeed in these threads and provide two different ways to halt pytivo?

http://www.tivocommunity.com/tivo-vb/showthread.php?p=8960914#post8960914

http://www.tivocommunity.com/tivo-vb/showthread.php?p=8961021#post8961021

i haven't tried either one yet, but it looks to me like you could easily create an applescript from either method and then save it as a 'pystop' app. i think it unrealistic to try to build it into @fofer's start script. and once compiled as an app it could live in the dock or manipulated in other ways.

/guy


----------



## bareyb

gteague said:


> didn't @wmcbrine address this issue very nicely indeed in these threads and provide two different ways to halt pytivo?
> 
> http://www.tivocommunity.com/tivo-vb/showthread.php?p=8960914#post8960914
> 
> http://www.tivocommunity.com/tivo-vb/showthread.php?p=8961021#post8961021
> 
> i haven't tried either one yet, but it looks to me like you could easily create an applescript from either method and then save it as a 'pystop' app. i think it unrealistic to try to build it into @fofer's start script. and once compiled as an app it could live in the dock or manipulated in other ways.
> 
> /guy


Yep. It appears *Control*-C shuts down pyTivo properly from within Terminal.

ETA: Okay, I have to bolt for a while. We are going to Dinner.


----------



## bareyb

gteague said:


> didn't @wmcbrine address this issue very nicely indeed in these threads and provide two different ways to halt pytivo?
> 
> http://www.tivocommunity.com/tivo-vb/showthread.php?p=8960914#post8960914
> 
> http://www.tivocommunity.com/tivo-vb/showthread.php?p=8961021#post8961021
> 
> i haven't tried either one yet, but it looks to me like you could easily create an applescript from either method and then save it as a 'pystop' app. i think it unrealistic to try to build it into @fofer's start script. and once compiled as an app it could live in the dock or manipulated in other ways.
> 
> /guy


Alright, I guess we are on a waiting list and they'll call us when our table is ready. 

What I was looking for, was a single App that could launch pyTivo, STAY in the dock, and then allow you to QUIT pyTivo from the same Icon in the Dock, similar to how other Apps work. I don't really care about creating another script just to shut it down. I can shut it down from the Web Interface just as easily... Seems kind of "clunky" to have one App to start it and one App to shut it down... You know what I mean? It's cleaner in that circumstance to just use the web GUI.


----------



## gteague

yes, it would indeed be more elegant. i think the sticking point is that the launcher app has to store the process_id the main app is created under and then recall that pid to kill the process.

it sounds trivial and indeed it's most likely mac programming 101 boilerplate code and it seems like it could be entirely programmed in the bash shell, but i've outgrown devoting 4 days of test and development to solve trivial problems when i have at least 3 other options on my plate--not matter they're a little 'klunky' when compared to the efforts of the high-dollar apple programmers!

/guy


----------



## bareyb

gteague said:


> yes, it would indeed be more elegant. i think the sticking point is that the launcher app has to store the process_id the main app is created under and then recall that pid to kill the process.
> 
> it sounds trivial and indeed it's most likely mac programming 101 boilerplate code and it seems like it could be entirely programmed in the bash shell, but i've outgrown devoting 4 days of test and development to solve trivial problems when i have at least 3 other options on my plate--not matter they're a little 'klunky' when compared to the efforts of the high-dollar apple programmers!
> 
> /guy


I hear you Bro. I accomplished what I set out to do. Which was to create an installation Tutorial for beginners. The rest of this is just for fun.

ETA: Oops They just called. OUr table is ready. It's time to go eat... Be back in an hour.


----------



## Fofer

gteague said:


> yes, it would indeed be more elegant. i think the sticking point is that the launcher app has to store the process_id the main app is created under and then recall that pid to kill the process.


Yep, this is the crux. The fact is, all the AppleScript is doing is acting as a dumb launcher, sending a launch command. It's done after that. Indeed, the way AppleScript works is, it can send commands, but once you quit the AppleScript, it stops doing things.

If you really want to dive in, here's some links/failed AppleScript attempts that might inspire:



> http://macstuff.beachdogs.org/blog/?p=31
> http://apple.stackexchange.com/questions/36163/applescript-kill-command-error
> http://macscripter.net/viewtopic.php?pid=101445
> http://guides.macrumors.com/Killing_an_Application_with_Terminal
> 
> And armed with tips from those links, these are variations of some
> AppleScript snippets I've tried, with no success:
> 
> 
> 
> Code:
> 
> 
> set app_name to "Python"
> set the_pid to (do shell script "ps ax | grep " & (quoted form of
> app_name) & " | grep -v grep | awk '{print $1}'")
> if the_pid is not "" then do shell script ("kill -9 " & the_pid)
> 
> ----------------------------------------
> 
> set app_name to "Python"
> do shell script "killall " & app_name
> 
> ----------------------------------------
> 
> tell application "System Events"
> try
> get unix id of process "Python"
> end try
> set pid to the q of process "Python"
> do shell script "killall " & pid
> end tell


Still, that being said, you can't really use AppleScript in place of a pyTiVo GUI. At best you'll have to run a second AppleScript. Or maybe this is a job for Automator?

-shrug-

Which brings us full circle. If you want that kind of UI, why not just use PyTiVoX? Yes, it's abandonware, but the last beta works fine for me -- and I'm running Lion. I had to follow a few tips (in the PyTiVoX thread) but now it's working just dandy... with the same results as the "current" pyTiVo.


----------



## ScottE22

Thanks for the thorough tutorial, bareyb. I'm now more excited than ever for my return to the TiVo world with a new Premiere.


----------



## gteague

Fofer said:


> why not just use PyTiVoX? Yes, it's abandonware, but the last beta works fine for me -- and I'm running Lion. I had to follow a few tips (in the PyTiVoX thread) but now it's working just dandy... with the same results as the "current" pyTiVo.


yes, my exact experience re pytivox, i had it working just fine. i just decided to go the separates route since most of those tools were being actively supported and now, tks to @bareby and the rest of you guys i know how to take all the components apart and put them back together. and i can run streambaby or pytivo as entirely separate processes and they can be updated separately, which is satisfying.

/guy


----------



## bareyb

ScottE22 said:


> Thanks for the thorough tutorial, bareyb. I'm now more excited than ever for my return to the TiVo world with a new Premiere.


Well then, welcome back to the fold! The new Premiers are fantastic. I just got one myself. You will be an awesome test case for the Tutorial! Let us know how it goes and if it breaks down anywhere along the way for you.


----------



## Wil

Fofer said:


> If you want that kind of UI, why not just use PyTiVoX? Yes, it's abandonware, but the last beta works fine for me


I still use it, and for 95% of my viewing I'm satisfied enough that I have not put in the effort to upgrade.

I'm not even sure I have the latest PyTivoX (info says v1.3 8/27/2009) running on OS X 10.6.8. I don't think I even did any tweaking.

But every once in awhile I get a a file that hesitates/stutters, or, more subtly, if you look at action sequences you can see some consistent frame skipping or something resulting in action not as smooth as it should be. I abort and use something like VLC to play these files, instead of the Tivo, but my wife has never really gotten into that switching.

I also have the feeling that a more up to date ffmpeg might better recognize Tivo's playing capability and not transcode so many of the files, resulting in quicker transfers and smaller files on the Tivo.

Are these the reasons you guys are moving forward from PyTivoX? If so, are you in fact getting better results in these areas?


----------



## bareyb

gteague said:


> yes, my exact experience re pytivox, i had it working just fine. i just decided to go the separates route since most of those tools were being actively supported and now, tks to @bareby and the rest of you guys i know how to take all the components apart and put them back together. and i can run streambaby or pytivo as entirely separate processes and they can be updated separately, which is satisfying.
> 
> /guy


That's sort of why I got into this too. PyTivoX was working (sort of), but it's no longer getting updated, and is supposedly running an ancient version of pyTivo and ffmpeg. In fact, the first version of pyTivoX I tried was Transferring my HD Video in SD... 

It seems it did not recognize the new Premiere boxes and as such, defaults to Standard Def. Luckily I found a Beta version that wmcbrine put together that works with the new Premieres. So yeah, it's working again but for how long? I also must admit, I had a bit of a personal vendetta against pyTivo. 

I failed to get it working back in 2008 and I was REALLY wanting to find out why. Now that I've messed with both, I think pyTivo is probably the better App for my needs. I like that I can just stick videos and music in their regular folders and have my Tivos see them there.

Fofer's little App is simply kick ass if you ask me. It's exactly what this thing needed. It launches the Terminal App (I like that better), it launches Safari (if it's not already), it launches pyTivo, and it launches the pyTivo Web Interface where you can quit, restart (thank you wmcbrine) or Shutdown as needed. It's simple and it works. I love it.


----------



## Fofer

Cool, I am glad to have contributed!


----------



## bareyb

Fofer said:


> Cool, I am glad to have contributed!


You're great to work with Fofer. You always turn the gear another notch... I wish I could replace my two business partners with two clones of YOU... We'd make a zillion dollars.


----------



## ScottE22

I store our media files on a HD attached to our family iMac - my kids use it primarily. They both have their own logins. 

With our current Roku setup, I usually login to the iMac and then use fast-user switching to put up the login window for the kids. That way my account has the little orange checkmark next to it and always stays logged in so that Plex Media Server (and a couple other servers) can be running which serves up our movies to the Roku. This is rarely a problem as long as I get myself logged in first whenever the iMac reboots.

In setting up our new TiVo Premiere, I am wondering whether I could place the pyTiVo launch file into the /launchdaemons folder instead of /launchagents and have it launch on boot instead of on login. Admittedly, I don't have a very deep understanding of how UNIX logins and daemons work so I could be imagining a solution that won't work.

It's certainly not a deal-breaker, but it would sure be nice not to have to worry about logging in my account any time we re-boot.

Thoughts?


----------



## bareyb

ScottE22 said:


> I store our media files on a HD attached to our family iMac - my kids use it primarily. They both have their own logins.
> 
> With our current Roku setup, I usually login to the iMac and then use fast-user switching to put up the login window for the kids. That way my account has the little orange checkmark next to it and always stays logged in so that Plex Media Server (and a couple other servers) can be running which serves up our movies to the Roku. This is rarely a problem as long as I get myself logged in first whenever the iMac reboots.
> 
> In setting up our new TiVo Premiere, I am wondering whether I could place the pyTiVo launch file into the /launchdaemons folder instead of /launchagents and have it launch on boot instead of on login. Admittedly, I don't have a very deep understanding of how UNIX logins and daemons work so I could be imagining a solution that won't work.
> 
> It's certainly not a deal-breaker, but it would sure be nice not to have to worry about logging in my account any time we re-boot.
> 
> Thoughts?


There is a way to do what you describe (or at least I think there is) but it's beyond the scope of my knowledge at this point. You may want to post this over in the regular pyTivo thread. There's some guys over there who can point you to the right place.


----------



## fluttersby8

First, thanks for all the useful info.

I'm having trouble getting the .plist to function properly. The file looks precisely like the one you've posted, the path is correct (in fact, is identical to yours - I just copied/pasted), I've checked (several times) to make sure it's not a .txt or .rtf file. I reboot ... no joy.

I use pyTivo all the time and intend to keep it running in the background. It works great when running it manually through Terminal, but having to restart it every time I reboot, and not having access to Terminal while it's running is getting really annoying. Any help would be greatly appreciated.

Also ... 


bareyb said:


> Bonus Step: Setting up pyTivo to Run in the Background Automatically
> ...
> 
> 5. IMPORTANT: Make sure that the file does not end in .txt or .rtf (or really anything other than *.conf*).


Emphasis mine ... I assume this is a typo, and you meant "anything other than .plist"?


----------



## fluttersby8

Yes, that was the first thing I checked - didn't work. Also, I think the fact that it doesn't show up in my NPL is a good indicator too, lol. As I said, it works perfectly when launched manually, so I know it's configured properly. I'm just not sure what's going on with the .plist.


----------



## bareyb

fluttersby8 said:


> Yes, that was the first thing I checked - didn't work. Also, I think the fact that it doesn't show up in my NPL is a good indicator too, lol. As I said, it works perfectly when launched manually, so I know it's configured properly. I'm just not sure what's going on with the .plist.


Bah! I probably should've tested it before I posted it. We'll get it working. We are packing up and leaving for home in a few minutes. In fact, I was just coming in here to shut down and pack the laptop.


----------



## Iluvatar

fluttersby8 said:


> I'm having trouble getting the .plist to function properly.


Apologies. I incorrectly typed the plist sample when I provided it to bareyb.

This should work after updating and logoff/logon



Code:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>pyTivo</string>
	<key>ProgramArguments</key>
	<array>
		<string>python</string>
		<string>/Applications/pyTivo/pyTivo.py</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
</dict>
</plist>


----------



## fluttersby8

Excellent - that worked like a charm. Thanks so much.


----------



## Iluvatar

fluttersby8 said:


> Excellent - that worked like a charm. Thanks so much.


Great.

The only downside to this method is pyTivo is not properly unloaded when logging off. The shares will eventually disappear from NPL on their own though after 5-10 min.


----------



## bareyb

Iluvatar said:


> Apologies. I incorrectly typed the plist sample when I provided it to bareyb.
> 
> This should work after updating and logoff/logon
> 
> 
> 
> Code:
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
> <plist version="1.0">
> <dict>
> <key>Label</key>
> <string>pyTivo</string>
> <key>ProgramArguments</key>
> <array>
> <string>python</string>
> <string>/Applications/pyTivo/pyTivo.py</string>
> </array>
> <key>RunAtLoad</key>
> <true/>
> </dict>
> </plist>


Cool. Updated both websites with the updated Code. :up:

ETA: Also updated the Pics...

ETA2: Is there any way that "Run pyTivo in Background" could be an option added to the Web Interface? THAT would be awesome... Between including a copy of the pyTivo.conf file with the software, and doing THAT we could (almost) eliminate the need for this thread...


----------



## bareyb

@Iluvatar... I thought you said the new version of pyTivo didn't require Step four? I just downloaded it and there isn't any pyTivo.conf file in it... Did you mean something else? 

But now that I'm thinking about it... Why DOESN'T pyTivo just come with the pyTivo.conf file already in it? At least have it set up for Video any way... It's the SAME file for everyone right? Then why put us all through the hassle of having to create if from scratch every time??? Why not just put a copy in the pyTivo Software download? 

Couldn't I just skip all those directions in STEP FOUR and simply provide people with a completed pyTivo.conf file that they could just click on and download? Why are we making people create the basic pyTivo.conf file from scratch for every installation? More to the point, why not just include it in the package? What am I missing?


----------



## Iluvatar

bareyb said:


> @Iluvatar... I thought you said the new version of pyTivo didn't require Step four? I just downloaded it and there isn't any pyTivo.conf file in it... Did you mean something else?
> 
> But now that I'm thinking about it... Why DOESN'T pyTivo just come with the pyTivo.conf file already in it? At least have it set up for Video any way... It's the SAME file for everyone right? Then why put us all through the hassle of having to create if from scratch every time??? Why not just put a copy in the pyTivo Software download?
> 
> Couldn't I just skip all those directions in STEP FOUR and simply provide people with a completed pyTivo.conf file that they could just click on and download? Why are we making people create the basic pyTivo.conf file from scratch for every installation? More to the point, why not just include it in the package? What am I missing?


 It creates one if one doesn't exist. Rename your .conf file and open pyTivo to the WebAdmin settings. Change something like adding a share or whatever and it will create the pyTivo conf with those settings after saving.


----------



## Iluvatar

bareyb said:


> But now that I'm thinking about it... Why DOESN'T pyTivo just come with the pyTivo.conf file already in it? At least have it set up for Video any way... It's the SAME file for everyone right? Then why put us all through the hassle of having to create if from scratch every time??? Why not just put a copy in the pyTivo Software download?


I wasn't around when that decision was made. Distributing with an xx.conf.dist file instead as an example for users is pretty common for GUI-less applications and scripts that provide lots of options.


----------



## bareyb

Iluvatar said:


> Yes......lol. It creates one if one doesn't exist. Rename your .conf file and open pyTivo to the WebAdmin settings. Change something like add a share and it will create the pyTivo conf with those settings.


Ah I see... You don't HAVE to create the pyTivo.conf file BEFORE you can launch the Web Interface... So that's certainly better... It launches once you get ffmpeg installed in it... Which brings up ANOTHER question... Actually two...

1. Why isn't the latest version of ffmpeg simply included with the software download too?

and secondly,

2. Why isn't a basic working copy (for video anyway) of the pyTivo.conf file included with the Software download?


----------



## bareyb

bareyb said:


> Ah I see... You don't HAVE to create the pyTivo.conf file BEFORE you can launch the Web Interface... So that's certainly better... It launches once you get ffmpeg installed in it... Which brings up ANOTHER question... Actually two...
> 
> 1. Why isn't the latest version of ffmpeg simply included with the software download too?
> 
> and secondly,
> 
> 2. Why isn't a basic working copy (for video anyway) of the pyTivo.conf file included with the Software download?


Hey hold on... I just realized. There IS NO COPY of ffmpeg in the latest pyTivo download from wmcbrine... Or at least I never added one to the folder (nor did I have to create a "bin" folder within the main folder to place it in). Does that mean he's including it along with the pyTivo download now? 

THAT would be awesome... Is it true? All I did was throw the folder into my Applications folder and double clicked the new Launcher App Fofer and I came up with. Is that really all it's gonna take now? If so... :up::up::up:

I'll have to shoot wmcbrine a PM and see what's going on with this latest version.. It SEEMS like he's made it a lot easier to install... I'd like to think I had something to do with that...


----------



## gteague

are you sure you don't have another ffmpeg file or folder somewhere else on your system? it's easy to acquire a half-dozen of these as many video-oriented apps use it and one could be on a shared path for any app to utilize. and a spotlight search might not show all of them.

as to why some of these things aren't included in the packages, that would mean the author would have to be continually checking for the latest version to include--that's a lot of swapping in and out. this way, the user gets to make sure he or she is getting the latest version of the utility. 

/guy


----------



## bareyb

gteague said:


> are you sure you don't have another ffmpeg file or folder somewhere else on your system? it's easy to acquire a half-dozen of these as many video-oriented apps use it and one could be on a shared path for any app to utilize. and a spotlight search might not show all of them.
> 
> as to why some of these things aren't included in the packages, that would mean the author would have to be continually checking for the latest version to include--that's a lot of swapping in and out. this way, the user gets to make sure he or she is getting the latest version of the utility.
> 
> /guy


I'm not sure. I definitely have a copy of ffmpeg on my desktop... probably some others too after all this. Do you think it's simply finding the other copy and using it? I PM'd wmcbrine and asked him if it was being included now. If he did that, I could almost get rid of this Tutorial.

Think about it... If it came with a basic working copy of the pyTivo.conf file AND it came with ffmpeg, then all folks would have to do is simply download the folder and then double click the little Launcher App we came up with. BAM it shows up on their Tivo boxes and they are done.


----------



## Iluvatar

bareyb said:


> Ah I see... You don't HAVE to create the pyTivo.conf file BEFORE you can launch the Web Interface... So that's certainly better... It launches once you get ffmpeg installed in it... Which brings up ANOTHER question... Actually two...
> 
> 1. Why isn't the latest version of ffmpeg simply included with the software download too?
> 
> and secondly,
> 
> 2. Why isn't a basic working copy (for video anyway) of the pyTivo.conf file included with the Software download?


1. Why would they want to do this? FFmpeg is free and open source and available to everyone. It is not the easiest to build yourself but is available from others and is only a google search away. Also pyTivo is on multiple platforms. Would we provide a 10MB file for each? Windows, OSX, Linux, others. What about CPU's? x86, x86-64, ARM, others.....pyTivo can literally run on anything that Python can which is very extensive. As it is now pyTivo is less than 500KB packaged. With all those FFmpeg files it could easily be 100MB or more.

2. Video sample settings among others are already provided in 3 locations with pyTivo: pyTivo.conf.dist, pyTivo WebAdmin page provides examples of every setting, pyTivo Wiki provides examples of almost every setting. Projects like pyTivo seek to maximize capability and customization. You can't satisfy everyone so why not provide the user complete control and only provide samples. There are people out there who don't use pyTivo for video but for music and photos only.


----------



## Iluvatar

bareyb said:


> Hey hold on... I just realized. There IS NO COPY of ffmpeg in the latest pyTivo download from wmcbrine... Or at least I never added one to the folder (nor did I have to create a "bin" folder within the main folder to place it in). Does that mean he's including it along with the pyTivo download now?
> 
> THAT would be awesome... Is it true? All I did was throw the folder into my Applications folder and double clicked the new Launcher App Fofer and I came up with. Is that really all it's gonna take now? If so... :up::up::up:
> 
> I'll have to shoot wmcbrine a PM and see what's going on with this latest version.. It SEEMS like he's made it a lot easier to install... I'd like to think I had something to do with that...


FFmpeg is not required for pyTivo to operate. It can go perfectly well transferring .Tivo, .mpg and .vob files to the TiVo without it.


----------



## bareyb

gteague said:


> as to why some of these things aren't included in the packages, *that would mean the author would have to be continually checking for the latest version to include--*that's a lot of swapping in and out. this way, the user gets to make sure he or she is getting the latest version of the utility.
> 
> /guy


Yeah, but the guy who's writing this software obviously has to have the right version of ffmpeg for pyTivo to work for HIM, (assuming these guys all have TiVos) so why not just save everyone a lot of hassle and simply put THAT version in the download?

If someone wants to get fancy, they can go look around for other versions, or make their own custom version. For the vast majority of folks I think having it work out of the box would be a welcome addition.

Side note: I hope none of what I'm trying to do here is misconstrued as disrespect... quite the opposite. I LOVE pyTivo and I just want to see it more accessible to folks who don't have a Unix background.


----------



## bareyb

Iluvatar said:


> 1. *Why would they want to do this?* FFmpeg is free and open source and available to everyone. It is not the easiest to build yourself but is available from others and is only a google search away. Also pyTivo is on multiple platforms. Would we provide a 10MB file for each? Windows, OSX, Linux, others. What about CPU's? x86, x86-64, ARM, others.....pyTivo can literally run on anything that Python can which is very extensive. As it is now pyTivo is less than 500KB packaged. With all those FFmpeg files it could easily be 100MB or more.


Because it would make it "just work" out of the box. All people would need to do is download the folder and double click the little Launcher we created. I didn't realize there were different versions of ffmpeg for different OS's... I suppose that would make it a lot harder. Didn't know that.. thought it was all just "Unix"....


----------



## bareyb

Iluvatar said:


> FFmpeg is not required for pyTivo to operate. It can go perfectly well transferring .Tivo, .mpg and .vob files to the TiVo without it.


Wait. WHAT? Then why are jumping through hoops to download it and install the latest version? No disrespect intended, I'm just trying to wrap my brain around all these steps and if they are all necessary nor not...

Anyway, I'm not the guys who distributes the Software, so it's not my call. I just need to know how to update this thread... Do I still tell people to get the latest version of ffmpeg and add it to a bin folder inside pyTivo or not?


----------



## Fofer

bareyb said:


> Wait. WHAT? Then why are jumping through hoops to download it and install the latest version?


Because there's lots of video out there that is not in any of those three formats. Lots of .avi's, for example.


----------



## Iluvatar

bareyb said:


> Anyway, I'm not the guys who distributes the Software, so it's not my call. I just need to know how to update this thread... Do I still tell people to get the latest version of ffmpeg and add it to a bin folder inside pyTivo or not?


Due to a multitude of reasons, FFmpeg will probably not be distributed as you want it with pyTivo but instead remain as an addon. It's not my call either. I could decide to provide a copy of it in my fork but that would help all of the 3 people who probably use it (and it would take at least 2 different copies! One for x86 and one for PowerPC for just OS X). I'm content providing updated FFmpeg builds to everyone else. Its availability is described for each of the major platforms in it's respective installation page on the pyTivo wiki. I provide easy access to the OS X version. rdian06 provided the Windows version. Linux.....is more complicated but are still provided instructions on how to obtain it.

FFmpeg is greatly useful to pyTivo but not required. 95% of people who use pyTivo will want it. Nearly 100% of MY files are NOT in a .Tivo/.mpg/.vob format so FFmpeg is required for MY use of pyTivo but may not be so for someone who only wants to archive their TiVo recordings.


----------



## wmcbrine

A compiled binary of FFmpeg does not belong in a source code repository. That's what you're all downloading from. A proper, user-oriented distribution of pyTivo would be platform-specific, and could include a compiled FFmpeg. In the past, people have sometimes offered such distributions -- pyTivoX is an example -- but those people have tended to fall by the wayside over time, and currently, no one is doing it.


----------



## bareyb

Iluvatar said:


> *Due to a multitude of reasons, FFmpeg will probably not be distributed as you want it with pyTivo* but instead remain as an addon. It's not my call either. I could decide to provide a copy of it in my fork but that would help all of the 3 people who probably use it (and it would take at least 2 different copies! One for x86 and one for PowerPC for just OS X). I'm content providing updated FFmpeg builds to everyone else. Its availability is described for each of the major platforms in it's respective installation page on the pyTivo wiki. I provide easy access to the OS X version. rdian06 provided the Windows version. Linux.....is more complicated but are still provided instructions on how to obtain it.
> 
> FFmpeg is greatly useful to pyTivo but not required. 95% of people who use pyTivo will want it. Nearly 100% of MY files are NOT in a .Tivo/.mpg/.vob format so FFmpeg is required for MY use of pyTivo but may not be so for someone who only wants to archive their TiVo recordings.


I can see that now. I thought ffmpeg was Cross Platform. It would be hard enough to keep up with just the Mac side, I can see how that could become cumbersome. I guess I'm just grateful somebody is willing to make one for the Mac.


----------



## bareyb

Either way, big thanks to wmcbrine as this new version seems to be much easier to install since we can now eliminate "Step Four" which is where a lot of folks run into trouble. :up:

Is this it in a nutshell now?

1. Download the latest version of pyTivo

2. Download the latest version of ffmpeg and stick it in the pyTivo folder 

3. Enter the "launch code" into Terminal

4. Launch the Webpage and finish up there.... 

Does that about sum it up?


----------



## bareyb

bareyb said:


> Either way, big thanks to wmcbrine as this new version seems to be much easier to install since we can now eliminate "Step Four" which is where a lot of folks run into trouble. :up:
> 
> Is this it in a nutshell now?
> 
> 1. Download the latest version of pyTivo
> 
> 2. Download the latest version of ffmpeg and stick it in the pyTivo folder
> 
> 3. Enter the "launch code" into Terminal
> 
> 4. Launch the Webpage and finish up there....
> 
> Does that about sum it up?


Yep. That's it. Much easier now... Why did you wait until AFTER I'd done the Tutorial to change this?


----------



## gteague

well, i found when i went to install it that the actual steps weren't the problem, my problem (and it could have just been me as i tend to hurry and overlook things in my older years) was that i didn't seem to be able to get all the information i wanted in one location and it was hard to try to synthesize the different web sites and wikis and readmes and faqs into one clear, coherent install path. those problems stem from there being old and new versions of documentation side by side. also, i didn't have a clear understanding what components worked with which other components and which components were optional. i'm sure most of this was me trying to read too fast, but still, i'm an ex-linux admin and i still had difficulty, so i can imagine some mac users are completely overwhelmed.

but now we have the unified bareyb theory of pytivo install which hopefully allows a newbie to just follow the bouncing ball.

/guy


----------



## bareyb

gteague said:


> well, i found when i went to install it that the actual steps weren't the problem, my problem (and it could have just been me as i tend to hurry and overlook things in my older years) was that i didn't seem to be able to get all the information i wanted in one location and it was hard to try to synthesize the different web sites and wikis and readmes and faqs into one clear, coherent install path. those problems stem from there being old and new versions of documentation side by side. also, i didn't have a clear understanding what components worked with which other components and which components were optional. i'm sure most of this was me trying to read too fast, but still, i'm an ex-linux admin and i still had difficulty, so i can imagine some mac users are completely overwhelmed.
> 
> but now we have the unified bareyb theory of pytivo install which hopefully allows a newbie to just follow the bouncing ball.
> 
> /guy


You summed up my problems in a nutshell. It was chaos trying to get all the right bits and getting them all to work on my computer. In the end, my Mac added an invisible .txt extension to the .conf file (a process that has now been completely eliminated in the new version, thanks to wmcbrine), and I'd downloaded the wrong version of ffmpeg. I completely gave up back in 2008 and it's been sticking in my craw ever since. 

I plan to stay on top of both of the threads (at the pyTivo forum too) for as long as I still keep getting replies and it appears that people need it. The new version of pyTivo makes installing about 30% easier because it eliminates the need for people to have to create their own pyTivo.conf file before they can get to the Web GUI. Fofer's Launcher makes it an additional 30% easier by not having people entering command lines into Terminal to launch the program. Between the two, we are definitely moving in the right direction in terms of "user experience" which I think is important consideration too. I'm hoping that people won't be as intimidated by it now that there are step by step instructions.


----------



## bareyb

fluttersby8 said:


> First, thanks for all the useful info.
> 
> I'm having trouble getting the .plist to function properly. The file looks precisely like the one you've posted, the path is correct (in fact, is identical to yours - I just copied/pasted), I've checked (several times) to make sure it's not a .txt or .rtf file. I reboot ... no joy.
> 
> I use pyTivo all the time and intend to keep it running in the background. It works great when running it manually through Terminal, but having to restart it every time I reboot, and not having access to Terminal while it's running is getting really annoying. Any help would be greatly appreciated.
> 
> Also ...
> 
> Emphasis mine ... I assume this is a typo, and you meant "anything other than .plist"?


By the way, wanted to let you know I fixed the typos too. I'd simply copied and pasted my instructions from the pyTivo.conf file instructions (which ironically are no longer needed) so as to keep the guide language consistent.

I'm running pyTivo in the background as we speak. I checked my CPU usage (I'm transferring a Movie to TiVo right now) and it's barely using 8% so I guess I'm not having the CPU "hog" issues some folks were complaining about when pyTivo is transferring. Seems to work perfectly. :up:


----------



## gteague

for most of my external video viewing purposes, i find streambaby to be the nearly perfect solution. streams don't take up hd resources on the tivo and they seem to respond to 'scrubbing' back and forth much better than trying to play a transferred video while it's transferring. and if you transfer a file to the tivo, it gets lost in your playing list unless you go to that link posted above a day or so ago and try to get it into a folder. it sounded like voodoo and chicken blood to get that to work!

but having pytivo for those times i actually need to transfer a file is invaluable. i've been using (or trying to use) toast tivo transfer and tivo desktop prefpane and both those methods need conversion for nearly every file. so now, for a 1.5gb file you've got an hour conversion process (i even got one of those usb stick accelerators by elgato) and then at least an hour transfer. pytivo has transferred every type of video i've thrown at it so far except for avchd (.mts) files which are an unreasonable expectation for any but a cutting edge video system on top hardware to process. i love to hear the windows guys howl when they get a new camera that shoots this format and they can't do anything with it! perverse of me, i'm sure ... but i have that kind of sense of humor.

/guy


----------



## bareyb

I haven't had a much chance to really try it out since we went Skiing right when I got it working. Now that I'm home, I'm very impressed with it. I just transferred a 45 minute show in about 20 minutes over Wifi and that was with transcoding. That's not bad at all. 

I don't mind having them reside on my Hard drive for awhile, I can always delete them and transfer them again. I have a total of 4 TB in Hard Drive space between my three TiVos so I'm not all that worried about space.

ETA: Wow that really sucks about Toast... I was considering going that route if I couldn't get pyTivo to work. I guess I'm glad I got it working...


----------



## bareyb

I notice on the new version that there is nothing entered in any of the Global Server Settings. I could have sworn it had the Port and ffmpeg values in there before... Am I high?


----------



## gteague

bareyb said:


> ETA: Wow that really sucks about Toast... I was considering going that route if I couldn't get pyTivo to work. I guess I'm glad I got it working...


well, i admit i haven't tried toast transfer since updating from v10 to v11 a few weeks ago. perhaps they've improved the process and incorporated more auto-converters, but all the 'extras' (utilities) they throw in such as tivo transfer sure appear to be unchanged.

/guy


----------



## bareyb

bareyb said:


> I notice on the new version that there is nothing entered in any of the Global Server Settings. I could have sworn it had the Port and ffmpeg values in there before... Am I high?


Ah. _Not_ high... It now defaults to the proper port and bin where ffmpeg is located. Very nice. That must be how he was able to get it to work without having to put a pyTivo.conf file in place first. Very clever... :up:


> *port*
> 
> Default Setting: 9032
> 
> Valid Entries: 1-65535
> 
> Required: No
> 
> Skill: Basic
> 
> Description: The port which pyTivo uses to serve your files. Can be changed if it conflicts with another program.
> 
> Example Settings: 9032





> *ffmpeg*
> 
> Default Setting: None
> 
> Valid Entries: Operating system path
> 
> Required: No
> 
> Skill: Basic
> 
> Description: This is the full path to your ffmpeg binary. If not set, pyTivo checks for it in a "bin" subdirectory, and then in the PATH. If no ffmpeg is found, pyTivo will operate in a limited mode, serving only MPEG and TiVo files in video shares, and only MP3 files in music shares, with no seek capability.
> 
> Example Settings: Linux = /usr/bin/ffmpeg | Windows = c:\Program Files\pyTivo\bin\ffmpeg.exe


----------



## gteague

that was one point where i screwed up slightly and had to fight to get it sorted out. also working on getting kmttg installed and put my ffmpeg folder in that directory. thus my path was wrong to begin with and i ended up with 3 separate ffmpeg's because i didn't know which one was being used by what! 

that was another bonus of starting over this time--i got to clean all that cruft up.

/guy


----------



## bareyb

I put together a "pyTivo for Mac OSX" bundle just now, but the Forum wouldn't let me upload at either site. At 12.8 megabytes, I'm guessing it's probably over the forum Upload limit. 



> *Quick Start: *If you are in a hurry (and who isn't?) you can download a pre-packaged "pyTivo for Mac OSX" bundle. It has everything you need to get started in one easy download. It includes a "bin" folder containing ffmepg, as well as a copy of Fofer's "pyTivo Laucher App". Here's how to get it:
> 
> 1. Download pre-packaged "pyTivo for Mac OSX" bundle here:
> _*optionally you can click on the blue "Download" link below_
> 
> 2. Remove your new "pyTivo" Folder from the Downloads folder, and place it in your Applications Folder
> 
> 3. Move on to Step Five...


How cool would _that_ have been?


----------



## bareyb

When they say "multiple processors" I'm assuming they are talking about _separate_ physical processors right? Multi-core processors like the i7 wouldn't count as "multi" right?



> ffmpeg_pram
> 
> Default Setting: None
> 
> Valid Entries: A valid ffmpeg command
> 
> Required: No
> 
> Skill: Very Advanced
> 
> Description: This allows you to append additional raw ffmpeg commands to the ffmpeg template. For example, you would enter '-threads 2' here if you have multiple processors and want ffmpeg to use both processors to speed up transcoding.
> 
> Example Settings: -threads 2


----------



## gteague

i believe that each core counts as a processor. my i5 would have 4 of them. i have no idea what 'pram' means in the above context, however and i'd proceed with caution ...

/guy


----------



## wmcbrine

bareyb said:


> I'm running pyTivo in the background as we speak. I checked my CPU usage (I'm transferring a Movie to TiVo right now) and it's barely using 8% so I guess I'm not having the CPU "hog" issues some folks were complaining about when pyTivo is transferring.


Who was complaining about that?

Transcoding video is an inherently CPU-intensive activity, quite possibly the hardest work your CPU will ever do. But you probably wouldn't want it to be throttled back -- because that would only mean that transfers would take even longer.

In cases where the video doesn't have to be transcoded, pyTivo shouldn't use much CPU at all. (In fact, pyTivo per se never does -- ffmpeg is the big "hog".)



bareyb said:


> It now defaults to the proper port and bin where ffmpeg is located.


None of that is new, BTW. As I said before, the minimal working pyTivo.conf had already been reduced to a single "[Server]" line.



bareyb said:


> When they say "multiple processors" I'm assuming they are talking about _separate_ physical processors right? Multi-core processors like the i7 wouldn't count as "multi" right?


Of course they do, that's the entire point of multicore processors.



gteague said:


> i have no idea what 'pram' means in the above context, however and i'd proceed with caution ...


"pram" there is just an awkward abbreviation for "parameters". There's no need to proceed with caution, the option is fully described in what bareyb quoted.


----------



## bareyb

wmcbrine said:


> .
> "pram" there is just an awkward abbreviation for "parameters". There's no need to proceed with caution, the option is fully described in what bareyb quoted.


I thought you were talking about Perimeter RAM.



wmcbrine said:


> Who was complaining about that?
> 
> Transcoding video is an inherently CPU-intensive activity, quite possibly the hardest work your CPU will ever do. But you probably wouldn't want it to be throttled back -- because that would only mean that transfers would take even longer.
> 
> In cases where the video doesn't have to be transcoded, pyTivo shouldn't use much CPU at all. (In fact, pyTivo per se never does -- ffmpeg is the big "hog".)


It's right there on your Website. I figured it must be a fairly common event if it's in the FAQ.

FWIW, it has not been an issue for me. ffmpeg only uses a tiny bit of my CPU even in full on transcode mode.










I have an Intel i7 processor with FOUR Cores. Should I tell pyTivo to use "-threads 4" instead of "-threads 2 or can you have it only use two of them and leave the others for other processes?



> Hardware Overview:
> 
> Model Name:	MacBook Pro
> Model Identifier:	MacBookPro8,2
> Processor Name:	Intel Core i7
> Processor Speed:	2 GHz
> Number of Processors:	1
> *Total Number of Cores:	4*
> L2 Cache (per Core):	256 KB
> L3 Cache:	6 MB
> Memory:	8 GB
> Boot ROM Version:	MBP81.0047.B24
> SMC Version (system):	1.69f3
> 
> Sudden Motion Sensor:
> State:	Enabled


----------



## Iluvatar

gteague said:


> pytivo has transferred every type of video i've thrown at it so far except for avchd (.mts) files which are an unreasonable expectation for any but a cutting edge video system on top hardware to process.
> /guy


I can't imagine FFmpeg has any issue transcoding or remuxing (if appropriate) a .mts file. What issues are you running into?

AVCHD is just h264 w audio in a MPEGTS container right?


----------



## gteague

Iluvatar said:


> I can't imagine FFmpeg has any issue transcoding or remuxing (if appropriate) a .mts file. What issues are you running into?
> 
> AVCHD is just h264 w audio in a MPEGTS container right?


my mistake, it was steambaby that won't stream the .mts files. pytivo transfers and plays them just fine. fantastic!

now we need a group project to get the 'photo' section working, but i'm not looking forward to diving into the python image library swamp.

/guy


----------



## wmcbrine

You need a group project to follow this? Or this?


----------



## gteague

wmcbrine said:


> You need a group project to follow this? Or this?


the method at the 2nd link seems more palatable with me than the 1st link where you install an alternate or parallel unix path or self-contained structure within the unix framework. i used to do this same thing several years ago, although i can't recall the name of the project, but it was a bear to keep updated and maintained and i finally dropped it.

i'll try the download and build option later this evening and let you know how it works. i'm comfortable with the shell and i like that i can see every step as opposed to depending on a canned batch script.

thanks!

/guy


----------



## Iluvatar

gteague said:


> the method at the 2nd link seems more palatable with me than the 1st link where you install an alternate or parallel unix path or self-contained structure within the unix framework. i used to do this same thing several years ago, although i can't recall the name of the project, but it was a bear to keep updated and maintained and i finally dropped it.
> 
> i'll try the download and build option later this evening and let you know how it works. i'm comfortable with the shell and i like that i can see every step as opposed to depending on a canned batch script.
> 
> thanks!
> 
> /guy


Here is the DIY instructions. It requires downloading Xcode and 2 source packages.

1. Install Xcode (from Mac App Store or your OS X Installation disc)
- This is the 'compiler' and is required to build the following libraries.

2. Install IJG Library (jpeg library)
- Grab - http://www.ijg.org/files/jpegsrc.v8d.tar.gz
- Extract downloaded file
- Using Terminal enter the jpeg-8d folder (command below)
- Build and install library, 4 separate commands to enter:


Code:


cd /Users/iluvatar/Desktop/jpeg-8d

./configure

sudo make 

sudo make install

Just make sure the 'cd' command is representative of where you extracted the jpeg-8d folder to.
sudo means to temporarily elevate system privileges to install system level software. You will need to enter your admin password for this when prompted.

3. Install PIL
- Grab http://effbot.org/downloads/Imaging-1.1.7.tar.gz
- Extract downloaded file
- Using Terminal enter the Imaging-1.1.7 folder (command below)
- Build and install library, 2 separate commands to enter:


Code:


cd /Users/iluvatar/Desktop/Imaging-1.1.7

sudo python setup.py install

Just make sure the 'cd' command is representative of where you extracted the PIL folder to.

4. Setup pyTivo photo share
- Edit pyTivo.conf to add your photo share (either with WebAdmin or manually)


Code:


[Photos]
type = photo
path = /Users/iluvatar/Pictures/

5. Restart pyTivo and ensure TiVo has 'Home Network Applications' enabled

Photo share will be listed in TiVo Central -> Music & Photos

Keep in mind pyTivo does not utilize the native iPhoto album structure. Unless you have folders of pictures outside iPhoto or other library I honestly don't feel it is worth using. I'm certain however some industrious person can take these instructions and make them understandable to the masses.


----------



## gteague

Iluvatar said:


> Keep in mind pyTivo does not utilize the native iPhoto album structure. Unless you have folders of pictures outside iPhoto or other library I honestly don't feel it is worth using.


the tivo desktop prefpane actually does an excellent job of linking into your iphoto library. i need the python support for loose images that aren't in the iphoto library and tivo desktop doesn't allow for that.

tks for the instructions. i tried them and in the first build i encountered this error:



Code:


error: no acceptable C compiler found in $PATH

you think this is because the newest xcode is no longer in the Developer directory and is now a standalone app in the /Applications directory? what's the command to show the env variable $PATH? it's not export, is it?

... it's printenv. PATH is PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

... xcodebuild is in user/bin but i have no idea if that includes the compiler. isn't the compiler named 'gcc'? nothing like that in there. and frankly, i don't even understand how xcode works now without that huge Developer directory--all of that is just gone completely. surely there was useful stuff in there, right? like usb diagnostic utilities.

... i'm installing the xcode command-line tools to see if it shakes free the compiler that build needs.

a locate of gcc seems to indicate gcc is in the xcode pkg or the xcode.app. hepefully when these command line tools download and install it'll place a copy of gcc in that PATH.

... aha! now there's a gcc in /usr/bin. brb while i continue with your instructions.

/guy


----------



## wmcbrine

Iluvatar said:


> Keep in mind pyTivo does not utilize the native iPhoto album structure. Unless you have folders of pictures outside iPhoto or other library I honestly don't feel it is worth using.


I suspect it would be easy to knock up an iPhoto plugin for pyTivo. I'm just not motivated to do it, because I never use iPhoto myself (or any other photo organizer). I just have folders of pictures.


----------



## gteague

oh, as h rider haggard put it in _she_ long before golfers came to hate it being shouted at them: '*you are indeed the man!*'

once that path issue was worked out (have you installed the new xcode yet? evidently, if you uninstall the previous version you lose the gcc until you install command line tools in the components tab of the new xcode prefs), that went entirely without a hitch. can't thank you enough. i now have music and photos working with pytivo as well as tivo desktop and now if tivo desktop goes away i will miss it hardly at all because, like @wmcbrine, i don't put very much into libraries anyway. and especially not now if lion is going to take away the 'save as' command. not having that command with images its just impossible for me to keep track of what the system is doing with versions.

yet, still ... [g] is there a way to change the share name the tivo displays? if i name it 'pictures' it displays as 'Photos on pictures's PC'. is there a way for me to specify exactly what i'd like it to display?

/guy


----------



## Iluvatar

gteague said:


> once that path issue was worked out (have you installed the new xcode yet? evidently, if you uninstall the previous version you lose the gcc until you install command line tools in the components tab of the new xcode prefs), that went entirely without a hitch. can't thank you enough.


Yes I had issues. Solution was to not let the new version delete the /Developer folder and keep both versions. Or avoid the new version all together.



gteague said:


> yet, still ... [g] is there a way to change the share name the tivo displays? if i name it 'pictures' it displays as 'Photos on pictures's PC'. is there a way for me to specify exactly what i'd like it to display?
> /guy


Not sure on that. Is this how TiVo Desktop display's itself?


----------



## bareyb

> Originally Posted by gteague
> yet, still ... [g] is there a way to change the share name the tivo displays? if i name it 'pictures' it displays as 'Photos on pictures's PC'. is there a way for me to specify exactly what i'd like it to display?
> /guy


Sounds like you should change the name of the share to: "gteague", then it would say "Photos on gteague's PC". 

So did you get Photos working? I installed TiVo Desktop and got a look at how that does it. It named the folder "Dad's Mac/Photos" I think... It also put a folder at the bottom on my NPL that said "Dad's Mac/Videos" and it even installed the folder in the Applications folder... Unfortunately, it doesn't show any of my Videos even if I put them directly in the folder... I guess they broke that so they could make the deal with Roxio... I actually preferred the Movies and iTunes integration in pyTivo better anyway. I don't want my videos in the Application Folder. I want them in the "Movies" folder.


----------



## wmcbrine

Iluvatar said:


> Not sure on that. Is this how TiVo Desktop display's itself?


Yes, that's TiVo Desktop. pyTivo displays whatever is in the brackets [ ] as the share name.


----------



## Iluvatar

wmcbrine said:


> Yes, that's TiVo Desktop. pyTivo displays whatever is in the brackets [ ] as the share name.


Looks like the extra bits get dropped when 'platform' is not sent with the beacon. TD for Mac displays exactly what you want as the share name because it doesn't announce with 'platform' set. pyTivo announces everything with platform=pc. It seems TiVo has it's own internal bits it adds to share name when it sees platform=pc (in addition to the icons that are chosen in NPL for shares depending on which platform is set platform=tcd/Series4 causes little Premiere icons to show). So [Photos] share becomes Photo's on Photo's PC.


----------



## gteague

@iluvator: unfortunately, when installing the new xcode i didn't consider all the implications and thus i followed instructions to run the /uninstall/ module inside the old developer package and it did indeed uninstall everything associated with that old version. i'm sure there's a way to re-install it, but i'm not a developer and rarely use the tools, so i can hopefully get away with the limitations of the new version of xcode. apple pulled the same trick on the airport config util where the new version removed a couple of pages of tools. fortunately they recognized this and left the old version available as well. with the new mountain lion just introduced with it's dumbing down the os to ios levels, it deeply troubles me. one of the big attractions to me is apple's unix underpinnings.

@bareyb: yeah, pictures are working perfectly. and i've completely given up on the toast and tivo desktop way of handling video--pytivo and streambaby are far far superior.

@wmcbrine: i'm a little lost ... are you saying that tivo desktop is somehow over-riding the share name in pytivo? that share name is not present when just running tivo desktop and pytivo is not running. in fact, afaik, tivo desktop will only share the iphoto library and that shows up under the 'Music & Photos' menu item as 'roma_photos'-a name you can assign from the prefpane.

/guy


----------



## Iluvatar

gteague said:


> @iluvator: unfortunately, when installing the new xcode i didn't consider all the implications and thus i followed instructions to run the /uninstall/ module inside the old developer package and it did indeed uninstall everything associated with that old version.


It may still be in your Trash. If so just restore the Developer folder. All that's necessary.



gteague said:


> @wmcbrine: i'm a little lost ... are you saying that tivo desktop is somehow over-riding the share name in pytivo? that share name is not present when just running tivo desktop and pytivo is not running. in fact, afaik, tivo desktop will only share the iphoto library and that shows up under the 'Music & Photos' menu item as 'roma_photos'-a name you can assign from the prefpane.
> 
> /guy


I noticed this also. Read my post before your last one.


----------



## wmcbrine

Iluvatar said:


> It seems TiVo has it's own internal bits it adds to share name when it sees platform=pc


Wait, what? ...Oh, I get it: it's an HDUI thing. This doesn't happen with the SDUI. Except with TiVo Desktop _for Windows_, which is why I posted that; sorry.

I'm testing a "platform" change now...


----------



## bareyb

gteague said:


> @iluvator: unfortunately, when installing the new xcode i didn't consider all the implications and thus i followed instructions to run the /uninstall/ module inside the old developer package and it did indeed uninstall everything associated with that old version. i'm sure there's a way to re-install it, but i'm not a developer and rarely use the tools, so i can hopefully get away with the limitations of the new version of xcode. apple pulled the same trick on the airport config util where the new version removed a couple of pages of tools. fortunately they recognized this and left the old version available as well. with the new mountain lion just introduced with it's dumbing down the os to ios levels, it deeply troubles me. one of the big attractions to me is apple's unix underpinnings.
> 
> *@bareyb: yeah, pictures are working perfectly. and i've completely given up on the toast and tivo desktop way of handling video--pytivo and streambaby are far far superior.*
> 
> @wmcbrine: i'm a little lost ... are you saying that tivo desktop is somehow over-riding the share name in pytivo? that share name is not present when just running tivo desktop and pytivo is not running. in fact, afaik, tivo desktop will only share the iphoto library and that shows up under the 'Music & Photos' menu item as 'roma_photos'-a name you can assign from the prefpane.
> 
> /guy


From your experience with it, do you think it's appropriate to put into a "Beginners" Tutorial? Would that even be possible? I'm thinking having to download xcode and all that may be a bit much to try and explain... But hey, if you can break it down step by step, I'll take the screen shots and put it in there.


----------



## gteague

although simple when someone like these guys (adult supervision) shows us how to do it, a compile and build doesn't, in my opinion, fall into a beginner category. it's entirely safe in 99% of the case, but there'll always be that exception that no one can foresee that will fark things up. witness above where i didn't have the compiler in the path anymore due to an update of the developer tools. granted, this just failed the process and didn't fsck anything up, but it's one of those things those writing the instructions just can't foresee. all this just imho, of course.

/guy


----------



## gteague

wmcbrine said:


> Wait, what? ...Oh, I get it: it's an HDUI thing. This doesn't happen with the SDUI. Except with TiVo Desktop _for Windows_, which is why I posted that; sorry.
> 
> I'm testing a "platform" change now...


i wasn't sure from what @iluvator said whether i could change the platform ?variable? ?field? or not. it sounds like you have to make a source change in order to do this, perhaps? i'd love to be able to change what it displays on the tivo because what it's doing now is ugly. and it goes without saying i'm ultimate anal--i want control!

i did finally get sort of used to the 'stream, baby, stream!', but not entirely ... [g]

/guy


----------



## wmcbrine

OK, I have a fix in my repos now.


----------



## bareyb

gteague said:


> although simple when someone like these guys (adult supervision) shows us how to do it, a compile and build doesn't, in my opinion, fall into a beginner category. it's entirely safe in 99% of the case, but there'll always be that exception that no one can foresee that will fark things up. witness above where i didn't have the compiler in the path anymore due to an update of the developer tools. granted, this just failed the process and didn't fsck anything up, but it's one of those things those writing the instructions just can't foresee. all this just imho, of course.
> 
> /guy


Okay. That's what I thought. I think the Tutorial is complete as is. Thanks.


----------



## Iluvatar

gteague said:


> i did finally get sort of used to the 'stream, baby, stream!', but not entirely ... [g]
> 
> /guy


You can change this. Edit streambaby.ini to include



Code:


title=TiVoStreamer

or whatever other title you could come up with that you prefer.


----------



## gteague

wmcbrine said:


> OK, I have a fix in my repos now.


great. now to see if i can figure out how to update. i'll let you know if i get stuck. for some reason i have a very hard time with these dedicated 'sourceforge' type pages or wikis--despite the formats being standardized i have trouble finding things. but i've been out of open source stuff since i quit messing around with linux and i'm way out of practice. i just muddle around with bog-standard ubuntu now and don't configure it unless i have to.

... is it as simple as replacing my 'beacon.py' file with your newest changes? just a cut'n'paste job? it doesn't have to be compiled (by python?) into the 'beacon.pyc'? i'm betting that it does ...

... i found a download tab that seems to have downloaded the whole folder or distro. do i need to replace my whole pytivo folder with the new download (except for my personalized config files) and then the first run will create the .pyc files? or perhaps i can just remove the 'beacon.pyc' file and the next run will recreate it? sorry, i'd love to learn python and it's on my short list, but i just don't have any experience with it yet.

... or, if there's a howto or faq on how to merge in new builds, just point me to it.

@ivulator: many tks for the streambaby tip to replace the default title. sure am glad i'm not paying for all this great tech support--i doubt anyone could afford it even if they could get it nowadays ... [g]

/guy


----------



## bareyb

gteague said:


> great. now to see if i can figure out how to update. i'll let you know if i get stuck. for some reason i have a very hard time with these dedicated 'sourceforge' type pages or wikis--despite the formats being standardized i have trouble finding things. but i've been out of open source stuff since i quit messing around with linux and i'm way out of practice. i just muddle around with bog-standard ubuntu now and don't configure it unless i have to.
> 
> ... is it as simple as replacing my 'beacon.py' file with your newest changes? just a cut'n'paste job?
> 
> *@ivulator: many tks for the streambaby tip to replace the default title. sure am glad i'm not paying for all this great tech support--i doubt anyone could afford it even if they could get it nowadays ... [g]*
> 
> /guy


Ain't that the truth. People's generosity with their time and talent, never ceases to amaze me. Gives me hope for mankind I tell ya. I hope you guys know how much people appreciate it...


----------



## gteague

ok. my first 'hunch' worked. i merely copied the original 'beacon.py' file, naming it 'beacon orig.py', then added the new 'beacon.py' file from wmcbrine's cvs. i moved the 'beacon.pyc' file out to the desktop and then launched pytivo. as i suspected, the 'beacon.pyc' file was recreated on the fly and ,just like that i now have complete control over the share name that tivo displays. fantastic!

i'll bet i have you guys in stitches with my deconstructions of how i think things should work and my thrashing around in your filesystems, eh? [g]

/guy


----------



## Fofer

Iluvatar said:


> You can change this. Edit streambaby.ini to include
> 
> 
> 
> Code:
> 
> 
> title=TiVoStreamer
> 
> or whatever other title you could come up with that you prefer.


Thanks for this! I'd often wondered how to replace the "Stream, Baby, Stream" title but thought it would be nitpicky to ask.  :up:


----------



## Iluvatar

gteague said:


> ... is it as simple as replacing my 'beacon.py' file with your newest changes? just a cut'n'paste job? it doesn't have to be compiled (by python?) into the 'beacon.pyc'? i'm betting that it does ...
> 
> @ivulator: many tks for the streambaby tip to replace the default title. sure am glad i'm not paying for all this great tech support--i doubt anyone could afford it even if they could get it nowadays ... [g]
> 
> /guy


No problem.

And yes you want to overwrite your entire pyTivo folder, not just a single file. Then restart pyTivo. It should be ok but backup your pyTivo.conf and /bin folder just in case. This will give you all the changes wmcbrine has committed since the last time you installed pyTivo.


----------



## gteague

@iluvatar: i understand. i think i got away with it this time because @wmcbrine (according to the version notes) seems to have only modified this single file. i can see it would be much safer to do as you say as the general rule. i never thought of the /bin directory, i'll make sure to do that next time although time machine should have me covered if i forget.

[later edit: i replaced all the pytivo files with the files from the latest build just to be on the safe side and to get a feel for the proper procedure. i made sure i didn't overwrite my new 'beacon.py' file. confirmed everything still works after the replacement.]

/guy


----------



## Iluvatar

wmcbrine said:


> OK, I have a fix in my repos now.


Just for future reference the values I have found to work are:



Code:


tcd             - icon looks like a 540 S2 /no extra name in music/photos
tcd/Series3     - icon looks like a HD /no extra name in music/photos
tcd/Series4     - icon looks like a Premiere /no extra name in music/photos
pc              - normal PC icon /name in music/photos is '... on PC'
pc/Mac          - normal PC icon /name in music/photos is '... on Mac'

Value can be anything obviously but only the above (I have found so far) produce icons in NPL.

Alternately it seems you can choose not to send 'platform' at all and it has no ill effect besides missing NPL icons.


----------



## gteague

Fofer said:


> Thanks for this! I'd often wondered how to replace the "Stream, Baby, Stream" title but thought it would be nitpicky to ask.  :up:


otoh, i have no shame when it comes to feeding my anal compulsion to control every smallest aspect! [g]

/guy


----------



## gteague

bareyb said:


> Ain't that the truth. People's generosity with their time and talent, never ceases to amaze me. Gives me hope for mankind I tell ya. I hope you guys know how much people appreciate it... I know I do.


and now they know where to come to get newbie fresh meat in case they have a new build or some new feature to test out. i know i don't sound like it, but i have been a beta tester (and some betas are more alpha than beta) for nearly 20 years for one or another company or development team. i just joined fitbit, the nifty electronic pedometer folks. i had major problems with a recent update and they had mac problems and i'll bet they figured they'd rather have me on their side where i could cause less problems that if i was out loose on the range asking questions! [g]

/guy


----------



## wmcbrine

Iluvatar said:


> Just for future reference the values I have found to work are:
> 
> 
> 
> Code:
> 
> 
> tcd             - icon looks like a 540 S2 /no extra name in music/photos
> tcd/Series3     - icon looks like a HD /no extra name in music/photos
> tcd/Series4     - icon looks like a Premiere /no extra name in music/photos
> pc              - normal PC icon /name in music/photos is '... on PC'
> pc/Mac          - normal PC icon /name in music/photos is '... on Mac'
> 
> Value can be anything obviously but only the above (I have found so far) produce icons in NPL.


Interestingly the SDUI shows the "PC" icon no matter what I do; only the HDUI icon is affected.

I chose to continue using platform=pc for video shares (gives us the icon, and the share name isn't mangled there), and platform=pyTivo for the others (no more share name mangling, and music/photo shares never did have icons). Also, video shares will lose their icons if you disable Zeroconf, since I use platform=pyTivo for the old-style beacons, and there's only one beacon for all shares.


----------



## jcthorne

bareyb said:


> When they say "multiple processors" I'm assuming they are talking about _separate_ physical processors right? Multi-core processors like the i7 wouldn't count as "multi" right?


An i7 quad core would be 8 threads. If you wanted ffmepg to use all available processor capacity.


----------



## bareyb

Any idea what's going on with this? I can only launch pyTivo using the plist file in the Launch Agents Folder. It won't launch manually any longer and it can't see my Movies folder. pyTiVoX still works too. Weird... I tried reinstalling the latest build but it's telling me there's no such path when there is.... Any thoughts?



Code:


Last login: Fri Mar  2 01:43:15 on ttys000
cd /Applications/pyTivo 
./pyTivo.py
Barry-Barnetts-MacBook-Pro-4:~ bareyb$ cd /Applications/pyTivo 
Barry-Barnetts-MacBook-Pro-4:pyTivo bareyb$ ./pyTivo.py
INFO:pyTivo.beacon:Announcing shares...
INFO:pyTivo.beacon:Registering: Macintosh Movies
INFO:pyTivo.beacon:Registering: Macintosh Music
INFO:pyTivo.beacon:Scanning for TiVos...
INFO:pyTivo.beacon:TiVo Elite
INFO:pyTivo.beacon:TiVo 2
INFO:pyTivo.beacon:TiVo 1
INFO:pyTivo:pyTivo is ready.
INFO:pyTivo:10.0.1.196 [02/Mar/2012 01:50:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.190 [02/Mar/2012 01:50:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F&DoGenres=1 HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.197 [02/Mar/2012 01:50:30] "GET /TiVoConnect?Command=QueryContainer&Container=%2F HTTP/1.0" 200 -
INFO:pyTivo:10.0.1.190 [02/Mar/2012 01:50:38] "GET /TiVoConnect?Command=QueryFormats&SourceFormat=video%2Fx-tivo-mpeg HTTP/1.1" 200 -
ERROR:pyTivo:Exception during request from ('10.0.1.190', 55234)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
INFO:pyTivo:127.0.0.1 [02/Mar/2012 01:51:22] "GET / HTTP/1.1" 200 -
INFO:pyTivo:127.0.0.1 [02/Mar/2012 01:51:22] "GET /main.css HTTP/1.1" 200 -
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60323)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60324)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60325)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
INFO:pyTivo:127.0.0.1 [02/Mar/2012 01:51:48] "GET /TiVoConnect?Command=QueryContainer&Container=Users%25Macintosh%20Movies&Format=text/html HTTP/1.1" 404 -
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60327)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60328)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60329)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60330)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60331)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60332)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60333)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60334)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'
ERROR:pyTivo:Exception during request from ('127.0.0.1', 60335)
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 558, in process_request_thread
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 320, in finish_request
  File "/Applications/pyTivo/httpserver.py", line 75, in __init__
    client_address, server)
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/SocketServer.py", line 615, in __init__
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 329, in handle
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
  File "/Applications/pyTivo/httpserver.py", line 101, in do_GET
    self.handle_query(query, tsn)
  File "/Applications/pyTivo/httpserver.py", line 145, in handle_query
    method(self, query)
  File "/Applications/pyTivo/plugins/video/video.py", line 320, in QueryContainer
    force_alpha)
  File "/Applications/pyTivo/plugin.py", line 202, in get_files
    updated = os.stat(unicode(path, 'utf-8'))[8]
OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'


----------



## gteague

looks like this was the first sign of trouble and everything past this failed:

ERRORyTivo:Exception during request from ('10.0.1.190', 55234)​
is 10.0.1.190 your maccbook or your tivo? has anything changed on your lan?

/guy


----------



## bareyb

gteague said:


> looks like this was the first sign of trouble and everything past this failed:
> 
> ERRORyTivo:Exception during request from ('10.0.1.190', 55234)​
> is 10.0.1.190 your maccbook or your tivo? has anything changed on your lan?
> 
> /guy


Seems to have been a corrupted pyTivo.conf file. Weird. I wonder if playing around with pyTivoX and TiVo Desktop pissed it off?


----------



## wmcbrine

It's not "corrupted", it's just missing a leading slash:



> OSError: [Errno 2] No such file or directory: 'Users/bareyb/Movies'


No doubt because of your unfamiliarity with specifying paths. The leading slash tells the computer "start from the top". Without it, you're saying "start from the current folder". Which would be fine, if you happened to be at the top-level folder already. But usually that's not the case.

So again, that should be:



Code:


/Users/bareyb/Movies

not:



Code:


Users/bareyb/Movies

gteague: That's not how you read Python errors. The actual error is at the end. The traceback tells you where in the code it happened.


----------



## gteague

looks like we both learned something @bareyb!

thanks man. the universe is lucky i'm not a programmer, but at least, unlike most at microsoft it seems, i recognize my limitations ... [g]

/guy


----------



## kcpyatt

I just wanted to thank *bareyb* for taking the time to create the detailed pyTivo OS X installation guide. It was extremely helpful.

I would also like to give a long overdue thank you to the illustrious *wmcbrine* for his years of dedication to the pyTivo project. His constant vigilance and contributions are very much appreciated.

Thank you, sir.


----------



## bareyb

wmcbrine said:


> It's not "corrupted", it's just missing a leading slash:
> 
> No doubt because of your unfamiliarity with specifying paths. The leading slash tells the computer "start from the top". Without it, you're saying "start from the current folder". Which would be fine, if you happened to be at the top-level folder already. But usually that's not the case.
> 
> So again, that should be:
> 
> 
> 
> Code:
> 
> 
> /Users/bareyb/Movies
> 
> not:
> 
> 
> 
> Code:
> 
> 
> Users/bareyb/Movies
> 
> gteague: That's not how you read Python errors. The actual error is at the end. The traceback tells you where in the code it happened.


Any idea how the leading slash went missing? I didn't touch it, I swear! is there any way it could have disappeared on it's own? 

ETA: Doh! The slash was never there to begin with... I guess it does work without it if you happen to be in the right directory. Fixed, and screen shot updated. Thanks.


----------



## bareyb

kcpyatt said:


> I just wanted to thank *bareyb* for taking the time to create the detailed pyTivo OS X installation guide. It was extremely helpful.


Glad it helped you! Thanks for letting me know.


----------



## bareyb

Updated some of the links. Should work fine now.


----------



## ajblast

I'm getting the push settings to work but pull isn't what could I have done wrong?


----------



## dupreeblue

Hey all. 

Does anyone know if pyTivo is working with Mountain Lion? I'd like to upgrade, but, well, I'll be lost if pyTivo doesn't work anymore. I'd prefer to wait until it does. 

Thanks!


----------



## wmcbrine

I don't foresee any need to revise pyTivo for Mountain Lion. But I haven't tested it.


----------



## dupreeblue

Thanks for the quick reply. I guess I'm going to be the first test. I'll report back here when I know if it works for me.


----------



## dupreeblue

It seems to be working perfectly. Excellent.


----------



## wmcbrine

wmcbrine said:


> I don't foresee any need to revise pyTivo for Mountain Lion. But I haven't tested it.


BTW, the reason I could say this is that there's very little that's Mac-specific in pyTivo to begin with, much less specific to certain versions of OS X. To be exact, there are eight places in the code where pyTivo checks for a Mac, although only for two reasons: 1) To decide what character set to use when not using Unicode, and 2) To handle the Mac's slightly peculiar use of Unicode in the filesystem.


----------



## emphasis

very nice step by step, wish there was same for windows 7


----------



## Iluvatar

emphasis said:


> very nice step by step, wish there was same for windows 7


are there issues you are having with the guide at the pyTivo wiki?


----------



## bareyb

dupreeblue said:


> It seems to be working perfectly. Excellent.


Ah. I was wondering the same thing myself. Thanks for confirming. I'm going to upgrade to Mountain Lion very soon. :up:


----------



## bareyb

bareyb said:


> Ah. I was wondering the same thing myself. Thanks for confirming. I'm going to upgrade to Mountain Lion very soon. :up:


Yep. PyTivo works under Mountain Lion exactly the same as it did under Snow Leopard. :up:


----------



## DavidTigerFan

Have any of you noticed problems transferring mp4s? I start any transfer now and the tivo slows to a crawl. I check the progress of the transfer and it's barely moving where as before it would transfer pretty fast.


----------



## discobob

Hi awesome Tivo geniuses. I have been using pyTivoX (both the pyTivo and Streambay portions) for quite some time successfully. Recently, however, I upgraded from a Series 3 to a Premier. All of a sudden my new Tivo can no longer see my Shares folder on my Mac. HOWEVER, streambaby continues to work just fine.

Thinking this was odd, I decoupled them (installing wmcbrine's latest pyTivo and streambaby separately). No dice. Yes, I did lots of reboots. Yes, I tried beacon at both the 192.168.1.255 and the actual IP of my Tivo. No dice.

So, I ran nmap from terminal to verify that port 9032 (TCP) and port 2190 were open on both my Tivo and on my Mac. Ports = open.

Here is my pyTivo.conf file:

[Server]
tivo_password = xxx
tivo_username = xxx
beacon = 192.168.1.255
port = 9032

[_tivo_SD]

[_tivo_HD]
tivo_username = xxx
tivo_password = xxx

[My Videos]
path = /Users/chris/Downloads/Videos
type = video

I am stymied. Any ideas guys?


----------



## discobob

BTW, here is my pyTivo log:

[/Applications/pyTivo]$ ./pyTivo.py
INFOyTivo:Last modified: Mon Sep 10 14:10:24 2012
INFOyTivoython: 2.7.2
INFOyTivo:System: Darwin-12.1.0-x86_64-i386-64bit
INFOyTivo.beacon:Announcing shares...
INFOyTivo.beacon:Registering: My Videos
INFOyTivo.beacon:Scanning for TiVos...
INFOyTivoyTivo is ready.


----------



## wmcbrine

Open port 5353 (UDP) as well.

And/or reboot the TiVo.


----------



## tanoanian

That seems like an awful lot of work when all you have to do is right click the pyTivoX application icon, choose "Show Package Contents" and drag the latest versions of ffmpeg, wmcbrine pytivo, and streambaby to the Resources folder. 

Just sayin...


----------



## bareyb

For some reason my thread isn't showing up...

ETA: Huh. It is now... never mind.


----------



## lrhorer

DavidTigerFan said:


> Have any of you noticed problems transferring mp4s? I start any transfer now and the tivo slows to a crawl. I check the progress of the transfer and it's barely moving where as before it would transfer pretty fast.


Are you pulling or pushing? If you are pulling, then recoding from .mp4 to .mpg is going to take a lot of CPU horsepower and consequently a lot of time. If you are pushing, then the transfer should be quite fast, unless the file is not TiVo compatible.


----------



## murgatroyd

Apologies to bareyb, but I'm reading your tutorial and now I'm hopelessly lost. And I've got some questions that aren't really relevant to pyTiVo, but I'm hijacking your thread anyhow.

First, let me explain so you'll know what I've done so far.

Where I'm coming from: if I had my druthers, I'd set up a nice Linux server and leave it running all the time, as lrhorer has advocated. But I don't have the hardware at the moment to do that, so I'm trying to work with the stone knives and bearskins I have on hand. Once I can get my Linux server up, I'll go pester the hell out of lrhorer in the Linux server thread. But for now, the Mac. Fire up your Tardis and go backwards in time!

I have: 
iBook G4 running Tiger
dual-boot desktop running XP home and some flavor of SuSe
Laptop with XP Pro but no DVD burner 
previous desktop, also with Windows XP / SuSe, whereabouts unknown, could be made into a server later, once I can find what closet it is hiding in
other computers which are far too old too be relevant to the discussion 

What I would like to be able to do:

1. pull video off the TiVoHD to the Mac, decrypt it, then (for shows short enough to fit) burn the mpeg2 files to DVDs or
2. transfer the larger files to the XP for processing with VideoReDo
3. Push videos back to the TiVo from the Mac, mostly because I want to learn how. If all else fails, I can push them back with (feh) TiVo Desktop Plus on the XP box.

Note: I'm trying to avoid any re-encoding at the moment until I understand the push/pull parts. I'll worry about my iPod later.

What I've done so far:
1. downloaded the most recent wmcbrine fork, I hope, but not from your link -- I got it from http://pytivo.sourceforge.net/wiki/index.php/Current_Releases
2. Re: your step two -- I have ffmpeg installed already because I was experimenting with kmttg before I found your thread, and I've installed the package of MacOSX Tools that was recommended to go with that.

I used to do DOS and Amiga CLI stuff, so I'm not afraid of using the Terminal. I just haven't used the Mac in a while, and I haven't gotten to the part where I grok it yet. So I'm at the stage where I can understand all the individual pieces of things, but they don't make a coherent whole. I'm in that ugly stage where I feel like Steve Jobs has come in and re-arranged my kitchen. I'm looking for a spoon to stir my spaghetti sauce and it has to be here somewhere but goddamn it where did Jobs put it?

What I need help with:

Problem #1: Apparently I'm not supposed to run the kmttg.jar directly, I'm supposed to launch it with the kmttg script which is included with the stuff I've installed. How the <bleep> do I run that script when I want to start kmttg?

Problem #1.5 presumably Fofer's pyTivo launcher app could be copied / hacked to make a launcher to start kmttg, but my trying to do that now would be getting way ahead of myself, so let's not go there yet.

Problem #2: I installed TiVo Desktop on the G4 (ich blech) and my TiVoHD can't see my photos or music, but kmttg apparently can pull videos off just fine, so the Mac can see the HD. Should I just throw the POS TiVo Desktop out, since I'm going to have pyTiVo working soon anyhow?


----------



## wmcbrine

murgatroyd said:


> Should I just throw the POS TiVo Desktop out, since I'm going to have pyTiVo working soon anyhow?


They neither interfere with nor depend on one another, so that's purely a matter of your own taste.


----------



## murgatroyd

Thanks for the reply. I'm looking forward to getting pyTiVo running soon. I don't know which OS yet, but it'll happen somewhere.


----------



## bareyb

Hey Jan. I'm kind of a newbie to all this stuff myself. It's pretty straight forward to get PyTivo working if you follow the step by step instructions, but anything off the beaten path and I'm pretty useless. There are some really advanced users here that helped me get set up the first time. I'm sure they'll be around to help you too. It's an awesome program. I've never had a single problem with it once I got it installed.


----------



## kermitfrog

Hi! Thank you very much for such a great post! Everything that I want in a nutshell! I'm stuck tho... not sure if I did something wrong... Terrible embarrassing that I'm stuck in the first section.. no nifty little icon with the name 'movies' on it..  Can anybody help?


----------



## Iluvatar

My OS X FFmpeg build has been updated for those interested:

http://pytivo.sourceforge.net/forum/ffmpeg-builds-for-mac-os-x-t1803.html


----------



## bareyb

Iluvatar said:


> My OS X FFmpeg build has been updated for those interested:
> 
> http://pytivo.sourceforge.net/forum/ffmpeg-builds-for-mac-os-x-t1803.html


Thank you for the heads up. Just downloaded it. :up:


----------



## jtso

I'm installing pyTivo according to bareyb's instructions. However I'm having trouble with Fofer's pyTivo launcher app. After downloading it and trying to run it, I get an error message saying that it is "damaged and can't be opened."

Any ideas?

Otherwise, pyTivo is running fine.

(Running Mountain Lion on a MacBook Pro)


----------



## ShayL

jtso said:


> I'm installing pyTivo according to bareyb's instructions. However I'm having trouble with Fofer's pyTivo launcher app. After downloading it and trying to run it, I get an error message saying that it is "damaged and can't be opened."
> 
> Any ideas?
> 
> Otherwise, pyTivo is running fine.
> 
> (Running Mountain Lion on a MacBook Pro)


That sounds like gate keeper is blocking it: http://support.apple.com/kb/HT5290?viewlocale=en_US&locale=en_US


----------



## jtso

ShayL said:


> That sounds like gate keeper is blocking it: http://support.apple.com/kb/HT5290?viewlocale=en_US&locale=en_US


Yes thank you, that seems to be it. Assuming that the app is not really "damaged", is there a way to get it to work?


----------



## jtso

jtso said:


> Yes thank you, that seems to be it. Assuming that the app is not really "damaged", is there a way to get it to work?


Got it to work by changing the security settings in System Preferences.

Thanks for pointing me to this.


----------



## bareyb

FYI: Updated the information on the Main Pages to reflect the new GUI and the ability to download H.264 files natively without pyTiVo having to convert it. It's SMOKIN' FAST. I downloaded an hour and a half H.264 in about 20 seconds.


----------



## wco81

This is interesting stuff.

So is there a way to stream videos to the Tivo or can you only download it (and presumably transcode it at the same time?)?

Does ffmpeg support all the codecs which might be used in mkv and other formats or is it only mpeg, as the name suggests?


----------



## Wil

tanoanian said:


> all you have to do is right click the pyTivoX application icon, choose "Show Package Contents" and drag the latest versions of ffmpeg, wmcbrine pytivo, and streambaby to the Resources folder.


Is this accurate? Seems too good (easy) to be true.

What about .dylib files?


----------



## djl25

Has anyone gotten this to work? I followed the instructions on the wiki, and it will work for me one time. If the computer is turned off and then back on, pyTivo does not start. I have a similar situation, and it would be really convenient to start on boot...



ScottE22 said:


> I store our media files on a HD attached to our family iMac - my kids use it primarily. They both have their own logins.
> 
> With our current Roku setup, I usually login to the iMac and then use fast-user switching to put up the login window for the kids. That way my account has the little orange checkmark next to it and always stays logged in so that Plex Media Server (and a couple other servers) can be running which serves up our movies to the Roku. This is rarely a problem as long as I get myself logged in first whenever the iMac reboots.
> 
> In setting up our new TiVo Premiere, I am wondering whether I could place the pyTiVo launch file into the /launchdaemons folder instead of /launchagents and have it launch on boot instead of on login. Admittedly, I don't have a very deep understanding of how UNIX logins and daemons work so I could be imagining a solution that won't work.
> 
> It's certainly not a deal-breaker, but it would sure be nice not to have to worry about logging in my account any time we re-boot.
> 
> Thoughts?


----------



## sandyjasmine

Thanks so much Barey, for taking the time to do this fabulous tutorial. It was really helpful 

I wonder what I am doing wrong 
Ctivo works fine for me.

I got PyTivo up and running, but my Movies folder on my Tivo has no movies on it. 
Do you have any idea what I could be doing wrong?

Jas


----------



## Fofer

I went to follow this guide again and notice that all of the screenshots from the first (very many) posts are gone?


----------



## bareyb

Fofer said:


> I went to follow this guide again and notice that all of the screenshots from the first (very many) posts are gone?


Oh BUMMER! They were all hosted on Skitch. I think I have a set of back ups. I'll have to upload them to the servers here on TCF. Thanks for letting me know.


----------



## Fofer

Thanks bareyb, that'd be great. Really appreciate you putting this guide together "for the ages." It's a helpful resource!


----------



## bareyb

All fixed.


----------



## dnorth12

I'm getting an error message when launching pytivo launcher.

Says it is damaged and can't be opened. You should move it to the trash.

Otherwise everything else is working.

One other item. What format should I convert HD .mov files to for playing on the Bolt?


----------



## Fofer

dnorth12 said:


> I'm getting an error message when launching pytivo launcher. Says it is damaged and can't be opened. You should move it to the trash. Otherwise everything else is working. One other item. What format should I convert HD .mov files to for playing on the Bolt?


Why not just use Plex?


----------



## dnorth12

Fofer said:


> Why not just use Plex?


I am not familiar with Plex.

I went to a link that referenced Plex server and Firefox warned that it was not a good site to go to.

Besides I just got everything set up with pyTivo. What is wrong with it?


----------



## Fofer

The Plex client is built into Roamio and Bolt now and is also much easier (IMO) and more elegant than PyTiVo.


----------



## dnorth12

Fofer said:


> The Plex client is built into Roamio and Bolt now and is also much easier (IMO) and more elegant than PyTiVo.


I just set up Plex. Not sure it is exactly what I am looking for. I just want a simple push/pull between tivo and computer.

Maybe I am not familiar enough yet with the Plex capability but initially I just see the ability to view content from my computer.

There is content showing on the server that is video editing software, some 10 second aac files. Why does that stuff show up in there? I just want to see what is in my movie folder and not other items unrelated.


----------



## wmcbrine

dnorth12 said:


> What format should I convert HD .mov files to for playing on the Bolt?


pyTivo does the conversion; you shouldn't need to worry about it.


----------



## Fofer

dnorth12 said:


> I just set up Plex. Not sure it is exactly what I am looking for. I just want a simple push/pull between tivo and computer.
> 
> Maybe I am not familiar enough yet with the Plex capability but initially I just see the ability to view content from my computer.
> 
> There is content showing on the server that is video editing software, some 10 second aac files. Why does that stuff show up in there? I just want to see what is in my movie folder and not other items unrelated.


Yeah, Plex does pull only, it doesn't push.

It sounds like your Plex Media Server is searching for and serving all of your video files. It can be configured to only search specific folders.

When it's all set up and working, it's a beautiful thing (IMO.)


----------



## dnorth12

Fofer said:


> Yeah, Plex does pull only, it doesn't push.
> 
> It sounds like your Plex Media Server is searching for and serving all of your video files. It can be configured to only search specific folders.
> 
> When it's all set up and working, it's a beautiful thing (IMO.)


I did find one thing about Plex that is working for me that pyTivo isn't doing.
It will allow me to play 4K video served from my laptop. With pyTivo I can transfer the 4K video to the Tivo box, but it will not play.

One thing I find about Plex that I find annoying is the sign in process.


----------



## shuntera

I installed pyTivo OK and from the Tivo went in to Movies and marked a few for transfer - however - got nothing.

History on the Tivo has them marked as Not Found, and when I hit the Info button I see this:










Nonsense of course as I was able to access the Mac from the Tivo to flag those for transfer.

Anyone know what is wrong?


----------

