{"id":13448220,"url":"https://github.com/lardbit/nefarious","last_synced_at":"2025-03-22T09:31:05.476Z","repository":{"id":39034433,"uuid":"157997028","full_name":"lardbit/nefarious","owner":"lardbit","description":"Web application for automatically downloading TV \u0026 Movies (w/ VPN)","archived":false,"fork":false,"pushed_at":"2024-04-10T17:36:42.000Z","size":41843,"stargazers_count":933,"open_issues_count":32,"forks_count":75,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-04-21T11:24:41.150Z","etag":null,"topics":["angular","django","docker","jackett","python","tmdb","torrent","torrent-downloader","transmission"],"latest_commit_sha":null,"homepage":"https://lardbit.github.io/nefarious/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lardbit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-11-17T15:21:01.000Z","updated_at":"2024-04-21T02:13:32.000Z","dependencies_parsed_at":"2024-01-01T20:26:23.683Z","dependency_job_id":"cc0b0421-1b66-4961-8c1b-5659faf8c8de","html_url":"https://github.com/lardbit/nefarious","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lardbit%2Fnefarious","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lardbit%2Fnefarious/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lardbit%2Fnefarious/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lardbit%2Fnefarious/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lardbit","download_url":"https://codeload.github.com/lardbit/nefarious/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244937751,"owners_count":20535124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","django","docker","jackett","python","tmdb","torrent","torrent-downloader","transmission"],"created_at":"2024-07-31T05:01:39.189Z","updated_at":"2025-03-22T09:31:05.466Z","avatar_url":"https://github.com/lardbit.png","language":"Python","readme":"# nefarious\n\n**nefarious is a web application that automatically downloads Movies and TV Shows.**\n\n[![Build Status](https://github.com/lardbit/nefarious/actions/workflows/build.yml/badge.svg)](https://github.com/lardbit/nefarious/actions/workflows/build.yml)\n[![Docker Pulls](https://img.shields.io/docker/pulls/lardbit/nefarious.svg?maxAge=60\u0026style=flat-square)](https://hub.docker.com/r/lardbit/nefarious)\n\nIt uses [Jackett](https://github.com/Jackett/Jackett/) and [Transmission](https://transmissionbt.com/) under the hood.  Jackett searches for torrents and Transmission handles the downloading.\n\nFeatures:\n- [x] Search and discover TV \u0026 Movies (by popularity, genres, year etc.)\n- [x] Auto download TV \u0026 Movies\n- [x] Find similar and recommended TV \u0026 Movies (via The Movie Database \u0026 Rotten Tomatoes)\n- [x] Manually search and download Jackett's torrent results\n- [x] Supports blacklisting torrent results (i.e. permanently avoid a bad/fake torrent)\n- [X] Supports quality profiles (i.e. only download *1080p* Movies and *720p* TV)\n- [x] Supports whether to download media with hardcoded subtitles or not\n- [x] Supports user defined keywords to filter results (i.e. ignore \"x265\", \"hevc\" codecs)\n- [x] Monitor transmission results \u0026 status from within the app\n- [x] Self/auto updating application, so you're always up-to-date\n- [x] Supports multiple users and permission groups (i.e. admin users and regular users)\n- [x] Responsive Design (looks great on desktops, tablets and small devices like phones)\n- [x] Includes movie trailers\n- [x] Automatically renames media\n- [x] Supports multiple languages (TMDB supports internationalized Titles, Descriptions and Poster artwork)\n- [x] Notifications - supports all major notification services (via [Apprise](https://github.com/caronc/apprise/tree/v0.9.3))\n- [x] Imports existing libraries\n- [x] VPN integration (optional)\n- [x] Auto download subtitles via [opensubtitles](https://www.opensubtitles.com/) [api](https://opensubtitles.stoplight.io/)\n- [x] Autodetect \u0026 blacklist [spam/fake](https://github.com/lardbit/nefarious/pull/180) video content\n- [x] Autodetect \u0026 blacklist \"stuck\" torrents that fail to complete after X days\n\n### Contents\n\n- [Demo](#demo)\n- [Screenshots](#screenshots)\n- [Dependencies](#dependencies)\n- [Setup](#setup)\n- [Usage](#usage)\n- [Upgrading](#upgrading)\n- [Troubleshooting](#troubleshooting)\n- [Development](#development)\n\n### Demo\n\n![](screenshots/nefarious-demo.gif)\n\n### Screenshots\n\n#### Login\n![](screenshots/login.png)\n#### Search\n![](screenshots/search-results.png)\n#### TV Result\n![](screenshots/media-tv-result.png)\n#### Movie Result\n![](screenshots/media-movie-result.png)\n#### Download Status\n![](screenshots/media-status.png)\n#### Discover via TMDB\n![](screenshots/discover-tmdb.png)\n#### Discover via Rotten Tomatoes\n![](screenshots/discover-rotten-tomatoes.png)\n#### Wanted\n![](screenshots/wanted.png)\n#### Watching\n![](screenshots/watching.png)\n#### Settings\n![](screenshots/settings.png)\n#### Search Manual\n![](screenshots/search-manual.png)\n#### Mobile Friendly\n![](screenshots/search-mobile.png)\n\n\n### Dependencies\n\nSee [DEPENDENCIES.md](docs/DEPENDENCIES.md)\n\n### Setup\n\nYou must have **docker** and **docker-compose** already installed.  See [dependencies](docs/DEPENDENCIES.md).\n\n#### Part 1\n    \nClone the nefarious repository:\n\n    git clone https://github.com/lardbit/nefarious.git\n    cd nefarious\n    \nCopy the default environment file to make changes:\n\n    cp env.template .env\n    \nEdit `.env` as needed for your settings, at least defining *HOST_DOWNLOAD_PATH* to something like *HOST_DOWNLOAD_PATH=/path/to/downloads*.\n\n**You should *never* need to edit the `docker-compose.yml` file since all settings are read from `.env`.**\n    \nStart all the containers:\n\n    docker-compose up -d\n    \n**NOTE: the first time you start nefarious can take a few minutes.**\n\nYour default local URLs for all the various services will be:\n\n- nefarious: [http://localhost:8000](http://localhost:8000)\n- Jackett: [http://localhost:9117](http://localhost:9117)\n- Transmission: [http://localhost:9091](http://localhost:9091)\n\n**See** [Part 2](#part-2) for finalizing the configuration.\n\n##### Low powered systems\n\nSee [SBC.md](docs/SBC.md) for low powered / single board computers (sbc) like the raspberry pi, odroid, pine etc. \n\n##### VPN\n\nSee [VPN.md](docs/VPN.md) for VPN integration.\n\n#### Part 2\n\nThe 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.\nJackett's **host** in the main settings should remain `jackett` and the port should remain `9117`.  Copy your API Token from [Jackett](http://localhost:9117) into the appropriate nefarious section.\nDon'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*.\n\nTransmission'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.\nEntering 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.\n\nOnce all of your settings are updated, click `Save \u0026 Verify Settings` to save and verify they're valid.\n\n##### Transmission Configuration\n\nThere is no default transmission user/pass, but feel free to edit the `transmission-settings.json` beforehand following the [official settings](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md) to make any changes you'd like.\n\n**NOTE** if you make any changes to `transmission-settings.json` you'll have to recreate the transmission container for the changes to take place:\n\n    docker-compose up -d --force-recreate transmission\n    \n### Usage\n\nSee [USAGE.md](docs/USAGE.md).\n\n### Upgrading\n\nIf you're running nefarious via the default `docker-compose.yml` file then nefarious will automatically update to the newest versions as they release.\nHowever, occasionally the `docker-compose.yml` configuration file changes and you'll need to redo the steps in [Setup](#setup).\n*You will not lose your nefarious settings due to persistent docker volumes.  It's a safe operation.*\n\n### Troubleshooting\n\nSee [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md).\n\n### Development\n\nSee [DEVELOPMENT.md](docs/DEVELOPMENT.md).\n","funding_links":[],"categories":["Python","Tools for Self-Hosting","Software","Movie \u0026 TV","Apps","Automation"],"sub_categories":["Automation","Video Automation","MediaManagement"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flardbit%2Fnefarious","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flardbit%2Fnefarious","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flardbit%2Fnefarious/lists"}