docs(wiki): Delete all wiki pages except Home.md

This is to force the wiki workflow to remove most of the pages on the
wiki site.
pull/136/head
Robert Dailey 2 years ago
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…
Cancel
Save