The documentation here is for an unreleased version of Recyclarr.
Visit the documentation site for the Current Version instead.Override Examples
This page demonstrates how to extend or override official resources using custom providers. Each resource type uses a different identification key for merging - see Resource Identification Keys for the complete reference.
Key Concepts
When working with resource providers:
- Extend: Use a unique key to add new resources alongside official ones
- Override: Use the same key as an official resource to replace it entirely
All key comparisons are case-insensitive.
Media Naming
Media naming uses dictionary keys (like default, plex-imdb) for identification.
Sonarr Naming Example
Official TRaSH Guides provides naming schemes with keys like default. To add your own schemes or
override existing ones:
{
"season": {
"default": "Season {season:00}"
},
"series": {
"default": "{Series TitleYear}",
"plex-tvdb": "{Series TitleYear} {tvdb-{TvdbId}}"
},
"episodes": {
"standard": {
"default": "{Series TitleYear} - S{season:00}E{episode:00} - {Episode CleanTitle}",
"my-compact": "{Series Title} - {season:00}x{episode:00} - {Episode Title}"
},
"daily": {
"default": "{Series TitleYear} - {Air-Date} - {Episode CleanTitle}"
},
"anime": {
"default": "{Series TitleYear} - S{season:00}E{episode:00} - {absolute:000} - {Episode CleanTitle}"
}
}
}
In this example:
defaultkeys override the official TRaSH naming schemesplex-tvdboverrides the official key;my-compactextends with a new option
Radarr Naming Example
{
"folder": {
"default": "{Movie CleanTitle} ({Release Year})",
"plex-imdb": "{Movie CleanTitle} ({Release Year}) {imdb-{ImdbId}}"
},
"file": {
"standard": "{Movie CleanTitle} ({Release Year}) {[Quality Full]}",
"my-detailed": "{Movie CleanTitle} ({Release Year}) - {Edition Tags} {[Custom Formats]}{[Quality Full]}{-Release Group}"
}
}
Config Includes
Config includes use the id field in includes.json for identification.
Overriding an Official Include
To replace the official radarr-custom-formats-hd-bluray-web include with your own version:
includes.json:
[
{
"id": "radarr-custom-formats-hd-bluray-web",
"template": "radarr/includes/custom-formats/hd-bluray-web.yml"
}
]
Your include with the same ID completely replaces the official version.
Adding New Includes
Use unique IDs to add alongside official includes:
[
{
"id": "my-radarr-anime-quality",
"template": "radarr/includes/anime-quality.yml"
},
{
"id": "my-sonarr-language-german",
"template": "sonarr/includes/language-german.yml"
}
]
Config Templates
Config templates use the id field in templates.json for identification.
Overriding an Official Template
To replace the official hd-bluray-web template:
templates.json:
[
{
"id": "hd-bluray-web",
"template": "radarr/templates/hd-bluray-web.yml"
}
]
Adding New Templates
[
{
"id": "my-radarr-4k-hdr",
"template": "radarr/templates/4k-hdr.yml"
}
]
Custom Formats
Custom formats use the trash_id field in each JSON file for identification.
Overriding an Official Custom Format
Copy the official custom format JSON, modify it as needed, and keep the same trash_id:
{
"trash_id": "496f355514737f7d83bf7aa4d24f8169",
"name": "TrueHD ATMOS (Modified)",
"specifications": [
{
"name": "TrueHD ATMOS",
"implementation": "ReleaseTitleSpecification",
"fields": {
"value": "\\b(TrueHD.?Atmos|Atmos.?TrueHD)\\b"
}
}
]
}
Since your provider is listed after the implicit official provider, your version takes precedence.
Adding New Custom Formats
Use a unique trash_id (UUID or descriptive slug):
{
"trash_id": "my-german-dub",
"name": "German Dub",
"specifications": [
{
"name": "German Language",
"implementation": "LanguageSpecification",
"fields": {
"value": 4
}
}
]
}
Provider Configuration
For all override scenarios, add your provider to settings.yml:
resource_providers:
# For trash-guides content (naming, quality sizes, custom formats)
- name: my-guides
type: trash-guides
clone_url: https://github.com/yourname/my-guides.git
reference: main
# For config templates and includes
- name: my-templates
type: config-templates
clone_url: https://github.com/yourname/my-templates.git
reference: main
# For simple custom format additions (no metadata.json needed)
- name: my-cfs
type: custom-formats
path: /home/user/custom-formats/radarr
service: radarr
Resources from your providers override official ones with matching keys. Resources with unique keys are added alongside official content.