Contact Me or check out the Producerism Blog

Building the Perfect HTPC / Media Server

09/04/2011


This post is a break from the normal topic of programming, but has the same level of geekery/technobabble that you have come to expect from my blog.  Over the past few years, media usage and needs have been changing/evolving to the point where some people almost completely rid of physical CDs, DVDs, even books.  There is also a "cut the cord" movement that emphasizes cutting out any services that you don't make full use of (e.g. cable TV), and favor anything which makes media consumption more convenient.

Here is a quick description of the perfect HTPC / Media Server: Something that can automatically download, repair, extract, gather information on, rename, sort, and play back movies, tv shows, albums, ebooks, games, and even comic books - while making all of the content remotely accessible via browser, mobile-devices, etc.  Oh yeah, and it should be able to run 24/7 while using less energy than a (incandescent) light bulb.

While there are a million and a half ways to setup an HTPC (Home Theater PC) / Media Server, I'm pretty satisfied with my current setup, so I thought I would share.  In a nutshell, I built a mini-ITX system (for less than $400, which runs at less than 50W) running a combination of Sabnzbd, Sick Beard, Couchpotato, Subsonic, VNC, XBMC, Maximus Arcade and a few other small utilities.  With an exception to Maximus Arcade, all of this can be setup using any hardware/OS combination (Windows, OSX, Linux) that supports Java and Python.

Defining Needs / Requirements

Since HTPC / Media Server is slightly vague, here are the specific features I wanted:

Automated Downloading of Movies / TV - Specifically, a way to simulate the functionality of a DVR, without any need for cable TV.

Remote Accessibility - Being able to access/share my media library from the road, work, cellphone, wherever - and only using VNC as a last resort.

Low Power Usage - I wanted to build a machine that could be left on 24/7, without concerns about electric bills or overheating.

Easy to add media, or send links for downloading - Sometimes you think of a show/movie/album you want when away from your computer (at a party, on the road, dinner conversation, etc.)  Having an easy way to add items you want remotely is a very attractive feature.

Ability to Play Emulators and ROMs - For me, no HTPC would be complete without the ability to play old console (NES, Genesis, PSX, etc.) games.

From Cable & DVR, to Usenet & Sabnzbd

It's funny how technology can change behavior over time.  Back when I had cable, and before I had a DVR, there were only a few ways to catch a movie/tv show - either plan on being home to watch the show/movie when it aired on TV, or rent a DVD / stream from Netflix (assuming the video you want is available, and not too recent).  Then, after getting a DVR a few years ago, planning my schedule around when a show came on was out the window.  It was a liberating feeling, and let me catch up on shows when I had the time to do so.  Not to mention, being able to fast-forward through commercials was a bonus.

After a while though, the novelty of a DVR wore off, especially as the rate and taxes for Cable TV continued to rise.  Not just that, but if you ever look into subscriber fees associated with cable, you'll notice that the rates for the various channels is far from equal (e.g. ESPN costs around $4/month, while the Science Channel costs only $0.06/month).  So unless you are a heavy sports fanatic, chances are over half of your cable bill is going to channels you'll never watch.  I definitely fall into that category, and the linked Consumerist article played a huge factor in motivating me to look for other solutions.

Newsgroups

Enter Newsgroups.  Most netizens are familiar with direct downloading (e.g. forums, ftp sites, rapidshare, filesonic, hotfile, etc.) or p2p (limewire, torrents, etc.).  In fact, just about anyone who has downloaded a digital movie or album online outside of iTunes, has probably done so via direct downloads or p2p.  While those are easy and popular options, the reliability and quality of the files, and most importantly - security of the process, are all very questionable.  Download sites keep track of IPs, and are riddled with misleading links and malware scripts.  Torrents have slightly better quality control, but they are also probably the biggest source of copyright infringement lawsuits.  This is because by design, when you download a torrent you are also uploading that torrent to the rest of the world (making you a source for potentially pirated media).

While newsgroups don't completely solve all of those issues, they get close and have other advantages.  Most people don't even realize they already have newsgroup access with their current internet provider.  Of course, the free access provided by ISPs is very limited, and not anonymous/secure, so this is where a premium usenet provider comes into play.

Premium newsgroup access is typically secure and much more "anonymous" than any other method of downloading (depending on who you get newsgroup access through, and your router/network setup).  The other big advantage is that most usenet providers allow you to download as fast as your connection will allow (as opposed to torrents, which are limited to the speed of your peers).

There is an inherent learning curve when dealing with newsgroups, and user-friendly clients have only started becoming more and more refined over the past few years.  At some point, a friend pointed me towards an automated usenet downloading solution called Sabnzbd.  This actually takes lots of the "manual labor" out of usenet.

Costs?

