/nefarious

Web application for automatically downloading TV & Movies (w/ VPN)

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

nefarious

nefarious is a web application that automatically downloads Movies and TV Shows.

Build Status Docker Pulls

It uses Jackett and Transmission under the hood. Jackett searches for torrents and Transmission handles the downloading.

Features:

  • Search and discover TV & Movies (by popularity, genres, year etc.)
  • Auto download TV & Movies
  • Find similar and recommended TV & Movies (via The Movie Database & Rotten Tomatoes)
  • Manually search and download Jackett's torrent results
  • Supports blacklisting torrent results (i.e. permanently avoid a bad/fake torrent)
  • Supports quality profiles (i.e. only download 1080p Movies and 720p TV)
  • Supports whether to download media with hardcoded subtitles or not
  • Supports user defined keywords to filter results (i.e. ignore "x265", "hevc" codecs)
  • Monitor transmission results & status from within the app
  • Self/auto updating application, so you're always up-to-date
  • Supports multiple users and permission groups (i.e. admin users and regular users)
  • Responsive Design (looks great on desktops, tablets and small devices like phones)
  • Includes movie trailers
  • Automatically renames media
  • Supports multiple languages (TMDB supports internationalized Titles, Descriptions and Poster artwork)
  • Notifications - supports all major notification services (via Apprise)
  • Imports existing libraries
  • VPN integration (optional)
  • Auto download subtitles via opensubtitles api
  • Autodetect & blacklist spam/fake video content
  • Autodetect & blacklist "stuck" torrents that fail to complete after X days

Contents

Demo

Screenshots

Login

Search

TV Result

Movie Result

Download Status

Discover via TMDB

Discover via Rotten Tomatoes

Wanted

Watching

Settings

Search Manual

Mobile Friendly

Dependencies

See DEPENDENCIES.md

Setup

You must have docker and docker-compose already installed. See dependencies.

Part 1

Clone the nefarious repository:

git clone https://github.com/lardbit/nefarious.git
cd nefarious

Copy the default environment file to make changes:

cp env.template .env

Edit .env as needed for your settings, at least defining HOST_DOWNLOAD_PATH to something like HOST_DOWNLOAD_PATH=/path/to/downloads.

You should never need to edit the docker-compose.yml file since all settings are read from .env.

Start all the containers:

docker-compose up -d

NOTE: the first time you start nefarious can take a few minutes.

Your default local URLs for all the various services will be:

See Part 2 for finalizing the configuration.

Low powered systems

See SBC.md for low powered / single board computers (sbc) like the raspberry pi, odroid, pine etc.

VPN

See VPN.md for VPN integration.

Part 2

The default nefarious user/password is admin/admin. On first login you will be directed to the main nefarious settings and asked to configure your Jackett API token. Jackett's host in the main settings should remain jackett and the port should remain 9117. Copy your API Token from Jackett into the appropriate nefarious section. Don't forget to also add some indexers in Jackett to track your preferred content, and be sure to test them to see that they're working. Some popular examples are The Pirate Bay, 1337x, RARBG.

Transmission's host should remain transmission and port should remain 9091. It's possible to configure it with a username and password, but it defaults to keeping them both blank. Entering both username and password in the nefarious settings should only be done if the Transmission settings of transmission-settings.json were also configured for your desired user/pass.

Once all of your settings are updated, click Save & Verify Settings to save and verify they're valid.

Transmission Configuration

There is no default transmission user/pass, but feel free to edit the transmission-settings.json beforehand following the official settings to make any changes you'd like.

NOTE if you make any changes to transmission-settings.json you'll have to recreate the transmission container for the changes to take place:

docker-compose up -d --force-recreate transmission

Usage

See USAGE.md.

Upgrading

If you're running nefarious via the default docker-compose.yml file then nefarious will automatically update to the newest versions as they release. However, occasionally the docker-compose.yml configuration file changes and you'll need to redo the steps in Setup. You will not lose your nefarious settings due to persistent docker volumes. It's a safe operation.

Troubleshooting

See TROUBLESHOOTING.md.

Development

See DEVELOPMENT.md.