The documentation here is for an unreleased version of Recyclarr.
Visit the documentation site for the Current Version instead.Configuration Examples
Various scenarios supported using flexible configuration structure:
- Update as much as possible in both Sonarr and Radarr with a single config
- Adding additional qualities to a template
- Synchronize a lot of custom formats for a single quality profile
- Manually assign different scores to multiple custom formats
- Assign custom format scores the same way to multiple quality profiles
- Scores in a quality profile should be set to zero if it wasn't listed in config
- What does the file structure look like with multiple YAML configuration files?
- Merge multiple config templates into a single file with a single instance
Update as much as possible in both Sonarr and Radarr with a single config
Create a single configuration file (use the default recyclarr.yml
if you want to simplify your CLI
usage by not being required to specify --config
) and put all of the configuration in there. This
example refers to sensitive values by using a secrets.yml
file.
sonarr:
main:
base_url: !secret sonarr_url
api_key: !secret sonarr_apikey
quality_definition:
type: series
custom_formats:
- trash_ids:
# Unwanted
- 85c61753df5da1fb2aab6f2a47426b09 # BR-DISK
- 9c11cd3f07101cdba90a2d81cf0e56b4 # LQ
- e2315f990da2e2cbfc9fa5b7a6fcfe48 # LQ (Release Title)
- 47435ece6b99a0b477caf360e79ba0bb # x265 (HD)
- fbcb31d8dabd2a319072b84fc0b7249c # Extras
assign_scores_to:
- name: WEB-1080p
radarr:
main:
base_url: !secret radarr_url
api_key: !secret radarr_apikey
quality_definition:
type: movie
preferred_ratio: 0.5
custom_formats:
- trash_ids:
# HQ Release Groups
- ed27ebfef2f323e964fb1f61391bcb35 # HD Bluray Tier 01
- c20c8647f2746a1f4c4262b0fbbeeeae # HD Bluray Tier 02
- 5608c71bcebba0a5e666223bae8c9227 # HD Bluray Tier 03
- c20f169ef63c5f40c2def54abaf4438e # WEB Tier 01
- 403816d65392c79236dcb6dd591aeda4 # WEB Tier 02
- af94e0fe497124d1f9ce732069ec8c3b # WEB Tier 03
assign_scores_to:
- name: HD
Even though it's all in one file, Radarr settings are ignored when you run recyclarr sync sonarr
and vice versa. To update both use recyclarr sync
(without the positional argument).
Adding additional qualities to a template
Scenario: I want to use a pre-built Recyclarr template for Sonarr, but would like to add additional qualities to the profile.
Solution:
There are two options. The first is to disable the quality profile include in the template, which will stop it from syncing:
sonarr:
web-1080p-v4:
base_url: !secret sonarr_url
api_key: !secret sonarr_apikey
include:
# Comment out any of the following includes to disable them
- template: sonarr-quality-definition-series
# - template: sonarr-v4-quality-profile-web-1080p (commented out so disabled)
- template: sonarr-v4-custom-formats-web-1080p
Qualities can then be managed directly in Sonarr.
The second option is to write a new quality_profile
, and add it to the template:
sonarr:
web-1080p-v4:
base_url: !secret sonarr_url
api_key: !secret sonarr_apikey
include:
# Comment out any of the following includes to disable them
- template: sonarr-quality-definition-series
- template: sonarr-v4-quality-profile-web-1080p
- template: sonarr-v4-custom-formats-web-1080p
quality_profiles:
- name: WEB-1080p
qualities:
- name: WEB 1080p
qualities:
- WEBDL-1080p
- WEBRip-1080p
- name: Bluray-1080p
- name: Bluray-720p
You must include all qualities that you want to be present in the quality profile. This is
because quality_profile
s replace those from a referenced include.
Synchronize a lot of custom formats for a single quality profile
Scenario: I want to be able to synchronize a list of custom formats to Radarr. In addition, I want the scores in the guide to be applied to a single quality profile.
Solution:
radarr:
main:
base_url: !secret radarr_url
api_key: !secret radarr_apikey
custom_formats:
# Advanced Audio from the guide
- trash_ids:
- 496f355514737f7d83bf7aa4d24f8169 # TrueHD ATMOS
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
- 417804f7f2c4308c1f4c5d380d4c4475 # ATMOS (undefined)
- 1af239278386be2919e1bcee0bde047e # DD+ ATMOS
- 3cafb66171b47f226146a0770576870f # TrueHD
- dcf3ec6938fa32445f590a4da84256cd # DTS-HD MA
- a570d4a0e56a2874b64e5bfa55202a1b # FLAC
- e7c2fcae07cbada050a0af3357491d7b # PCM
- 8e109e50e0a0b83a5098b056e13bf6db # DTS-HD HRA
- 185f1dd7264c4562b9022d963ac37424 # DD+
- f9f847ac70a0af62ea4a08280b859636 # DTS-ES
- 1c1a4c5e823891c75bc50380a6866f73 # DTS
- 240770601cc226190c367ef59aba7463 # AAC
- c2998bd0d90ed5621d8df281e839436e # DD
assign_scores_to:
- name: HD
Manually assign different scores to multiple custom formats
Scenario: "I want to synchronize custom formats to Radarr or Sonarr. I also do not want to use the scores in the guide for some of the CFs. Instead, I want to assign my own distinct score to some custom formats in a single quality profile."
Solution:
radarr:
main:
base_url: !secret radarr_url
api_key: !secret radarr_apikey
custom_formats:
# Take scores in the guide for these 3
- trash_ids:
- 3cafb66171b47f226146a0770576870f # TrueHD
- dcf3ec6938fa32445f590a4da84256cd # DTS-HD MA
- a570d4a0e56a2874b64e5bfa55202a1b # FLAC
assign_scores_to:
- name: Ultra-HD
# Assign manual scores to the 3 below CFs, each added to the same profile
- trash_ids: [496f355514737f7d83bf7aa4d24f8169] # TrueHD ATMOS
assign_scores_to:
- name: Ultra-HD
score: 100
- trash_ids: [2f22d89048b01681dde8afe203bf2e95] # DTS X
assign_scores_to:
- name: Ultra-HD
score: 200
- trash_ids: [417804f7f2c4308c1f4c5d380d4c4475] # ATMOS (undefined)
assign_scores_to:
- name: Ultra-HD
score: 300
The configuration is structured around assigning multiple custom formats the same way to just a few quality profiles. It starts to look more redundant and ugly when you want fine-grained control over the scores, especially if its on a per-single-custom-format basis.
Assign custom format scores the same way to multiple quality profiles
You can assign custom format scores (from the guide) to multiple profiles (all the same way):
radarr:
main:
base_url: !secret radarr_url
api_key: !secret radarr_apikey
custom_formats:
- trash_ids:
- 496f355514737f7d83bf7aa4d24f8169 # TrueHD ATMOS
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
- 417804f7f2c4308c1f4c5d380d4c4475 # ATMOS (undefined)
- 1af239278386be2919e1bcee0bde047e # DD+ ATMOS
- 3cafb66171b47f226146a0770576870f # TrueHD
assign_scores_to:
- name: HD
- name: Ultra-HD
Quality profiles named HD
and Ultra-HD
will all receive the same scores for the same custom
formats.
You can also choose to override the score (for all custom formats!) in one profile:
radarr:
main:
base_url: !secret radarr_url
api_key: !secret radarr_apikey
custom_formats:
- trash_ids:
- 496f355514737f7d83bf7aa4d24f8169 # TrueHD ATMOS
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
- 417804f7f2c4308c1f4c5d380d4c4475 # ATMOS (undefined)
- 1af239278386be2919e1bcee0bde047e # DD+ ATMOS
- 3cafb66171b47f226146a0770576870f # TrueHD
assign_scores_to:
- name: HD
score: 100 # This score is assigned to all 5 CFs in this profile
- name: Ultra-HD # Still uses scores from the guide
Scores in a quality profile should be set to zero if it wasn't listed in config
Scenario: "I want only the custom formats I assign to a quality profile to be assigned scores. Scores for other custom formats, including those I manually assign, should be reset back to zero."
radarr:
main:
base_url: !secret radarr_url
api_key: !secret radarr_apikey
quality_profiles:
- name: HD
reset_unmatched_scores: true
custom_formats:
- trash_ids:
# - a570d4a0e56a2874b64e5bfa55202a1b # FLAC (commented out so disabled)
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
- 3cafb66171b47f226146a0770576870f # TrueHD
assign_scores_to:
- name: HD
- name: Ultra-HD
Let's say you have three custom formats added to Radarr: "FLAC", "DTS X", and "TrueHD". Since only
two are listed in the trash_ids
array ("FLAC" is commented out, so it is disabled), what happens
to "FLAC"? Since two quality profiles are specified above, each with a different setting for
reset_unmatched_scores
, the behavior will be different:
- The
HD
quality profile will always have the score for "FLAC" set to zero (0
). - The
Ultra-HD
quality profile's score for "FLAC" will never be altered.
The reset_unmatched_scores
setting basically determines how scores are handled for custom formats
that exist in Radarr but are not in the list of trash_ids
in config. As shown in the example
above, you set it to true
which results in unmatched scores being set to 0
, or you can set it to
false
(or leave it omitted) in which case Recyclarr will not alter the value.
Which one should you use? That depends on how much control you want Recyclarr to have. If you use
Recyclarr to supplement manual changes to your profiles, you probably want it set to false
so it
doesn't clobber your manual edits. Otherwise, set it to true
so that scores aren't left over when
you add/remove custom formats from a profile.
What does the file structure look like with multiple YAML configuration files?
Suppose you want to use recyclarr.yml
and multiple YAML files in the configs
directory, as
documented on the File Structure page. What would that file
structure look like?
Using docker as an example, it would look like this:
.
└── config/
├── cache/
├── repo/
├── configs/
│ ├── radarr.yml
│ └── sonarr.yml
├── includes/
│ ├── radarr_include.yml
│ └── sonarr_include.yml
└── recyclarr.yml
In the above example:
- Recyclarr will load the
recyclarr.yml
file inconfig/
, as well as both YAML files inconfigs/
. - Each YAML file may contain any number of Radarr and/or Sonarr instances.
- The names of the YAML files under
configs/
can be whatever you want. - The YAML files under
includes/
are not loaded, but can be referenced.
Merge multiple config templates into a single file with a single instance
Use case: You have multiple template files, created from recyclarr config create --template
. You
want all of those files to be merged into a single YAML file (e.g. recyclarr.yml
). Instead of
multiple instances, you want all configuration to be for a single (the same) instance.
Examples below are for Radarr, but the process is the same for Sonarr as well.
Let's say you start with two files.
remux-web-1080p.yml
:
radarr:
radarr_hd:
base_url: !secret radarr_hd_url
api_key: !secret radarr_hd_apikey
quality_definition:
type: movie
quality_profiles:
- name: Remux + WEB 1080p
reset_unmatched_scores: true
custom_formats:
- trash_ids:
- 0f12c086e289cf966fa5948eac571f44 # Hybrid
- 570bc9ebecd92723d2d21500f4be314c # Remaster
assign_scores_to:
- name: Remux + WEB 1080p
uhd-bluray-web.yml
:
radarr:
radarr_uhd:
base_url: !secret radarr_uhd_url
api_key: !secret radarr_uhd_apikey
quality_definition:
type: movie
quality_profiles:
- name: UHD Bluray + WEB
reset_unmatched_scores: true
custom_formats:
- trash_ids:
- e23edd2482476e595fb990b12e7c609c # DV HDR10
- 58d6a88f13e2db7f5059c41047876f00 # DV
assign_scores_to:
- name: UHD Bluray + WEB
Merging these files is a little bit involved. You can't just move whole blocks of YAML into another
file. The sections directly under the instance name (e.g. uhd-bluray-web
) need to be merged
together without duplicating them. For example, don't introduce a second quality_profiles:
block.
Combine the contents to form a single section. Also note that some sections, like
quality_definition
, cannot be merged. If the two files use a different quality definition, you
must choose one or the other.
The final merged file would look like below.
radarr:
radarr_merged:
base_url: !secret radarr_merged_url
api_key: !secret radarr_merged_apikey
quality_definition:
type: movie
quality_profiles:
- name: UHD Bluray + WEB
reset_unmatched_scores: true
- name: Remux + WEB 1080p
reset_unmatched_scores: true
custom_formats:
- trash_ids:
- e23edd2482476e595fb990b12e7c609c # DV HDR10
- 58d6a88f13e2db7f5059c41047876f00 # DV
assign_scores_to:
- name: UHD Bluray + WEB
- trash_ids:
- 0f12c086e289cf966fa5948eac571f44 # Hybrid
- 570bc9ebecd92723d2d21500f4be314c # Remaster
assign_scores_to:
- name: Remux + WEB 1080p
What was done:
quality_definition
(in this case) both happened to usemovie
, so we simply left this one alone.quality_profiles
was combined. We added the element from the first file into the existing sequence.custom_formats
was combined similar toquality_profiles
.