Productivity
Brought to you by

How To Automatically Download Anything

Ready to take your media viewing to the next level? A series of helpful scripts, all installable in a few minutes, can transform your computer into an automatic media downloading machine.

Icons by Katsiaryna (Shutterstock).

In the past we’ve featured automatic downloaders that grab TV shows immediately after they air and movies as soon as they’re released, but you don’t have to stop there. You can schedule music, comic books, video games and practically anything else as a download. In this post, we’ll look at how to set up existing scripts to acquire all kinds of media and use a tool called FlexGet to handle the rest.

Before we start, a word of warning: just because media is available on BitTorrent or Usenet does not make it legal. In the vast majority of cases, it isn’t. If you choose to set up this kind of automation, you’d be hard-pressed to argue that you had accidentally downloaded those files if you did end up in court. You’re also depriving content creators of their income sources (whether that’s directly through purchasing or indirectly through advertising). The decision to download is yours; be prepared to accept the consequences.

Before You Get Started

All the tools in this guide work with BitTorrent, which you should set up securely before you do anything else. If you want to use Usenet instead, you’ll need to set up SABnzbd+ for everything to work properly.

If you choose the Usenet and SABnzbd+ route, you’ll need a few things:

  • Your SABnzbd+ username and password, which you’ll choose when you set it up (presuming you choose to set a username and password, that is).
  • Your SABnzbd+ API key, which you can find in the Config section in the General tab. It’ll look something like 5ape87035c49c4b8f461e55f0z9z4z02.
  • A location to hold your downloaded files. Make individual folders for each type of media (television, movies, music, ebooks and so on).
  • NZB search provider information, such as your username and password and/or API key. Each provider is a little different, so the information you need will vary. Consult our Usenet guide for more information.
  • If you’re on a Mac, download and install Python (if it isn’t installed already).

With all of that ready to go, it’s time to get started.

Television

Your computer can act like an internet personal video recorder, downloading TV episodes as soon as they air, thanks to the assistance of an app called Sick Beard. You simply install it, tell it the shows you want to track, how you want to download those shows (via either BitTorrent or Usenet), and let it do the rest. Follow these steps to install it:

On A Windows PC

  1. Download Sick Beard.
  2. Unzip Sick Beard into a folder and place that folder wherever you want it to live. Run it and you’re done with the installation.

On A Mac

  1. Download the latest versions of Git and Cheetah. (Don’t worry that Cheetah’s old. I’ve been using the same version since Snow Leopard. It works well on Lion and Mountain Lion.)
  2. Install Git via the included installer. When finished, open Terminal (in Hard Drive → Applications → Utilities) to install Cheetah. Type cd into the terminal window and then a space, then drag the unzipped Cheeat download folder onto the terminal window. Your final chommand should look something like cd /Downloads/Cheetah-2.4.4. Press enter. Next, type in sudo python setup.py install and press enter again. Cheetah will install (the process takes around a minute).
  3. Type cd /Applications in your terminal window to change to your computer’s Applications folder, then type git clone git://github.com/midgetspy/Sick-Beard.git to grab the latest Sick Beard source from GitHub.
  4. When Sick Beard completes the installation, run it by entering this command in your terminal window: python /Applications/Sick-Beard/sickbeard.py
  5. If you want to run Sick Beard like an application, open Automator or AppleScript Editor, create a workflow/script that runs that terminal command, and save it as an application.

Working With Sick Beard

Once Sick Beard is up and running, point your web browser of choice to localhost:8081 to get started. Sick Beard is a powerful tool and it requires some configuration. Before you start adding your favourite shows, hop into the config section and set up the following:

  • Search Settings – If you’re using Sick Beard to find NZB files to download with Usenet, you’ll need to enter your SABnzbd+ username, password, and API key in this section. If you want to download torrents, you’ll need to enable that option and tell Sick Beard where your torrent watch folder is.
  • Search Providers – If you’re downloading shows via Usenet, you’ll need to configure search providers in this section. Tick the boxes next to the ones you want to use, then select their names in the following section to enter any necessary credentials. For example, NZBMatrix requires a username and API key. If you followed the instructions at the beginning of the post, you should have this information ready-to-go.
  • Post Processing – SABnzbd+ users won’t have to configure much here, as it will handle post-processing for you. You can, however, ask Sick Beard to do some of the work. BitTorrent users will want to configure this to their preferences, as most torrent clients won’t do much in the way of post-processing.
  • Notifications – Unlike the other tools we’ll cover in this guide, you probably want to know as soon as your favourite shows have finished downloading. Sick Beard provides hooks for a lot of notification services so you can find out right away, using pretty much whatever tool you like. Setup is very easy; find your notification app of preference and enter the required information in this section.

After completing the initial setup, add the TV shows you want to track from Sick Beard’s interface. If you need help adding shows (the process is a little confusing the first time around), consult our complete Sick Beard guide.

Movies

Couch Potato keeps track of all the films you want to watch, and downloads them, too. Installation is easy on both Windows and OS X:

  1. Download Couch Potato.
  2. Launch Couch Potato and visit localhost:5000 to get started.

With Couch Potato open in your web browser, click the Cog icon at the top to get it set up. Here’s an overview of each tab and what you can set up:

  • General – Set the IP address and port of Couch Potato’s web interface, your username and password, and other general settings.
  • Downloaders – Set up SABnzbd+ and/or your BitTorrent Black Hole directory (that is, the folder your BitTorrent client is watching) in this section.
  • Providers – Configure the NZB and torrent file search providers you want to use to download movies. (You’ll need the relevant credentials you gathered at the beginning of this post to make Couch Potato work with Usenet.)
  • Quality – Enable and disable the various quality options for downloaded movies (such as 720p, BR-Rip or Screener).
  • Renaming – Set any renaming rules you want applied after a movie has finished downloading.