As you might have assumed from the name, "premium" newsgroup access is not free.  It ranges from less than $10 per month to over $30.  For the best of the best, I would suggest Giganews, which ranges from $5 to $35 per month.  Second to that, is Supernews, which is run by the same company.  Supernews offers a single unlimited service, for a flat rate of $12 per month.  There are lots of other options, such as UsenetServer and Astraweb.  Both have good reviews and are perfectly decent alternatives.

So what is the actual cost of all this?  Well the average digital cable TV bill is around $75 per month.  Add internet access, premium channels and a DVR, and the cost easily rises to over $100.  That's not even taking into consideration subscriptions to other services like Netflix and Hulu.  Similarly, the average high-speed internet connection bill is around $75 per month.  By adding another $10 for usenet access, you can have so much more, for so much less.  $85 per month is about the top-end of what you would pay for an unlimited selection of tv shows, movies, music, games, etc.  There are some other small costs here and there too, such as an NZBMatrix subscription for $12 (for 5 years).

Introduction to Sabnzbd

Sabnzbd (which stands for SAB nzb daemon) is basically a python service which runs in the background, and makes monitoring, downloading and uploading files extremely easy.  The entire app runs as a webservice, and is accessible via the browser (e.g. "http://localhost:8080").  Just like a .torrent file is simply an indexed list of links, newsgroup binaries have indexed links saved as .nzb files.  Normally when using an NZB file, your newsgroup client (e.g. Newsbin Pro, Unison, etc.) will find all of the "parts" in the NZB, and then download them.  Depending on the newsgroup client features, the program may also assemble file parts, repair them (using .par2 files or recovery records), extract them (unzip, unrar, etc.) and even delete the original files (the leftover .rar, .zip, etc.)  Truth is, since using Sabnzbd, I don't have a need for usenet clients anymore.  Sabnzbd will do all of these things (assemble, repair, extract, delete) and much more (such as renaming, sorting, etc.)

Getting Sabnzbd to download stuff...

So you have sabnzbd installed and setup.  How do you get it to actually download something?  That's actually the easy part!  There are three main ways to send files for sabnzbd to download.  First, you can just click the "add nzb" button at the top of the screen.  From there you simply upload an .nzb file directly, and sab does the rest.  The second way of sending nzb files to sab is via a "watched folder."  This is a folder somewhere on your system (e.g. "C:\downloads\nzb") that sabnzbd will constantly monitor for files.  As soon as it finds an .nzb file, it will add it to the list of items to download.  The third method is to setup an RSS feed through a site like NZBMatrix.  More on this in a later tutorial.  Those are the basic ways to get sabnzbd downloading... but that's just the tip of the iceburg.  The real power of sabnzbd comes into play when you pair it with other services.

Introduction to Sick Beard

