Skip to content
This repository has been archived by the owner on Jan 7, 2023. It is now read-only.

greebowarrior/nodetv

Repository files navigation

Node TV

GitHub version Build Status Coverage Status

A complete re-write of my existing project but hopefully learning from my previous mistakes

Tech Specs

  • MEAN stack
  • Trakt.tv as primary data source

Third-party dependencies

  • Trakt - Provides all Show, Episode, and Movie metadata
  • FanArt.tv - Show & Movie artwork
  • ShowRSS - RSS Feeds for Shows

Why do this?

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:

Requirements

  • 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.

What does it do?

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.

Sounds good, what do I need?

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:

Third-party software

Install

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

Configure

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 required
  • DB_*
  • 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.

Docker

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

.env file

  • SECRET_KEY=
  • MEDIA_ROOT=
  • TRAKT_CLIENT_ID=
  • TRAKT_CLIENT_SECRET=

Running

As simple as:

docker-compose up

Running

Systemd script is available, or use your favourite process manager