The Dilemma

I like movies. My girl does too. Watching a movie is a nice way to unwind at the end of the day, and we often find ourselves doing so. The problem is we spend at least 30 minutes each night just trying to decide what movie to watch. That sucks.

Plus, we’re at decision fatigue. We’ve both been making decisions all day at our jobs. I’d rather not have to make another one.

The Solution

So I came up with a simple solution that would take the decision making process out of it and save me 30 minutes each day. I’d have the computer send me an email in the evening with a movie to watch.

Additionally, I had some requirements. I didn’t want the computer to send me just any movie. The movie had to be good, and it had to be available on Netflix, Amazon Prime, or Hulu Plus.

For that I turned to my favorite movie site Good Films. I love Good Films for its EPIC graph. It is better than any other tool online for surfacing great movies that you might not have seen.

They don’t have an API for their graph so I built goodfilms-graph to extract the data I needed. Then I combined that with SendGrid’s API to send me an email each night.

It’s been magical. I’ve watched Ip Man, The Thing, The Red Balloon, and It Happened One Night – movies I might not have found, and that I enjoyed very much.

Do it yourself

You can do this yourself! Here’s the code to get setup quickly in just 5 minutes.

git clone
cd send-film-nodejs
heroku create
heroku addons:add scheduler:standard
heroku addons:add sendgrid:starter
heroku config:set
git push heroku master

Then just configure the recurring task to look like this:

Task Dyno Size Frequency
node ./task.js 1x Daily

That’s it. Enjoy the movies!

Additional Information

The source code for send-film is on GitHub. Additionally, I should mention that you can adjust the quality of movies that are returned by editing line #65. So for example, if you are willing to return potentially lesser quality movies you can change the x and y to something like the following.

{x: 2, y: 1}

The x value is star rating and the y value is ‘rewatchable’ rating along the x and y axis on their graph. The default setting of x:4 and y:4 returns ~350 results.

Finally, there is not a way to filter by movies only on NetFlix or only on Hulu yet. But it might be something I add to the goodfilms-graph soon.

Hacker in LA. I believe the future is bright. It's up to us to build it - as programmers we get a big say. Follow me on twitter @motdotla.