docs(wiki): updates for radarr custom formats

recyclarr
Robert Dailey 3 years ago
parent c21fc51b23
commit cb1f308130

@ -7,13 +7,9 @@
Automatically mirror TRaSH guides to your Sonarr/Radarr instance. Automatically mirror TRaSH guides to your Sonarr/Radarr instance.
## Features ## Sonarr Features
Features list will continue to grow. See the limitations & roadmap section for more details! ### Release Profiles
### Sonarr
Release Profiles
- "Preferred", "Must Not Contain", and "Must Contain" terms from guides are reflected in - "Preferred", "Must Not Contain", and "Must Contain" terms from guides are reflected in
corresponding release profile fields in Sonarr. corresponding release profile fields in Sonarr.
@ -26,17 +22,25 @@ Release Profiles
- Terms mentioned as "optional" in the guide are not synced to Sonarr release profiles by default - Terms mentioned as "optional" in the guide are not synced to Sonarr release profiles by default
(can be enabled via config). (can be enabled via config).
Quality Definitions ### Quality Definitions
- Anime and Series (Non-Anime) quality definitions from the guide. - Anime and Series (Non-Anime) quality definitions from the guide.
- "Hybrid" type supported that is a mixture of both. - "Hybrid" type supported that is a mixture of both.
### Radarr ## Radarr Features
Quality Definitions ### Quality Definitions
- Movie quality definition from the guide - Movie quality definition from the guide
### Custom Formats
- A user-specified list of custom formats are synchronized to Radarr from the TRaSH guides.
- Scores from the guides can be synchronized to quality profiles of your choosing.
- User can specify their own scores for custom formats (instead of using the guide score).
- Option to enable automatic deletion custom formats in Radarr when they are removed from config or
the guide.
## Installation ## Installation
Simply download the latest release for your platform: Simply download the latest release for your platform:
@ -48,7 +52,17 @@ Simply download the latest release for your platform:
The above links are from the latest release on the [releases page][rp]. Feel free to visit there for The above links are from the latest release on the [releases page][rp]. Feel free to visit there for
release notes and older releases. release notes and older releases.
> **Note**: For Sonarr updates to work, you must be running version `3.0.4.1098` or greater. ---
*Important Notices!*
- > **Note**: For Sonarr updates to work, you must be running version `3.0.4.1098` or greater.
- > **Note**: Do not run Notifiarr's Trash Guides Integration in conjunction with Trash Updater's
> Custom Format synchronization. In general, you should not have two different tools updating the
> same data in Radarr.
---
[rp]: https://github.com/rcdailey/trash-updater/releases [rp]: https://github.com/rcdailey/trash-updater/releases

