Skip to content

Latest commit

 

History

History
531 lines (415 loc) · 10.6 KB

README.md

File metadata and controls

531 lines (415 loc) · 10.6 KB

Traktarr

Script to add new shows & movies to Sonarr/Radarr based on Trakt lists.

Trakt lists currently supported:

  • anticipated
  • boxoffice
  • interval
  • popular
  • trending

Requirements

  1. Python 3.5 or higher (sudo apt install python3 python3-pip).
  2. requirements.txt modules (see below).

Installation

1. Base Install

Install Traktarr to be run with traktarr command.

  1. cd /opt
  2. sudo git clone https://github.com/l3uddz/traktarr
  3. sudo chown -R user:group traktarr (run id to find your user / group)
  4. cd traktarr
  5. sudo python3 -m pip install -r requirements.txt
  6. sudo ln -s /opt/traktarr/traktarr.py /usr/local/bin/traktarr
  7. traktarr - run once to generate a default a config.json file.
  8. nano config.json - edit preferences.

2. Setup Schedule

To have Traktarr get Movies and Shows for you automatically, on set interval.

  1. sudo cp /opt/traktarr/systemd/traktarr.service /etc/systemd/system/
  2. sudo systemctl daemon-reload
  3. sudo systemctl enable traktarr.service
  4. sudo systemctl start traktarr.service

Configuration

{
  "core": {
    "debug": false
  },
  "automatic": {
    "movies": {
      "anticipated": 3,
      "boxoffice": 10,
      "interval": 24,
      "popular": 3,
      "trending": 2
    },
    "shows": {
      "anticipated": 10,
      "interval": 48,
      "popular": 1,
      "trending": 2
    }
  },
  "filters": {
    "movies": {
      "allowed_countries": [
        "us",
        "gb",
        "ca"
      ],
      "blacklist_title_keywords": [
        "untitled",
        "barbie"
      ],
      "blacklisted_genres": [
        "documentary",
        "music",
        "animation"
      ],
      "blacklisted_max_year": 2019,
      "blacklisted_min_runtime": 60,
      "blacklisted_min_year": 2000,
      "blacklisted_tmdb_ids": []
    },
    "shows": {
      "allowed_countries": [
        "us",
        "gb",
        "ca"
      ],
      "blacklisted_genres": [
        "animation",
        "game-show",
        "talk-show",
        "home-and-garden",
        "children",
        "reality",
        "anime",
        "news",
        "documentary",
        "special-interest"
      ],
      "blacklisted_max_year": 2019,
      "blacklisted_min_runtime": 15,
      "blacklisted_min_year": 2000,
      "blacklisted_networks": [
        "twitch",
        "youtube",
        "nickelodeon",
        "hallmark",
        "reelzchannel",
        "disney",
        "cnn",
        "cbbc",
        "the movie network",
        "teletoon",
        "cartoon network",
        "espn",
        "yahoo!",
        "fox sports"
      ],
      "blacklisted_tvdb_ids": []
    }
  },
  "notifications": {
    "pushover": {
      "service": "pushover",
      "app_token": "",
      "user_token": ""
    },
    "slack": {
      "service": "slack",
      "webhook_url": ""
    },
    "verbose": true,
  },
  "radarr": {
    "api_key": "",
    "profile": "HD-1080p",
    "root_folder": "/movies/",
    "url": "http://localhost:7878/"
  },
  "sonarr": {
    "api_key": "",
    "profile": "HD-1080p",
    "root_folder": "/tv/",
    "tags": {},
    "url": "http://localhost:8989/"
  },
  "trakt": {
    "api_key": ""
  }
}

Core

"core": {
  "debug": false
},

debug - show debug messages.

  • Default is false (keep it off unless your having issues).

Automatic

Used for automatic / scheduled Traktarr tasks.

Movies can be run on a separate schedule from Shows.

"automatic": {
  "movies": {
    "anticipated": 3,
    "boxoffice": 10,
    "interval": 24,
    "popular": 3,
    "trending": 2
  },
  "shows": {
    "anticipated": 10,
    "interval": 48,
    "popular": 1,
    "trending": 2
  }
},

interval - specify how often (in hours) to run Traktarr task.

anticipated, popular, trending, boxoffice (movies only) - specify how many items from each Trakt list to find.

Filters

Use filters to specify the movie/shows's country of origin or blacklist (i.e. filter-out) certain keywords, genres, years, runtime, or specific movies/shows.

Movies

  "movies": {
    "allowed_countries": [
      "us",
      "gb",
      "ca"
    ],
    "blacklist_title_keywords": [
      "untitled",
      "barbie"
    ],
    "blacklisted_genres": [
      "documentary",
      "music",
      "animation"
    ],
    "blacklisted_max_year": 2019,
    "blacklisted_min_runtime": 60,
    "blacklisted_min_year": 2000,
    "blacklisted_tmdb_ids": []
  },

allowed_countries - allowed countries of origin.

blacklist_title_keywords - blacklist certain words in titles.

blacklisted_genres - blacklist certain generes.

blacklisted_max_year - blacklist release dates after specified year.

blacklisted_min_runtime - blacklist runtime duration lower than specified time (in minutes).

blacklisted_min_year - blacklist release dates before specified year.

blacklisted_tmdb_ids - blacklist certain movies with their TMDB IDs.

Shows