Once you’re done with configuration, use the toolbar to search for a movie, select the desired quality, and add it to your watch list. Repeat this process for any movie you want to track (and download). Couch Potato will take care of the rest.

Music

Tracking new releases of your favourite music, automatically downloading songs, and converting those songs into your format of preference is really easy with a tool called Headphones. It can even pull lyrics and album art for the songs it downloads. Follow these steps to install it:

  1. Download the Headphones source files from GitHub.
  2. Unzip the source and place it wherever you want. (Mac users should keep it in thier Applications folder.)
  3. Launch Headphones. Windows users can launch it by right clicking on the Headphones.py file and choosing Open With → Python. Mac users need to open up the Terminal and enter this command: python /Applications/Headphones.py
  4. If you’re setting up other services mentioned in this post, Headphones will probably have a conflicting port of 8081. Upon running the Headphones.py script you’ll be informed of the conflict and asked to choose a new port. You can choose whatever you like, but I opted for 8181.

Headphones is very feature rich and comprehensive, but you only need to configure a few settings to get started. Click the cog icon at the top and set up the following sections:

  • Web interface – Set your IP address, port, username and password in this section. You can also set other general settings, such as how often Headphones looks for new files.
  • Download settings – Enter your SABnzbd+ user information and API key in this section to download via Usenet. To use BitTorrent, specify your Black Hole directory (the folder your BitTorrent client is watching).
  • Search providers – Set up NZB search providers if you’re using Usenet. You’ll need the relevant credentials gathered at the beginning of this post. For BitTorrent, select the trackers you want to use.
  • Quality & Post Processing – Choose the quality of the files you want to download by default and enable any post-processing functions (such as adding lyrics and album art).
  • Advanced Settings – Set renaming rules, format conversion and other details. (You don’t need to set up anything in this section, but there are a lot of cool features in it that you can explore.)

Once you’ve finished configuring Headphones, search for the band you want to track using the toolbar up top. When you find what you want, add the band to your watch list and Headphones will track them. Repeat this process for all the bands you like.

Everything Else

Downloaders for other media also exist:

  • Omniverse automatically downloads comic books.
  • LazyLibrarian automatically downloads ebooks.
  • Gamez automatically downloads video games.

If that list doesn’t cover everything you need, FlexGet provides a way to make your own custom downloaders. It reads RSS feeds, CSV files, and HTML pages to find torrents, NZBs, podcasts whatever you’re looking for, and feeds them to any downloaders that have watch directory support. This includes rTorrent, uTorrent, Transmission, sabNZBD+, nzbget and pyLoad. All you’re required to do is install it, tell it where to look, what to look for, and what to do with the files it finds. The installation process varies, so follow the instructions for your operating system.

On A Windows PC

  1. Install Python (if you haven’t already).
  2. Install easy_install.
  3. Press Windows+R (to access the Run command) and run this command:
    easy_install flexget
  4. When prompted, run the following command to verify the installation: flexget -V

On A Mac (OS X 10.6 and higher)

  1. Open up Terminal and run this command: sudo easy_install flexget
  2. You may also need to use easy_install to install some plug-ins, such as one for Transmission (if that’s what you’re using as your downloader). Here’s an example: sudo easy_install transmissionrpc
  3. Create a plain text file called com.flexget.plist
    in ~/Library/LaunchAgents. (That’s Your Home Folder → Library → Launch Agents.) Paste the following into the file (or just download this):

    <?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>com.flexget</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/local/bin/flexget</string>
    <string> — cron</string>
    </array>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartInterval</key>
    <integer>900</integer>
    <key>RunAtLoad</key>
    <true/>
    </dict>
    </plist>

  4. Back in Terminal, run this command: launchctl load -w ~/Library/LaunchAgents/com.flexget.plist

Using FlexGet

FlexGet isn’t useful unless you give it something to do. The app works with specific tasks written in YAML, which is a very simple, human-readable data format. Let’s take a look at a sample FlexGet config file written in YAML (config.yml) to help you understand how it works:

tasks:
        test task:
                rss: http://mysite.com/myfeed.rss
                series:
                        - My favourite Show
                        - Another Good Show:
                        quality: 720p
                download: /home/me/watchdir/

The first line says “test task:” to identify that this is a task called “test”. The second line identifies an RSS feed for FlexGet to monitor. Next, a list of series tells FlexGet what to look for inside of that RSS feed. In the case of “Another Good Show,” you’ll notice that “quality: 720p” is designated to tell FlexGet to only look for 720p files for that show. Finally, a download directory on the local machine is specified. Any files that match the criteria specified in this task will be placed in that directory, which is watched by a downloader (such as SABnzbd+ or uTorrent).

The format is pretty simple to follow, but it will vary based on what you want to create. The creators of FlexGet have written a detailed configuration manual which covers all the options. Check those instructions for more help on creating your own config.yml file for FlexGet to use.

After completing your task file, save it as config.yml file in C:\Users\YOURUSER\flexget\ in Windows 7, C:\Documents and Settings\YOURUSER\flexget\ in Windows XP, or ~/.flexget/ in OS X. To run any of the specified tasks, open up the command line in your operating system of choice and run the following command:

flexget  -- nameOfTask

Replace “nameOfTask” with the name of a task in your config.yml file. If you set up everything properly, that task will run and you’ll have your own, custom automatic downloader!

Extra bonus: Want to get all of this on your NAS? We’ve got a guide for that, too!


Have you subscribed to Lifehacker Australia's email newsletter? You can also follow us on Facebook, Twitter and YouTube.