I am trying to get back into blogging more, and recently I have been doing more with my home media server, so I thought it might be interesting to talk about some of the cool things I have done with that. This leads to my home lab series I have been wanting to do, but this is kind of the introduction, that lead me to the home lab idea.
As a disclaimer, I do not condone any illegal activities. I am writing about using a media server for digital content I have purchased or created. I am not going to write about the implementation of a home media server, lifehacker.com, and a number of other sites have some exceptional walkthroughs on that topic, this is focused more on the design, and ancillary applications. As always, this is for my personal interest, which often leads to discussions with friends and customers as well as exploring new technologies and learning new skills around coding or integration.
The Research
So this all started when I was talking to a coworker about how he was watching movies on his iPad. He seemed to have quite a bit of content. To this point I had been purchasing off iTunes, and downloading on my iPad and streaming on my Apple TV. We had been using Netflix and occasionally Hulu+, but from a home media perspective when we wanted to watch something not available digitally we were using DVD/Blu-Ray or similar. I experimented with DLNA, and various other solutions, but the endpoint was always clunky and not user friendly for my family.
I was pretty skeptical about this, I had experimented with ripping DVD’s I had purchased previously, and it had not gone very well. I went and started researching Plex and XMBC. While I found both solutions quite impressive, the polished user friendly appearance of Plex won me over, mostly because my family doesn’t care how cool it is, they want a netflix style interface and I wanted it to give me enough functionality to add features like photos, home movies, music, TV Series, and Movies.
The Hardware
I am an unapologetic Apple Fanboy. Ok that may be a bit of an exaggeration, but I do love all things Apple for the most part since my first iPhone and my first MacBook Pro. Most of our devices at home are Apple, so it made sense to go with a Mac Mini 2012 model with 16GB of Ram. I opted for the extra ram for caching, I have found that I have very few buffering issues even when running multiple streams. I did find that running over wireless tends to be a bit difficult, so I ended up using the 1GBe Nic.
For the storage I debated heavily on purchasing a NAS, and I was pretty close to picking up a Synology, but when I looked at the cost versus what I would use it for I changed my mind. Since I use VSAN in my home lab, it was tough to justify the added cost of a NAS. I thought a 4TB hard drive would be good. I selected a WD My Cloud 4TB drive from Best Buy with USB 3.0. This performed exceptionally well, so I bought another, and then a friend gave me a 4TB Toshiba 4TB USB 3.0 drive. Recently I ordered a Toshiba 5TB USB 3.0 drive. Now this is quite a lot of space, but I will explain more about that in a later section. I opted not to use a software raid on the drives, selecting exFAT for for the file system for maximum compatibility between OS X, Linux, and Windows.
A late addition, which will become clear later was a Raspberry Pi B+. This is used for monitoring and 3rd party plugins which I continue to experiment with.
Endpoints
Of course all this work would be no good if we had no way to watch. The initial tests were done with a web browser. Being a chrome user, I was impressed with the performance and the lack of plugins required to play. It even worked well on my old Chromebook.
As we have two Apple TV’s, again, this was critical. A friend told me about the Plex Connect project on GitHub. A quick search and I was installing and configuring. The basic premise is it forwards one of the apple TV Apps, in my case Trailers, to my Plex Server. There are frequent updates and it is very simple, looking much like Netflix which served my family well.
I tested the XBOX 360 interface which worked well enough, but honestly it wasn’t as good as the Apple TV interface. I also tested the Chromecast for a while, but that ended up in my travel bag since we have Apple TV’s on the TV’s that are using Plex. Using the Chromecast in hotels has been exceptional, and enabled me to enjoy my home media while traveling using the Hotel Wifi.
3rd Party app integration
So as a geek, I decided just having the Plex server stood up was not quite enough. I wanted to get some statistics on who was watching what on my Plex Server, and see what media was popular. I found the PlexWatch and PlexWatchWeb projects on Git Hub, which were compelling. I tried installing them on my Mac Mini thinking why not. Going through the install it appeared I would need to install several pre-requisites, including MacPorts to get it to work. Now I love my Mac, but I am not a fan of having to do such unnatural things to get software installed.
I loaded up Raspian on a Raspberry Pi B+ and did the install with no issues. Pulling up the web interface I was impressed, it was skinned to look like Plex, with some very powerful data. Now I am able to track my children’s viewing, trust but verify, and also look at statistics to determine what I might want to purchase next, or what types of movies are interesting.
That got me thinking about having more of a unified interface of my plex server. I found the Marachino project for XMBC which had been ported for Plex. I have to admit, it’s use is minimal, but a pretty dashboard does make it interesting. I plan to look at the code behind it, the widget interface is compelling, and could prove to have many uses.
One final note on the Raspberry Pi, I did have some thoughts that I might need to access the media directly, not through the Plex interface. Initially I thought NFS would be the easiest since it was linux and OS X, but I found that NFS doesn’t work with exFAT, or at least not easily. I started to look at other options, when I realized the Mac can nativly share via SMB. I configured the SMB shares and tested, but realized I didn’t need them. I suspect this will come up in the future though, and remains in the back of my mind as something I will explore again.
So that’s it, my home media setup. I do have a Roku3 on the way since we just added Sling TV to our cord cutting efforts. That should be interesting, but I don’t suspect it will materially change things. My next project will be a home lab, I plan to start with the design. I hope to make it interesting, compelling, but mostly give some insight into the design process, and document my steps and the lessons learned through the design phases.