μ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
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 (but as of late, I've just been using Chrome on a mac mini connected to my TV)
WIP
YouTube video of current design Old pictures of an earlier design
sudo apt-get install postgresql-9.3 libpq-dev libav-tools nginx imagemagick libffi-dev libphash0 libphash0-dev redis
or if on OSX,brew install postgresql redis nginx libav
bundle install
bundle exec rake database:create
(or manually create a postgres role and set up yourdatabase.yml
, e.g.,psql -c "create role muvee with createdb login password 'password1'"
)bundle exec rake db:create
(different than above!) thenbundle exec rake db:migrate
- If the last step failed to migrate, try
bundle exec rake db:reset
- Make sure your
database.yml
is correct! bundle exec rake nginx:restart
to 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 s
andbundle 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 scan
mode or similar (see your TV's documentation) so that edges aren't clipped
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, muvee
uses 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.
With this set up in place, your group will brighten when playback is paused or stopped, and dim when playback is in progress.
- postgresql-9.3 libpq-dev
- ruby 2.1.2+
- redis (for sidekiq)
- sudo apt-get install redis
- libav-tools
- avconv version 9.14-6:9.14-0ubuntu0.14.04.1
- avprobe version 9.14-6:9.14-0ubuntu0.14.04.1
- node.js 0.10.25+
- nginx version: nginx/1.4.6 (Ubuntu)
- globally available on your path
- ImageMagick 6.7.7-10 2014-03-06 Q16
- libffi-dev libphash0 libphash0-dev (for determining 3D-ness of movies)
sudo apt-get install libffi-dev libphash0 libphash0-dev
spacebar
: pauseleft arrow
: Jump 30s back in timeright arrow
: Jump 30s forward in timeup arrow
: Decrease volume by 5%down arrow
: Increase volume by 5%
sbs
: side-by-side (3D)tab
: top-and-bottom (3D)