A complete re-write of my existing project but hopefully learning from my previous mistakes
- MEAN stack
- Trakt.tv as primary data source
- Trakt - Provides all Show, Episode, and Movie metadata
- FanArt.tv - Show & Movie artwork
- ShowRSS - RSS Feeds for Shows
My previous project was built was due to a lack of available software that met my requirements. In part, this software is also a test-bed for me to trial new technologies and ideas.
So, use it, or don't. I don't care. But if you do, there's a few things to be aware of:
- Developed on: macOS 10.12
- Tested on: Ubuntu Linux 16.04 LTS
It should run on any *nix-compatible system that can run NodeJS. Totally untested on Windows, but I can't think of any reason it wouldn't work.
You'll need a free Trakt.tv account in order to use their API.
NodeTV lets you manage a local media library of TV Shows with a tidy interface. Add some RSS feeds and it'll download your shows automatically.
You can also start playback on UPnP network devices from the UI.
Okay, you need some slight technical experience, and some software. We'll assume you have the former, so here's a list of the latter:
- nginx 1.13.0 +
- Node.js 8.9.0 +
- MongoDB 3.4.0 +
- Transmission 2.94 with RPC Enabled
Create a user named media
git clone https://github.com/greebowarrior/nodetv.git /opt/nutv
cd /opt/nutv
su media npm i
Install the systemd service
sudo cp /opt/nutv/scripts/nutv.service /etc/systemd/system/
sudo systemctl reload-daemon
sudo systemctl enable nutv.service
sudo systemctl start nutv.service
You'll need to create a .env
file in your home directory, using .env.default
as a template. In most cases, the only variables you may need to edit are:
SECRET_KEY
requiredDB_*
TRANSMISSION_*
By default, NodeTV assumes that MongoDB and Transmission are running on the same machine, using the default ports.
In the case of MongoDB, it also assumes that you're not using authentication.
If all that seems like too much trouble, or you just prefer containers, a Docker image is available.
You'll need to copy the docker-compose.yml
file to your home directory, and create a .env file
SECRET_KEY=
MEDIA_ROOT=
TRAKT_CLIENT_ID=
TRAKT_CLIENT_SECRET=
As simple as:
docker-compose up
Systemd script is available, or use your favourite process manager