As aforementioned, once you have sabnzbd running, you are pretty much good to go.  The caveat is that you will need to manually find NZB files to send sabnzbd, which is pretty inconvenient unless you already know what you want to download.  Sick Beard is basically the Usenet/Sabnzbd counterpart to a DVR, and like sabnzbd, it runs on Python, and comes with a web interface you access via browser (http://localhost:8081).  With Sick Beard, you simply enter a list of shows you would like to watch (either currently airing, or off the air) and it will automatically search for new episodes and send them to sabnzbd when found.  As you can see in the screenshot above, The series "FlashForward" and "Testees" are both ended (series was cancelled), however Sick Beard was able to find all of the episodes.  Likewise for "Through the Wormhole," which is still airing - all 17 episodes were found and downloaded (aka sent to sabnzbd to be downloaded).  You can also see that "Quality" can be set to either SD (standard), HD (720p, 1080p, etc.), Custom (I set custom to look for either SD or HD, and grab whatever it finds), or All (downloads anything it finds, regardless of quality).  There is also a convenient field for "Next Ep" which displays the next date an episode is expected to air.

Adding Shows to be downloaded

With a DVR, adding shows is fairly easy.  You can add a show by going into a menu and searching by name, or usually by just browsing the DVR Guide and clicking on the show.  With Sick Beard, it's just as easy.  You can either enter shows by searching (Sick Beard uses theTVDB.com for results) by name, or by searching through folders and extracting the shows from file names of  already-downloaded episodes.  This is a great feature for anyone that already has a library of tv shows that were found before using Sick Beard.

The Show page, and downloading specific episodes

Once a show is added, you can view the list of episodes and edit any show settings on the page that is created.  Here is an example for the TV show "Louie"

As you can see, all of the settings along with some meta-data (grabbed from theTVDB.com) are displayed here, along with an "Edit" button to change the download folder, show name, quality, etc.  There are also quick links to each season in the top right, along with specials.  Below all of this is the list of actual episodes.  Here is a cropped screenshot of the Season 2 list:

Again - Sick Beard takes the list of shows you have entered, and searches for any episodes marked as "unaired" or "wanted".  When the NZB file for an episode is found, it sends it to Sabnzbd and updates the status to "snatched."  Once Sabnzbd successfully repairs, assembles, and extracts the file, Sick Beard then gets a message to update the status again to "Downloaded."  The search button on the right of each episode is a quick way to download a specific one.  We'll move on now, since this isn't a Sick Beard tutorial, just a quick overview to give you an idea of what it does.

Introduction to CouchPotato

No DVR is complete if it can only download TV shows - there are also movies, documentaries, straight-to-video releases, and more.  The counterpart to Sick Beard (which keeps track of TV shows) is CouchPotato (which keeps track of movies/documentaries).  As with both sabnzbd and Sick Beard, CouchPotato is a python script which comes with a web-interface you can access via browser.

Adding movies to the list is very easy, along with selecting the preferred quality.  CouchPotato uses a few sources including IMDB and theMovieDB for meta-data like release date, descriptions, ratings, poster, etc.  It checks for new releases every 12 hours (configurable) and when an NZB file is found, it gets sent off to sabnzbd for the heavy lifting.

Introduction to Headphones

Headphones has a very similar layout to CouchPotato, and serves the same purpose, but for music.  You can enter the name or an artist, or a particular album you want - and it will periodically search for an NZB, and send it to sabnzbd if found.  Headphones is fairly new, and development is still in progress.  There are a few features that are not fully implemented, and the entire process / configuration isn't the easiest to figure out without a little bit of tweaking.  Also, moreso than video libraries, music libraries are notoriously difficult to organize, since there are so many variations of albums, and sources for music.  Not to mention the tagging and file naming conventions are all over the place.  For those reasons, Headphones freaks out a little bit when you try to import an existing library.  I assume that with time, this will become more polished.

Other Automated Downloading Solutions

So far all of these solutions have been centered around sabnzbd (and usenet) being the sole provider of media.  There are of course many other ways to automate the searching/downloading process.  I won't go into too much detail down these other routes, but I would highly recommend:

For downloading torrents,  uTorrent (as of version 3.0) supports remote access, RSS feeds and a long list of other options.  It can also be setup to use a web interface, just like sabnzbd, Sick Beard, and couchpotato.

For downloading directly (web links, ftp, file-hosting sites like rapidshare, hotfile, etc.) JDownloader is one of the best apps out there.  It supports all sorts of cool features like scheduling, remote control, auto extraction, etc.  It supports premium accounts (rapidshare, hotfile, etc.) if you have them, and if not it will take care of the waiting process, redirections, and even has an anti-captcha module which will try to automatically answer any captcha challenges.

The Home Theater part of HTPC

With all of the media downloaded, the next step is to actually play the stuff!  For watching tv/movies, the two most popular cross-OS solutions are Boxee and XBMC.  Plesk is OSX only, and Windows Media Center is for PC only.

I have used Boxee in the past, and actually prefer it as an out-of-the-box solution.  Along with having a standalone unit, Boxee is also being built directly into TVs now - nevermind, it seems as though that has been abandoned.  In addition to playing back video and audio files, Boxee has built-in support for Hulu, Netflix, Pandora, and all sorts of other video sources (youtube, reddit, etc.)  There are plenty of skins and addons to explore with the least amount of setup.  The only reason I stopped using Boxee was due to some technical issues with video playback and hardware acceleration, along with a personal dislike of the way Boxee handles/buffers streaming media.

My preferred media app is XBMC (which stands for XBox Media Center, since it was originally designed to run on the original Microsoft XBox).  Like Boxee, it runs on Windows, OSX and Linux, and is highly extendable. Sick Beard also supports updating of the XBMC library whenever a new show is downloaded.  A small feature, but very nice to have.  There is less support for other media sources (e.g. Hulu, Netflix, etc.) without third party extensions (which don't work as well as Boxee's implementation).  I currently use XBMC because it does not have the technical issues I was experiencing with Boxee, and I prefer the additional levels of customization.

Games

XBMC and Boxee both have "Launcher" apps that can launch a game from within the interface, but they all seem a bit cumbersome.  Personally, I would rather use a gaming pc for playing modern games, and if playing games on an HTPC at all, would be via emulators and roms, or perhaps a service like OnLive.  There are even specialized extensions for Boxee and XBMC to launch roms/emulators, but again they are a hassle to use.  This is where Maximus Arcade comes into play.

Introduction to Maximus Arcade

Maximus Arcade is a Windows-only program and doesn't actually play ROMs by itself.  It's a front end for all sorts of emulators for systems like NES, Genesis, Playstation, SNES, MAME, Gameboy, N64, Gamecube, ScummVM, etc.  Anyone that plays a decent amount of emulators knows that there is usually a different program for each system, and sometimes even specific settings/programs for certain roms.  This is where Maximus really shines.  You can configure which emulators launch each type of ROM, and even fine tune the settings for each.  Maximus also hooks into EmuMovies to automatically download box art, instructions, descriptions, screenshots and even video previews for your ROMs.  Navigating is extremely simple, as you can see below:

It can take quite a while to configure Maximus Arcade (it took me an entire weekend) - since you need to download each of the emulators manually, then configure them one by one in the settings.  Once it's all setup though, this program is a dream to use.  It's very easy to navigate between ROMs and systems, and the level of customization is almost limitless.  Unlike the rest of the apps mentioned so far, this is not freeware or open-source.  It's a windows-only program that has a trial download, or a paid version for around $30.

How About the Media Server?

Great, you have a machine that can download and play media exactly how you want.  As long as you are in the same room as the computer, that is.  Making all of this accessible remotely (from work, on vacation, available to friends, from mobile devices, etc.) is the next step towards perfection of the ultimate HTPC/Media Server.  First, let's cover the obvious: streaming audio and video.  As long as you setup your home network (router, workgroups, "homegroups", etc.) correctly, you should already be able to access the files on your HTPC from other computers.  Both XBMC and Boxee will allow you to stream media from the computer, so there is no further setup required for that.  However, this only works within your home network (LAN).  If you want to watch a movie or listen to music from work or on the road, unless you have a ridiculously fast connection, there's no real way to stream.

Subsonic is a great little app (windows, osx, linux) that not only handles your audio library, but will also stream video to your browser, tablet, phone, etc.  It was originally made to stream audio files (mp3, mp4, flac, wav, etc.) but has since evolved to handling just about any audio or media format.  Want to stream a 1080p MKV video to your cellphone/tablet, but your connection is only 3G?  No problem, just set quality to low (e.g. 150kbps) and hit play.  Of course, if you aren't limited by connection speed, the only limit is how much your HTPC/Media Server computer can handle.  Personally, my mini-ITX AMD Zacate that runs on less than 50W can't handle realtime video transcoding, so if that's what you want, an Intel i3 is probably the lowest you can go.  For streaming audio however, a low-power CPU is just fine.  Making media accessible to friends and family is easy with Subsonic too.  You can create accounts for different people, see what media they are playing, and chat with them on the web-based interface. Recent updates to Subsonic have also enabled sharing of songs/albums with direct links, and Last.fm audio scrobbling.

Serving Other types of Media (eBooks, Comics, PDF, etc.)

We could stop here, and most people would.  However, this is still an incomplete solution, since digital media also covers written material!  For anyone with a tablet especially, this is a great way to have an all-in-one solution.  One of the undisputed tools for organizing an eBook collection is the Calibre eBook Manager.  Not only does it organize and allow you to read/convert/export your library of epub/pdf/txt/mobi files, but it also has a built-in web-based server!


Outstanding, so now there is a way to access your eBook files, along with all sorts of meta information.  Using this in conjunction with a free service like MagicScroll will allow you to not just access, but read your books online.  Speaking of reading online, how about a similar web-based service for reading through a comic collection?

Comic Book Archive Server (CBR Server) is a great solution for making your comic collection accessible online.  It requires about 15 minutes of setup, since you need to manually download 7-zip, ImageMagick and Java.  There are also a few issues that need to be worked out (out of memory errors, missing features, etc.) as development continues.

Accessing and Controlling the HTPC Remotely

With all of these web-interfaces for accessing media (Subsonic, Calibre, CBR Server, etc.) you may still need more ways to get to other files and folders.  This is where the following utilities can help out tremendously:

TightVNC is like any other VNC software - it allows you to remotely connect to your HTPC/Media Server from another computer, phone, browser, etc.  This is helpful for all sorts of reasons, so highly recommended.  There are other flavors of VNC out there as well like RealVNC, UltraVNC, etc.  I just prefer TightVNC as I've been using it the longest.

Dropbox is one of my "must-have" tools.  There are only two kinds of people... those that use Dropbox, and those that haven't heard of it (or don't understand it).  How does it fit into this whole HTPC/Media Server setup?  Imagine for a moment you want an easier way to download .nzb or .torrent files.  Simply point your sabnzbd/torrent client to a folder inside your dropbox called "dropbox/nzbs" (or "dropbox/torrents").  Now anywhere you have Dropbox installed, you can just save a link and know that your HTPC will start downloading right away - no matter where you are.

