μ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.
YouTube video of a recent revision
Pictures of the project in very early stages
Detailed movie view page, when movie is sourced (you have a copy)
Detailed movie view page, when movie is not yet sourced (you don't have a copy)
Discover movies, or search for them on the net
Movies index while downloading, blue progress bar appears
Detailed movie page while downloading, blue progress bar appears
Pressing the t
key on any index page lets you quickly search the movies muvee knows about
Series details page, green bars represent your watching progress
Series details page, trying to find a source
Series details page while downloading, blue progress bar appears
On deck, your latest unwatched episodes
Viewing more details about a particular episode in a season
Status page, any progress bars of currently executing jobs
- 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 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
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, 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.
- transmission 2.84
- postgresql-9.3 libpq-dev
- ruby 2.2.2
- redis (for sidekiq)
- sudo apt-get install redis
- libav-tools
- avconv / ffmpeg (req
avconv
command 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
avprobe
command 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
nginx
command available on your path):- nginx/1.9.3 (Ubuntu)
- nginx/1.4.6 (Ubuntu)
Deprecated dependencies:
- 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
spacebar
: pauseleft arrow
: Jump back in timeright arrow
: Jump forward in timeup arrow
: Increase volumedown arrow
: Decrease volumet
(on series/movie index pages): Bring up a quick search bar
sbs
: side-by-side (3D)tab
: top-and-bottom (3D)