James
90f66af704
|
7 years ago | |
---|---|---|
docker | 7 years ago | |
media | 7 years ago | |
misc | 7 years ago | |
notifications | 7 years ago | |
systemd | 7 years ago | |
.dockerignore | 7 years ago | |
.gitignore | 7 years ago | |
README.md | 7 years ago | |
requirements.txt | 7 years ago | |
traktarr.py | 7 years ago |
README.md
Traktarr
Script to add new shows & movies to Sonarr/Radarr based on Trakt lists.
Trakt lists currently supported:
- anticipated
- boxoffice
- interval
- popular
- trending
Requirements
- Python 3.5 or higher (
sudo apt install python3 python3-pip
). - requirements.txt modules (see below).
Installation
1. Base Install
Install Traktarr to be run with traktarr
command.
cd /opt
sudo git clone https://github.com/l3uddz/traktarr
sudo chown -R user:group traktarr
(runid
to find your user / group)cd traktarr
sudo python3 -m pip install -r requirements.txt
sudo ln -s /opt/traktarr/traktarr.py /usr/local/bin/traktarr
traktarr
- run once to generate a default a config.json file.nano config.json
- edit preferences.
2. Setup Schedule
To have Traktarr get Movies and Shows for you automatically, on set interval.
sudo cp /opt/traktarr/systemd/traktarr.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable traktarr.service
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:
- Go to https://trakt.tv/oauth/applications/new
- Fill in:
- Name:
Traktarr
- Redirect uri:
https://google.com
- Name:
- Click
Save App
- Retrieve the Client ID.
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.
--config PATH Configuration file [default: /opt/traktarr/config.json]
--logfile PATH Log file [default: /opt/traktarr/activity.log]
--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