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!


Comments

    Just to be clear... You guys are advocating piracy, right?

      you can get legal free things from bit torrent.

        There's not that many legal free TV shows, music, movies, games though.

          Check out mininova Johann

          You use a mac, right?

          There are 10000s of legal free TV shows, music and movies. A lot of content producers release theirs for free. Some Bit Torrent sites specialise in legal content. It's a great way to get known in the industry.

      Gees Max, you must be a lot of fun.

      Seriously, cant you hang around on the "high pants" forum?

        To all the "maxs" of the world. You're reading lifehacker clicked on the article titled "how to download......" what do you expect to find. +1000000 for wsDK_II

          Can we get the Lifehacker moderator to send those kind of prude comments to the bin like they do for fanboy "Apple sucks....Windows sucks" comments? They're old, banal and lack usefulness.

            You misunderstand, I don't have a problem with piracy. Almost everything I watch is pirated in fact. I'm just saying, you can't write an article with instructions on how to "grab TV shows immediately after they air and movies as soon as they’re released", and then pretend that you're not advocating piracy.

      Wow, you're on the wrong site, bud. Why don't you hop over to http://www.hasbro.com/mylittlepony/en_AU/ and colour in rainbows.

        Dude, there aren't even any rainbows on that page to colour in. Unless you are talking about the mane on Rainbow Dash, the pegasus pony.

    I thought LazyLibrarian had been discontinued and was pretty much useless in its current form? There was an alternative knocking about a few months ago, but I forget what it was now.

    LOL what a joke. I could write this article in 150 words without all the download this and download that useless links. Useless article is useless. All you had to write was get an old version of uTorrent sub version 2.0.2 and join any of the best private trackers out there. That's all you need to do to download anything! And use each site's RSS feed to automatically download items. Thanks for the laughs.

      Useless reply is useless.

      Seriously.. what a joke you are to expect common people without a clue to be able to find an old version of software, let alone find themselves a private tracker.

      You need you head examined... but so does the author/editor of this article... this is a how-to on piracy. Article needs to be removed.

      Torrents are a joke security-wise.

    Useful information, but I'm one of those people who thinks that if you have trouble manually tracking your stuff... then you have too much stuff.

      Exacty, the time it takes to set this up, you could have manually selected the specific files you wanted in mere moments. I like total control and using automatic systems like these never do the job perfectly.

    Dave, torrents are so 90's its not funny. Can an RSS feed update XBMC? Lol fail

      The bittorrent protocol was created in 2001. And while Usenet is great for movies and TV, there's no better source for music in the world than what.

    Don't forget, if this is all running on the one XBMC machine, you can use Maraschino to seal the deal.

    As the git readme says, "If your HTPC is an ice cream sundae then Maraschino is the cherry on top."

    https://github.com/mrkipling/maraschino

    For those who are adventurous and want to automate your TV shows, you can create an RSS fed uTorrent link, then create a batch file that is run once any file is downloaded. Send the file name, folder and torrent label to the batch file as arguments.

    Batch file then checks that the label argument matches the RSS feed label, and if so it copies the file to another location (to allow the original to seed) then it runs TVRename in hidden mode to automatically rename the show and send it to the correct season folder. Batch file then can run blat (CLI emailer) to send you an email of your new arrival if that's something you are interested in.

    Then use Plex or XBMC or whatever set on an auto library scan, so it will automatically download the meta data. It's exactly like a DVR for the internet then.

      https://tv-rss.com/ + Any decent torrent client works perfectly for me.

    so... how to download a car?
    i clicked because of the picture, i thought it was for downloading a car's design to print on a 3d printer or something bizarre :)

      I clicked on it to see what the computing newbies were up to. In the early 1980's, I used to say something similar: "If I could IEBGENER a car, I would." This referred to an IBM mainframe utility that would copy files. Copying files was considered Bad at my uni, but I did it to learn from others (and yes, I was eventually the top student in the department, and a better programmer than many full time staff, so I did in fact really learn from doing this.) There was much talk about how copying files was stealing, etc., nothing you haven't heard before. My frustrated response: "But it is NOT stealing, as I am not depriving anyone of ANYTHING. I wouldn't STEAL a car. That's theft. OBVIOUSLY. But if I could IEBGENER a car, I would."

      Just a wild stab in the dark, but http://www.theoscarproject.org/ ?

    no luck with lazylibrarian or omniverse :(

Join the discussion!

Trending Stories Right Now