An Automated Macintosh Workflow for Getting New TV Episodes From the Internet to Your iPod

I’m a big fan of good TV1, but I’m not a fan of being stuck watching it on the TV. Don’t get me wrong – I’m happy we have a TiVo to entertain our boys with their favorite episodes of Little Einsteins and Thomas the Tank Engine on-demand, but there’s something to be said about being in control of when and where I can catch up on Fringe and Dollhouse.

This post lists the automated workflow I’m using on our iMac to get new episodes of my favorite shows off the internet and onto my iPod Nano so I can watch them whenever and wherever I want.

1. Finding TV Shows with showRSS

If you want to automate the process of getting TV episodes off the internet, your computer needs a way to know when a new show is available, and where it can find it. showRSS solves this problem nicely by allowing you to create and subscribe to a customized RSS news feed that tracks practically any current TV series. When a new episode is available, the feed is updated, which then allows the next step of the process to kick-in.

showRSS also lets you fine-tune your feed to only check for HD (or non-HD) content in order to avoid duplicate content, spare yourself from large high-def downloads, etc.

showRSS TV show feeds

2. Subscribing to Episode Feeds With Automatic

Having created an RSS feed for a TV show in step 1, you need a way to subscribe to it and monitor it for new episodes. There are tons of these available for Mac OS. For quite awhile I had been using one of the best all-purpose Mac news readers – the free NetNewsWire. It was a bit overkill for the task, but it worked well. However, last month I found a tiny program that does exactly what you want here, and nothing more. It’s also free, and called simply Automatic.

Automatic is an RSS reader designed specifically for monitoring feeds and downloading content from them. It runs as a service, so it starts up automatically with the operating system and quietly does it thing in the background when it’s time to check feeds for updates. In our case, if it finds a new episode available from the showRSS feed, it downloads a torrent file to a folder you specify (Automatic does check for duplicates before downloading).

Automatic General Preferences

And that’s it – Automatic’s job is done, and the next step begins.

3. Downloading Shows With Transmission

The torrent file downloaded in step 2 won’t do you any good by itself. Instead, you need a BitTorrent client to consume that file and begin downloading the video using the connection information contained within it. On the Mac, I highly recommend the free Transmission client.

There are a few important settings you need to change in Transmission to get it configured correctly for this workflow:

  • Specify an incomplete downloads that is different than the folder than where it puts completed downloads
  • Don’t display the “adding transfer” window, or only show it when there are multiple files
  • Watch the folder you specified in step 2 for new torrent files

Transmission Transfers Settings

Using these settings, Transmission will automatically begin downloading a new TV episode as soon as Automatic finds it is available. It’ll store that video file in a temporary folder for the duration of its download and then move it to a different folder when it’s complete. This is key for the next step.

4. Encoding and Adding Metadata With Videoengine

Update in April 2011: Videoengine started acting odd for me a while ago, with occasional artifacts from the transcoding process and, more frequently, metadata that didn’t get retrieved or applied to the finished video file. The project was abandoned by its author over a year ago and rather than spend time tracking down the problems, I decided to replace it with the commercial (but inexpensive) iVI Pro, which also makes easy work of transcoding TV episodes from DVDs.

After an episode download is completed, there are still a few things that need to be done to it before it’s ready to be consumed on your iPod. First, it needs to be transcoded into an iPod-friendly video codec – usually either H.264 or MPEG-4 – in a size and quality that is appropriate for a small device. Then, episode metadata needs to be inserted into the file so that it can be easily identified and sorted within iTunes and your iPod.

This niche is filled perfectly by a new open source software project called Videoengine. Videoengine is a combination of the command line version of the HandBrake video encoding software and some AppleScripts and shell scripts that automate a few things:

  • Monitoring your completed downloads file for new video files. If one appears, Videoengine automatically begins converting it to a preset size/quality setting of your choice.
  • Contacting TVDB.com to retrieve episode metadata after the iPod version is create. If it finds any, it embeds it in the video file.
  • Adding the episode to your iTunes video library.

Breakfast Preferences

Prior to the beta release of Videoengine in the middle of March, I was going to attempt to hack a quick-and-dirty solution using the HandBrake CLI, a small application called iDentify, and a few scripts to tie everything together. After looking at the Videoengine source code, I’m extremely happy I didn’t have to do this, as the process is much more complicated than I imagined. So, my thanks to the Videoengine guys for not only creating a solution to this narrow problem, but for making it free and open source as well.

5. Cleaning Up With Hazel

You could easily get by without a step 5, but in the interest of automating this process from end-to-end, I wanted a way to cleanup the files created and free-up the disk space. Hazel does a great job here.

Hazel Converted Cleanup Rule

Hazel is a simple utility that lets you create rules to automatically keep your files organized. In my case, after a TV episode has been downloaded, converted to an iPod friendly format, and added to iTunes, I no longer have a need for the original video, or the converted one (iTunes creates a copy of it when it’s added to the library). So, I have a couple of rules setup to automatically move these files to the trash after a day (this gives me a small time buffer in case I want to manually intervene). Then, Hazel will automatically empty these files from my trash after 3 days.

Conclusion and Final Notes

I’ll admit that this workflow is rather geeky and also probably overkill. But, once setup, it works rather well.

The only weak spot seems to be depending on TheTVDB.com for show metadata. The site seems to be down often, and there’s the off chance that information for a newly downloaded episode hasn’t been entered into their database prior to Videoengine querying for it. If either of these cases ever happen, Videoengine will leave the converted file in your output folder for you to manually import into iTunes.


  1. This automatically excludes all reality shows, by the way 

This Post Has 3 Comments

  1. Great write-up! I had been using most of these parts and pieces at various times, but I was not familiar with videoengine. I am excited to give it a try.

    Previously, I had used appletv fooler for TV shows and Hazel + HandbrakeCLI for movies. I also wrote an applescript to add metadata, but it is static (ie, I input the info to the script at the beginning of the season).

    Thanks for the article!

  2. I dont get it. Breakfast app should be always open for this?

    1. There shouldn’t be any need to keep Breakfast open.

      When you assign a target folder in Breakfast, it automatically generates a folder action on it. That folder action will trigger when it detects a new video file (.mkv, .avi, etc.) and will launch Breakfast when needed.

Leave a Reply

Close Menu