"shows": {
  "allowed_countries": [
    "us",
    "gb",
    "ca"
  ],
  "blacklisted_genres": [
    "animation",
    "game-show",
    "talk-show",
    "home-and-garden",
    "children",
    "reality",
    "anime",
    "news",
    "documentary",
    "special-interest"
  ],
  "blacklisted_max_year": 2019,
  "blacklisted_min_runtime": 15,
  "blacklisted_min_year": 2000,
  "blacklisted_networks": [
    "twitch",
    "youtube",
    "nickelodeon",
    "hallmark",
    "reelzchannel",
    "disney",
    "cnn",
    "cbbc",
    "the movie network",
    "teletoon",
    "cartoon network",
    "espn",
    "yahoo!",
    "fox sports"
  ],
  "blacklisted_tvdb_ids": []
}

allowed_countries - allowed countries of origin.

blacklisted_genres - blacklist certain generes.

blacklisted_max_year - blacklist release dates after specified year.

blacklisted_min_runtime - blacklist runtime duration lower than specified time (in minutes).

blacklisted_min_year - blacklist release dates before specified year.

blacklisted_networks - blacklist certain network.

blacklisted_tvdb_ids - blacklist certain shows with their TVDB IDs.

Notifications

Notification alerts during tasks.

Currently, only Pushover and Slack are supported. More will abe added later.

"notifications": {
  "pushover": {
    "service": "pushover",
    "app_token": "",
    "user_token": ""
  },
  "slack": {
    "service": "slack",
    "webhook_url": ""
  },
  "verbose": true,
},

verbose - toggle detailed notifications.

  • Default is true (keep it off unless your having issues).

Pushover

app_token and user_token - retrieve from Pushover.net.

Note: The key name (i.e the name right under notifications) can be anything, but the "service": must be exactly "pushover".

Slack

webhook_url - webhook URL you get after creating an "Incoming Webhook" under "Custom Integrations".

Note: The key name (i.e the name right under notifications) can be anything, but the "service": must be exactly "slack".

Radarr

Radarr configuration.

"radarr": {
  "api_key": "",
  "profile": "HD-1080p",
  "root_folder": "/movies/",
  "url": "http://localhost:7878"
},

api_key - Radarr's API Key.

profile - Profile that movies are assigned to.

root_folder - Root folder for movies.

url - Radarr's URL.

Sonarr

Sonarr configuration.

"sonarr": {
  "api_key": "",
  "profile": "HD-1080p",
  "root_folder": "/tv/",
  "tags": {},
  "url": "http://localhost:8989"
},

api_key - Sonarr's API Key.

profile - Profile that TV shows are assigned to.

root_folder - Root folder for TV shows.

tags - assign tags to shows based the network it airs on. More details on this below.

url - Sonarr's URL.

Tags

To show how tags work, we will create a sample tag AMZN and assign it to certain networks.

Sonarr

First, we will create a tag in Sonarr (Settings > Indexers > Restrictions).

Must contain: BluRay, Amazon, AMZN,
Must not contain:
Tags: AMZN

Traktarr

Finally, we will edit the Traktarr config and assign the AMZN tag to certain networks.

"tags": {
  "amzn": [
    "hbo",
    "amc",
    "usa network",
    "tnt",
    "starz",
    "the cw",
    "fx",
    "fox",
    "abc",
    "nbc",
    "cbs",
    "tbs",
    "amazon",
    "syfy",
    "cinemax",
    "bravo",
    "showtime",
    "paramount network"
  ]
}

Trakt

"trakt": {
  "api_key": ""
}

api_key - Fill in your Trakt API key (Client ID).

How to get a Trakt API Key:

Usage

General

traktarr
Usage: traktarr [OPTIONS] COMMAND [ARGS]...

  Add new shows & movies to Sonarr/Radarr from Trakt lists.

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  movies  Add new movies to Radarr.
  run     Run in automatic mode.
  shows   Add new shows to Sonarr.

Movies

traktarr movies --help
Usage: traktarr movies [OPTIONS]

  Add new movies to Radarr.

Options:
  -t, --list-type [anticipated|trending|popular|boxoffice]
                                  Trakt list to process.  [required]
  -l, --add-limit INTEGER         Limit number of movies added to Radarr.
                                  [default: 0]
  -d, --add-delay FLOAT           Seconds between each add request to Radarr.
                                  [default: 2.5]
  -g, --genre TEXT                Only add movies from this genre to Radarr.
  -f, --folder TEXT               Add movies with this root folder to Radarr.
  --no-search                     Disable search when adding movies to Radarr.
  --notifications                 Send notifications.
  --help                          Show this message and exit.

Shows

Usage: traktarr shows [OPTIONS]

  Add new shows to Sonarr.

Options:
  -t, --list-type [anticipated|trending|popular]
                                  Trakt list to process.  [required]
  -l, --add-limit INTEGER         Limit number of shows added to Sonarr.
                                  [default: 0]
  -d, --add-delay FLOAT           Seconds between each add request to Sonarr.
                                  [default: 2.5]
  -g, --genre TEXT                Only add shows from this genre to Sonarr.
  -f, --folder TEXT               Add shows with this root folder to Sonarr.
  --no-search                     Disable search when adding shows to Sonarr.
  --notifications                 Send notifications.
  --help                          Show this message and exit.

Example

traktarr movies -t boxoffice -g comedy -l 10 --notifications

traktarr shows -t popular -l 2 --no-search