An open API service indexing awesome lists of open source software.

https://github.com/haijeploeg/excludarr

Excludarr manages your libraries in Radarr/Sonarr. It keeps track of your library and checks if your movies and series are also available on a configured streaming provider. It can exclude the movies and series that are available on a configured streaming provider. But it can also re-add movies and series if they are not streaming anymore.
https://github.com/haijeploeg/excludarr

delete excludarr hacktoberfest hacktoberfest2022 justwatch netflix radarr sonarr storage streaming tmdb

Last synced: 23 days ago
JSON representation

Excludarr manages your libraries in Radarr/Sonarr. It keeps track of your library and checks if your movies and series are also available on a configured streaming provider. It can exclude the movies and series that are available on a configured streaming provider. But it can also re-add movies and series if they are not streaming anymore.

Awesome Lists containing this project

README

        

![License](https://img.shields.io/github/license/haijeploeg/excludarr)
[![release](https://github.com/haijeploeg/excludarr/actions/workflows/release.yml/badge.svg)](https://github.com/haijeploeg/excludarr/actions/workflows/release.yml)
[![Docker](https://github.com/haijeploeg/excludarr/actions/workflows/docker.yml/badge.svg)](https://github.com/haijeploeg/excludarr/actions/workflows/docker.yml)
[![PyPI version](https://badge.fury.io/py/excludarr.svg)](https://badge.fury.io/py/excludarr)
![PyPI - Downloads](https://img.shields.io/pypi/dm/excludarr)
![Docker Pulls](https://img.shields.io/docker/pulls/haijeploeg/excludarr)

# Excludarr

Excludarr is a CLI that interacts with Radarr and Sonarr instances. It completely manages you library in Sonarr and Radarr to only consist out of movies and series that are not present on any of the configured streaming providers. Excludarr can also re monitor movies and series if it is not available anymore on any of the configured streaming providers. You can also configure to delete the already downloaded files of the excluded entry to keep your storage happy! πŸŽ‰

[![asciicast](https://asciinema.org/a/459503.svg)](https://asciinema.org/a/459503?autoplay=1)

## Prerequisites

- Python 3.6 or Docker
- If you have Sonarr: Sonarr V3 (version 2 is not working!)
- If you have Radarr: Radarr V3

## Installation

Installation of excludarr can be done using pip.

```bash
pip install excludarr
```

## Configuration

To configure the application make sure that one of the following files exists:

```bash
/etc/excludarr/excludarr.yml
~/.config/excludarr/excludarr.yml
~/.excludarr/config/excludarr.yml
~/.excludarr.yml
./.excludarr.yml
```

The application will read those configuration files in that order. So `./.excludarr.yml` will overwrite `/etc/excludarr/excludarr.yml`. For a full list of options and their description see [excludarr-example.yml](.examples/excludarr-example.yml) in this repository.

> NOTE: To get a full list of available providers in your country, execute `excludarr providers list` and copy the full name of the provider in your configuration.

## Radarr

The `radarr` subcommands manages the library in your configured Radarr instance. Check `excludarr radarr --help` for a full list of options.

### Exclude

To delete or disable monitoring of the movies in Radarr you can execute the `excludarr radarr exclude` command. You can determine to either delete the movie or change the status to not monitored. You can alo configure if you want to delete the associated files and to add an import exclusion to prevent future importing of the movie.

By default no files are being deleted, you have to set the `-d` flag. To make the command non-interactive you can pass the `-y` flag to auto accept the confirmation question. To show the progress of the process you can pass the `--progress` flag to get a nice progress bar! Read the help page of the command carefully to adjust the command to your needs.

```bash
$ excludarr radarr exclude -a delete -d -e
β•· β•· β•·
Release Date β”‚ Title β”‚ Used Diskspace β”‚ Streaming Providers
╢─────────────┼────────────────────────────────────────────┼────────────────┼─────────────────────────────────╴
2021-11-04 β”‚ Red Notice β”‚ 0.00GB β”‚ Netflix
2021-10-13 β”‚ The Last Duel β”‚ 0.00GB β”‚ Apple iTunes
2021-11-04 β”‚ Amina β”‚ 0.00GB β”‚ Netflix
2021-11-25 β”‚ Apex β”‚ 12.00GB β”‚ Apple iTunes
2021-11-25 β”‚ A Boy Called Christmas β”‚ 0.00GB β”‚ Netflix
2012-06-27 β”‚ The Amazing Spider-Man β”‚ 0.00GB β”‚ Netflix, Apple iTunes
2017-07-05 β”‚ Spider-Man: Homecoming β”‚ 7.50GB β”‚ Apple iTunes
2021-10-22 β”‚ The Harder They Fall β”‚ 0.00GB β”‚ Netflix
2021-12-02 β”‚ Single All the Way β”‚ 0.00GB β”‚ Netflix
2021-05-19 β”‚ F9 β”‚ 0.00GB β”‚ Apple iTunes
2021-07-28 β”‚ The Suicide Squad β”‚ 10.00GB β”‚ Apple iTunes
2021-10-29 β”‚ Army of Thieves β”‚ 0.00GB β”‚ Netflix
2021-08-09 β”‚ PAW Patrol: The Movie β”‚ 0.00GB β”‚ Apple iTunes
2018-12-06 β”‚ Spider-Man: Into the Spider-Verse β”‚ 20.00GB β”‚ Apple iTunes
2002-05-01 β”‚ Spider-Man β”‚ 0.00GB β”‚ Netflix, Apple iTunes
╢─────────────┼────────────────────────────────────────────┼────────────────┼─────────────────────────────────╴
β”‚ Total Used Diskspace β”‚ 49.50GB β”‚
β•΅ β•΅ β•΅
Are you sure you want to delete the listed movies? [y/n] (n): y
Succesfully deleted the movies from Radarr!
```

> NOTE: If you want to exclude any of the movies listed in the table, just copy the title and paste it in your configuration file under `radarr -> excludes`.

### Re-add

To re enable monitoring of not-monitored movies in Radarr that are not present anymore on any of the streaming providers, you can execute `excludarr radarr re-add`. This will lookup all movies that are not monitored anymore in Radarr and check if they are still available on the configured streaming providers. If there is no match, the status of the movie will change to monitored. This is handy if you remove a streaming provider from the configuration, or if the movie is being deleted from a streaming provider.

```bash
$ excludarr radarr re-add
β•·
Release Date β”‚ Title
╢─────────────┼───────────────────────────────────────────╴
2021-08-27 β”‚ Vacation Friends
2021-10-13 β”‚ The Last Duel
2021-09-01 β”‚ Shang-Chi and the Legend of the Ten Rings
2021-06-17 β”‚ Luca
2019-06-28 β”‚ Spider-Man: Far From Home
2021-11-12 β”‚ Home Sweet Home Alone
2021-07-07 β”‚ Black Widow
2021-07-22 β”‚ Snake Eyes: G.I. Joe Origins
2021-07-28 β”‚ Jungle Cruise
2020-08-04 β”‚ Deathstroke: Knights & Dragons - The Movie
2021-05-19 β”‚ F9
2021-07-28 β”‚ The Suicide Squad
2021-08-09 β”‚ PAW Patrol: The Movie
2021-09-03 β”‚ Zone 414
2021-05-26 β”‚ Cruella
2021-07-15 β”‚ Space Jam: A New Legacy
2021-03-24 β”‚ Godzilla vs. Kong
β•΅
Are you sure you want to re monitor the listed movies? [y/n] (n): y
Succesfully changed the status of the movies listed in Radarr to monitored!
```

> NOTE: If you want to exclude any of the movies listed in the table, just copy the title and paste it in your configuration file under `radarr -> excludes`.

## Sonarr

The `sonarr` subcommands manages the library in your configured Sonarr instance. Check `excludarr sonarr --help` for a full list of options.

### Exclude

To delete or disable monitoring of the series in Sonarr you can execute the `excludarr sonarr exclude` command. You can determine to either delete the serie or change the status to not monitored. You can alo configure if you want to delete the associated files. Excludarr will exclude the whole serie, the season(s) or individually episodes.

If you use the delete action (`excludarr sonarr exclude -a delete`) it will only delete the serie if the serie is ended and all seasons are streaming on a configured streaming service. A few examples with Netflix as a streaming provider.

- **Serie A** has a total of 5 seasons and has ended. If all 5 seasons are found on Netflix it will delete the serie from Sonarr.
- **Serie B** has a total of 4 seasons and it still continueing (season 5 will be released next year). If all 4 seasons are found on Netflix it will disable the monitoring of all 4 seasons, but it will **not** delete the whole serie from Sonarr.
- **Serie C** has a total of 6 seasons and has ended. If only 5 seasons are found on Netflix, Excludarr will disable monitoring of the 5 seasons and will **not** delete the serie from Sonarr.

By default no files are being deleted, you have to set the `-d` flag. To make the command non-interactive you can pass the `-y` flag to auto accept the confirmation question. To show the progress of the process you can pass the `--progress` flag to get a nice progress bar! Read the help page of the command carefully to adjust the command to your needs.

```bash
excludarr sonarr exclude -a delete -d
β•· β•· β•· β•· β•· β•·
Release Year β”‚ Title β”‚ Used Diskspace β”‚ Seasons β”‚ Episodes β”‚ Providers β”‚ Ended
╢─────────────┼─────────────────────────────────────────────┼────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼────────────────────┼──────╴
2008 β”‚ Breaking Bad β”‚ 454.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ Season 5 β”‚ β”‚ β”‚
2010 β”‚ The Walking Dead β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ No
β”‚ β”‚ β”‚ Season 5, Season 6, Season 7, Season 8, β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ Season 9, Season 10 β”‚ β”‚ β”‚
2016 β”‚ Stranger Things β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3 β”‚ β”‚ Netflix β”‚ No
2012 β”‚ Arrow β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ Season 5, Season 6, Season 7, Season 8 β”‚ β”‚ β”‚
2004 β”‚ Lost β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Videoland β”‚ Yes
β”‚ β”‚ β”‚ Season 5, Season 6 β”‚ β”‚ β”‚
2013 β”‚ House of Cards (US) β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ Season 5, Season 6 β”‚ β”‚ β”‚
2011 β”‚ Suits β”‚ 30.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ Season 5, Season 6, Season 7, Season 8, β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ Season 9 β”‚ β”‚ β”‚
2013 β”‚ Vikings β”‚ 100.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ Season 5, Season 6 β”‚ β”‚ β”‚
2014 β”‚ The Flash (2014) β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ S08E01, S08E02, S08E03, S08E04, S08E05 β”‚ Netflix β”‚ No
β”‚ β”‚ β”‚ Season 5, Season 6, Season 7 β”‚ β”‚ β”‚
2013 β”‚ Orange Is the New Black β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ Season 5, Season 6, Season 7 β”‚ β”‚ β”‚
2011 β”‚ Black Mirror β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ Season 5 β”‚ β”‚ β”‚
2013 β”‚ Rick and Morty β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix β”‚ No
β”‚ β”‚ β”‚ Season 5 β”‚ β”‚ β”‚
2005 β”‚ The Office (US) β”‚ 15.00GB β”‚ Season 1, Season 2, Season 3, Season 4, β”‚ β”‚ Netflix, Videoland β”‚ Yes
β”‚ β”‚ β”‚ Season 5, Season 6, Season 7, Season 8, β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ Season 9 β”‚ β”‚ β”‚
2010 β”‚ Spartacus β”‚ 30.00GB β”‚ Season 1, Season 3 β”‚ S02E01, S02E02, S02E03, S02E04, S02E05, β”‚ Netflix β”‚ Yes
β”‚ β”‚ β”‚ β”‚ S02E06 β”‚ β”‚
2017 β”‚ Dark β”‚ 0.00GB β”‚ Season 1, Season 2, Season 3 β”‚ β”‚ Netflix β”‚ Yes
╢─────────────┼─────────────────────────────────────────────┼────────────────┼─────────────────────────────────────────────┼─────────────────────────────────────────────┼────────────────────┼──────╴
β”‚ Total Used Diskspace β”‚ 629.00GB β”‚ β”‚ β”‚ β”‚
β•΅ β•΅ β•΅ β•΅ β•΅ β•΅
Are you sure you want to delete the listed series? [y/n] (n): y
Succesfully deleted the series and/or changed the status of serveral seasons and episodes listed in Sonarr to not monitored!
```

> NOTE: If you want to exclude any of the series listed in the table, just copy the title and paste it in your configuration file under `sonarr -> excludes`.

### Re-add

To re enable monitoring of not-monitored series in Sonarr that are not present anymore on any of the streaming providers, you can execute `excludarr sonarr re-add`. This will lookup all series/seasons/episodes that are not monitored anymore in Sonarr and check if they are still available on the configured streaming providers. If there is no match, the status of the serie will change to monitored. This is handy if you remove a streaming provider from the configuration, or if the movie is being deleted from a streaming provider.

```bash
excludarr sonarr re-add
β•· β•· β•· β•·
Release Year β”‚ Title β”‚ Seasons β”‚ Episodes β”‚ Ended
╢─────────────┼──────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────┼──────╴
2010 β”‚ The Walking Dead β”‚ Season 1, Season 2, Season 3, Season 4, Season 5, Season 6, β”‚ β”‚ No
β”‚ β”‚ Season 7, Season 8, Season 9, Season 10 β”‚ β”‚
2016 β”‚ Stranger Things β”‚ Season 1, Season 2, Season 3 β”‚ β”‚ No
β”‚ β”‚ Season 7, Season 8 β”‚ β”‚
2004 β”‚ Lost β”‚ Season 1, Season 2, Season 3, Season 4, Season 5, Season 6 β”‚ β”‚ Yes
2011 β”‚ Suits β”‚ Season 1, Season 2, Season 3, Season 4, Season 5, Season 6, β”‚ β”‚ Yes
β”‚ β”‚ Season 7, Season 8, Season 9 β”‚ β”‚
2014 β”‚ The Flash (2014) β”‚ Season 1, Season 2, Season 3, Season 4, Season 5, Season 6, β”‚ S08E01, S08E02, S08E03, S08E04, S08E05 β”‚ No
β”‚ β”‚ Season 7 β”‚ β”‚
2013 β”‚ Orange Is the New Black β”‚ Season 1, Season 2, Season 3, Season 4, Season 5, Season 6, β”‚ β”‚ Yes
β”‚ β”‚ Season 7 β”‚ β”‚
2013 β”‚ Rick and Morty β”‚ Season 1, Season 2, Season 3, Season 4, Season 5 β”‚ β”‚ No
2005 β”‚ The Office (US) β”‚ Season 1, Season 2, Season 3, Season 4, Season 5, Season 6, β”‚ β”‚ Yes
β”‚ β”‚ Season 7, Season 8, Season 9 β”‚ β”‚
1997 β”‚ South Park β”‚ Season 1, Season 2, Season 18, Season 19, Season 20, Season β”‚ β”‚ No
β”‚ β”‚ 21 β”‚ β”‚
2013 β”‚ The Blacklist β”‚ Season 1, Season 2, Season 3, Season 4, Season 5, Season 6, β”‚ S09E01, S09E02, S09E03 β”‚ No
β”‚ β”‚ Season 7, Season 8 β”‚ β”‚
2015 β”‚ Better Call Saul β”‚ Season 1, Season 2, Season 3, Season 4, Season 5 β”‚ β”‚ No
2014 β”‚ Gotham β”‚ Season 1, Season 2, Season 4, Season 5 β”‚ S03E01, S03E02, S03E03, S03E04, S03E05, S03E06, S03E07, β”‚ Yes
β”‚ β”‚ β”‚ S03E08, S03E09, S03E10, S03E11, S03E12, S03E13, S03E14, β”‚
β”‚ β”‚ β”‚ S03E15, S03E16, S03E17, S03E18, S03E19, S03E20, S03E21 β”‚
2005 β”‚ Avatar: The Last Airbender β”‚ Season 1, Season 2, Season 3 β”‚ β”‚ Yes
2014 β”‚ Fargo β”‚ Season 1, Season 2, Season 3, Season 4 β”‚ β”‚ No
β•΅ β•΅ β•΅ β•΅
Are you sure you want to re monitor the listed series? [y/n] (n): y
Succesfully changed the status of the series listed in Sonarr to monitored!
```

> NOTE: If you want to exclude any of the series listed in the table, just copy the title and paste it in your configuration file under `sonarr -> excludes`.

## Docker

To use this setup using Docker, you can use the `haijeploeg/excludarr` container. You can use the following environment variables:

Variable | Default | Description
--- | --- | ---
GENERAL_FAST_SEARCH | true | Enable or disable fast search, can be `true` or `false`.
GENERAL_LOCALE | en_US | The locale to use, can also be a two letter country code.
GENERAL_PROVIDERS | Netflix | Comma seperated list of providers. e.g. `GENERAL_PROVIDERS=netflix, amazon prime video`.
TMDB_API_KEY | - | Your TMDB API key. This setting is optional and only used in fallback scenario's.
RADARR_URL | http://localhost:7878 | The Radarr URL.
RADARR_API_KEY | secret | Your Radarr API Key.
RADARR_VERIFY_SSL | false | To enable SSL verify, can be `true` or `false`.
RADARR_EXCLUDE | - | Comma seperated list of movies to exclude in the process of Excludarr, e.g. `RADARR_EXCLUDE=The Matrix, F9`.
SONARR_URL | http://localhost:8989 | The Sonarr URL.
SONARR_API_KEY | secret | Your Sonarr API Key.
SONARR_VERIFY_SSL | false | To enable SSL verify, can be `true` or `false`.
SONARR_EXCLUDE | - | Comma seperated list of series to exclude in Excludarr, e.g. `SONARR_EXCLUDE=Breaking Bad, Game of Thrones`.
CRON_MODE | false | Wether to run the docker container using cron. This is useful for docker-compose.

You can put those variables in a env file (e.g. `excludarr.env`) and use it in a command (recommended way). Look the [docker_example.env](.examples/docker_example.env) for an example. If you have set your variables properly, you can execute excludarr in docker by just adding the command and paramaters at the end of the docker command. Example:

```bash
docker run -it --rm --env-file excludarr.env haijeploeg/excludarr:latest radarr exclude -a delete -d -e --progress
docker run -it --rm --env-file excludarr.env haijeploeg/excludarr:latest sonarr exclude -a not-monitored
```

### Docker compose

Excludarr can run in cron mode using docker-compose. Using this method the container keeps running and wakes up when you want to run a scheduled command. To use this method you can create a [crontab](.examples/crontab) file and mount it to `/etc/excludarr/crontab` in the container. Make sure you run the command unattended (with the `-y` flag!)

```bash
$ cat crontab

# minute hour day month weekday command
0 1 * * * excludarr sonarr exclude -a delete -d -e -y
0 2 * * * excludarr radarr exclude -a delete -d -e -y
```

Your docker-compose file can look like [this](.examples/docker-compose-example.yml). Make sure you set the `CRON_MODE` environment setting!

```bash
$ cat docker-compose.yml

version: "3"
services:
excludarr:
image: haijeploeg/excludarr
container_name: excludarr
environment:
- GENERAL_FAST_SEARCH=true
- GENERAL_LOCALE=en_NL
- GENERAL_PROVIDERS=netflix, amazon prime video
- RADARR_URL=http://radarr.example.com:7878
- RADARR_API_KEY=secret
- RADARR_VERIFY_SSL=false
- SONARR_URL=http://sonarr.example.com:8989
- SONARR_API_KEY=secret
- SONARR_VERIFY_SSL=false
- SONARR_EXCLUDE="Queen of the South, Breaking Bad"
- CRON_MODE=true
volumes:
- ./crontab:/etc/excludarr/crontab
restart: unless-stopped
```

With the above configuration the container will execute `excludarr sonarr exclude -a delete -d -e -y` every day at 01:00 and `excludarr radarr exclude -a delete -d -e -y` every day at 02:00.

## FAQ

Below are some frequently asked questions. Please look if your question is listed below before you submit an issue.

##

**Q:** I used the `--legacy` flag before, where can I find it in excludarr v1.0.0?

**A:** Excludarr will now automatically fall back to the legacy delete option if a bulk delete is not possible.

##

**Q:** Where is the `check` command?

**A:** The check command has been replaced by `re-add`.

##

**Q:** When excluding series there are no seasons or episodes displayed, what will excludarr do?

**A:** When there are no seasons and episodes displayed this means that excludarr will disable monitoring of the serie if the serie is not ended yet. When a serie is ended and the action was delete, Excludarr will delete the whole serie. When a serie is ended and the action is not-monitored, Excludarr will disable monitoring of the whole serie.

##

**Q:** Can I also exclude movies and series from being processed by Excludarr?

**A:** Yes, by using the `exclude` setting in the configuration file. You can set the `exclude` setting under the `radarr` and `sonarr` configuration section. You can see the example [excludarr-example.yml](.examples/excludarr-example.yml) file in this repo.

##

**Q:** How can I know what providers I can use in the configuration file?

**A:** You can list all the available providers for your specific locale using the `excludarr providers list` command. This should give you a list of all the available providers. Simply copy the full name and insert it in the configuration file.

##

**Q:** Does excludarr still support Sonarr V2?

**A:** No, Sonarr V2 is EOL (End Of Life) and therefor not supported by Excludarr. Please upgrade to Sonarr V3 by reading the [upgrade guide](https://forums.sonarr.tv/t/v3-is-now-officially-stable-v2-is-eol/27858)

##