The Hardware

Just about all of this article so far has been hardware agnostic.  No matter what your setup, you should be able to install all of the applications mentioned so far (except for maybe Maximus Arcade, which is only for Windows).  That being said, I mentioned that my personal goal was to have a mini-itx machine that could run on less than 50W, and one that costs less than $400.  Since I originally put my machine together, there are probably a few more options that have opened up.  Anyways, here is my build list ($426 total as of 9/4/2011, at the time I purchased there were a few sales, so it was under $400):

For the OS, I installed Windows 7 x64, and did not calculate that into the cost.  You may notice I only have 1.5TB of storage, which may seem small for an HTPC/Media Server.  Personally, I delete movies/tv shows after I am done watching them - but if I wanted more space, there is enough room to add another two 3.5in drives, so adding another 4TB of space would be trivial.  I also purchased a compact power supply unit (PSU) thinking that the case needed it, however the Silverstone case was actually made for a regular size PSU.  Not really a big issue for me, since I was stuffing the unit into an entertainment unit.  It runs 24/7 inside of a small space in a wooden entertainment unit, uses around 45W, and the temperature hasn't gotten over 48C.

Optional Hardware

Nothing is more annoying, or more certain, than having to buy a few extra odds and ends to complete an HTPC setup.  Your machine may have the perfect combination of hardware and software, but there is always room for improvement.  Here are a few optional additions that can make the difference between a headache and a home theater.

