Setting Up a Basic Mac Media Server

Repurposing an old Mac into a home media server is a great idea. A nerdy, tedious, somewhat overrated, great idea.

For years I was wanting to convert all my DVDs (where by “all” I mean a whopping 35) into digital versions which could be accessible via my Apple TV. I’m glad I never bit the bullet and bought a Mac mini, because about a month ago the video card on my wife’s MacBook Pro started going out. The screen shows random red lines and flickers — it’s just bad enough that she can’t use it on a daily basis, but still good enough that I could repurpose it into our new file and media server.

All in all, the tasks I’ve assigned to my Mac Media server include:

  • Run Printopia to enable AirPrinting on our non-AirPrint printer (Nerd score: 4/10)
  • Let Mail.app run 24/7 so that certain sorting and filing rules are executed at all times, not just when my MacBook Air is on. This helps keep emails out of my iPhone’s inbox that shouldn’t be there in the first place. (Nerd score: 4/10)
  • Host video and audio files so we can put our box of DVDs in the attic, and access the movies directly from the Apple TV. (Nerd score: 6/10)
  • Run Dropbox and Hazel so I can do things like upload audio to my Amazon S3 server from my iPhone, rename and move pictures of receipts, and more. (Nerd score: 9/10)

Printopia and Mail.app are pretty self explanatory. Below are more details on how I went about ripping my DVD collection into iTunes and how I’m using Hazel and Dropbox to enable some workflows on my iOS devices.

Ripping DVDs

First things first, I backed up the MacBook Pro, updated it to Mountain Lion, and then did a clean install.

The whole process of downloading and installing, and then erasing and installing again took about 3 hours. I then changed the name of the Mac from “Shawn Blanc’s MacBook Pro” to “Media Server”, and installed HandBrake, Hazel, LaunchBar, 1Password, and Dropbox in order to start getting around.

I set the MacBook Pro up on the edge of my desk, and began ripping DVDs with HandBrake. It took about 90 minutes to convert the DVD into an .m4v file. After which I had to add the file to iTunes, go online and find artwork, add the artwork, then tell iTunes the movie’s media kind was “Movie” and not “Home Video”. The whole process was slow and tedious.

Setting up the Media Server was a topic of one or two Shawn Today episodes, and I received a lot of feedback from folks who’ve been down this road before. In short, I was doing it all wrong.

If you’ve ever set up your own media server, you know there is more than one way to go about it. You can set up cron jobs and hazel rules to automate the whole process from DVD to iTunes, you can do everything manually, or somewhere in between. Since I was only converting 30-some-odd DVDs, I chose not to go crazy with the automation scripts.

Here’s the workflow I finally landed with (thanks to several awesome readers who sent suggestions in):

  • Rip movies using RipIt. This app copies over the whole disk in under 30 minutes as a .dvdmedia file. I plugged in an external hard drive and ripped the DVDs to there.
  • Since HandBrake takes nearly 90 minutes to encode a movie into an .m4v file I could basically rip 3 DVDs to disk while HandBrake was encoding one.
  • This meant I could just load up the Handbrake queue with all the ripped .dvdmedia files, and let it encode a batch of movies (into m4v using the Apple TV 3 setting) while I’m sleeping.
  • In the HandBrake settings you can choose to have files sent to a metadata filling app once they’ve been ripped. If you’re going to go to all the trouble of ripping your DVD collection to digital, you really want an app that will fill in the movie’s metadata for you so when you browse the movies in your library you see all the relevant and important info (movie description, actors, director, rating, artwork, etc.).
  • I used iDentify which worked alright. There were a handful of movies that iDentify thought were something else, or that it couldn’t find data for at all. Fortunately it was an easy fix. For those few movies, I simply looked up the film on IMDb and entered the IMDb code (you can see it right in the IMDb URL) into iDentify.
  • From there, iDentify requires that you hit “Save” before the metadata is written to the .m4v files. Which is unfortunate because it meant I couldn’t use Hazel to toss the files into iTunes once they were all done because who knows when I would get around to saving all the metadata of the batch-processed movies.
  • Thus I would manually drop the m4v files into the “Automatically Add to iTunes” folder.

The whole process took me about 10 days. I could have done it in 4 had it not taken me a few days to figure out a faster workflow using RipIt and HandBrake’s queue, and had I not gotten tired of babysitting the Mac and ejecting a disk and putting in a new one every half-hour. I understand why some folks tell me they’ve slowly been ripping their DVD library for years.

Video Quality: Ripped vs Original

A ripped DVD, streamed over WiFi to my Apple TV is of a noticeably less quality than a DVD played in my player. But, it’s not that bad.

I watched and compared scenes from a handful of different films — including Hero, The Count of Monte Cristo, and Pirates of the Caribbean 3: Dead Man’s Chest (don’t judge) — to see how the quality of the digital version compared to the DVD disc.

Hero and Pirates both looked good. The digital version close to the same quality, but not quite equal — almost on par with an HD movie that’s streamed over Netflix. The Count of Monte Cristo was much better on DVD than digital — especially the darker scenes. It was about on par with an SD-quality film streamed on Netflix.

But you don’t rip DVDs to your computer for the image quality. You do it for convenience and for the sake of simplifying. Our DVD library is filled with films we rarely, if ever, watch. It’s worth the tradeoff in order to have all our movies in one spot, accessible through the Apple TV, while also being able to get the physical DVDs put into storage somewhere. (I’d give them away, but I think that’d be illegal.)

Dropbox, Hazel, and additional Nerdery

Now, so long as you’ve got a Mac that’s running and connected to the Internet 24/7, there’s no reason not to use it for some nerdy fun.

Thanks to some fantastic 3rd-party apps, the iPad is a fully-capable work machine for me. It’s my new laptop, while my MacBook Air has, more or less, become my desktop.

There has been, however, one particular area that the iPad could not replace my MacBook Air. And that was in the uploading and posting of the audio files for my daily Shawn Today podcast. Last summer at WWDC, I traveled only with my iPad. For all my writing, reading, and email needs the iPad performs fantastically. But I had no way of posting Shawn Today while on the road.

However, thanks to this Python script from my pal Gabe Weatherhead, I just add a little bit of Dropbox and Hazel magic to take an audio recording from my phone and upload it to my Amazon S3 bucket for publishing to the podcast.

Here’s how it works: First, I use the iPhone app DropVox, which records a voice memo and uploads it to a Dropbox folder.

Next, Hazel grabs any new audio files that appear in that folder and renames them to something proper. Then, using Gabe’s script, the file is uploaded to my S3 bucket and the uploaded file’s URL is copied and pasted into a Simplenote note. Hazel then moves the original file into an “Uploaded” folder, and finally emails me a text message letting me know the file is up.

My Hazel rule looks like this. And the emailing of the text message is through a simple Applescript:


tell application "Mail"
    set theNewMessage to make new outgoing message with properties {subject:"Shawn Today", content:"Successfully Uploaded", visible:true}
    tell theNewMessage
        make new to recipient at end of to recipients with properties {address:"[email protected]"}
        send
    end tell
end tell

 

Once I get the text message notifying me of the completed upload, I launch Simplenote on my iPhone or iPad to find the audio file’s URL. I then copy that URL, launch Poster, and publish the latest episode of my podcast.

See? For some of us, all we need for an iOS-only workflow is a Mac at home doing the heavy lifting.

Setting Up a Basic Mac Media Server