@ -1,8 +1,11 @@
Various scenarios supported using the flexible configuration support. Various scenarios supported using flexible configuration structure:
- [Update as much as possible in both Sonarr and Radarr with a single config](#update-as-much-as-possible-in-both-sonarr-and-radarr-with-a-single-config) - [Update as much as possible in both Sonarr and Radarr with a single config](#update-as-much-as-possible-in-both-sonarr-and-radarr-with-a-single-config)
- [Selectively update different parts of Sonarr](#selectively-update-different-parts-of-sonarr) - [Selectively update different parts of Sonarr](#selectively-update-different-parts-of-sonarr)
- [Update multiple Sonarr instances in a single YAML config](#update-multiple-sonarr-instances-in-a-single-yaml-config) - [Update multiple Sonarr instances in a single YAML config](#update-multiple-sonarr-instances-in-a-single-yaml-config)
- [Synchronize a lot of custom formats for a single quality profile](#synchronize-a-lot-of-custom-formats-for-a-single-quality-profile)
- [Manually assign different scores to multiple custom formats](#manually-assign-different-scores-to-multiple-custom-formats)
- [Assign custom format scores the same way to multiple quality profiles](#assign-custom-format-scores-the-same-way-to-multiple-quality-profiles)
## Update as much as possible in both Sonarr and Radarr with a single config ## Update as much as possible in both Sonarr and Radarr with a single config
@ -113,3 +116,120 @@ update both instances.
You can also split theses two instances across different YAML files if you do not want both to You can also split theses two instances across different YAML files if you do not want both to
update at the same time. There's an example of how to do that in a different section of this page. update at the same time. There's an example of how to do that in a different section of this page.
## Synchronize a lot of custom formats for a single quality profile
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.
```yml
radarr:
- base_url: http://localhost:7878
api_key: 87674e2c316645ed85696a91a3d41988
custom_formats:
# Advanced Audio from the guide
- names:
- TrueHD ATMOS
- DTS X
- ATMOS (undefined)
- DD+ ATMOS
- TrueHD
- DTS-HD MA
- FLAC
- PCM
- DTS-HD HRA
- DD+
- DTS-ES
- DTS
- AAC
- DD
quality_profiles:
- name: SD
```
## Manually assign different scores to multiple custom formats
I want to synchronize custom formats to Radarr. I also do not want to use the scores in the guide.
Instead, I want to assign my own distinct score to each custom format in a single quality profile.
```yml
radarr:
- base_url: http://localhost:7878
api_key: 87674e2c316645ed85696a91a3d41988
custom_formats:
- names: [TrueHD ATMOS]
quality_profiles:
- name: SD
score: 100
- names: [DTS X]
quality_profiles:
- name: SD
score: 200
- names: [ATMOS (undefined)]
quality_profiles:
- name: SD
score: 300
- names: [TrueHD]
quality_profiles:
- name: SD
score: 400
- names: [DTS-HD MA]
quality_profiles:
- name: SD
score: 500
- names: [FLAC]
quality_profiles:
- name: SD
score: 600
```
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):
```yml
radarr:
- base_url: http://localhost:7878
api_key: 87674e2c316645ed85696a91a3d41988
custom_formats:
- names:
- TrueHD ATMOS
- DTS X
- ATMOS (undefined)
- DD+ ATMOS
- TrueHD
quality_profiles:
- name: SD
- 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:
```yml
radarr:
- base_url: http://localhost:7878
api_key: 87674e2c316645ed85696a91a3d41988
custom_formats:
- names:
- TrueHD ATMOS
- DTS X
- ATMOS (undefined)
- DD+ ATMOS
- TrueHD
quality_profiles:
- name: SD
score: 100 # This score is assigned to all 5 CFs in this profile
- name: Ultra-HD # Still uses scores from the guide
```

@ -1,7 +1,7 @@
Reference documentation for the YAML documentation. For various configuration examples, see the Reference documentation for the YAML configuration. For various examples, see the [[Configuration
[[Configuration Examples]] page. Examples]] page.
## Summary # Summary
The Trash Updater program utilizes YAML for its configuration files. The configuration can be set up The Trash Updater program utilizes YAML for its configuration files. The configuration can be set up
multiple ways, offering a lot of flexibility: multiple ways, offering a lot of flexibility:
@ -9,6 +9,7 @@ multiple ways, offering a lot of flexibility:
- You may use one or more YAML files simultaneously, allowing you to divide your configuration - You may use one or more YAML files simultaneously, allowing you to divide your configuration
properties up in such a way that you can control what gets updated based on which files you properties up in such a way that you can control what gets updated based on which files you
specify. specify.
- Each YAML file may have one or more service configurations. This means you can have one file - Each YAML file may have one or more service configurations. This means you can have one file
define settings for just Sonarr, Radarr, or both services. The program will only read the define settings for just Sonarr, Radarr, or both services. The program will only read the
configuration from the file relevant for the specific service subcommand you specified (e.g. configuration from the file relevant for the specific service subcommand you specified (e.g.
@ -17,19 +18,30 @@ multiple ways, offering a lot of flexibility:
> **Remember**: If you do not specify the `--config` argument, the program will look for `trash.yml` > **Remember**: If you do not specify the `--config` argument, the program will look for `trash.yml`
> in the same directory where the executable lives. > in the same directory where the executable lives.
## YAML Reference # YAML Reference
Table of Contents
- [Sonarr](#sonarr)
- [Basic Settings](#basic-settings)
- [Quality Definition Settings](#quality-definition-settings)
- [Release Profile Settings](#release-profile-settings)
- [Radarr](#radarr)
- [Basic Settings](#basic-settings-1)
- [Quality Definition Settings](#quality-definition-settings-1)
- [Custom Format Settings](#custom-format-settings)
### Sonarr ## Sonarr
```yml ```yml
sonarr: sonarr:
- base_url: http://localhost:8989 - base_url: http://localhost:8989
api_key: f7e74ba6c80046e39e076a27af5a8444 api_key: f7e74ba6c80046e39e076a27af5a8444
# Quality definitions from the guide to sync to Sonarr. # Quality Definition Settings
quality_definition: hybrid quality_definition: hybrid
# Release profiles from the guide to sync to Sonarr. # Release Profile Settings
release_profiles: release_profiles:
- type: anime - type: anime
strict_negative_scores: true strict_negative_scores: true
@ -43,94 +55,189 @@ sonarr:
- tv - tv
``` ```
- `base_url` (Required)<br> ### Basic Settings
- `base_url` **(Required)**<br>
The base URL of your Sonarr instance. Basically this is the URL you bookmark to get to the front The base URL of your Sonarr instance. Basically this is the URL you bookmark to get to the front
page. page.
- `api_key` (Required)<br> - `api_key` **(Required)**<br>
The API key that Trash Updater should use to synchronize settings to your instance. You can obtain The API key that Trash Updater should use to synchronize settings to your instance. You can obtain
your API key by going to `Sonarr > Settings > General` and copy & paste the "API Key" under the your API key by going to `Sonarr > Settings > General` and copy & paste the "API Key" under the
"Security" group/header. "Security" group/header.
- `quality_definition` (Optional)<br> ### Quality Definition Settings
- `quality_definition` (Optional; *Default: No quality definitions are synced*)<br>
The quality definition [from the TRaSH Guide's Quality Settings page][sonarr_quality] that should The quality definition [from the TRaSH Guide's Quality Settings page][sonarr_quality] that should
be parsed and uploaded to Sonarr. Only the below values are permitted here. be parsed and uploaded to Sonarr. Only the below values are permitted here.
- `anime`: Represents the "Sonarr Quality Definitions" table specifically for Anime - `anime` Represents the "Sonarr Quality Definitions" table specifically for Anime
- `series`: Represents the "Sonarr Quality Definitions" table intended for normal TV Series.
- `series` Represents the "Sonarr Quality Definitions" table intended for normal TV Series.
Sometimes referred to as non-anime. Sometimes referred to as non-anime.
- `hybrid`: A combination of both the `anime` and `series` tables that is calculated by comparing
- `hybrid` A combination of both the `anime` and `series` tables that is calculated by comparing
each row and taking both the smallest minimum and largest maximum values. The purpose of the each row and taking both the smallest minimum and largest maximum values. The purpose of the
Hybrid type is to build the most permissive quality definition that the guide will allow. It's a Hybrid type is to build the most permissive quality definition that the guide will allow. It's a
good idea to use this one if you want more releases to be blocked by your release profiles good idea to use this one if you want more releases to be blocked by your release profiles
instead of quality. instead of quality.
- `release_profiles` (Optional)<br> [sonarr_quality]: https://trash-guides.info/Sonarr/V3/Sonarr-Quality-Settings-File-Size/
### Release Profile Settings
- `release_profiles` (Optional; *Default: No release profiles are synced*)<br>
A list of release profiles to parse from the guide. Each object in this list supports the below A list of release profiles to parse from the guide. Each object in this list supports the below
properties. properties.
- `type` (Required): Must be one of the following values: - `type` **(Required)**<br>
Must be one of the following values:
- `anime`: Parse the [Anime Release Profile][sonarr_profile_anime] page from the TRaSH Guide. - `anime`: Parse the [Anime Release Profile][sonarr_profile_anime] page from the TRaSH Guide.
- `series`: Parse the [WEB-DL Release Profile][sonarr_profile_series] page from the TRaSH Guide. - `series`: Parse the [WEB-DL Release Profile][sonarr_profile_series] page from the TRaSH Guide.
- `strict_negative_scores` (Optional): Enables preferred term scores less than 0 to be instead - `strict_negative_scores` (Optional; *Default: `false`*)<br>
treated as "Must Not Contain" (ignored) terms. For example, if something is "Preferred" with a Enables preferred term scores less than 0 to be instead treated as "Must Not Contain" (ignored)
score of `-10`, it will instead be put in the "Must Not Contains" section of the uploaded terms. For example, if something is "Preferred" with a score of `-10`, it will instead be put in
release profile. Must be `true` or `false`. The default value is `false` if omitted. the "Must Not Contains" section of the uploaded release profile. Must be `true` or `false`.
- `tags` (Optional): A list of one or more strings representing tags that will be applied to this - `tags` (Optional; *Default: Empty list*)<br>
release profile. Tags are created in Sonarr if they do not exist. All tags on an existing A list of one or more strings representing tags that will be applied to this release profile.
release profile (if present) are removed and replaced with only the tags in this list. If no Tags are created in Sonarr if they do not exist. All tags on an existing release profile (if
tags are specified, no tags will be set on the release profile. 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` (Optional): Defines various ways that release profile terms from the guide are - `filter` (Optional; *Default: Determined by child properties*)<br>
synchronized with Sonarr. Any combination of the below properties may be specified here: Defines various ways that release profile terms from the guide are synchronized with Sonarr. Any
- `include_optional`: Set to `true` to include terms marked "Optional" in the guide. By default, combination of the below properties may be specified here:
optional terms are *not* synchronized to Sonarr. The default is `false`.
- `include_optional` (Optional; *Default: `false`*)<br>
Set to `true` to include terms marked "Optional" in the guide. If set to `false`, optional
terms are *not* synchronized to Sonarr.
[sonarr_quality]: https://trash-guides.info/Sonarr/V3/Sonarr-Quality-Settings-File-Size/
[sonarr_profile_anime]: https://trash-guides.info/Sonarr/V3/Sonarr-Release-Profile-RegEx-Anime/ [sonarr_profile_anime]: https://trash-guides.info/Sonarr/V3/Sonarr-Release-Profile-RegEx-Anime/
[sonarr_profile_series]: https://trash-guides.info/Sonarr/V3/Sonarr-Release-Profile-RegEx/ [sonarr_profile_series]: https://trash-guides.info/Sonarr/V3/Sonarr-Release-Profile-RegEx/
### Radarr ## Radarr
```yml ```yml
radarr: radarr:
- base_url: http://localhost:7878 - base_url: http://localhost:7878
api_key: bf99da49d0b0488ea34e4464aa63a0e5 api_key: bf99da49d0b0488ea34e4464aa63a0e5
# Which quality definition in the guide to sync to Radarr. # Quality Definition Settings
quality_definition: quality_definition:
type: movie type: movie
preferred_ratio: 0.5 preferred_ratio: 0.5
# Custom Format Settings
delete_old_custom_formats: false
custom_formats:
- names:
- BR-DISK
- EVO (no WEB-DL)
- LQ
- x265 (720/1080p)
- 3D
quality_profiles:
- name: HD-1080p
- name: HD-720p2
score: -1000
- names:
- TrueHD ATMOS
- DTS X
quality_profiles:
- name: SD
``` ```
- `base_url` (Required)<br> ### Basic Settings
- `base_url` **(Required)**<br>
The base URL of your Radarr instance. Basically this is the URL you bookmark to get to the front The base URL of your Radarr instance. Basically this is the URL you bookmark to get to the front
page. page.
- `api_key` (Required)<br> - `api_key` **(Required)**<br>
The API key that Trash Updater should use to synchronize settings to your instance. You can obtain The API key that Trash Updater should use to synchronize settings to your instance. You can obtain
your API key by going to `Radarr > Settings > General` and copy & paste the "API Key" under the your API key by going to `Radarr > Settings > General` and copy & paste the "API Key" under the
"Security" group/header. "Security" group/header.
- `quality_definition` (Optional)<br> ### Quality Definition Settings
- `quality_definition` (Optional; *Default: No quality definitions are synced*)<br>
Specify information related to Radarr quality definition processing here. Only the following child Specify information related to Radarr quality definition processing here. Only the following child
properties are permitted. properties are permitted.
- `type` (Required): The quality definition from the [Radarr Quality Settings (File - `type` **(Required)**<br>
Size)][radarr_quality] page in the TRaSH Guides that should be parsed and uploaded to Radarr. The quality definition from the [Radarr Quality Settings (File Size)][radarr_quality] page in
Only the below values are permitted here. the TRaSH Guides that should be parsed and uploaded to Radarr. Only the below values are
permitted here.
- `movie`: Currently the only supported type. Represents the only table on that page and is - `movie`: Currently the only supported type. Represents the only table on that page and is
intended for general use with all movies in Radarr. intended for general use with all movies in Radarr.
- `preferred_ratio` (Optional) A value `0.0` to `1.0` that represents the percentage - `preferred_ratio` (Optional; *Default: `1.0`*)<br>
(interpolated) position of that middle slider you see when you enable advanced settings on the A value `0.0` to `1.0` that represents the percentage (interpolated) position of that middle
Quality Definitions page in Radarr. A value of `0.0` means the preferred quality will match the slider you see when you enable advanced settings on the Quality Definitions page in Radarr. A
minimum quality. Likewise, `1.0` will match the maximum quality. A value such as `0.5` will keep value of `0.0` means the preferred quality will match the minimum quality. Likewise, `1.0` will
it halfway between the two. match the maximum quality. A value such as `0.5` will keep it halfway between the two.
If not specified, the default value is `1.0`. Any value less than `0` or greater than `1` will Any value less than `0` or greater than `1` will result in a warning log printed and the value
result in a warning log printed and the value will be clamped. will be clamped.
[radarr_quality]: https://trash-guides.info/Radarr/V3/Radarr-Quality-Settings-File-Size/ [radarr_quality]: https://trash-guides.info/Radarr/V3/Radarr-Quality-Settings-File-Size/
### Custom Format Settings
For details on the way Custom Formats are synchronized to Radarr, visit the [[Custom Format
Synchronization]] page.
- `delete_old_custom_formats` (Optional; *Default: `false`*)<br>
If enabled, custom formats that you remove from your YAML configuration OR that are removed from
the guide will be deleted from your Radarr instance. Note that this *only* applies to custom
formats that Trash Updater has synchronized to Radarr. Custom formats that you have added manually
in Radarr **will not be deleted** if you enable this setting.
- `custom_formats` (Optional; *Default: No custom formats are synced*)<br>
A list of one or more sets of custom format names, each with an optional set of quality profiles
names that identify which quality profiles to assign the scores for those custom formats to. The
child properties documented below apply to each element of this list.
- `names` **(Required)**<br>
A list of one or more custom format names to synchronize to Radarr. The names *must* be taken
from the JSON itself in the guide, for example:
```json
{
"trash_id": "496f355514737f7d83bf7aa4d24f8169",
"name": "TrueHD ATMOS",
"includeCustomFormatWhenRenaming": false
}
```
You take the value of `"name"` above and add it to the list of names like so:
```yml
names:
- TrueHD ATMOS
```
> **A Few Things to Remember**
>
> - If `delete_old_custom_formats` is set to true, custom formats are **deleted** in Radarr if
> you remove them from this list.
> - It's OK for the same custom format to exist in multiple lists of `names`. Trash Updater will
> only ever synchronize it once. Allowing it to be specified multiple times allows you to
> assign it to different profiles with different scores.
- `quality_profiles` (Optional; *Default: No quality profiles are changed*)<br>
One or more quality profiles to update with the scores from the custom formats listed above.
Scores are taken from the guide by default, with an option to override the score for all of
them. Each object in the list must use the properties below.
- `name` **(Required)**<br>
The name of one of the quality profiles in Radarr.
- `score` (Optional; *Default: Use scores from the guide*)<br>
A positive or negative number representing the score to apply to *all* custom formats listed
in the `names` list. A score of `0` is also acceptable, which effectively disables the custom
formats without having to delete them.

@ -0,0 +1,41 @@
Custom format synchronization is broken up into three categories:
- Creation: Custom formats that are in the guide but do not exist in Radarr are **created**.
- Updates: Custom formats that already exist in both the guide and in Radarr are **updated**.
- Deletions: If deletions are allowed by having the `delete_old_custom_formats` configuration
setting set to `true`, then custom formats in Radarr are deleted if they are removed from the
guide **or** removed from your configuration file.
> **Important**
>
> Trash Updater will *never* touch custom formats that you create by hand, unless they share a name
> with a custom format in the guide. In general, Trash Updater must have been the one to create a
> custom format in order to do anything to it (update or delete).
## Cache
### Summary
The synchronization cache in Trash Updater allows it to more accurately detect changes to custom
formats in the TRaSH guides. This mainly helps cover changes like renames.
Once Trash Updater creates or updates a custom format in Radarr, it records information about it in
a cache file located on disk. The location varies depending on platform:
- Windows: `%APPDATA%/trash-updater/cache`
- Linux: `~/.config/trash-updater/cache`
- MacOS: `~/Library/Application Support/trash-updater/cache`
The cache files are not meant to be edited by users. In general I recommend leaving them alone.
Trash Updater will manage it for you. However, sometimes a bug may cause an issue where deleting the
cache directory will be a good way to recover.
### Custom Format Identification Behavior
The cache stores and remembers the last known valid name for a custom format. If a custom format
gets renamed in the Trash Guide, you don't need to immediately rename it in your YAML config. Trash
Updater will issue a warning in console output when the names become outdated. This gives you plenty
of time to fix the issue.
Note that if the cache gets deleted, custom formats with outdated names will no longer synchronize
to Radarr and you will need to either remove it or fix the name.
Loading…
Cancel
Save