Slow LAN / Buffering Issues / Streaming over WiFi

After my setup was complete, I had intermittent issues with buffering.  My network speeds were good, and the WiFi signal was decent, but not always perfect.  Turns out, the actual placement of my wireless router/modem, and the placement of the WiFi antenna on my HTPC had too many obstructions between them (walls, beams, appliances, etc.).  I almost considered running a 50ft ethernet cable across the floor (or in the ceiling) until a friend pointed me towards Powerline Ethernet, which saved the day.  Specifically, the NETGEAR Powerline AV 200 Adapter Kit ($100).

The Powerline kit basically lets you use your electrical system as an ethernet cable.  You plug one of the adapters into a power outlet next to your modem/router, and then connect it to the modem/router with an ethernet cable.  Then, anywhere else in the house you plug the other adapter into an outlet, and run an ethernet cable from the adapter into your HTPC.  Instantly, all of the buffering issues were gone.  There aren't many products out there which are truly "plug and play," but this is one of them.  No setup needed whatsoever, it just works... and after troubleshooting network issues for over a week, it was $100 well spent.

HDTV Losing Connection with HDMI (Black Screen)

This was an extremely annoying problem.  Sometimes, when I turned the TV off, or the HTPC went to sleep - the connection between the HDMI on my computer and the TV would get lost.  I would have to manually turn off the HTPC, sometimes I even needed to unplug the power and the HDMI cable before I could get the TV to communicate again.  Turns out this is actually a fairly common problem with HTPCs and certain types of TVs.  What's happening is that the TV has an EDID (Electronic Device ID) which the computer uses to identify where to send the signal.  There is some kind of a "handshake" going on during this process - and if at any time the communication between HTPC and TV is broken, it can be a hassle to get the signal back.  This is where the Gefen HDMI Detective Plus shows it's worth.  It's painful to drop another $85 on a "budget" HTPC, especially when it's close to 1/4 the cost of the whole machine.  Then again, it's hard to put a price on peace of mind.  After reading the Amazon reviews for this unit, it wasn't a very hard sell.

Mouse, Keyboard, Remote

