Custom Formats#
Custom formats are the primary method for controlling how releases are selected and prioritised in Radarr.
Criteria can be something as simple as a single preferred word, or as complex as multiple regular expressions matching for a variety of complementing media attributes, and in any case, Radarr allows you to flexibly determine how releases should be picked when managing movies.
Note
For more information on how to use custom formats in Radarr, refer to How to setup Quality Profiles.
In Buildarr, custom formats can be configured using two different methods: importing from TRaSH-Guides, or manually definitions.
radarr:
settings:
custom_formats:
delete_unmanaged: true
definitions:
# Import custom formats from TRaSH-Guides.
remaster:
trash_id: 570bc9ebecd92723d2d21500f4be314c
# `default_score` is 25, as set in the TRaSH-Guides custom format.
4k-remaster:
trash_id: eca37840c13c6ef2dd0262b141a5482f
default_score: 26 # Override default score from TRaSH-Guides custom format.
# Manually define custom formats.
br-disk:
default_score: -10000
conditions:
br-disk:
type: quality-modifier
modifier: BRDISK
negate: false
required: false
3d:
# No `default_score` defined on manually defined custom format: default to 0.
conditions:
bluray-3d:
type: release-title
regex: '\\b(BluRay3D)\\b'
negate: false
required: false
The following attributes determine how custom formats are managed by Buildarr.
Quality Profiles#
When using custom formats in quality profiles, they are assigned a score value to configure how releases are prioritised.
radarr:
settings:
profiles:
quality_profiles:
definitions:
HD:
upgrades_allowed: true
upgrade_until_quality: Bluray-1080p
qualities:
- Bluray-1080p
- name: WEB 1080p
members:
- WEBDL-1080p
- WEBRip-1080p
minimum_custom_format_score: 0
upgrade_until_custom_format_score: 10000
custom_formats:
# Wanted
- name: remaster # No `score` defined: Use `default_score` from the custom format.
- name: 4k-remaster
# Unwanted
- name: br-disk
- name: 3d
score: -10000 # Inverse of maximum allowed score, to ensure it is never selected.
language: english
For more information on how to use custom formats to filter and prioritise media in Buildarr, check the Quality Profiles documentation.
Importing from TRaSH-Guides#
TRaSH-Guides contains a large collection of pre-made custom formats, to make it easier for new users to get started with configuring Radarr correctly.
Buildarr makes it even easier by providing a convenient way to automatically
import these custom formats, using the trash_id
attribute.
Simply create a custom format with any desired name, set the corresponding trash_id
attribute,
and Buildarr will take care of everything.
Using Buildarr daemon, these custom formats are also kept automatically up to date whenever they are changed in the guides, eliminating the need to manually check and update your configuration.
...
custom_formats:
delete_unmanaged: true
definitions:
# Import custom formats from TRaSH-Guides.
remaster:
trash_id: 570bc9ebecd92723d2d21500f4be314c
# `default_score` is 25, as set in the TRaSH-Guides custom format.
4k-remaster:
trash_id: eca37840c13c6ef2dd0262b141a5482f
default_score: 26 # Override default score from TRaSH-Guides custom format.
When using only the trash_id
parameter, Buildarr will set the default score
and all conditions using sane defaults from TRaSH-Guides.
However, all aspects of a TRaSH-Guides imported custom format can be overridden using the same parameters as available in manually defining custom formats. When overriding conditions, make sure to use the same name for the condition as in the TRaSH-Guides definition.
trash_id: Optional[TrashID] = None
class-attribute
instance-attribute
#
Trash ID of the TRaSH-Guides custom format profile to load default values from.
If there is an update in the profile, the custom format conditions will be updated accordingly.
If a condition that is explicitly defined on this custom format in Buildarr has the same name as a condition in the TRaSH-Guides profile, the explicitly defined condition takes precedence.
Manual Definitions#
If the pre-made custom formats available online are not sufficient for your needs, you can define a custom format completely manually in Buildarr, using the following syntax.
...
custom_formats:
delete_unmanaged: true
definitions:
br-disk:
default_score: -10000
conditions:
br-disk:
type: quality-modifier
modifier: BRDISK
negate: false
required: false
3d:
# No `default_score` defined on manually defined custom format: default to 0.
include_when_renaming: true # Set to false by default.
delete_unmanaged_conditions: false # Set to true by default, and should be most of the time.
conditions:
bluray-3d:
type: release-title
regex: '\\b(BluRay3D)\\b'
negate: false
required: false
default_score: Optional[int] = None
class-attribute
instance-attribute
#
The default score assigned to this custom format when it is assigned to a quality profile.
If this attribute is explicitly defined on the custom format, the defined value will always be used as the default score.
If default_score
is not defined, the default value used by Buildarr depends on the
type of custom format:
- If this is a custom format imported from a Trash ID, this will default to the default
score TRaSH-Guides has assigned this custom format (
trash_scores.default
in the metadata). If the custom format does not have a default score defined, the default score will be 0. - If this is a manually defined custom format, the default score will be 0.
include_when_renaming: bool = False
class-attribute
instance-attribute
#
Make the custom format available in the {Custom Formats}
template when renaming media titles.
delete_unmanaged_conditions: bool = True
class-attribute
instance-attribute
#
Delete conditions defined on this custom format on the remote instance not managed by Buildarr.
It is recommended to keep this option enabled, particularly for custom formats imported from TRaSH-Guides.
conditions: Dict[str, Annotated[ConditionType, Field(discriminator='type')]] = {}
class-attribute
instance-attribute
#
A list of conditions that will cause the custom format to be applied to a release if matches are found.
By default, only one of the defined conditions need to match for the custom format
to be applied. If one or more conditions have required
set to true
, those conditions
must all match in order for the custom format to be applied.
The following sections document the custom format condition types available for use in Buildarr.
Edition#
Custom format condition for matching based on media edition.
...
custom_formats:
definitions:
edition:
default_score: 0
conditions:
extended-edition:
type: edition
regex: '(?<!^|{)\\b(extended|uncut|directors|special|unrated|uncensored|cut|version|edition)(\\b|\\d)'
negate: false
required: false
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Indexer Flag#
Custom format condition for matching based on indexer flags.
...
custom_formats:
definitions:
indexer-flags:
default_score: 0
conditions:
freeleech:
type: indexer-flag
flag: g-freeleech
negate: false
required: false
type: Literal['indexer-flag', 'indexer_flag', 'indexerflag'] = 'indexer-flag'
class-attribute
instance-attribute
#
Buildarr type keywords associated with this condition type.
flag: NonEmptyStr
instance-attribute
#
The indexer flag to match against.
All values supported by your Radarr instance version can be defined. As of Radarr v4.7.5, the following flags are available:
g-freeleech
g-halfleech
g-doubleupload
ptp-golden
ptp-approved
hdb-internal
ahd-internal
g-scene
g-freeleech75
g-freeleech25
ahd-userrelease
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Language#
Custom format condition for matching based on language.
...
custom_formats:
definitions:
english:
default_score: 20
conditions:
english:
type: language
language: english
negate: false
required: false
japanese:
default_score: 10
conditions:
japanese:
type: language
language: japanese
negate: false
required: false
portuguese:
default_score: 0
conditions:
portuguese:
type: language
language: portuguese
negate: false
required: false
portuguese-brazil:
type: language
language: portuguese-brazil
negate: false
required: false
type: Literal['language'] = 'language'
class-attribute
instance-attribute
#
Buildarr type keyword associated with this condition type.
language: NonEmptyStr
instance-attribute
#
The language to match against, written in English.
Use the any
keyword to match any language.
Use the original
keyword to match for the original language of the media.
All languages supported by your Radarr instance version can be defined in this condition.
Examples:
english
portuguese-brazil
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Quality Modifier#
Custom format condition for matching based on quality modifiers.
...
custom_formats:
definitions:
br-disk:
default_score: -10000
conditions:
br-disk:
type: quality-modifier
modifier: BRDISK
negate: false
required: false
type: Literal['quality-modifier', 'quality_modifier', 'qualitymodifier', 'quality'] = 'quality-modifier'
class-attribute
instance-attribute
#
Buildarr type keywords associated with this condition type.
modifier: UpperCaseNonEmptyStr
instance-attribute
#
The modifier to match against.
All values supported by your Radarr instance version can be defined. As of Radarr v4.7.5, the following modifiers are available:
NONE
REGIONAL
SCREENER
RAWHD
BRDISK
REMUX
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Release Group#
Custom format condition for matching based on release group.
...
custom_formats:
definitions:
release-groups:
default_score: 1800
conditions:
chotab:
type: release-group
regex: '^(Chotab)$'
negate: false
required: false
ctrlhd:
type: release-group
regex: '^(CtrlHD)$'
negate: false
required: false
type: Literal['release-group', 'release_group', 'releasegroup'] = 'release-group'
class-attribute
instance-attribute
#
Buildarr type keywords associated with this condition type.
regex: NonEmptyStr
instance-attribute
#
The regular expression to use to match release groups to the custom format.
Regular expression matching is case-insensitive.
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Release Title#
Custom format condition for matching based on release title contents.
...
custom_formats:
definitions:
anime-groups:
default_score: 500
conditions:
asakura:
type: release-title
regex: '\\[Asakura\\]|-Asakura\\b'
negate: false
required: false
tenshi:
type: release-title
regex: '\\[tenshi\\]|-tenshi\\b'
negate: false
required: false
type: Literal['release-title', 'release_title', 'releasetitle'] = 'release-title'
class-attribute
instance-attribute
#
Buildarr type keywords associated with this condition type.
regex: Optional[str] = None
class-attribute
instance-attribute
#
The regular expression to use to match release titles to the custom format.
Regular expression matching is case-insensitive.
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Resolution#
Custom format condition for matching based on media resolution.
...
custom_formats:
definitions:
1080p:
default_score: 1000
conditions:
chotab:
type: resolution
resolution: r1080p
negate: false
required: false
4k:
default_score: -10000
conditions:
ctrlhd:
type: resoltuion
resolution: r2160p
negate: false
required: false
type: Literal['resolution'] = 'resolution'
class-attribute
instance-attribute
#
Buildarr type keyword associated with this condition type.
resolution: LowerCaseNonEmptyStr
instance-attribute
#
The resolution to match against.
All values supported by your Radarr instance version can be defined. As of Radarr v4.7.5, the following resolutions are available:
r360p
(360p)r480p
(480p)r576p
(576p)r720p
(720p)r1080p
(1080p HD)r2160p
(2160p Ultra-HD)
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Size#
Custom format condition for matching based on media file size.
...
custom_formats:
definitions:
allowed-size:
default_score: 1000
conditions:
allowed-size:
type: size
min: 10 # GB
max: 20 # GB
negate: false
required: false
type: Literal['size'] = 'size'
class-attribute
instance-attribute
#
Buildarr type keyword associated with this condition type.
min: int = Field(0, ge=0)
class-attribute
instance-attribute
#
The minimum size, in gigabytes (GB).
In order to match, the media must be larger than this size.
max: int = Field(1, ge=1)
class-attribute
instance-attribute
#
The maximum size, in gigabytes (GB).
In order to match, the media must be smaller than, or equal to, this size.
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.
Source#
Custom format condition for matching based on media source type.
...
custom_formats:
definitions:
allowed-sources:
default_score: 0
conditions:
blu-ray:
type: source
source: BLURAY
negate: false
required: true
type: Literal['source'] = 'source'
class-attribute
instance-attribute
#
Buildarr type keyword associated with this condition type.
source: UpperCaseNonEmptyStr
instance-attribute
#
The source type to match against.
All values supported by your Radarr instance version can be defined. As of Radarr v4.7.5, the following source types are available:
UNKNOWN
CAM
TELESYNC
TELECINE
WORKPRINT
DVD
TV
WEBDL
WEBRIP
BLURAY
negate: bool = False
class-attribute
instance-attribute
#
When set to true
, negates the condition on the custom format.
If a condition with this field set to true
matches, the custom format
will not apply to the media.
required: bool = False
class-attribute
instance-attribute
#
When set to true
, this condition must match in order for the custom format to apply
to media.
If this field is false
on all conditions in a custom format, it will apply
if any one of the defined conditions match.