/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.

Primary LanguagePythonMIT LicenseMIT

License release Docker PyPI version PyPI - Downloads Docker Pulls

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

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.

pip install excludarr

Configuration

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

/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 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.

$ 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.

$ 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.

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.

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 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:

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 file and mount it to /etc/excludarr/crontab in the container. Make sure you run the command unattended (with the -y flag!)

$ 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. Make sure you set the CRON_MODE environment setting!

$ 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 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: https://forums.sonarr.tv/t/v3-is-now-officially-stable-v2-is-eol/27858