There are lots of options for HTPC remotes out there.  Some people swear by Logitech Harmony remotes - some like Boxee remote, etc.  I already had a Windows Media Center USB remote and love it.  The backlit rubber buttons are great, and the USB receiver seems to work from anywhere in the room (which is more than I can say for a handful of other remotes I've tried).  I believe it works on RF, so it doesn't need a line-of-sight like InfraRed.  On Amazon the remote is pretty expensive, but I'm guessing that's because it's been discontinued in favor of a newer model.

As for keyboard/mouse, I almost went for a Logitech diNovo, but was scared away by the price and bad reviews.  Instead, I opted for a Logitech unifying Couch Mouse and a cheap unifying wireless keyboard.  They don't get used much, unless I'm using the HTPC as an actual computer (or for internet browsing / emailing / etc.).  When I do need to use them though, they are invaluable - since typing something out with a remote can take about 50x longer than if you have a regular keyboard close by.

So what's the real cost?

If you have been keeping track, this budget, sub-$400 HTPC has slowly gotten more and more expensive with each of these additions.  With the Powerline Ethernet adapter, HDMI detective, and remote/keyboard/mouse, the final cost will probably be closer to $600.  When I first set out to make an HTPC, I kept reading over and over to take my intended budget and double it.  Turns out, that was correct almost to the dollar (my original budget was about $350).

But Wait, That's Not All!

There are also lots of browser extensions and user-scripts made for Sabnzbd, CouchPotato, uTorrent, JDownloader, etc.  I may add some updates to this article in the future to cover those as well.  For now, this should be more than enough to inspire you to "cut the cord!"


Comments

Patrick says:

Thanks for the great tutorial, looking forward to more posts like this!

[…] Building the Perfect HTPC / Media Server | Producerism this is a pretty good guide I'm currently looking into   […]

atomiq says:

this article is useless, i was expecting a way to automate my htpc, and wasted part of my day reading nothing, bye

T says:

Sorry to hear that, what were you hoping to find? What were you trying to automate? This article covers everything from automated downloading of movies, tv and music – and automated extracting, repairing and organizing of the files. If there is some other level of automation, I’d love to add it to this article.

Jack Siegal says:

atomiq’s comment was pretty useless, not the article itself.

Thanks for the reminder about powerline. I’m looking into that now, but probably going to buy some cheap used Ebay version to see if it will suffice in my parents’ house. It’s either that or snake an Ethernet cord on the outside of their house (which might end up being cheaper anyway). Just not sure about the speeds with powerline, and if it’s enough to handle the streaming from my remote computer.

I liked that you included not only sickbeard, couchpotato, and headphones, but mentioned ebooks as well. Now if only someone could develop an automated ebook download program, or if I’m missing some sort of option in Calibre. Calibre can fetch RSS right? Maybe some sort of custom RSS author searches on NZBMatrix?

Thanks for the article.

T says:

Thanks for the comment! I was also deciding between the powerline and running a long ethernet cable. The ethernet cable would certainly be cheaper… but I currently rent where I live, so I like the idea that I can just unplug them from the wall when it’s time to move, and then plug them back in wherever I end up. The speed hasn’t been a problem, as I’m able to stream 1080P (compressed, MKV) without any buffering issues.

I too would love an automated ebook solution. When I looked into the RSS feeds for Calibre (referred to as “Recipes”), it seemed like this was for downloading actual blog posts and news articles, which then get converted into epub/mobi files. I’m not sure it can be setup to download actual ebooks. So far my only solution for that is to setup feeds with my torrent client, but even then it’s not really automatic (e.g. I don’t want all ebooks, just certain ones). If you do find any other solutions out there, please post a reply with some links!

Frenchie says:

Thanks for a very informative blog on your experience of setting up a HTPC. Having recently bought a HP Proliant MicroServer I’m currently looking into various ways in which I might set it up. One thing that you’ve not mentioned above is securing your data against loss. I’ve spent a lot of time building up my media library and until now have always created manual backups, I’m looking to do something a little better with my new HTPC/Server such as raiding the drives. However when I’ve started looking at the various raid options, i.e. hardware or software, drive extender, unraid, WHS 2011 etc it then affects other aspects of the build. For instance I really like the look of unraid and it’s ability to use different size/speed drives but then I’m unable to install alot of the software needed for a HTPC and it would effectlively become just a media server. What do you do to ensure that your data is kept safe?

T says:

To be completely honest, I’ve omitted any mentions of backup techniques, just because the typical size of a media library which includes HD movies is usually very massive, and the backup would probably need an enclosure that would dwarf the actual media server/htpc in size (and maybe even cost). Also, like you mentioned, it adds a bit of complexity to the overall process. Personally, I usually delete movies/tv shows after watching them, and if I want to re-watch them again, I simply re-download. Certainly not the most ideal process for everyone, but works pretty well for me. That said, I do have quite a few documentaries and videos that were particularly hard to find, and for those (along with my music library, e-books, comics, etc.) I use CrashPlan for off-site backup. Mozy and Dropbox (and other solutions) were way too expensive for the amount of media I want to backup (terrabytes worth), and CrashPlan is considerably cheap, along with the advantage that they will send you external harddrives with your data, in case downloading it is too slow. Of course, if you wanted to backup a few terrabytes of movies, online/offsite backup is probably impractical. If you do find any viable solutions, please post them in a comment!

jca says:

Just wanted to let you know I enjoyed this article/guide. I’ve been trying to learn about putting together a HTPC (something I know nothing about) and this was the first article I read that consolidated a lot of information I wasn’t even aware of (especially software wise).

I was curious if you had any plans to update your “build” anytime in the future? Since hardware updates happen so often, I see a lot of “builds” being revised with newer components over time. Is there anything you would change/update or do differently?

T says:

Glad you found this article helpful. This was my first dedicated HTPC/Media Server build as well, so there are things that could be improved. Funny you should mention updating my build. Honestly, I’ve been really wanting to upgrade the motherboard to something that could handle transcoding video (like an i3, or an i5). It would no longer be a low-power HTPC though. Also, I’ve been having some issues with my TV losing connection with the computer again, even with the HDMI detective, so I’ll need to do some troubleshooting soon.

As another commenter pointed out, the 2TB storage drive I have currently is small for a media server, so I will be doubling that as well. This article was focusing more on the software and setup, since like you mentioned, most HTPC/Media Server are ongoing projects.

KBo says:

Excellent write-up. This is a major hobby of mine in the last year. I have used your article and others to build a pretty similar setup. I have 1 Server with FreeNas 7 as the filestore using zfs 5 TB, with a rsync 5 TB backup using a Sans Digital 8 2xTB enclosure. Then I have a seperate server with Sabnzbd, Sickbeard, Couchpotato, Headphones. It all works very well and as you described.

A few recommendations, I run all my servers virtualized, Freenas is a VM (works great). I use turnkey linux core as the os for Sabnzbd and the others (works great and gives you webmin). I also have a seperate VM using turnkey for Subsonic (music stream), Twonky (video stream), and Tonido (photos, ebooks, all other documents).

I recommend you look into the virtualization option you can easily cram alot of these low cpu processes on decent hardware. Also I recommend killing VNC/Calibre/CBR servers and just use Tonido. Tonido has apps for Iphone and Android and lets you download all documents (Pdfs, word, excel, cbr) not just ebooks/comics so it is alot more flexible than Calibre. Basically you can Replace Calibre/VNC/Cbr Archive server with Tonido.

T says:

Thanks so much for your suggestions on TurnKey, and Tonido to replace VNC/Calibre/CBR servers. I haven’t heard of it before, and it seems like a great solution.

I agree with you on all counts for having separate servers for the storage, backup, and actual servers (sab, sickbeard, etc.). I’ll have to look more into virtualization – although my biggest concern with performance has more to do with transcoding video in realtime… which will probably require a more powerful CPU.

KBo says:

Good day, I’d like your input, if you have any suggestions on a Sickbeard/Couchpotato/Headphones type program for other types of media such as ebooks or comics? I have looked over some forums looking for development of a project, but haven’t found any, just curious whether you have any suggestions.

At the end of the day if one doesn’t exist, maybe I need to look into starting one myself perhaps based on an existing project like headphones, that way we can round out our usenet recorders with an ebook option :)

