μv (aka muv aka muvee)
μv: (pronounced: mew-vee, somewhat like "movie")
This project is something like Netflix, but run on a server in your own home. It aims to be an open source alternative to Plex. It can attempt to reach out to the Internet to find sources for media that you legally own, but do not yet possess backups of.
At the moment, it's a media manager that presents a web UI reminiscent of Netflix. It grabs metadata, posters, and fanart, and displays it all in a nice to consume format from any device in your household.
I started it because I wanted to view my media on my PS4. Since then, PS4 added DLNA and I've modified muvee so much that this project won't even work with the PS4 browser (alas, it can't handle flexbox). It works quite nicely on a Mac Mini connected to your TV.
To install and use on Linux
- Install the Transmission bittorrent client, and enable web access (restricting it to 127.0.0.1 is fine). This is required to run muvee atm until I code around errors thrown when it is not running. Your remote settings should look like this for muvee to interact with Transmission. You can set your other client settings however you like.
sudo apt-get install postgresql-9.3 libpq-dev libav-tools nginx redisor if on OSX,
brew install postgresql redis nginx libav
bundle exec rake database:create(or manually create a postgres role and set up your
psql -c "create role muvee with createdb login password 'password1'")
bundle exec rake db:create(different than above!) then
bundle exec rake db:migrate
- If the last step failed to migrate, try
bundle exec rake db:reset
- Make sure your
bundle exec rake nginx:restartto start up nginx with the custom configuration required. It will attempt to kill any instances of nginx the user can access (but should not be a problem if you're not doing this as root). Disregard any error messages regarding logs.
bundle exec foreman start(or if you want to run rails separately from sidekiq,
bundle exec rails sand
bundle exec sidekiq)
- Visit http://localhost:8080
- Set up your media paths
- If all is well, you can then click the gear and "Scan for new media". Wait, and media items will begin to appear as you refresh
- Set your TV to
Just scanmode or similar (see your TV's documentation) so that edges aren't clipped
Integration with Hue lights
muvee can control your lights! Your lights will brighten when playback is paused/stopped, and dim when playback is starts. Additionally, there is a setting to have it sample the picture periodically to change the hue to approximate the colours of the scene.
If you haven't played with the Ruby
hue gem yet, you'll need to create a group with the API (easiest in
bundle exec rails console):
client = Hue::Client.new light = client.lights.first light.on! # or light.off!, you will need to hit the button on your bridge, then try these commands again until it works group = client.group group.lights = client.lights # or a specific subset of the lights you want to control group.name = "Default Group" group.create!
At the moment,
client.groups.first as the set of lights it will dim and brighten throughout playback. This will hopefully change as the project grows and matures to be configurable from within the UI.
Dependencies (and tested with):
- transmission 2.84
- postgresql-9.3 libpq-dev
- ruby 2.2.2
- redis (for sidekiq)
- sudo apt-get install redis
- avconv / ffmpeg (req
avconvcommand on your path)
- avconv version 9.14-6:9.14-0ubuntu0.14.04.1
- ffmpeg version 2.7.6-0ubuntu0.15.10.1
- avprobe / ffprobe (req
avprobecommand on your path)
- avprobe version 9.14-6:9.14-0ubuntu0.14.04.1
- ffprobe version 2.7.6-0ubuntu0.15.10.1
- avconv / ffmpeg (req
- nginx version (req
nginxcommand available on your path):
- nginx/1.9.3 (Ubuntu)
- nginx/1.4.6 (Ubuntu)
- ImageMagick 6.7.7-10 2014-03-06 Q16 (deprecated for now)
- libffi-dev libphash0 libphash0-dev (for determining 3D-ness of movies; deprecated)
sudo apt-get install libffi-dev libphash0 libphash0-dev
left arrow: Jump back in time
right arrow: Jump forward in time
up arrow: Increase volume
down arrow: Decrease volume
t(on series/movie index pages): Bring up a quick search bar
Definitions of terms
sbs: side-by-side (3D)
tab: top-and-bottom (3D)