This is to force the wiki workflow to remove most of the pages on the wiki site.pull/136/head
parent
c32bc0f2c9
commit
37ffa36ff9
@ -1,5 +0,0 @@
|
||||
{
|
||||
"extends": "../.markdownlint.json",
|
||||
"first-line-heading": false,
|
||||
"single-h1": false
|
||||
}
|
@ -1,74 +0,0 @@
|
||||
Special notes about behavior of Recyclarr with regards to the various services it supports will be
|
||||
documented here.
|
||||
|
||||
## Sonarr
|
||||
|
||||
Each section below represents a topic covering certain behavior relevant to Sonarr.
|
||||
|
||||
### Release Profile 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).
|
||||
|
||||
### Migration System
|
||||
|
||||
See the [Migration System] page.
|
||||
|
||||
[Migration System]: https://github.com/recyclarr/recyclarr/wiki/Migration-System
|
||||
|
||||
## Radarr
|
||||
|
||||
### Custom Format Synchronization
|
||||
|
||||
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**
|
||||
>
|
||||
> Recyclarr will *never* touch custom formats that you create by hand, unless they share a name with
|
||||
> a custom format in the guide. In general, Recyclarr 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 Recyclarr allows it to more accurately detect changes to custom formats
|
||||
in the TRaSH guides. This mainly helps cover changes like renames.
|
||||
|
||||
Once Recyclarr 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%/recyclarr/cache`
|
||||
- Linux: `~/.config/recyclarr/cache`
|
||||
- MacOS: `~/Library/Application Support/recyclarr/cache`
|
||||
|
||||
The cache files are not meant to be edited by users. In general I recommend leaving them alone.
|
||||
Recyclarr 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.
|
@ -1,287 +0,0 @@
|
||||
Command line interface documentation for the `recyclarr` executable.
|
||||
|
||||
## Subcommands
|
||||
|
||||
Each service (Sonarr, Radarr) has a subcommand that must be specified in order to perform operations
|
||||
related to that service, such as parsing relevant TRaSH guides and invoking API endpoints to modify
|
||||
settings on that instance. As always, the `--help` option may be specified following a subcommand to
|
||||
see more information directly in your terminal.
|
||||
|
||||
| Subcommand | Description |
|
||||
| --------------- | ------------------------------------------------------------------------------- |
|
||||
| `sonarr` | Update release profiles and quality definitions on configured Sonarr instances. |
|
||||
| `radarr` | Update custom formats and quality definitions on configured Radarr instances. |
|
||||
| `create-config` | Create a starter `recyclarr.yml` config file. |
|
||||
| `migrate` | Perform migration steps that may be needed after upgrades. |
|
||||
|
||||
## Common Arguments
|
||||
|
||||
These are optional arguments shared by *all* service subcommands. At the moment, this includes:
|
||||
|
||||
- `radarr`
|
||||
- `sonarr`
|
||||
|
||||
Other non-service subcommands, like `create-config`, will not accept these arguments.
|
||||
|
||||
### `--config`
|
||||
|
||||
One or more paths to YAML configuration files. Only the relevant configuration section for the
|
||||
specified subcommand will be read from each file. If this argument is not specified, a single
|
||||
default configuration file named `recyclarr.yml` will be used. It must be in the [application data
|
||||
directory][appdata].
|
||||
|
||||
**Command Line Examples**:
|
||||
|
||||
```bash
|
||||
# Default Config (recyclarr.yml)
|
||||
recyclarr sonarr
|
||||
|
||||
# Single Config
|
||||
recyclarr sonarr --config ../myconfig.yml
|
||||
|
||||
# Multiple Config
|
||||
recyclarr sonarr --config ../myconfig1.yml "files/my config 2.yml"
|
||||
```
|
||||
|
||||
### `--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 before updating your instance.
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
### `--debug`
|
||||
|
||||
By default, Info, Warning and Error log levels are displayed in the console. This option enables
|
||||
Debug level logs to be displayed. This is designed for debugging and development purposes and
|
||||
generally will be too noisy for normal program usage.
|
||||
|
||||
### `--app-data`
|
||||
|
||||
Overrides the normal, default location of the [[application data directory|File-Structure]]. Note
|
||||
that this option is mainly intended for usage in the official Docker image. It is not intended for
|
||||
normal use outside of that.
|
||||
|
||||
If you'd like this behavior globally for all commands without having to specify this option, define
|
||||
an environment variable named `RECYCLARR_APP_DATA` with the same path. Note that if you have both
|
||||
set, `--app-data` always takes precedence.
|
||||
|
||||
## Subcommand: `sonarr`
|
||||
|
||||
### `--list-release-profiles`
|
||||
|
||||
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
|
||||
./trash sonarr --list-release-profiles
|
||||
|
||||
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:
|
||||
- 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
|
||||
```
|
||||
|
||||
### `--list-terms`
|
||||
|
||||
Prints a list of all terms (that have been assigned their own Trash IDs) for the Release Profile
|
||||
with the specified Trash ID. Use the `--list-release-profiles` option to first 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
|
||||
./trash sonarr --list-terms 76e060895c5b8a765c310933da0a5357
|
||||
|
||||
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:
|
||||
- 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
|
||||
|
||||
### `--list-qualities`
|
||||
|
||||
Print a list of all available types of quality definitions. The "type" of a quality definition comes
|
||||
from JSON files in the guide and this type is used in the configuration YAML for the
|
||||
`quality_definition` property:
|
||||
|
||||
```yml
|
||||
quality_definition: series
|
||||
```
|
||||
|
||||
Above, `series` would only be valid if that type appeared in the list output by the `sonarr`
|
||||
subcommand run with this argument.
|
||||
|
||||
## Subcommand: `radarr`
|
||||
|
||||
### `--list-custom-formats`
|
||||
|
||||
Prints a list of all [available Radarr Custom Formats][radarrjson] 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
|
||||
./trash radarr --list-custom-formats
|
||||
|
||||
List of Custom Formats in the TRaSH Guides:
|
||||
|
||||
- b124be9b146540f8e62f98fe32e49a2a # 1.0 Mono
|
||||
- 820b09bb9acbfde9c35c71e0e565dad8 # 1080p
|
||||
- 89dac1be53d5268a7e10a19d3c896826 # 2.0 Stereo
|
||||
- fb392fb0d61a010ae38e49ceaa24a1ef # 2160p
|
||||
- 205125755c411c3b8622ca3175d27b37 # 3.0 Sound
|
||||
|
||||
The above Custom Formats 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
|
||||
radarr:
|
||||
- base_url: http://127.0.0.1:7878
|
||||
api_key: 2424b3643507485ea2e06382d3f0b8a3
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
- b124be9b146540f8e62f98fe32e49a2a # 1.0 Mono
|
||||
- 820b09bb9acbfde9c35c71e0e565dad8 # 1080p
|
||||
```
|
||||
|
||||
### `--list-qualities`
|
||||
|
||||
Print a list of all available types of quality definitions. The "type" of a quality definition comes
|
||||
from JSON files in the guide and this type is used in the configuration YAML for the
|
||||
`quality_definition` property:
|
||||
|
||||
```yml
|
||||
quality_definition:
|
||||
type: movie
|
||||
```
|
||||
|
||||
Above, `movie` would only be valid if that type appeared in the list output by the `radarr`
|
||||
subcommand run with this argument.
|
||||
|
||||
## Subcommand: `create-config`
|
||||
|
||||
Create a starter `recyclarr.yml` config file. The location of this file the [application data
|
||||
directory][appdata].
|
||||
|
||||
### `--path`
|
||||
|
||||
The absolute or relative path to the YAML file you want to create. The contents will be the same,
|
||||
the only difference is where the data gets written.
|
||||
|
||||
Example:
|
||||
|
||||
```sh
|
||||
./recyclarr create-config --path ~/myconfig.yml
|
||||
```
|
||||
|
||||
## Subcommand: `migrate`
|
||||
|
||||
Used to perform migration steps that may be needed after upgrades. Visit the [[Migration System]]
|
||||
page to read more about it.
|
||||
|
||||
### `--debug`
|
||||
|
||||
By default, Info, Warning and Error log levels are displayed in the console. This option enables
|
||||
Debug level logs to be displayed. This is designed for debugging and development purposes and
|
||||
generally will be too noisy for normal program usage.
|
||||
|
||||
[appdata]: https://github.com/recyclarr/recyclarr/wiki/File-Structure
|
@ -1,288 +0,0 @@
|
||||
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)
|
||||
- [Selectively update different parts of Sonarr v3](#selectively-update-different-parts-of-sonarr-v3)
|
||||
- [Update Sonarr v3 and v4 instances in a single YAML config](#update-sonarr-v3-and-v4-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)
|
||||
- [Scores in a quality profile should be set to zero if it wasn't listed in config](#scores-in-a-quality-profile-should-be-set-to-zero-if-it-wasnt-listed-in-config)
|
||||
|
||||
## 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, like
|
||||
this:
|
||||
|
||||
```yml
|
||||
sonarr:
|
||||
- base_url: http://localhost:8989
|
||||
api_key: f7e74ba6c80046e39e076a27af5a8444
|
||||
quality_definition: hybrid
|
||||
release_profiles:
|
||||
- trash_ids:
|
||||
- EBC725268D687D588A20CBC5F97E538B # Low Quality Groups
|
||||
- 1B018E0C53EC825085DD911102E2CA36 # Release Sources (Streaming Service)
|
||||
- 71899E6C303A07AF0E4746EFF9873532 # P2P Groups + Repack/Proper
|
||||
strict_negative_scores: false
|
||||
tags: [tv]
|
||||
|
||||
radarr:
|
||||
- base_url: http://localhost:7878
|
||||
api_key: bf99da49d0b0488ea34e4464aa63a0e5
|
||||
quality_definition:
|
||||
type: movie
|
||||
preferred_ratio: 0.5
|
||||
```
|
||||
|
||||
Even though it's all in one file, Radarr settings are ignored when you run `recyclarr sonarr` and
|
||||
vice versa. To update both, just chain them together in your terminal, like so:
|
||||
|
||||
```bash
|
||||
recyclarr sonarr && recyclarr radarr
|
||||
```
|
||||
|
||||
This scenario is pretty ideal for a cron job you have running regularly and you want it to update
|
||||
everything possible in one go.
|
||||
|
||||
## Selectively update different parts of Sonarr v3
|
||||
|
||||
***NOTE:** The official Docker container does not support multiple configuration files*
|
||||
|
||||
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:
|
||||
|
||||
`sonarr-release-profiles.yml`:
|
||||
|
||||
```yml
|
||||
sonarr:
|
||||
- base_url: http://localhost:8989
|
||||
api_key: f7e74ba6c80046e39e076a27af5a8444
|
||||
release_profiles:
|
||||
- trash_ids:
|
||||
- d428eda85af1df8904b4bbe4fc2f537c # Anime - First release profile
|
||||
- 6cd9e10bb5bb4c63d2d7cd3279924c7b # Anime - Second release profile
|
||||
tags: [anime]
|
||||
```
|
||||
|
||||
`sonarr-quality-definition.yml`:
|
||||
|
||||
```yml
|
||||
sonarr:
|
||||
- base_url: http://localhost:8989
|
||||
api_key: f7e74ba6c80046e39e076a27af5a8444
|
||||
quality_definition: hybrid
|
||||
```
|
||||
|
||||
Then run the following command:
|
||||
|
||||
```bash
|
||||
recyclarr sonarr --config sonarr-release-profiles.yml
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
recyclarr sonarr --config sonarr-release-profiles.yml sonarr-quality-definition.yml
|
||||
```
|
||||
|
||||
## Update Sonarr v3 and v4 instances in a single YAML config
|
||||
|
||||
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:
|
||||
|
||||
```yml
|
||||
sonarr:
|
||||
- base_url: http://sonarr_v4:8989
|
||||
api_key: f7e74ba6c80046e39e076a27af5a8444
|
||||
quality_definition: 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
|
||||
- base_url: http://sonarr_v3:8989
|
||||
api_key: bf99da49d0b0488ea34e4464aa63a0e5
|
||||
quality_definition: series
|
||||
release_profiles:
|
||||
- trash_ids:
|
||||
- EBC725268D687D588A20CBC5F97E538B # Low Quality Groups
|
||||
- 1B018E0C53EC825085DD911102E2CA36 # Release Sources (Streaming Service)
|
||||
- 71899E6C303A07AF0E4746EFF9873532 # P2P Groups + Repack/Proper
|
||||
```
|
||||
|
||||
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).
|
||||
|
||||
When you run `recyclarr sonarr` (specify `--config` if you aren't using the default `recyclarr.yml`)
|
||||
it will update both instances.
|
||||
|
||||
## 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:
|
||||
|
||||
```yml
|
||||
radarr:
|
||||
- base_url: http://localhost:7878
|
||||
api_key: 87674e2c316645ed85696a91a3d41988
|
||||
|
||||
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
|
||||
quality_profiles:
|
||||
- name: SD
|
||||
```
|
||||
|
||||
## 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:
|
||||
|
||||
```yml
|
||||
radarr:
|
||||
- base_url: http://localhost:7878
|
||||
api_key: 87674e2c316645ed85696a91a3d41988
|
||||
|
||||
custom_formats:
|
||||
# Take scores in the guide for these 3
|
||||
- trash_ids:
|
||||
- 3cafb66171b47f226146a0770576870f # TrueHD
|
||||
- dcf3ec6938fa32445f590a4da84256cd # DTS-HD MA
|
||||
- a570d4a0e56a2874b64e5bfa55202a1b # FLAC
|
||||
quality_profiles:
|
||||
- name: SD
|
||||
|
||||
# Assign manual scores to the 3 below CFs, each added to the same profile
|
||||
- trash_ids: [496f355514737f7d83bf7aa4d24f8169] # TrueHD ATMOS
|
||||
quality_profiles:
|
||||
- name: SD
|
||||
score: 100
|
||||
- trash_ids: [2f22d89048b01681dde8afe203bf2e95] # DTS X
|
||||
quality_profiles:
|
||||
- name: SD
|
||||
score: 200
|
||||
- trash_ids: [417804f7f2c4308c1f4c5d380d4c4475] # ATMOS (undefined)
|
||||
quality_profiles:
|
||||
- name: SD
|
||||
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):
|
||||
|
||||
```yml
|
||||
radarr:
|
||||
- base_url: http://localhost:7878
|
||||
api_key: 87674e2c316645ed85696a91a3d41988
|
||||
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
- 496f355514737f7d83bf7aa4d24f8169 # TrueHD ATMOS
|
||||
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
|
||||
- 417804f7f2c4308c1f4c5d380d4c4475 # ATMOS (undefined)
|
||||
- 1af239278386be2919e1bcee0bde047e # DD+ ATMOS
|
||||
- 3cafb66171b47f226146a0770576870f # 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:
|
||||
- trash_ids:
|
||||
- 496f355514737f7d83bf7aa4d24f8169 # TrueHD ATMOS
|
||||
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
|
||||
- 417804f7f2c4308c1f4c5d380d4c4475 # ATMOS (undefined)
|
||||
- 1af239278386be2919e1bcee0bde047e # DD+ ATMOS
|
||||
- 3cafb66171b47f226146a0770576870f # 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
|
||||
```
|
||||
|
||||
## 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."*
|
||||
|
||||
```yml
|
||||
radarr:
|
||||
- base_url: http://localhost:7878
|
||||
api_key: 87674e2c316645ed85696a91a3d41988
|
||||
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
- 1c7d7b04b15cc53ea61204bebbcc1ee2 # HQ
|
||||
|
||||
- trash_ids:
|
||||
- 2f22d89048b01681dde8afe203bf2e95 # DTS X
|
||||
- 3cafb66171b47f226146a0770576870f # TrueHD
|
||||
quality_profiles:
|
||||
- name: SD
|
||||
reset_unmatched_scores: true
|
||||
- name: Ultra-HD
|
||||
```
|
||||
|
||||
Let's say you have three custom formats added to Radarr: "DTS X", "TrueHD", and "HD". Since only the
|
||||
first 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:
|
||||
|
||||
- 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 `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.
|
@ -1,273 +0,0 @@
|
||||
Reference documentation for the YAML configuration. For various examples, see the [Configuration
|
||||
Examples] page.
|
||||
|
||||
[Configuration Examples]: https://github.com/recyclarr/recyclarr/wiki/Configuration-Examples
|
||||
|
||||
# Summary
|
||||
|
||||
The Recyclarr program utilizes YAML for its configuration files. The configuration can be set up
|
||||
multiple ways, offering a lot of flexibility:
|
||||
|
||||
- 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
|
||||
specify.
|
||||
|
||||
- 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
|
||||
configuration from the file relevant for the specific service subcommand you specified (e.g.
|
||||
`recyclarr sonarr` will only read the Sonarr config in the file, even if Radarr config is
|
||||
present).
|
||||
|
||||
> **Remember**: If you do not specify the `--config` argument, the program will look for
|
||||
> `recyclarr.yml` in the [application data directory][FileStructure].
|
||||
|
||||
[FileStructure]: https://github.com/recyclarr/recyclarr/wiki/File-Structure
|
||||
|
||||
# YAML Reference
|
||||
|
||||
Table of Contents
|
||||
|
||||
- [All Services](#all-services)
|
||||
- [Basic Settings](#basic-settings)
|
||||
- [Custom Format Settings](#custom-format-settings)
|
||||
- [Sonarr](#sonarr)
|
||||
- [Custom Format Settings](#custom-format-settings-1)
|
||||
- [Quality Definition Settings](#quality-definition-settings)
|
||||
- [Release Profile Settings](#release-profile-settings)
|
||||
- [Radarr](#radarr)
|
||||
- [Custom Format Settings](#custom-format-settings-2)
|
||||
- [Quality Definition Settings](#quality-definition-settings-1)
|
||||
|
||||
## All Services
|
||||
|
||||
The below settings are applicable to both Sonarr and Radarr.
|
||||
|
||||
### Basic Settings
|
||||
|
||||
- `base_url` **(Required)**<br>
|
||||
The base URL of your instance. Basically this is the URL you bookmark to get to the front page.
|
||||
|
||||
- `api_key` **(Required)**<br>
|
||||
The API key that Recyclarr should use to synchronize settings to your instance. You can obtain
|
||||
your API key by going to `Settings > General` and copy & paste the "API Key" under the "Security"
|
||||
group/header.
|
||||
|
||||
### Custom Format Settings
|
||||
|
||||
> ❗ **Notice** ❗<br>
|
||||
> For Sonarr: version 4 or greater is **required** for Custom Format support to work.
|
||||
|
||||
For details on the way Custom Formats are synchronized, 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 Recyclarr 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 formats 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.
|
||||
|
||||
- `trash_ids` (Optional; *`names` is required if not used*)<br>
|
||||
A list of one or more Trash IDs of custom formats to synchronize to Radarr. The IDs *must* be
|
||||
taken from the value of the `"trash_id"` property in the JSON itself. It will look like the
|
||||
following:
|
||||
|
||||
```json
|
||||
{
|
||||
"trash_id": "496f355514737f7d83bf7aa4d24f8169",
|
||||
}
|
||||
```
|
||||
|
||||
**TIP:** To ease the readability concerns of using IDs instead of names, leave a comment beside
|
||||
the Trash ID in your configuration so it can be easily identified later. For example:
|
||||
|
||||
```yml
|
||||
trash_ids:
|
||||
- 5d96ce331b98e077abb8ceb60553aa16 # dovi
|
||||
- a570d4a0e56a2874b64e5bfa55202a1b # flac
|
||||
```
|
||||
|
||||
> **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 `trash_ids`. Recyclarr 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.
|
||||
|
||||
- `reset_unmatched_scores` (Optional; *Default: `false`*)<br>
|
||||
If set to `true`, enables setting scores to `0` in quality profiles where either a name was
|
||||
not mentioned in the `names` array *or* it was in that list but did not get a score (e.g. no
|
||||
score in guide). If `false`, scores are never altered unless it is listed in the `names` array
|
||||
*and* has a valid score to assign.
|
||||
|
||||
## Sonarr
|
||||
|
||||
```yml
|
||||
sonarr:
|
||||
- base_url: http://localhost:8989
|
||||
api_key: f7e74ba6c80046e39e076a27af5a8444
|
||||
|
||||
# Quality Definition Settings
|
||||
quality_definition: hybrid
|
||||
|
||||
# Release Profile Settings
|
||||
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]
|
||||
```
|
||||
|
||||
### Custom Format Settings
|
||||
|
||||
> ❗ **Notice** ❗<br>
|
||||
> Sonarr version 4 or greater is **required** for Custom Format support to work.
|
||||
|
||||
See the [Custom Format Settings](#custom-format-settings) section under "All Services" at the top
|
||||
for more information.
|
||||
|
||||
### Quality Definition Settings
|
||||
|
||||
- `quality_definition` (Optional)<br>
|
||||
A quality definition type found by running the `recyclarr sonarr --list-qualities` command that
|
||||
identifies the quality size settings that should be parsed and uploaded to Sonarr.
|
||||
|
||||
There's one special case type here that won't appear in the output of the above command, nor is it
|
||||
one that exists in the guide: `hybrid`. It is a combination of both the `anime` and `series`
|
||||
quality definitions that is calculated by comparing each quality 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 good idea to use this one if you
|
||||
want more releases to be blocked by your release profiles instead of quality.
|
||||
|
||||
### Release Profile Settings
|
||||
|
||||
> 💀 **Deprecation Notice** 💀<br>
|
||||
> Release Profiles are deprecated and may not be used in Sonarr version 4 or greater!
|
||||
|
||||
- `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
|
||||
properties.
|
||||
|
||||
- `trash_ids` **(Required)**<br>
|
||||
A list of one or more Trash IDs taken from [the Trash Guide Sonarr JSON files][sonarrjson].
|
||||
|
||||
- `strict_negative_scores` (Optional; *Default: `false`*)<br>
|
||||
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` (Optional; *Default: Empty list*)<br>
|
||||
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` (Optional)<br>
|
||||
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, again, from the [Sonarr
|
||||
JSON Files][sonarrjson]. There is a `trash_id` field next to each `term` field; that is what you
|
||||
use.
|
||||
|
||||
- `include`<br>
|
||||
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`<br>
|
||||
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.
|
||||
|
||||
[sonarrjson]: https://github.com/TRaSH-/Guides/tree/master/docs/json/sonarr
|
||||
|
||||
## Radarr
|
||||
|
||||
```yml
|
||||
radarr:
|
||||
- base_url: http://localhost:7878
|
||||
api_key: bf99da49d0b0488ea34e4464aa63a0e5
|
||||
|
||||
# Quality Definition Settings
|
||||
quality_definition:
|
||||
type: movie
|
||||
preferred_ratio: 0.5
|
||||
|
||||
# Custom Format Settings
|
||||
delete_old_custom_formats: false
|
||||
custom_formats:
|
||||
- trash_ids:
|
||||
- ed38b889b31be83fda192888e2286d83 #BR-DISK
|
||||
- 90cedc1fea7ea5d11298bebd3d1d3223 #EVO (no WEBDL)
|
||||
- 90a6f9a284dff5103f6346090e6280c8 #LQ
|
||||
- dc98083864ea246d05a42df0d05f81cc #x265 (720/1080p)
|
||||
- b8cd450cbfa689c0259a01d9e29ba3d6 #3D
|
||||
- ae9b7c9ebde1f3bd336a8cbd1ec4c5e5 #No-RlsGroup
|
||||
- 7357cf5161efbf8c4d5d0c30b4815ee2 #Obfuscated
|
||||
- 5c44f52a8714fdd79bb4d98e2673be1f #Retags
|
||||
- b6832f586342ef70d9c128d40c07b872 #Bad Dual Groups
|
||||
- 923b6abef9b17f937fab56cfcf89e1f1 #DV (WEBDL)
|
||||
quality_profiles:
|
||||
- name: HD-1080p
|
||||
- name: HD-720p2
|
||||
score: -1000
|
||||
- trash_ids:
|
||||
- 496f355514737f7d83bf7aa4d24f8169 #TrueHD ATMOS
|
||||
- 2f22d89048b01681dde8afe203bf2e95 #DTS X
|
||||
quality_profiles:
|
||||
- name: SD
|
||||
```
|
||||
|
||||
### Custom Format Settings
|
||||
|
||||
See the [Custom Format Settings](#custom-format-settings) section under "All Services" at the top
|
||||
for more information.
|
||||
|
||||
### Quality Definition Settings
|
||||
|
||||
- `quality_definition` (Optional)<br>
|
||||
Specify information related to Radarr quality definition processing here. Only the following child
|
||||
properties are permitted. If not specified, no quality definitions will be synced.
|
||||
|
||||
- `type` **(Required)**<br>
|
||||
A quality definition type found by running the `recyclarr radarr --list-qualities` command that
|
||||
identifies the quality size settings that should be parsed and uploaded to Radarr.
|
||||
|
||||
- `preferred_ratio` (Optional; *Default: `1.0`*)<br>
|
||||
A value `0.0` to `1.0` that represents the percentage (interpolated) position of that middle
|
||||
slider you see when you enable advanced settings on the Quality Definitions page in Radarr. A
|
||||
value of `0.0` means the preferred quality will match the minimum quality. Likewise, `1.0` will
|
||||
match the maximum quality. A value such as `0.5` will keep it halfway between the two.
|
||||
|
||||
Any value less than `0` or greater than `1` will result in a warning log printed and the value
|
||||
will be clamped.
|
@ -1,191 +0,0 @@
|
||||
Recyclarr has an official Docker image hosted by the Github Container Registry (GHCR). The image
|
||||
name is `ghcr.io/recyclarr/recyclarr`.
|
||||
|
||||
## Docker Compose Example
|
||||
|
||||
Before we get into the details of how to use the Docker image, I want to start with an example. I
|
||||
personally hardly ever run `docker` commands directly. Instead, I use `docker compose` mainly
|
||||
because the `docker-compose.yml` file is a fantastic way to keep configuration details in one place.
|
||||
Thus, for the remainder of this page, all instruction and advice will be based on the example YAML
|
||||
below. I highly recommend you set up your own `docker-compose.yml` this way.
|
||||
|
||||
Note that the below example should not be used verbatim. It's meant for example purposes only. Copy
|
||||
& paste it but make the appropriate and necessary changes to it for your specific use case.
|
||||
|
||||
```yml
|
||||
version: '3'
|
||||
|
||||
networks:
|
||||
recyclarr:
|
||||
name: recyclarr
|
||||
external: true
|
||||
|
||||
services:
|
||||
recyclarr:
|
||||
image: ghcr.io/recyclarr/recyclarr
|
||||
container_name: recyclarr
|
||||
init: true
|
||||
user: 1000:1000
|
||||
networks: [recyclarr]
|
||||
volumes:
|
||||
- ./config:/config
|
||||
environment:
|
||||
- TZ=America/Santiago
|
||||
```
|
||||
|
||||
Here is a breakdown of the above YAML:
|
||||
|
||||
- `networks`<br>
|
||||
You are going to ultimately want Recyclarr to be able to connect to your Sonarr and Radarr
|
||||
instances. How you have Radarr and Sonarr hosted on your system will greatly impact how this part
|
||||
gets set up. In my case, I have a dedicated docker bridge network (in this example, named
|
||||
`recyclarr`) for those services. Naturally, that means I want Recyclarr to also run on that bridge
|
||||
network so it can access those services without going out and back in through my reverse proxy.
|
||||
- `image`<br>
|
||||
The official Recyclarr image, hosted on Github.
|
||||
- `container_name`<br>
|
||||
Optional, but I don't want the funky `prefix_recyclarr` name that Docker Compose uses for services
|
||||
by default.
|
||||
- `init`<br>
|
||||
**Required**: This will ensure that the container can be stopped without terminating it when you
|
||||
run `docker compose down` or `docker compose stop`. Internally, this runs Recyclarr using
|
||||
[tini](https://github.com/krallin/tini). Please visit that repo to understand the benefits in
|
||||
detail, if you're interested.
|
||||
- `user`<br>
|
||||
Optional User and Group ID you want to run the container as. Recyclarr will run using this UID:GID
|
||||
and any files it creates in your `/config` volume will also be owned by this user and group. The
|
||||
default for this, if not specified, is `1000:1000`.
|
||||
|
||||
## Tags
|
||||
|
||||
Tags for the docker image are broken down into the various components of the semantic version number
|
||||
following the format of `X.Y.Z`, where:
|
||||
|
||||
- `X`: Represents a *major* release containing breaking changes.
|
||||
- `Y`: Represents a *feature* release.
|
||||
- `Z`: Represents a *bugfix* release.
|
||||
|
||||
The structure of the tags are described by the following table. Assume for example purposes we're
|
||||
talking about `v2.1.2`. The table is sorted by *risk* in descending order. In other words, if you
|
||||
value *stability* the most, you want the bottom row. If you value being on *the bleeding edge*
|
||||
(highest risk), you want the top row.
|
||||
|
||||
| Tag | Description |
|
||||
| -------- | ----------------------------------------------------------------------- |
|
||||
| `edge` | Docker and Recyclarr changes on `master`. **Potentially unstable!** |
|
||||
| `latest` | Latest stable release, no matter what, including breaking changes |
|
||||
| `2` | Latest *feature* and *bugfix* release; manual update for major releases |
|
||||
| `2.1` | Latest *bugfix* release; manual update if you want new features |
|
||||
| `2.1.2` | Exact release; no automatic updates |
|
||||
|
||||
## Configuration
|
||||
|
||||
### Volumes
|
||||
|
||||
- `/config`<br>
|
||||
This is the application data directory for Recyclarr. In this directory, files like
|
||||
`recyclarr.yml` and `settings.yml` exist, as well as `logs`, `cache`, and other directories.
|
||||
|
||||
### Environment
|
||||
|
||||
- `CRON_SCHEDULE` (Default: `@daily`)<br>
|
||||
Standard cron syntax for how often you want Recyclarr to run (see [Cron Mode](#cron-mode)).
|
||||
|
||||
- `TZ` (Default: `UTC`)<br>
|
||||
The time zone you want to use for Recyclarr's local time in the container.
|
||||
|
||||
## Modes
|
||||
|
||||
The docker container can operate in one of two different ways, which are documented below.
|
||||
|
||||
**NOTE:** `recyclarr.yml` does not exist the first time you run the container. You will get an error
|
||||
until you either copy it manually into the volume or run `recyclarr create-config` manually.
|
||||
|
||||
### Manual Mode
|
||||
|
||||
In manual mode, the container starts up, runs a user-specified operation, and then exits. This is
|
||||
semantically identical to running Recyclarr directly on your host machine, but without all of the
|
||||
set up requirements.
|
||||
|
||||
The general syntax is:
|
||||
|
||||
```txt
|
||||
docker compose run --rm recyclarr [subcommand] [options]
|
||||
```
|
||||
|
||||
Where:
|
||||
|
||||
- `[subcommand]` is one of the supported Recyclarr subcommands, such as `sonarr` and `radarr`.
|
||||
- `[options]` are any options supported by that subcommand (e.g. `--debug`, `--preview`).
|
||||
|
||||
Examples:
|
||||
|
||||
```sh
|
||||
# Sync Sonarr with debug logs
|
||||
docker compose run --rm recyclarr sonarr --debug
|
||||
|
||||
# Do a preview (dry run) sync for Radarr
|
||||
docker compose run --rm recyclarr radarr --preview --debug
|
||||
```
|
||||
|
||||
**TIP:** The `--rm` option ensures the container is deleted after it runs (without it, your list of
|
||||
stopped containers will start to grow the more often you run it manually).
|
||||
|
||||
#### Warning about `docker exec`
|
||||
|
||||
I will not support any usage of `docker exec`, for now. It's far too error prone and can result in
|
||||
mixed file permissions in Recyclarr's app data directory (the `/config` volume). Please use `docker
|
||||
run --rm` instead (documented in the previous section).
|
||||
|
||||
When you run `docker exec` without the `--user` option, commands are executed as the default
|
||||
internal user, which is `1000:1000`. If you absolutely insist on using this command, ensure you
|
||||
specify the `--user` option using the same UID:GID that you use in `docker run` and that matches
|
||||
your volume's file ownership.
|
||||
|
||||
### Cron Mode
|
||||
|
||||
In this mode, no immediate action is performed. Rather, the container remains alive and continuously
|
||||
runs both Sonarr and Radarr sync at whatever `CRON_SCHEDULE` you set (default is daily).
|
||||
|
||||
If either the Sonarr or Radarr sync operations fail, they will not prevent each other from
|
||||
proceeding. In other words, if the order the sync happens is first Sonarr and then Radarr, if Sonarr
|
||||
fails, the Radarr sync will still proceed after. From a linux shell perspective, it effectively runs
|
||||
this command:
|
||||
|
||||
```sh
|
||||
recyclarr sonarr; recyclarr radarr
|
||||
```
|
||||
|
||||
To enter Cron Mode, you simply start the container in background mode:
|
||||
|
||||
```sh
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
This runs it without any subcommand or options, which will result in this mode being used.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Permission Issues
|
||||
|
||||
The `/config` volume is very sensitive to user changes in the container. For example, if you first
|
||||
run the container using `user: 1000:1000` and then run a second time using `user: 1500:1500`, you
|
||||
are likely to get errors. This is because files that Recyclarr creates are owned by the user & group
|
||||
you specify. Not all files can be used by multiple users.
|
||||
|
||||
If you change your user and/or group IDs, it is your responsibility to update the ownership of files
|
||||
in the `/config` volume so that they match the UID and GID you are specifying. This can be done
|
||||
through the `chown` command and may require root permissions on your host system.
|
||||
|
||||
### Error Messages
|
||||
|
||||
Below is a list of error messages you may encounter along with possible solutions.
|
||||
|
||||
- Permission Denied on `FETCH_HEAD`
|
||||
|
||||
```txt
|
||||
LibGit2Sharp.LockedFileException: failed open - '/config/repo/.git/FETCH_HEAD' is locked: Permission denied
|
||||
```
|
||||
|
||||
This is due to inconsistent permissions in your `/config` volume. See the "Permission Issues"
|
||||
section at the start of the Troubleshooting section for the solution.
|
@ -1,37 +0,0 @@
|
||||
A comprehensive list of features in Recyclarr.
|
||||
|
||||
## Sonarr Features
|
||||
|
||||
### Release Profiles
|
||||
|
||||
- "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.
|
||||
|
||||
### Quality Definitions
|
||||
|
||||
- Anime and Series (Non-Anime) quality definitions from the guide.
|
||||
- "Hybrid" type supported that is a mixture of both.
|
||||
|
||||
## Radarr Features
|
||||
|
||||
### Quality Definitions
|
||||
|
||||
- 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.
|
@ -1,25 +0,0 @@
|
||||
This page describes the general file structure used by Recyclarr for its data. Many of these are
|
||||
platform-specific.
|
||||
|
||||
## Application Data Directory
|
||||
|
||||
The application data directory is the root location for Recyclarr's files. With the exception of the
|
||||
main `recyclarr.yml` file, everything that Recyclarr reads or writes, by default, starts with this
|
||||
path.
|
||||
|
||||
| Platform | Location |
|
||||
| -------- | ----------------------------------------- |
|
||||
| Windows | `%APPDATA%\recyclarr` |
|
||||
| Linux | `~/.config/recyclarr` |
|
||||
| MacOS | `~/Library/Application Support/recyclarr` |
|
||||
|
||||
## Default YAML Configuration File
|
||||
|
||||
The default YAML configuration file is named `recyclarr.yml` and it is always located in the
|
||||
application data directory (listed above, listed for your platform).
|
||||
|
||||
For backward compatibility, if the `recyclarr.yml` file is located adjacent to your `recyclarr`
|
||||
executable, that will be loaded *first* and a warning is printed to the console. In this scenario,
|
||||
even if a `recyclarr.yml` file exists in your application data directory, *it will not be loaded!*
|
||||
|
||||
The solution is to delete or move the `recyclarr.yml` sitting next to the executable.
|
@ -1,54 +0,0 @@
|
||||
The Migration System allows Recyclarr to attempt certain automatic actions for the user. These
|
||||
actions, referred to as Migration Steps, are usually in response to certain changes between releases
|
||||
of Recyclarr (mostly major releases, which represent breaking changes). The overall goal of this
|
||||
system is to reduce the amount of manual action a user must take.
|
||||
|
||||
## Behavior
|
||||
|
||||
1. When Recyclarr is executed, it first runs through all of the Migration Steps in a specific,
|
||||
pre-determined order.
|
||||
1. Each Migration Step is checked if it needs to run or not.
|
||||
- If it needs to run, its actions are performed immediately.
|
||||
- Otherwise, it is skipped and the next Migration Step is processed.
|
||||
|
||||
Migration Steps can fail. When this happens, instructions are provided to the user on how to recover
|
||||
and/or perform those steps manually. Regardless of the reason, Recyclarr will immediately exit and
|
||||
cannot proceed until the advice output during the previous execution is followed.
|
||||
|
||||
## Failure & Recovery
|
||||
|
||||
When a Migration Step fails, processing of further steps is halted and the program exits. The
|
||||
failure also results in diagnostic information and remediation steps being printed to the console:
|
||||
|
||||
- A description of the Migration Step that failed. This is usually a description of what the step
|
||||
was trying to do.
|
||||
- A failure reason. Explains why the step failed and could not be processed.
|
||||
- Remediation steps. One or more ways to solve the problem. Will likely either ask you to perform
|
||||
the steps by hand or take some action to allow the migration step to succeed the next time
|
||||
Recyclarr is executed.
|
||||
|
||||
## Current Migration Steps
|
||||
|
||||
The list below describes the migration steps that are performed today, under what conditions they
|
||||
will be executed, and reasons why they might fail. Most of this information is already printed in
|
||||
real time by Recyclarr in response to failures.
|
||||
|
||||
### Rename app data directory from `trash-updater` to `recyclarr`
|
||||
|
||||
- **When**: `v2.0`
|
||||
- **What**: Renames your `trash-updater` app data directory to `recyclarr` automatically.
|
||||
- **Why**: The application was renamed from Trash Updater to Recyclarr. Thus, the app data directory
|
||||
name needed to follow suit.
|
||||
- **How can it fail?**
|
||||
- The `recyclarr` directory already exists.
|
||||
- User lacks sufficient permissions on the filesystem.
|
||||
|
||||
### Rename default `trash.yml` file to `recyclarr.yml`
|
||||
|
||||
- **When**: `v2.0`
|
||||
- **What**: Renames your `trash.yml` file to `recyclarr.yml` automatically.
|
||||
- **Why**: The application was renamed from Trash Updater to Recyclarr. Thus, the app data directory
|
||||
name needed to follow suit.
|
||||
- **How can it fail?**
|
||||
- The `recyclarr.yml` file already exists.
|
||||
- User lacks sufficient permissions on the filesystem.
|
@ -1,95 +0,0 @@
|
||||
This page contains the YAML reference for Recyclarr settings. Settings support was introduced in
|
||||
version `1.7.0`.
|
||||
|
||||
The `settings.yml` file is located in the following locations (by default) depending on your
|
||||
platform:
|
||||
|
||||
| Platform | Location |
|
||||
| -------- | ------------------------------------------------------ |
|
||||
| Windows | `%APPDATA%\recyclarr\settings.yml` |
|
||||
| Linux | `~/.config/recyclarr/settings.yml` |
|
||||
| MacOS | `~/Library/Application Support/recyclarr/settings.yml` |
|
||||
|
||||
Settings in this file affect the behavior of Recyclarr regardless of instance-specific configuration
|
||||
for Radarr and Sonarr.
|
||||
|
||||
If this file does not exist, Recyclarr will create it for you. Starting out, this file will be empty
|
||||
and default behavior will be used. There is absolutely no need to touch this file unless you have a
|
||||
specific reason to. It is recommended that you only add the specific properties for the
|
||||
customizations you need and leave the rest alone.
|
||||
|
||||
# Schema Validation
|
||||
|
||||
A schema file is provided for `settings.yml` to help assist in editing the file. To use it, simply
|
||||
add the below snippet to the first line in your `settings.yml` file:
|
||||
|
||||
```yml
|
||||
# yaml-language-server: $schema=https://raw.githubusercontent.com/recyclarr/recyclarr/master/schemas/settings-schema.json
|
||||
```
|
||||
|
||||
If you use VS Code to edit your settings file and install the [YAML extension][yaml], it will
|
||||
suggest properties you can use and show you documentation for each without having to reference this
|
||||
page.
|
||||
|
||||
[yaml]: https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml
|
||||
|
||||
# YAML Reference
|
||||
|
||||
Table of Contents
|
||||
|
||||
- [Global Settings](#global-settings)
|
||||
- [Repository Settings](#repository-settings)
|
||||
|
||||
## Global Settings
|
||||
|
||||
```yml
|
||||
enable_ssl_certificate_validation: true
|
||||
```
|
||||
|
||||
- `enable_ssl_certificate_validation`<br>
|
||||
If set to `false`, SSL certificates are not validated. This is useful if you are connecting to a
|
||||
Sonarr or Radarr instance using `https` and it is set up with self-signed certificates. Note that
|
||||
disabling this setting is a **security risk** and should be avoided unless you are absolutely sure
|
||||
what you are doing.
|
||||
|
||||
## Repository Settings
|
||||
|
||||
**NOTE**: Never edit files in the locally cloned repo managed by Recyclarr. It will always destroy
|
||||
local changes in that repository.
|
||||
|
||||
```yml
|
||||
repository:
|
||||
clone_url: https://github.com/TRaSH-/Guides.git
|
||||
branch: master
|
||||
sha1: e27659e3f90d9b60c1f0b0f204b2530bb2299b41
|
||||
```
|
||||
|
||||
- `clone_url` *(Default: `https://github.com/TRaSH-/Guides.git`)*<br>
|
||||
A URL compatible with `git clone` that is used to clone the [Trash Guides
|
||||
repository][official_repo]. This setting exists for enthusiasts that may want to instead have
|
||||
Recyclarr pull data from a fork instead of the official repository.
|
||||
|
||||
- `branch` *(Default: `master`)*<br>
|
||||
The name of a branch to check out in the repository.
|
||||
|
||||
- `sha1` *(Default: empty)*<br>
|
||||
A SHA1 (commit hash) in Git to use. If specified, it overrides the `branch` setting. This SHA1 is
|
||||
passed to `git reset --hard` to force your local clone to this specific revision in the
|
||||
repository. If not specified, only the `branch` controls what revision is used in the repo.
|
||||
|
||||
[official_repo]: https://github.com/TRaSH-/Guides
|
||||
|
||||
## Log Janitor Settings
|
||||
|
||||
The log janitor is responsible for cleaning up logs generated by Recyclarr each time a command is
|
||||
executed. These settings allow the user to alter the default cleanup behavior. For example, you may
|
||||
want logs to be cleaned up sooner or keep log files around longer.
|
||||
|
||||
```yml
|
||||
log_janitor:
|
||||
max_files: 20
|
||||
```
|
||||
|
||||
- `max_files` *(Default: `20`)*<br>
|
||||
The maximum number of log files to keep. If there are more log files than the max allowed here,
|
||||
Log Janitor will remove the oldest log files.
|
@ -1,85 +0,0 @@
|
||||
The troubleshooting steps documented here are for the non-docker version of Recyclarr (running it
|
||||
directly on a host machine). The [Docker] page has troubleshooting steps as well.
|
||||
|
||||
[Docker]: https://github.com/recyclarr/recyclarr/wiki/Docker
|
||||
|
||||
# Obtaining Debug Logs
|
||||
|
||||
Recyclarr always outputs logs as files in a directory on your filesystem. Each execution of
|
||||
Recyclarr yields a new file and those files always contain verbose (debug) logs. When reporting
|
||||
issues, I ask that you always include logs from the file rather than the command line output since
|
||||
Recyclarr will not include debug logs by default in the console output.
|
||||
|
||||
Below is a list of locations where you can find the log directory depending on platform.
|
||||
|
||||
| Platform | Location |
|
||||
| -------- | ---------------------------------------------- |
|
||||
| Windows | `%APPDATA%\recyclarr\logs` |
|
||||
| Linux | `~/.config/recyclarr/logs` |
|
||||
| MacOS | `~/Library/Application Support/recyclarr/logs` |
|
||||
|
||||
# Errors & Solutions
|
||||
|
||||
* On Mac or Linux OS, you may see the following error when you run `recyclarr`:
|
||||
|
||||
```txt
|
||||
Failed to map file. open(/Users/foo/Downloads/recyclarr) failed with error 13
|
||||
Failure processing application bundle.
|
||||
Couldn't memory map the bundle file for reading.
|
||||
A fatal error occurred while processing application bundle
|
||||
```
|
||||
|
||||
This cryptic message is actually a permissions error, likely because your executable does not have
|
||||
read permissions set. Simply run `chmod u+rx recyclarr` to add read + execute permissions on the
|
||||
`recyclarr` executable.
|
||||
|
||||
* When communicating with Radarr or Sonarr, you get the following exception message:
|
||||
|
||||
> FlurlParsingException: Response could not be deserialized to JSON: `GET
|
||||
> http://hostname:6767/api/v3/customformat?apikey=SNIP` --->
|
||||
> Newtonsoft.Json.JsonSerializationException: Deserialized JSON type
|
||||
> 'Newtonsoft.Json.Linq.JArray' is not compatible with expected type
|
||||
> 'Newtonsoft.Json.Linq.JObject'. Path '', line 1, position 2.
|
||||
|
||||
This means your Base URL is missing from the URL you specified in the YAML. See issue [#42] for
|
||||
more details.
|
||||
|
||||
* On Ubuntu 22.04 or derivatives when you run `recyclarr radarr` you will get the following error:
|
||||
|
||||
```txt
|
||||
[ERR] An exception occurred during git operations on path: /home/REDACTED/.config/recyclarr/repo
|
||||
LibGit2Sharp.LibGit2SharpException: could not load ssl libraries
|
||||
------
|
||||
[INF] Deleting local git repo and retrying git operation...
|
||||
[1] 257872 segmentation fault (core dumped) ./recyclarr radarr
|
||||
```
|
||||
|
||||
Ubuntu and Fedora moved from libssl 1.1 to libssl 3.0 in version 22.04 and 36 respectively. This
|
||||
currently breaks Recyclarr. See issue [#54] for more details.
|
||||
|
||||
As a workaround, you can install libssl-1.1 from an earlier version, however, this might impact
|
||||
other applications. Instructions are below for various platforms. Choose the one that best fits
|
||||
your scenario.
|
||||
|
||||
* On Ubuntu 22.04 x64 (64-bit) run the following commands in the shell
|
||||
|
||||
```sh
|
||||
wget http://mirrors.kernel.org/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb
|
||||
sudo dpkg -i libssl1.1_1.1.1l-1ubuntu1.2_amd64.deb
|
||||
```
|
||||
|
||||
* On Ubuntu 22.04 x86 (32-bit) run the following commands in the shell
|
||||
|
||||
```sh
|
||||
wget http://mirrors.kernel.org/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1l-1ubuntu1.2_i386.deb
|
||||
sudo dpkg -i libssl1.1_1.1.1l-1ubuntu1.2_i386.deb
|
||||
```
|
||||
|
||||
* On Fedora 36 you can simply install the compatibility package included in the default repo
|
||||
|
||||
```sh
|
||||
sudo dnf install openssl1.1
|
||||
```
|
||||
|
||||
[#42]: https://github.com/recyclarr/recyclarr/issues/42
|
||||
[#54]: https://github.com/recyclarr/recyclarr/issues/54
|
@ -1,101 +0,0 @@
|
||||
# Version 2.0
|
||||
|
||||
This version introduces changes to the way Sonarr Release Profiles are specified in your YAML
|
||||
configuration (`trash.yml`). As such, changes are required to your YAML to avoid errors. First,
|
||||
visit the "Series Types" section to replace the `type` attribute with `trash_ids` as needed. Then
|
||||
check out the "Term Filters" section to see about removing the `include_optionals` property.
|
||||
|
||||
## Series Types
|
||||
|
||||
The `type` property under `release_profiles` has been removed. Replaced by a new `trash_ids`
|
||||
property.
|
||||
|
||||
### Drop-In Replacement for Series
|
||||
|
||||
For `series`, replace this:
|
||||
|
||||
```yml
|
||||
release_profiles:
|
||||
- type: series
|
||||
```
|
||||
|
||||
With this (or you can customize it if you want less):
|
||||
|
||||
```yml
|
||||
release_profiles:
|
||||
- trash_ids:
|
||||
- EBC725268D687D588A20CBC5F97E538B # Low Quality Groups
|
||||
- 1B018E0C53EC825085DD911102E2CA36 # Release Sources (Streaming Service)
|
||||
- 71899E6C303A07AF0E4746EFF9873532 # P2P Groups + Repack/Proper
|
||||
```
|
||||
|
||||
### Drop-In Replacement for Anime
|
||||
|
||||
For `series`, replace this:
|
||||
|
||||
```yml
|
||||
release_profiles:
|
||||
- type: anime
|
||||
```
|
||||
|
||||
With this (or you can customize it if you want less):
|
||||
|
||||
```yml
|
||||
release_profiles:
|
||||
- trash_ids:
|
||||
- d428eda85af1df8904b4bbe4fc2f537c # Anime - First release profile
|
||||
- 6cd9e10bb5bb4c63d2d7cd3279924c7b # Anime - Second release profile
|
||||
```
|
||||
|
||||
## Term Filters
|
||||
|
||||
The following changes apply to YAML under the `filter` property.
|
||||
|
||||
- Property `include_optional` removed.
|
||||
- `include` and `exclude` properties added to explicitly choose terms to include or exclude,
|
||||
respectively.
|
||||
|
||||
### Replacement Examples
|
||||
|
||||
If you are coming from YAML like this:
|
||||
|
||||
```yml
|
||||
release_profiles:
|
||||
- trash_ids: [EBC725268D687D588A20CBC5F97E538B]
|
||||
strict_negative_scores: false
|
||||
filter:
|
||||
include_optional: true
|
||||
tags:
|
||||
- tv
|
||||
```
|
||||
|
||||
Simply remove the `include_optional` property above, to get this:
|
||||
|
||||
```yml
|
||||
release_profiles:
|
||||
- trash_ids: [EBC725268D687D588A20CBC5F97E538B]
|
||||
strict_negative_scores: false
|
||||
tags:
|
||||
- tv
|
||||
```
|
||||
|
||||
## Files & Directories Renamed
|
||||
|
||||
Since "Trash Updater" is now known as "Recyclarr", the v2.0 release will attempt to perform the
|
||||
following each time you run it:
|
||||
|
||||
- Rename the default `trash.yml` to `recyclarr.yml` (ignore this if you don't use it)
|
||||
- Rename the app data directory from `trash-updater` to `recyclarr`
|
||||
|
||||
These are explained in more detail on the [Migration System] page.
|
||||
|
||||
## Other Notes
|
||||
|
||||
- In this release, since you now have the ability to specifically include optionals that you want, I
|
||||
recommend visiting the [Configuration Reference] and learning more about the `include` and
|
||||
`exclude` filter lists.
|
||||
- Migration steps have been added. See the `v2.0` migration steps documented on the [Migration
|
||||
System] page.
|
||||
|
||||
[Configuration Reference]: https://github.com/recyclarr/recyclarr/wiki/Configuration-Reference
|
||||
[Migration System]: https://github.com/recyclarr/recyclarr/wiki/Migration-System
|
Loading…
Reference in new issue