T says:

The comment above mentioned Tonido to replace VNC and ebooks. I haven’t tried it out yet, but plan to soon. If you discover (or make) any other options please post them!

KBo says:

Oh sorry for the confusion, I meant Tonido as a replacment for Calibre/CBR server to “stream” or access your books remotely, but the question I’m looking to solve is how to get ebooks/magazines/comics downloaded, on a regular basis like a “PVR” such as Sickbeard/Couchpotato/Headphones. There certainly are alot of magazines/comics/ebooks on forums, but we need a nice clean graphical web interface. I might have to look into starting one up :)

T says:

ah, yes I understand. I’ve only briefly looked into that since there seems to be less “standards” for ebooks/comics. The best solution I could think of would involve custom RSS feeds and torrent software.

If there was a better way of putting that system in place (a-la CouchPotato/SickBeard) it would be a dream come true.

It is in reality a nice and helpful piece of information. I’m glad that you shared this helpful information with us. Please stay us informed like this. Thanks for sharing.

andrew says:

Wow, this article is like reading through my own thought process since October, written out! I quite literally was holding a fanless e350 board at Frys’s, then ended up deciding to use some old regular atx hardware because netflix are assholes and haven’t made life easy on htpc users yet. I also had worries about 1080p in xbmc on that chip… how does it do with mkv rips in 1080p? My current setup is exactly what you describe for software (xbmc, sab, sb, couchpotato) on some older amd hardware that is starting to wear out and fails on 1080p. My gut tells me to go a4 or a6 on an fm1 board once the money is right and a deal can be had for my next iteration.

Any thoughts on running a raspberry pi for the python stack? A 700mhz arm system runing fedora should theoretically be able to rock sab, sickbeard, couchpotato, headphones, etc and download to a NAS. The pi I think draws something decently under 10w, is perfectly silent, and draws some workload off of an htpc, allowing for it to sleep when not serving media. The first units are delayed by some design oversights, but at the pricepoints involved, I see these becoming big for that niche in between arduino and a sff pc. We live in incredible times!

T says:

I have been able to play most 1080p videos without stuttering of any kind.. but then sometimes other 1080p videos can look slightly choppy depending on the alignment of the stars, wind direction, etc. If you want to err on the side of caution, I’d def. suggest something beefier than the e350 as awesome as it is.

My best suggestion would be to either get a dedicated graphics card for better hardware acceleration, or just step up to an i3 at least. I’ve got my eye on a slightly more powerful system than the e350 just because I miss being able to transcode video in realtime.

s says:

Thanks so much for this guide. It’s a great all-in-one collection of knowledge to get started from.

Steve says:

Hi Thomas

Just stumbled on your article and had to congratulate on on a really superb overview covering all the bases incredibly clearly.

I built a media centre almost exactly as you describe a year or so ago, and have been trying to sell more mates on the idea but it#s hard work to describe everything all the time. Now I#m just going to point them at your blog!

Really top work! My only suggestions for updates would be Plex and Remote Potato. They organise / remote control and (most importantly) stream great quality video even with a 1.5 meg upload speed. Now I#ve been upgraded to 5 meg upload they absolutely fly (pretty much 1080i streaming). Also MediaDog on Android worth a mention as the most capable mobile app that controls sicky, couchpotato and sabnzbn in an attractive way – coupled with notifo for push notifications. Great for impressing your friends in the pub – especially combined with notifo to send you a push alert 5 minutes after you remotely instructed it to download the latest and greatest, which you can then stream straight to your phone via plex. ;o)

Thanks again for the quality article.

T says:

Thanks for the feedback! The original motivation for this post was also to try and explain the steps clearly to some friends to help them along. Really appreciate your suggestions of Plex and Remote Potato – both new to me. I’ll check them out and add them in! Also started using mediadog recently, but it seems to lack some options I was looking for. Probably just being picky.

Again, appreciate the feedback and I’ll incorporate some of your suggestions into the next update.

Jablonkin says:

One question I have, that might be helpful, is a diagram of how the TV/XBMC/HTPC actually connect together. Do you have XBMC running on an Xbox (v1)?

T says:

Good point – I’m using XBMC on the HTPC, not on the XBOX. So the connection isn’t really complicated, in fact it’s just HDTV HDMI out -> TV HDMI in. That’s it!

Ste says:

Hi,

Thanks for taking the time to write this.

Very good article – I’ve been looking for something similar to Sick Beard for movies and this has given me a lot of inspiration and ideas to build up a server (probably using Raspberry Pi), the fact that apps like mediadog exist and the features they offer is just crazy but brilliant.

Now if only there was a similar app for ebooks/magazines and we’d be all sorted.

Cheers

Ste

Drea says:

Thanks for taking the time to write this, I’ve found it incredibly helpful as right now I’m running WHS 2011 on a basic server, looking to automate way more than I have so far, add HTPC capability as streaming to PS3s is becoming a pain, and I’d love to add game emulation to the mix. Just what I was looking for!

Thank you! :D

Dan says:

For people looking for a Book app like sickbeard and couch potato. Take a look at LazyLibrarian. I have used it and it works great. I just dont think it is being updated anymore.

T says:

Thanks! I looked into LazyLibrarian, but it looks like the dev also took it down off GitHub. Any ideas on where it might still be available?

Dan says:

Here is the link to LazyLibrarian.

https://github.com/itsmegb/LazyLibrarian

Andys says:

Very nice guide. This will help me when I build my next HTPC. I made some mistakes on the first one. I used an ASUS D525 Ion motherboard with passive cooling. Big mistake–it gets way too hot and will overheat in 2-3 hours unless I have a room fan blowing on it.

Mike says:

Hey Thomas, great post.
I have a question about video buffering issues.

I have a Pentium 3 ghz dual core E5700 with 6 gigs of ram and an on board video card as my media server and it streams to my apple tv in my living room.
The apple tv is wireless but I did a speed connection test and it’s recieving a 22mb/s download signal so I don’t think that’s the problem.

Do I need more ram in my server?
As well if I built a seperate HTPC and got rid of the Apple TV what’s the best thing to focus on to rid myself of buffering issues, a fast video card?

Thanks again!

T says:

If you’ve already got the media server setup, try using another device other than apple TV to see if there are still buffering issues. If you’re playing files that are already compressed (MKV, divx, etc.) then your e5700 should be fine, at least for 720p.

Mike says:

I ended up just going out last night an purchasing the Netgear Powerline adapter, works a lot better now.

Thanks again for the post since I didn’t even know those adapters existed!

Ryan says:

In reply to your current HTPC Hardware setup. I have a list of hardware I have compiled and would like any constructive criticism about my choices.
Here goes:
Intel Core I5-3570K
Asrock 277E-ITX1155 Mini ITX
Crucial 8 GB $X2 D3 1600 Dimm CL9
Seagate 2TB 3.5 7200 RPM INT SATA
LGelecoem LG 14X SATA BD Burner
Bitfenix Prodigy Miniitx Case
Coolmast elite Power 460W PSU

Sound card???
Video Card???
Remote???

Allan says:

What Great information, I thank you for taking the time and breaking everything down, I am a newbie, And I feel like I just had a personal one on one instructor teaching me the ins and out of HTPC. I am a fan of yours now!

Rick says:

I see that you use Windows 7 for your OS. How does this configuration work if I were to use Ubuntu? Awesome turorial

Kirtai says:

For comics, check out Mylar on github.

Leave a Reply