Saturday, October 18, 2008

The iMac Torrent Machine - Part I

I had this great idea. I wanted to build a torrent machine. The idea is that this machine would sit in my basement and download all my favorite TV shows for me. Then when I want to watch them I could connect up to them over a network share and stream them to my XBox (running XBox Media Center or XBMC). As far as hardware goes, there is not a lot to choose from in my basement of horror. When my wife and I moved to a new town I decided to part with 95% of my "basement junk". I don't regret it. But when I decide to go build myself a computer out of spare parts, I find that I am running short on spare parts. It only seemed logical to make use of an iMac. I actually have two of them, and enough PC-100 RAM to stuff in them to get almost a full gig!

My efforts on this project were thwarted in a serious way when Xubuntu Linux failed to install easily to my iMac (see previous blog rant). This morning I changed gears. Screw putting Linux on an iMac. It's too much trouble. I will stick to what works. And that is - OS X! More specifically, I went with OS X Pather. Why Panther? I had a copy. It was what used to be on the iMac before I began hacking it. Starting the installation was easy, but I ran into some trouble. Halfway through blanking out the drive and undoing my Linux disaster, the Disk Utility hung up. After a reboot, the drive stopped responding. When I think back to the history of this drive, it's a shady one. It turns out that this drive is dead. Woops. Maybe this is why Linux was running so pathetically slow. Into the trash with you. To quote Fry on Futurama "I should have left you in the toilet where I found you!".

After installing a different 40GB drive - I proceeded to install Panther. Not a lot to say here. The installation was pretty simple as you would expect. Since I chose to "Customize" my installation I was able to uncheck all the stuff that I don't want or need (iCal, iTunes, Asian Fonts, Printer Drivers, etc). Next was the selection and installation of all the software I would need.

The Software
Firefox - I like Safari as a web browser. It works. But Firefox really kicks it's ass when it comes to speed and functionality. The problem is, Firefox 3 does not support older versions of OS X like the one I am using. It's also worth mentioning that newer versions of OS X like Tiger and forward - do not support old iMacs like mine (there are work-arounds, but screw all that). That being said I was happy just installing the last supported version of Firefox 2 (version 2.0.17) to my iMac. I will not use it very often. Mostly I will only use it to download the other stuff on my list. If you are "following along" with this you can get Firefox 2.0.17 in English for the Mac here:

Java - Java comes with the OS (and gets it's updates that way). So to get Java you must first get your OS up to date. At the time of writing that was about 130MB of space, and about 40 minutes of my time. And that only updates your OS core. You will then have to reboot, and re-run the software updater to pick up Java, and it's three or four updates. Then, you need to restart again, and re-run Software Update again to pick up yet another update. In fact, repeat the update/reboot process until you are no longer able to find a Java update in the list. During these updates I unchecked all the stuff I didn't want or need (iCal updates, ipod updates, etc) and it still took an hour+ of my time to chew through. Yuck.

Azureus - In the past I would only run Azureus (mostly on Windows). It's a pretty nice client, despite being based on Java (fuck you IBM). It was the first client that supported rich features like a speed-scheduler through the use of Java plugins. These days I try to use thinner clients that don't take all my resources away! But this computer will sit in the basement and do nothing but download and seed my torrents. So it can have the resources and run a muck with them. I don't care. Theoretically you should be able to grab Azureus here - but I had some trouble. There were only three mirrors for the OS X version and none of them worked. I ended up doing a Google search and revealed this working link. Note that you cannot install any version of Azureus (now called Vuze) past version 3!! That is because version 4 and later all require Java 1.5 (or later) which is not available (and never will be) for OS X 10.3 or earlier. Aren't limitations fun? There are more upcoming. I downloaded Azureus/Vuze and that is what I will focus on here.

When you start up Vuze/Azureus for the first time, it's like waiting in line at the BMV. A long 3 minutes or so later, you will get this ugly iTunes-ish interface which will populate with all sorts of pictures and crap. Your first step should be to click the Advanced button in the top right corner. This will give you a much cleaner look. . If there is some stupid "friends bar" that the bottom, you can kill it. You don't need that.

Now click on Vuze (from the menu bar) > Preferences. Drop down the Interface category and select Start. Now uncheck everything. Most of these options are for getting new versions or reminding you of new versions. You can't use any of them, so screw em'. You might want to keep "Show splash screen" checked (so you know what it's doing while you are waiting for it to start). Also, make sure you check "Start in Advanced View". Then you won't load into that stupid iTunes look any more.

Next expand Plugins and then click on Plugins on the left. Note that there are a couple of clickable links for the Plugins directorys. Click the top one, and a folder will open. Now, there are two plugins you will want to download and put in this directory. You should create two folders. Call them something like "azspeedscheduler" and "azrssfeed". Then grab the plugins which will come in the form of zipped Jar files. You will copy the Jar files into these folders you just made.

Get the plugins from here:
Speed Scheduler (you need this specific outdated version):
RSS Feed Scanner:

Plugins copied into their respective folders? Good. Restart Azureus! You can do this by clicking Vuze > Restart Vuze. Now wait.

Next we will set up your speed schedule. Click File > Plugins > Speed Scheduler. How you set up your schedule is your preference. For me, I simply say "Limit upload speed to 20kbps" from 6:00AM to 24:00PM, all week long. While I am sleeping, I will do a little more seeding. In the daytime, I want that upload bandwidth because my Cable Modem provider limits me to only 60k or so.

Next, set up your seeding preferences. Ideally we would like to Automatically Remove a torrent once it's been seeded a couple of times. However - the AutoStop plugin for Azureus was dropped a long time ago! While I was able to find a mirror of it on SourceForge, it required newer Java than I could handle. With that, let's just tell Azureus that you want to seed everything to 200%. Click Vuze > Preferences. Expand Queue > Seeding and then select First Priority. These settings are rather confusing which only makes me miss the auto-stop plugin even more. Change the "A share ratio under" to 2:1. This makes you a "legal" seeder. Ideally you should set this much higher (eg 8:1) if you have the bandwidth (I don't). Make sure you click the Save button. The effect of this is that you will seed to 200 percent, and then the Torrent will just sink in the list and get "Ignored".

Remote Access
I want to drop this junker onto a shelf in my basement and forget about it. But I still need to log on once in a while and add new shows. For easy remote connectivity I suggest using Vine VNC. You have to get the older version (v1.2) if you are running older versions of OS X (like 10.3): Yes, I tried the newest version and NO - it did not work.

Adding Shows
Your best bet for adding shows to your RSS feed is to read the documentation provided here: Pay close attention to that "Pass/Fail" value that they cover. Their first example is for setting up Torrents that you do NOT want. In my case, I skipped out on Exclusions all together, and I have been operating just fine. This process took a little bit of trial and error. After about half an hour or so I was all ready downloading shows I wanted. If one of the shows you want to download are in the latest RSS feed - it will get added to your list right away. That's great for testing. In fact, you may consider looking at the RSS feed (the plugin will let you peek at it) and then just pick a show randomly from that list to test with.

Use your Imagination
From here the possibilities are pretty endless. I enabled Windows File Sharing in OS X System Preferences and I am storing all my torrents in the Documents folder (each show has it's own subfolder). So when I browse to \\TV\rayhaque\Documents\torrents I get a folder for each of my shows. Next I am going to map this on my XBox so I can fire it up, and just start watching. I have tried streaming the shows from the iMac right to VLC on Windows and Linux and it works really well (no stuttering, buffering problems, etc). As always - your mileage may vary.

As the days/weeks go on, I will probably post a second half to this experiment. In the mean time, I have some shows to watch. Bye now.

1 comment:

  1. Another neat "hack". Setting up a secondary IM account so that you can send your Torrent bot new bit-torrent files. You can set up your client to auto-receive the .torrent file and automatically open it with the client.

    In other words - I see that there is a new movie out that I want to download and I am at work. I can download the torrent file and IM it to my Torrent bot back home. Then when I get home that night I will have a new movie to watch as it will have downloaded during the day.

    The original idea is here: