diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5be2497..0f131ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -88,25 +88,6 @@ that needs to be hard-wrapped and press `ALT+Q`. [Rewrap]: https://marketplace.visualstudio.com/items?itemName=stkb.rewrap -### Version Requirements - -When documenting features, especially when that feature has not been released yet, it's important to -call out specific version requirements. There's almost always a minimum version requirement. - -Using the `:::note` admonition, follow the example below to point out the minimum version required. -Typically this should be done at the top of a section under a heading or page that describes the -feature. - -Example: - -```md -:::note Version Requirement - -This functionality requires `v3.0.0` or greater! - -::: -``` - ### Admonitions Admonitions are the colored sections of text in the guide (Info, Caution, etc). Docusaurus documents diff --git a/docs/behavior/include.md b/docs/behavior/include.md index 0bf463f..d86d606 100644 --- a/docs/behavior/include.md +++ b/docs/behavior/include.md @@ -227,7 +227,6 @@ semantics, those will be documented in later sections. This will especially be t | `quality_definition` | Mapping | Union | | `delete_old_custom_formats` | Scalar | Replace | | `replace_existing_custom_formats` | Scalar | Replace | -| `release_profiles` | Sequence | Add | | `media_naming` | Mapping | Union | ### Quality Definition {#quality-definition} diff --git a/docs/behavior/release-profiles.md b/docs/behavior/release-profiles.md deleted file mode 100644 index 4ae9f5c..0000000 --- a/docs/behavior/release-profiles.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: release-profiles -title: Release Profiles ---- - -## Naming - -The script procedurally generates a name for release profiles it creates. For the following example: - -```txt -[Trash] Anime - First Release Profile -``` - -The name is generated as follows: - -- `[Trash]` is added by Recyclarr to indicate that this Release Profile is created and managed by - it. This prefix exists to separate it from any Release Profiles the user may have manually - created (which Recyclarr will not touch). -- `Anime - First Release Profile` is the name of the Release Profile (taken from the `name` property - of its corresponding JSON file). diff --git a/docs/cli/list/index.md b/docs/cli/list/index.md index 76f5c2d..06a25ef 100644 --- a/docs/cli/list/index.md +++ b/docs/cli/list/index.md @@ -15,6 +15,5 @@ Provides a series of commands used to list information in the guide. ## Commands - [recyclarr list custom-formats](list-custom-formats.md) -- [recyclarr list release-profiles](list-release-profiles.md) - [recyclarr list qualities](list-qualities.md) - [recyclarr list naming](list-naming.md) diff --git a/docs/cli/list/list-release-profiles.md b/docs/cli/list/list-release-profiles.md deleted file mode 100644 index 8286f29..0000000 --- a/docs/cli/list/list-release-profiles.md +++ /dev/null @@ -1,96 +0,0 @@ ---- -id: release-profiles -title: recyclarr list release-profiles ---- - -## Usage - -```js -recyclarr list release-profiles [OPTIONS] -``` - -## Description - -Prints a list of all [available Sonarr Release Profiles][sonarrjson] from the TRaSH Guides in YAML -format, ready to be copied & pasted directly into your `recyclarr.yml` file. Here is an example of -the output you will see: - -```txt -List of Release Profiles in the TRaSH Guides: - - - EBC725268D687D588A20CBC5F97E538B # Low Quality Groups - - 76e060895c5b8a765c310933da0a5357 # Optionals - - 71899E6C303A07AF0E4746EFF9873532 # P2P Groups + Repack/Proper - - 1B018E0C53EC825085DD911102E2CA36 # Release Sources (Streaming Service) - - d428eda85af1df8904b4bbe4fc2f537c # Anime - First release profile - - 6cd9e10bb5bb4c63d2d7cd3279924c7b # Anime - Second release profile - -The above Release Profiles are in YAML format and ready to be copied & pasted under the `trash_ids:` property. -``` - -You can copy & paste these directly into your `recyclarr.yml` like this: - -```yml -sonarr: - main: - base_url: http://127.0.0.1:8989/sonarr - api_key: 2424b3643507485ea2e06382d3f0b8a3 - release_profiles: - - trash_ids: - - d428eda85af1df8904b4bbe4fc2f537c # Anime - First release profile - - 6cd9e10bb5bb4c63d2d7cd3279924c7b # Anime - Second release profile -``` - -## Options - -Also visit [Common Options](../common.md) to read about options usable by all commands. - -### `--terms` {#terms} - -Prints a list of all terms (that have been assigned their own Trash IDs) for the Release Profile -with the specified Trash ID. Run the `release-profiles` command without the `--terms` option first -to get a list of the [available Sonarr Release Profiles][sonarrjson] from the TRaSH Guides. Copy one -of the Trash ID values from there and provide it as the argument to this command to get its list of -terms. The terms are printed in YAML format, ready to be copied & pasted directly into your -`recyclarr.yml` file. Here is an example of the output you will see: - -```txt -List of Terms for the 'Optionals' Release Profile that may be filtered: - -Ignored Terms: - - - cec8880b847dd5d31d29167ee0112b57 # Golden rule - - 436f5a7d08fbf02ba25cb5e5dfe98e55 # Ignore Dolby Vision without HDR10 fallback. - - f3f0f3691c6a1988d4a02963e69d11f2 # Ignore The Group -SCENE - - 5bc23c3a055a1a5d8bbe4fb49d80e0cb # Ignore so called scene releases - -Preferred Terms: - - - ea83f4740cec4df8112f3d6dd7c82751 # Prefer Season Packs - - bc7a6383cbe88c3ee2d6396e1aacc0b3 # Prefer HDR - - fa47da3377076d82d07c4e95b3f13d07 # Prefer Dolby Vision - - 6f2aefa61342a63387f2a90489e90790 # Dislike retags: rartv, rarbg, eztv, TGx - - 19cd5ecc0a24bf493a75e80a51974cdd # Dislike retagged groups - - 6a7b462c6caee4a991a9d8aa38ce2405 # Dislike release ending: en - - 236a3626a07cacf5692c73cc947bc280 # Dislike release containing: 1- - -The above Term Filters are in YAML format and ready to be copied & pasted under the `include:` or `exclude:` filter properties. -``` - -You can copy & paste the lists above directly into your YAML under the desired `include:` or -`exclude:` filter sections. See the example below. - -```yml -sonarr: - main: - base_url: http://127.0.0.1:8989/sonarr - api_key: 2424b3643507485ea2e06382d3f0b8a3 - release_profiles: - - trash_ids: [76e060895c5b8a765c310933da0a5357] # Optionals - filter: - include: - - 436f5a7d08fbf02ba25cb5e5dfe98e55 # Ignore Dolby Vision without HDR10 fallback - - f3f0f3691c6a1988d4a02963e69d11f2 # Ignore The Group -SCENE -``` - -[sonarrjson]: https://github.com/TRaSH-/Guides/tree/master/docs/json/sonarr/rp diff --git a/docs/cli/sync.md b/docs/cli/sync.md index 4de1b45..ae8d969 100644 --- a/docs/cli/sync.md +++ b/docs/cli/sync.md @@ -66,55 +66,12 @@ recyclarr sync -c ../myconfig1.yml -c "files/my config 2.yml" ### `-p|--preview` {#preview} -Performs a "dry run" by parsing the guide and printing the parsed data in a readable format to the -user. This does *not* perform any API calls to Radarr or Sonarr. You may want to run a preview if -you'd like to see if the guide is parsed correctly and preview changes that will be made before -updating your instance. +Instructs Recyclarr to perform all the work it normally would do during a sync, except it won't +update your actual instance configuration. This gives you the opportunity to see what Recyclarr +would do without actually committing those changes. -Example output for Sonarr Release Profile parsing - -```txt -First Release Profile - Include Preferred when Renaming? - CHECKED - - Must Not Contain: - /(\[EMBER\]|-EMBER\b|DaddySubs)/i - - Preferred: - 100 /\b(amzn|amazon)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i - 90 /\b(dsnp|dsny|disney)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i - -Second Release Profile - Include Preferred when Renaming? - NOT CHECKED - - Preferred: - 180 /(-deflate|-inflate)\b/i - 150 /(-AJP69|-BTN|-CasStudio|-CtrlHD|-KiNGS)\b/i - 150 /(-monkee|-NTb|-NTG|-QOQ|-RTN)\b/i -``` - -Example output for Sonarr Quality Definition parsing - -```txt -Quality Min Max -------- --- --- -HDTV-720p 2.3 67.5 -HDTV-1080p 2.3 137.3 -WEBRip-720p 4.3 137.3 -WEBDL-720p 4.3 137.3 -Bluray-720p 4.3 137.3 -WEBRip-1080p 4.5 257.4 -WEBDL-1080p 4.3 253.6 -Bluray-1080p 4.3 258.1 -Bluray-1080p Remux 0 400 -HDTV-2160p 69.1 350 -WEBRip-2160p 69.1 350 -WEBDL-2160p 69.1 350 -Bluray-2160p 94.6 400 -Bluray-2160p Remux 204.4 400 -``` +Note that, in this mode, Recyclarr will still make API calls to services but only to *fetch* data; +it will never invoke the API to make actual changes. ### `-i|--instance` {#instance} diff --git a/docs/features.md b/docs/features.md index dd7e9b6..073ee6f 100644 --- a/docs/features.md +++ b/docs/features.md @@ -4,9 +4,26 @@ title: Features sidebar_position: 2 --- +## Compatibility + +Recyclarr is compatible with the following services and versions. + +| Service | Minimum Version | +| ------- | --------------- | +| Sonarr | `v4.0.0` | +| Radarr | `v3.0.0` | + +:::info + +Sonarr v3 is no longer supported by Recyclarr starting with version v7.0! + +::: + +## Supported Features + A comprehensive list of features in Recyclarr. -## Custom Formats +### Custom Formats - A user-specified list of custom formats are synchronized to Sonarr from the TRaSH guides. - Scores from the guides can be synchronized to quality profiles of your choosing. @@ -14,55 +31,33 @@ A comprehensive list of features in Recyclarr. - Option to enable automatic deletion custom formats in Sonarr when they are removed from config or the guide. -## Quality Profiles +### Quality Profiles - Create and modify quality profiles. -- Compatible with Sonarr v3. - Sync profile fields: "Upgrade Allowed", "Upgrade Until Custom Format Score", "Upgrade Until Quality", "Minimum Custom Format Score". - Sync Qualities and Quality Groups. - Option to choose multiple sort algorithms for qualities. -## Quality Definitions +### Quality Definitions - Guide-provided quality definitions, such as Anime, Series (Non-Anime), and Movies. -## Release Profiles - -:::info - -Sonarr v3 Only - -::: - -- "Preferred", "Must Not Contain", and "Must Contain" terms from guides are reflected in - corresponding release profile fields in Sonarr. -- "Include Preferred when Renaming" is properly checked/unchecked depending on explicit mention of - this in the guides. -- Release Profiles get created if they do not exist, or updated if they already exist. -- Tags can be added to any updated or created profiles. Tags are created for you if they do not - exist. -- Ability to convert preferred with negative scores to "Must not contain" terms. -- Terms mentioned as "optional" in the guide can be selectively included or excluded; based entirely - on user preference. -- Convenient command line options to get information from the guide to more easily add it to your - YAML configuration. - -## Media Naming +### Media Naming - Sync media naming formats from the guides, such as file and folder naming. - Ability to exclude sync for specific naming formats to manage them manually. - Preview functionality to show what will be synced before doing it. -## Command Line Operations +### Command Line Operations -- A `list` command for showing available custom formats, release profiles, media naming formats, and - quality definitions available in the TRaSH Guides. +- A `list` command for showing available custom formats, media naming formats, and quality + definitions available in the TRaSH Guides. - A `delete` command providing ways to delete stuff from Radarr & Sonarr, such as custom formats. - A `config` command for managing configuration YAML files, including creating new configuration files from pre-made templates. -## YAML Features +### YAML Features - Use environment variables in your configuration via `!env_var`. - Specify and store secret values (such as API keys) using `!secret`. diff --git a/docs/troubleshooting/reporting-issues.md b/docs/troubleshooting/reporting-issues.md index cd9df75..04e97f5 100644 --- a/docs/troubleshooting/reporting-issues.md +++ b/docs/troubleshooting/reporting-issues.md @@ -97,7 +97,7 @@ particular, the Base URL and API Key for each service you've configured. Typical this information shared to others when you request help or file bug reports on Github. As such, you should ensure that this information is redacted. You can do this in multiple ways. -- Use [secrets](/yaml/secrets-reference.md) (requires `v3.0` or higher) +- Use [secrets](/yaml/secrets-reference.md) - Manually edit your YAML before sharing it to redact `base_url` and `api_key` values. ## Reporting Issues diff --git a/docs/upgrade-guide/v7.0.md b/docs/upgrade-guide/v7.0.md index 5f891ef..6732e72 100644 --- a/docs/upgrade-guide/v7.0.md +++ b/docs/upgrade-guide/v7.0.md @@ -45,7 +45,7 @@ for you. [mig]: ../behavior/migration-system.md [cmd]: ../cli/migrate.md -### Removed Sonarr v3 Support +### Removed Sonarr v3 Support {#sonarr-v3-removal} With this release, Sonarr version 3 support has been completely dropped. The most impactful aspect of this is the removal of Release Profile syncing. If you're already running Sonarr v4, then there diff --git a/docs/yaml/config-reference/basic.md b/docs/yaml/config-reference/basic.md index 6e0985f..6e7c148 100644 --- a/docs/yaml/config-reference/basic.md +++ b/docs/yaml/config-reference/basic.md @@ -6,7 +6,6 @@ sidebar_position: 1 | Service | Supported | | ----------- | :------------------------------------------------------: | -| Sonarr (v3) | | | Sonarr (v4) | | | Radarr | | diff --git a/docs/yaml/config-reference/custom-formats.md b/docs/yaml/config-reference/custom-formats.md index 68d709a..e7c8869 100644 --- a/docs/yaml/config-reference/custom-formats.md +++ b/docs/yaml/config-reference/custom-formats.md @@ -6,7 +6,6 @@ sidebar_position: 2 | Service | Supported | | ----------- | :------------------------------------------------------: | -| Sonarr (v3) | | | Sonarr (v4) | | | Radarr | | diff --git a/docs/yaml/config-reference/include.md b/docs/yaml/config-reference/include.md index f7a717f..75688aa 100644 --- a/docs/yaml/config-reference/include.md +++ b/docs/yaml/config-reference/include.md @@ -6,7 +6,6 @@ sidebar_position: 6 | Service | Supported | | ----------- | :------------------------------------------------------: | -| Sonarr (v3) | | | Sonarr (v4) | | | Radarr | | diff --git a/docs/yaml/config-reference/index.md b/docs/yaml/config-reference/index.md index f6957bf..1f10e66 100644 --- a/docs/yaml/config-reference/index.md +++ b/docs/yaml/config-reference/index.md @@ -61,6 +61,5 @@ Add this comment to the top of your YAML file: - [Custom Formats](custom-formats.md) - [Quality Definition](quality-definition.md) - [Quality Profiles](quality-profiles.md) -- [Release Profiles](release-profiles.md) - [Include](include.md) - [Media Naming](media-naming.md) diff --git a/docs/yaml/config-reference/media-naming.md b/docs/yaml/config-reference/media-naming.md index 85ba0e8..523e125 100644 --- a/docs/yaml/config-reference/media-naming.md +++ b/docs/yaml/config-reference/media-naming.md @@ -6,7 +6,6 @@ sidebar_position: 7 | Service | Supported | | ----------- | :------------------------------------------------------: | -| Sonarr (v3) | | | Sonarr (v4) | | | Radarr | | diff --git a/docs/yaml/config-reference/quality-definition.md b/docs/yaml/config-reference/quality-definition.md index 417350e..92c1372 100644 --- a/docs/yaml/config-reference/quality-definition.md +++ b/docs/yaml/config-reference/quality-definition.md @@ -6,7 +6,6 @@ sidebar_position: 3 | Service | Supported | | ----------- | :------------------------------------------------------: | -| Sonarr (v3) | | | Sonarr (v4) | | | Radarr | | diff --git a/docs/yaml/config-reference/quality-profiles.md b/docs/yaml/config-reference/quality-profiles.md index 4664553..0a394da 100644 --- a/docs/yaml/config-reference/quality-profiles.md +++ b/docs/yaml/config-reference/quality-profiles.md @@ -6,7 +6,6 @@ sidebar_position: 4 | Service | Supported | | ----------- | :------------------------------------------------------: | -| Sonarr (v3) | | | Sonarr (v4) | | | Radarr | | @@ -121,12 +120,6 @@ used with this property. Visit the [relevant CLI reference page][cliscoresets] f ## `min_format_score` {#min-format-score} -:::caution - -This property is **not supported** with Sonarr v3! - -::: - **Optional.** *Default: leave existing value untouched* Correlates directly to the "Minimum Custom Format Score" field in the Quality Profile edit dialog in @@ -161,12 +154,6 @@ list, this property is optional and will leave your manually set cutoff alone. ## `until_score` {#until-score} -:::caution - -This property is **not supported** with Sonarr v3! - -::: - **Optional.** *Default: leave existing value untouched* Correlates directly to the "Upgrade Until Custom Format Score" field in the Quality Profile edit diff --git a/docs/yaml/config-reference/release-profiles.md b/docs/yaml/config-reference/release-profiles.md deleted file mode 100644 index 1fe0e12..0000000 --- a/docs/yaml/config-reference/release-profiles.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -id: release-profiles -title: Release Profiles -sidebar_position: 5 ---- - -| Service | Supported | -| ----------- | :------------------------------------------------------: | -| Sonarr (v3) | | -| Sonarr (v4) | | -| Radarr | | - -```yml -# See "Basic Setup" for `service_type` and `instance_name` -service_type: - instance_name: - # Release Profile Configuration - release_profiles: - - trash_ids: - - d428eda85af1df8904b4bbe4fc2f537c # Anime - First release profile - - 6cd9e10bb5bb4c63d2d7cd3279924c7b # Anime - Second release profile - strict_negative_scores: true - tags: [anime] - - trash_ids: - - EBC725268D687D588A20CBC5F97E538B # Low Quality Groups - - 1B018E0C53EC825085DD911102E2CA36 # Release Sources (Streaming Service) - - 71899E6C303A07AF0E4746EFF9873532 # P2P Groups + Repack/Proper - strict_negative_scores: false - tags: [tv] - - trash_ids: [76e060895c5b8a765c310933da0a5357] # Optionals - filter: - include: - - 436f5a7d08fbf02ba25cb5e5dfe98e55 # Ignore Dolby Vision without HDR10 fallback - - f3f0f3691c6a1988d4a02963e69d11f2 # Ignore The Group -SCENE - tags: [tv] -``` - -**Optional.** *Default: No release profiles are synced* - -:::caution - -Release Profiles may not be used in Sonarr version 4 or greater! - -::: - -A list of release profiles to parse from the guide. Each object in this list supports the below -properties. - -## `trash_ids` {#trash-ids} - -**Required.** - -A list of one or more Trash IDs taken from the output of the [`list release-profiles` -command][listrps]. - -## `strict_negative_scores` {#strict-negative-scores} - -**Optional.** *Default: `false`* - -Enables preferred term scores less than 0 to be instead treated as "Must Not Contain" (ignored) -terms. For example, if something is "Preferred" with a score of `-10`, it will instead be put in the -"Must Not Contains" section of the uploaded release profile. Must be `true` or `false`. - -## `tags` {#tags} - -**Optional.** *Default: Empty list* - -A list of one or more strings representing tags that will be applied to this release profile. Tags -are created in Sonarr if they do not exist. All tags on an existing release profile (if present) are -removed and replaced with only the tags in this list. If no tags are specified, no tags will be set -on the release profile. - -## `filter` {#filter} - -**Optional.** - -Defines various ways that release profile terms from the guide are synchronized with Sonarr. Any -filters below that takes a list of `trash_id` values, those values come, from the [same list -command][listrps], but with the `--terms` option used. There is a `trash_id` field next to each -`term` field; that is what you use. - -### `include` {#filter-include} - -A list of `trash_id` values representing terms (Required, Ignored, or Preferred) that should be -included in the created Release Profile in Sonarr. Terms that are NOT specified here are excluded -automatically. Not compatible with `exclude` and will take precedence over it. - -### `exclude` {#filter-exclude} - -A list of `trash_id` values representing terms (Required, Ignored, or Preferred) that should be -excluded from the created Release Profile in Sonarr. Terms that are NOT specified here are included -automatically. Not compatible with `include`; this list is not used if it is present. - -[listrps]: /cli/list/list-release-profiles.md diff --git a/docs/yaml/configuration-examples.md b/docs/yaml/configuration-examples.md index afeaf22..6d89af4 100644 --- a/docs/yaml/configuration-examples.md +++ b/docs/yaml/configuration-examples.md @@ -2,6 +2,7 @@ id: config-examples title: Configuration Examples sidebar_position: 2 +hide_table_of_contents: true --- Various scenarios supported using flexible configuration structure: @@ -23,13 +24,16 @@ sonarr: api_key: !secret sonarr_apikey quality_definition: type: series - release_profiles: + custom_formats: - trash_ids: - - EBC725268D687D588A20CBC5F97E538B # Low Quality Groups - - 1B018E0C53EC825085DD911102E2CA36 # Release Sources (Streaming Service) - - 71899E6C303A07AF0E4746EFF9873532 # P2P Groups + Repack/Proper - strict_negative_scores: false - tags: [tv] + # Unwanted + - 85c61753df5da1fb2aab6f2a47426b09 # BR-DISK + - 9c11cd3f07101cdba90a2d81cf0e56b4 # LQ + - e2315f990da2e2cbfc9fa5b7a6fcfe48 # LQ (Release Title) + - 47435ece6b99a0b477caf360e79ba0bb # x265 (HD) + - fbcb31d8dabd2a319072b84fc0b7249c # Extras + quality_profiles: + - name: WEB-1080p radarr: main: @@ -38,107 +42,119 @@ radarr: 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 + quality_profiles: + - name: HD Bluray + WEB ``` 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). -## Selectively update different parts of Sonarr v3 +## Adding additional qualities to a template -:::info -The official Docker container does not support multiple configuration files. -::: +Scenario: *I want to use a pre-built Recyclarr template for Sonarr, but would like to add additional +qualities to the profile.* -Say you want to update Sonarr release profiles from the guide, but not the quality definitions. -There's no command line option to control this, so how do you do it? - -Simply create two YAML files: +Solution: -`sonarr-release-profiles.yml`: +As an example, the default Sonarr WEB-1080p template looks similar to: ```yml sonarr: - main: - base_url: http://localhost:8989 - api_key: f7e74ba6c80046e39e076a27af5a8444 - release_profiles: - - trash_ids: - - d428eda85af1df8904b4bbe4fc2f537c # Anime - First release profile - - 6cd9e10bb5bb4c63d2d7cd3279924c7b # Anime - Second release profile - tags: [anime] -``` + web-1080p-v4: + base_url: Put your Sonarr URL here + api_key: Put your API key here -`sonarr-quality-definition.yml`: + 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 -```yml -sonarr: - main: - base_url: http://localhost:8989 - api_key: f7e74ba6c80046e39e076a27af5a8444 - quality_definition: - type: series -``` - -Then run the following command: +# Custom Formats: https://recyclarr.dev/wiki/yaml/config-reference/custom-formats/ + custom_formats: + # Optional + - trash_ids: + # - 32b367365729d530ca1c124a0b180c64 # Bad Dual Groups + # - 82d40da2bc6923f41e14394075dd4b03 # No-RlsGroup + # - e1a997ddb54e3ecbfe06341ad323c458 # Obfuscated + # - 06d66ab109d4d2eddb2794d21526d140 # Retags + # - 1b3994c551cbb92a2c781af061f4ab44 # Scene + quality_profiles: + - name: WEB-1080p -```bash -recyclarr sonarr --config sonarr-release-profiles.yml + - trash_ids: + # Uncomment the next six lines to allow x265 HD releases with HDR/DV + # - 47435ece6b99a0b477caf360e79ba0bb # x265 (HD) + # quality_profiles: + # - name: WEB-1080p + # score: 0 + # - trash_ids: + # - 9b64dff695c2115facf1b6ea59c9bd07 # x265 (no HDR/DV) + quality_profiles: + - name: WEB-1080p ``` -This will only update release profiles since you have essentially moved the `quality_definition` -property to its own file. When you want to update both, you just specify both files the next time -you run the program: +There are two options. The first is to disable the quality profile include in the template, which +will stop it from syncing: -```bash -recyclarr sonarr --config sonarr-release-profiles.yml sonarr-quality-definition.yml +```yml +sonarr: + web-1080p-v4: + base_url: Put your Sonarr URL here + api_key: Put your API key here + + 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 ``` -## Update Sonarr v3 and v4 instances in a single YAML config +Qualities can then be managed directly in Sonarr. -If you have two instances of Sonarr, one v3 and one v4, that you'd like to update from a single run -using one YAML file, you can do that by simply specifying both in the list under the `sonarr` -property: +The second option is to write a new `quality_profile`, and add it to the template: ```yml sonarr: - instance1: - base_url: http://sonarr_v4:8989 - api_key: f7e74ba6c80046e39e076a27af5a8444 - quality_definition: - type: anime - custom_formats: - - trash_ids: - - 949c16fe0a8147f50ba82cc2df9411c9 # Anime BD Tier 01 (Top SeaDex Muxers) - - ed7f1e315e000aef424a58517fa48727 # Anime BD Tier 02 (SeaDex Muxers) - - 096e406c92baa713da4a72d88030b815 # Anime BD Tier 03 (SeaDex Muxers) - quality_profiles: - - name: Anime Subs + web-1080p-v4: + base_url: Put your Sonarr URL here + api_key: Put your API key here - instance2: - base_url: http://sonarr_v3:8989 - api_key: bf99da49d0b0488ea34e4464aa63a0e5 - quality_definition: - type: series - release_profiles: - - trash_ids: - - EBC725268D687D588A20CBC5F97E538B # Low Quality Groups - - 1B018E0C53EC825085DD911102E2CA36 # Release Sources (Streaming Service) - - 71899E6C303A07AF0E4746EFF9873532 # P2P Groups + Repack/Proper + 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 ``` -In the example above, two separate instances, each with its own API key, will be updated. One -instance is for Anime only. The other is for Series (TV) only. And since I'm using two instances, I -don't bother with tags, so I am able to leave those elements out. Recyclarr knows when it's talking -to either a v3 or v4 instance of Sonarr and will correctly anticipate either `release_profiles` or -`custom_formats` (respectively). +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. -When you run `recyclarr sync sonarr` (specify `--config` if you aren't using the [default config -search behavior](/file-structure.md#default-yaml)) it will update both instances. +[replace]: /behavior/include.md#detail-qualities ## 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."* +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: @@ -151,22 +167,22 @@ radarr: 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 + - 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 quality_profiles: - - name: SD + - name: Remux 1080p ``` ## Manually assign different scores to multiple custom formats @@ -190,20 +206,20 @@ radarr: - dcf3ec6938fa32445f590a4da84256cd # DTS-HD MA - a570d4a0e56a2874b64e5bfa55202a1b # FLAC quality_profiles: - - name: SD + - name: Remux 2160p # Assign manual scores to the 3 below CFs, each added to the same profile - trash_ids: [496f355514737f7d83bf7aa4d24f8169] # TrueHD ATMOS quality_profiles: - - name: SD + - name: Remux 2160p score: 100 - trash_ids: [2f22d89048b01681dde8afe203bf2e95] # DTS X quality_profiles: - - name: SD + - name: Remux 2160p score: 200 - trash_ids: [417804f7f2c4308c1f4c5d380d4c4475] # ATMOS (undefined) quality_profiles: - - name: SD + - name: Remux 2160p score: 300 ``` @@ -229,11 +245,11 @@ radarr: - 1af239278386be2919e1bcee0bde047e # DD+ ATMOS - 3cafb66171b47f226146a0770576870f # TrueHD quality_profiles: - - name: SD - - name: Ultra-HD + - name: Remux 1080p + - name: Remux 2160p ``` -Quality profiles named `HD` and `Ultra-HD` will all receive the same scores for the same custom +Quality profiles named `Remux 1080p` and `Remux 2160p` 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: @@ -252,9 +268,9 @@ radarr: - 1af239278386be2919e1bcee0bde047e # DD+ ATMOS - 3cafb66171b47f226146a0770576870f # TrueHD quality_profiles: - - name: SD + - name: Remux 1080p score: 100 # This score is assigned to all 5 CFs in this profile - - name: Ultra-HD # Still uses scores from the guide + - name: Remux 2160p # Still uses scores from the guide ``` ## Scores in a quality profile should be set to zero if it wasn't listed in config @@ -270,26 +286,26 @@ radarr: api_key: 87674e2c316645ed85696a91a3d41988 quality_profiles: - - name: SD + - name: HD reset_unmatched_scores: true custom_formats: - trash_ids: - - 1c7d7b04b15cc53ea61204bebbcc1ee2 # HQ - - trash_ids: + # - a570d4a0e56a2874b64e5bfa55202a1b # FLAC (commented out so disabled) - 2f22d89048b01681dde8afe203bf2e95 # DTS X - 3cafb66171b47f226146a0770576870f # TrueHD quality_profiles: - - name: SD + - name: HD - name: Ultra-HD ``` -Let's say you have three custom formats added to Radarr: "DTS X", "TrueHD", and "HD". Since only two -are listed in the `trash_ids` array, what happens to "HD"? Since two quality profiles are specified -above, each with a different setting for `reset_unmatched_scores`, the behavior will be different: +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 `SD` quality profile will always have the score for "HD" set to zero (`0`). -- The `Ultra-HD` quality profile's score for "HD" will never be altered. +- 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 @@ -317,14 +333,21 @@ Using docker as an example, it would look like this: ├── configs/ │ ├── radarr.yml │ └── sonarr.yml + ├── includes/ + │ ├── radarr_include.yml + │ └── sonarr_include.yml └── recyclarr.yml ``` In the above example: -- Recyclarr will load all three YAML files. +- Recyclarr will load the `recyclarr.yml` file in `config/`, as well as both YAML files in + `configs/`. - 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]. + +[referenced]: /yaml/config-reference/include.md#config ## Merge multiple config templates into a single file with a single instance {#merge-single-instance}