---
title: μv (aka muvee)
date: 2014-08-01
summary: muvee is something like Netflix, but run on a server from your own home - an open source alternative to Plex.
published: true
image: movies-index.jpeg
---

![Screenshot of muvee movies index page](movies-index.jpeg "Movies#index page, dynamic tiled layout. Before CSS grid existed")

A somewhat [outdated video](https://www.youtube-nocookie.com/embed/mNCADXo7SOc) showing what muvee looked like.

## What is it?

muvee is something like Netflix, but run on a server from your own home. I
created it to be an [open source](https://github.com/qq99/muvee) alternative to
Plex. It can attempt to reach out to the Internet to find copies of media that
you already legally own, but do not yet possess digital backups thereof.

![Screenshot of muvee detailed movie information page](detailed-movies-page.jpeg#right "Detailed movie view page, when movie is sourced")

muvee can control your
[Philips Hue](http://www2.meethue.com/en-ca/ "Philips Hue website") light
bulbs, dimming them when playback starts, and brightening them when playback is
paused. There's even rudimentary support for copying hues from frames of
playing video for added ambiance.

![Screenshot of muvee quick search feature](movies-quick-search.jpeg#small-left "Hit 't' to quick search from any index")

muvee reaches out to various metadata providers to enrich your media,
downloading descriptions, lists of actors, audience feedback ratings, MPAA
ratings, and most importantly, appealing background images.

You can mark a movie or TV series as a favourite, giving you quick access to it
via the side navigation. This is handy for reminding yourself to check up on
movies that may not have released yet, or for quickly resuming playback of a
series you're currently binge-watching.

The series index has a shuffle button, which is great for creating an infinite
playlist of that specific TV series. _The Simpsons_ lends itself well to this
mode. Since all the content is local, you don't have to deal with "Are you
still watching?" halting your playback.

![Screenshot of muvee player showing a still from Rick and Morty](player.jpeg#right "The player, playing an episode of Rick and Morty")

There's built-in discovery of new TV series and movies. muvee consults YTS and
EZTV for new items.

Throughout the app, there are refresh buttons to reanalyze items, pulling down
any updates to the metadata and fixing any difficult-to-categorize sources.
Ideally, the buttons will be removed and this process will happen
automatically.

My original motivation for creating muvee was that I wanted to view my media on
my PS4, which did not support DLNA at the time. Alas, as I've iterated on the
styles, I noticed that the PS4 browser can't handle flexbox. So, this is
currently unusable on PS4. I've been using it with Chrome from a Mac Mini
connected to my TV.

![Screenshot of muvee series index page](series-index.jpeg#left "Series#index page, poster layout")

### Why use this instead of the alternatives?

[Popcorn Time](https://popcorntime.io/ "Popcorn Time, media player and piracy machine")
is a modern marvel, but I believe in bandwidth conservation and caching things
that I might use again. You would not believe how many times I've re-watched
[_American Dad!_](https://en.wikipedia.org/wiki/American_Dad! "American Dad on Wikipedia").
The last time I checked, Popcorn Time just tossed all video files upon exiting.

![Screenshot of muvee series details page](series-show-episode-details.jpeg#right "Series#show, viewing 2 episodes in detail")

[Plex](https://plex.tv/ "Plex media manager") is great software, and has an
incredible ecosystem around it. If you want a media manager that just works,
I'd recommend you to use Plex. From my experience, Plex doesn't categorize
media as well as muvee. It's also not completely open source.

I also looked at
[emby](http://emby.media/ "External link to emby media manager"), and while
nice and open source, it seemed a bit too complicated to really get going. The
codebase is also prohibitively large for me to think about trying to tweak
things.

### Technical points of interest

I'm using two great libraries,
[TurboGraft](https://github.com/Shopify/turbograft "TurboGraft project on GitHub")
and
[Twine](https://github.com/Shopify/twine "Twine project on GitHub"), and this
has greatly accelerated development. With them, I can make a website that
behaves more like an app, without needing to write a true client-side
application. So, at its core, it remains a simple rails project. Thus, this
project mostly mirrors the paradigm my colleagues and I developed for the
[Shopify](https://www.shopify.com/ "Shopify homepage") admin interface. I'm a
firm believer that single-page applications have their place -- when the task
at hand is actually building out an application -- but muvee is ultimately just
a fancy
[CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete "'CRUD' on Wikipedia, but I imagine you already know what this is")
website.

Background workers are heavily employed, as reaching out to all these metadata
services is expensive and slow. Media is transcoded with `avconv` in the
background, since browsers can't handle all modern codecs. Transcoding was/is a
huge pain in the ass, but thankfully most rippers use
[h.264](https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC "h.264 on Wikipedia")
now.

## Current status

Muvee is now dead, I'm using Plex now :)
