commit 732a1e4daf27c4ce54e072244946dc3915b08813 Author: <> Date: Wed Dec 29 06:15:38 2021 +0000 Deployed 77f5a4c with MkDocs version: 1.2.3 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/404.html b/404.html new file mode 100644 index 000000000..387e76fc9 --- /dev/null +++ b/404.html @@ -0,0 +1,2024 @@ + + + +
+ + + + + + + + + + + + + + + +After you've installed everything it's best to check all of your settings,
+Attention
+Bazarr only searches for subs for Episodes and Movies that are added after the install.
+So you will need to set the preferred languages for your existing Shows and Movies.
+In this example I will show you how to do that with the series.
+ +click on Mass Edit
Save
.Then go back to your Movies home screen and do the same for your Movies. +If you've done it correctly you will get something that looks like the following screenshot with your preferred languages.
+ + +Note
+In this guide we will try to explain the basic setup you need to do to get started with Bazarr. +For a more detailed few of all the setting check the following LINK.
+Before Bazarr works we need to setup and configure a few settings.
+After installation and starting up, you open a browser and go to http://ip_where_installed:6767.
+First we're going to setup Sonarr.
+Settings
=> Sonarr
Click on Enabled
Enter the hostname or the IP address of the computer running your Sonarr instance.
+Info
+Be aware that when using Bazarr in docker, you cannot reach another container on the same Docker host using the loopback address (ex.: 127.0.0.1 or localhost). Loopback address refer to the Bazarr Docker container, not the Docker host.
+Enter the TCP port of your Sonarr instance. Default is 8989.
+Sonarr uses the Base URL ONLY if used with a "Reverse Proxy" (ex: Nginx Proxy Manager or SWAG) and MUST have a leading slash if it is needed (ex: /sonarr).
+Info
+If you don't use a reverse proxy or don't know what it is leave this empty !!!
+Enter your Sonarr API key here.
+Enable this if your Sonarr instance is exposed through SSL.
+Info
+Not needed if you reach it with a local IP address.
+Click the Test
button after filling in all the fields. Make sure the test is successful before you proceed.
Select the minimum score (in percentage) required for a subtitles file to be downloaded.
+Info
+Are your subs often out of sync or just bad? Raise the score!
+Episodes from series with those tags (case sensitive) in Sonarr will be excluded from automatic download of Subtitles. In Sonarr you add a custom tag to a show, in this case the shows with these tags will be ignored by Bazarr.
+Episodes from series with these types in Sonarr will be excluded from automatic download of Subtitles.
+Options: Standard
, Anime
, Daily
Automatic download of Subtitles will only happen for monitored shows/episodes in Sonarr.
+Note
+You should only use this section if Sonarr and Bazarr use a different path to access the same files.
+(for example if you run Sonarr on a different device then Bazarr or have a Synology and mix packages with Docker.)
+Click on Add
and you will get a extra option
Attention
+IF YOU GOT THE SAME VALUES ON BOTH SIDES THEN YOU DON'T NEED IT !!!
+IT SHOULD ALSO BE REMOVED OR ELSE YOU WILL GET A ERROR.
+Info
+If everything runs on Docker you normally don't need to use this except if you got messed up paths and then it would be smarter to fix those first to have consistent and well planned paths.
+Please take a look at TRaSH's Hardlink Tutorial https://trash-guides.info/hardlinks
+Don't forget to Save your settings !!!
+ +Next we're going to setup Radarr.
+Settings
=> Radarr
Click on Enabled
Enter the hostname or the IP address of the computer running your Sonarr instance.
+Info
+Be aware that when using Bazarr in docker, you cannot reach another container on the same Docker host using the loopback address (ex.: 127.0.0.1 or localhost). Loopback address refer to the Bazarr Docker container, not the Docker host.
+Enter the TCP port of your Radarr instance. Default is 7878.
+Radarr uses the Base URL ONLY if used with a "Reverse Proxy" (ex: Nginx Proxy Manager or SWAG) and MUST have a leading slash if it is needed (ex: /radarr). + !!! info
+**If you don't use a reverse proxy or don't know what it is leave this empty !!!**
+
Enter your Radarr API key here.
+Enable this if your Radarr instance is exposed through SSL.
+Info
+Not needed if you reach it with a local IP address.
+Click the Test
button after filling in all the fields. Make sure the test is successful before you proceed.
Select the minimum score (in percentage) required for a subtitles file to be downloaded.
+Info
+Are your subs often out of sync or just bad? Raise the score!
+Movies with those tags (case sensitive) in Radarr will be excluded from automatic download of Subtitles, In Radarr you add a custom tag to a movie.
+Automatic download of Subtitles will only happen for monitored movies in Radarr.
+Note
+You should only use this section if Radarr and Bazarr use a different path to access the same files.
+(for example if you run Radarr on a different device then Bazarr or have a Synology and mix packages with Docker.)
+Click on Add
and you will get a extra option
Attention
+IF YOU GOT THE SAME VALUES ON BOTH SIDES THEN YOU DON'T NEED IT !!!
+IT SHOULD ALSO BE REMOVED OR ELSE YOU WILL GET A ERROR.
+Info
+If everything runs on Docker you normally don't need to use this except if you got messed up paths and then it would be smarter to fix those first to have consistent and well planned paths.
+Please take a look at TRaSH's Hardlink Tutorial https://trash-guides.info/hardlinks
+Don't forget to Save your settings !!!
+ +Here we're going to configure which subtitle languages you prefer/want.
+Settings
=> Languages
Warning
+**We don't recommend enabling Single Language
option unless absolutely required (ie: media player not supporting language code in subtitles filename). Results may vary.
Be aware the language code (ex.: en) is not going to be included in the subtitles file name when enabling this.**
+Here you select which languages you want for your subtitles, you can just start typing your language name and it will show you what's available.
+These languages are the subtitle languages you later use for the Languages Profiles
In this example I selected Dutch
and English
.
Select Add New Profile
Add
to add the languages you enabled earlier in Subtitle Language.So you can have a profile that states: English, Dutch, German, French +With cutoff Dutch, if it finds Dutch, it will download it and call it a day. +If no Dutch is found it will continue searching the other languages till Dutch is found.
+Automatic applied Languages Profiles
to Series and Movies added to Bazarr after enabling this option.
Don't forget to Save your settings !!!
+ +Here we're going to select which Subtitle Providers you want to use.
+Settings
=> Providers
Tip
+If possible don't forget to support them for their free service
+Don't forget to Save your settings !!!
+ +Here we will configure some extra settings for your subtitles
+Settings
=> Subtitles
AlongSide Media File
.Here you can select which Anti-Captcha provider you want to use.
+Why (or) do I need the Anti-Captcha ?
+Tip
+We Recommend the following provider => https://anti-captcha.com/
+Enable this option for automatic subtitles synchronization.
+ +Don't forget to Save your settings !!!
+ +Now wait till Bazarr gets all the info needed from Sonarr/Radarr.
+Important
+Don't forget After Install Configuration !!!
+If you still have questions please check the Troubleshooting section in the wiki. +For more info about the other settings check the Settings wiki.
+ +You just setup Bazarr and wonder which scoring you should use/setup for your subtitles and sync ?
+I'll going to suggest here a scoring what would work for most common languages, with this scoring 99% of your downloaded subs should be the correct ones for your release.
+Settings
=> Sonarr
Set the Minimum Score to 90
This score is the minimal score that the subs should match to for your release, settings this to low could result in bad subs or completely out of sync and un-syncable.
+Settings
=> Radarr
Set the Minimum Score to 80
This score is the minimal score that the subs should match to for your release, settings this to low could result in bad subs or completely out of sync and un-syncable.
+Settings
=> Subtitles
Automatic Subtitles Synchronization
at step 3.Series Score Threshold
at step 4 and set the score to 96
.1Movies Score Threshold
at step 5 and set the score to 86
.1This will set the Synchronization Score Threshold, meaning at which score bazarr will sync the subtitles.
+Info
+The synchronization is best effort based on the following.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Here you will find several scripts you can use with Bazarr
+hotio/bazarr:latest
+
hotio/bazarr:nightly
+
Here you will find a collection of Script you an use with Bazarr.
+Most of them are provided by other users, if you got a script you want to share don't hesitate to create a PR for it
+2to3_language_code.sh
Changes the 2 iso code to 3 iso code.
+#!/bin/bash
+
+mv "{{subtitles}}" "{{directory}}/{{episode_name}}.{{subtitles_language_code3}}.srt"
+
+exit
+
This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
and /downloads
is very suboptimal because it makes them look like two or three file systems, even if they aren’t. It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used.
But you're able to change this, by not using the pre-defined/recommended paths like:
+/downloads
=> /data/downloads
/movies
=> /data/media/movies
/tv
=> /data/media/tv
.This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
and /downloads
is very suboptimal because it makes them look like two or three file systems, even if they aren’t. It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used.
But you're able to change this, by not using the pre-defined/recommended paths like:
+/downloads
=> /data/downloads
/movies
=> /data/media/movies
/tv
=> /data/media/tv
.Name | +Description | +
---|---|
${MainDir} |
+Root directory for all tasks. | +
${AppDir} |
+Where NZBGet is installed. | +
${DestDir} |
+Destination directory for downloaded files. | +
I will only explain the so called most important paths.
+Name | +Description | +
---|---|
MainDir |
+/data/usenet |
+
DestDir |
+${MainDir} (so it will go in to /data/usenet ) |
+
InterDir |
+Files are downloaded into this directory (before unpack+par2) | +
NzbDir |
+Directory for incoming nzb-files. | +
QueueDir |
+This directory is used to save download queue, history, information statistics, etc. | +
ScriptDir |
+Directory with post-processing and other scripts. | +
LogFile |
+Where your log files will be stored (Please create a log directory in your config) | +
Name | +Description | +
---|---|
Active |
+Use this news server. | +
Name |
+The name is used in UI and for logging. It can be any string. | +
Level |
+Put your major download servers at level 0 and your fill servers at levels 1, 2, etc.. | +
Host |
+Host name of news server. | +
Port |
+Port to connect to. | +
Password |
+Password to use for authentication. | +
Encryption |
+Encrypted server connection (TLS/SSL). (preferred to use this) | +
Connections |
+Use the lowest possible amount of connections +1 to gain your max download speed. | +
Retention |
+How long the articles are stored on the news server. | +
Name | +Description | +
---|---|
Name |
+This should match what you put in Sonarr/Radarr (tv/movies/sonarr/radarr/series/films) | +
DestDir |
+${DestDir} Destination directory (/data/usenet/movies) |
+
Unpack |
+Unpack downloaded nzb-files. | +
Extensions |
+List of extension scripts for this category. | +
Info
+AppendCategoryDir
: Create subdirectory with category-name in destination-directory.
Caution
+WriteBuffer
: If you're low on memory don't set this to high.
Info
+DirectUnpack
: This might lower your download speed but the overall time could be faster. (disable on low powered devices)
Depending if you're using some NZBGet script here you can change the order or when it should be used
+The following settings are recommended to for Sonarr/Radarr, else it could happen that Sonarr/Radarr will miss downloads that are still in the queue/history. +Being that Sonarr/Radarr only looks at the last xx amount in the queue/history.
+Settings
=> Download Clients
Make sure you check both boxes under Completed Download Handling
at step 3.
Select NZBGet at step 4 and scroll down to the bottom of the new window where it says Completed Download Handling
and check both boxes.
Settings
=> Download Clients
Make sure you check both boxes under Completed Download Handling
at step 3,
and both boxes under Failed Download Handling
at step 4.
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+Info
+Pick one path layout and use it for all of them.
+It doesn't matter if you prefer to use /data
, /shared
, /storage
or whatever.
The screenshots in the examples are using the following root path /data
Settings
=> PATHS
Settings
=> CATEGORIES
ATTENTION
+Your Download and Media Library should be NEVER the same locations
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Clean.py
Removes the following suffixes from NZB name: +NZBgeek / Obfuscated / BUYMORE / Scrambled /etc... +Cleans the NZB name by removing the retagged stuff (-Obfuscated, -postbox, etc).
+#!/usr/bin/env python3
+#
+
+##############################################################################
+### NZBGET SCAN SCRIPT ###
+
+# Clean NZB name.
+#
+# Removes the following suffixes from NZB name:
+# NZBgeek / Obfuscated / BUYMORE / Scrambled.
+#
+# NOTE: This script requires Python to be installed on your system.
+
+### NZBGET SCAN SCRIPT ###
+##############################################################################
+
+from __future__ import print_function
+import os, re, sys
+
+# Exit codes used by NZBGet
+POSTPROCESS_SUCCESS=93
+POSTPROCESS_ERROR=94
+POSTPROCESS_SKIP=95
+
+# Check if the script is called from NZBGet 13.0 or later
+if not 'NZBOP_SCRIPTDIR' in os.environ:
+ print('*** NZBGet post-processing script ***')
+ print('This script is supposed to be called from NZBGet (13.0 or later).')
+ sys.exit(POSTPROCESS_ERROR)
+
+if not 'NZBNP_NZBNAME' in os.environ:
+ print('[WARN] Filename not found in environment')
+ sys.exit(POSTPROCESS_ERROR)
+
+fwp = os.environ['NZBNP_NZBNAME']
+fwp = re.sub('(?i)-4P\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-4Planet\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-AsRequested\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-AsRequested-xpost\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-BUYMORE\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-Chamele0n\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-GEROV\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-iNC0GNiTO\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-NZBGeek\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-Obfuscated\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-postbot\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-Rakuv\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-Scrambled\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-WhiteRev\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-xpost\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)\[eztv\]\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)\[TGx\]\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)\[TGx\]-xpost\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)\[ettv\]\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-WRTEAM\.nzb$', '.nzb', fwp)
+fwp = re.sub('(?i)-CAPTCHA\.nzb$', '.nzb', fwp)
+fwp = re.sub(r'(\-[^-.\n]*)(\-.{4})?\.nzb$', r'\1.nzb', fwp)
+if fwp:
+ print('[NZB] NZBNAME=', fwp, sep='')
+
+sys.exit(POSTPROCESS_SUCCESS)
+
HashRenamer.py
Part of the Cloudbox project: https://cloudbox.works +Built on top of the NZBGet scripts template created by Clinton Hall. +Released under GNU General Public License v2.0
+#!/usr/bin/env python3
+#
+##############################################################################
+# Title: HashRenamer.py #
+# Author(s): l3uddz, desimaniac #
+# URL: https://github.com/l3uddz/nzbgetScripts #
+# Description: Renames hashed media files to match the source NZB. #
+# -- #
+# Part of the Cloudbox project: https://cloudbox.works #
+##############################################################################
+
+##############################################################################
+# Built on top of the NZBGet scripts template created by Clinton Hall #
+# (https://github.com/clinton-hall). #
+# Released under GNU General Public License v2.0 #
+##############################################################################
+
+
+##############################################################################
+### NZBGET POST-PROCESSING SCRIPT ###
+
+# Rename files with hashes for file name
+#
+# NOTE: This script requires Python to be installed on your system.
+#
+##############################################################################
+### NZBGET POST-PROCESSING SCRIPT ###
+##############################################################################
+
+import os
+import re
+import shutil
+import sys
+
+# NZBGet Exit Codes
+NZBGET_POSTPROCESS_PARCHECK = 92
+NZBGET_POSTPROCESS_SUCCESS = 93
+NZBGET_POSTPROCESS_ERROR = 94
+NZBGET_POSTPROCESS_NONE = 95
+
+
+############################################################
+# EXTENSION STUFF
+############################################################
+
+def do_check():
+ if 'NZBOP_SCRIPTDIR' not in os.environ:
+ print("This script can only be called from NZBGet (11.0 or later).")
+ sys.exit(0)
+
+ if os.environ['NZBOP_VERSION'][0:5] < '11.0':
+ print("[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])))
+ sys.exit(0)
+
+ print("Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])))
+
+ status = 0
+ if 'NZBPP_TOTALSTATUS' in os.environ:
+ if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS':
+ print("[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS']))
+ status = 1
+ else:
+ # Check par status
+ if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4':
+ print("[ERROR] Par-repair failed, setting status \"failed\".")
+ status = 1
+
+ # Check unpack status
+ if os.environ['NZBPP_UNPACKSTATUS'] == '1':
+ print("[ERROR] Unpack failed, setting status \"failed\".")
+ status = 1
+
+ if os.environ['NZBPP_UNPACKSTATUS'] == '0' and os.environ['NZBPP_PARSTATUS'] == '0':
+ # Unpack was skipped due to nzb-file properties or due to errors during par-check
+
+ if os.environ['NZBPP_HEALTH'] < 1000:
+ print("[ERROR] Download health is compromised and Par-check/repair disabled or no .par2 files found. " \
+ "Setting status \"failed\".")
+ print("[ERROR] Please check your Par-check/repair settings for future downloads.")
+ status = 1
+
+ else:
+ print("[ERROR] Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is " \
+ "ok so handle as though download successful.")
+ print("[WARNING] Please check your Par-check/repair settings for future downloads.")
+
+ # Check if destination directory exists (important for reprocessing of history items)
+ if not os.path.isdir(os.environ['NZBPP_DIRECTORY']):
+ print("[ERROR] Nothing to post-process: destination directory", os.environ[
+ 'NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\".")
+ status = 1
+
+ # All checks done, now launching the script.
+ if status == 1:
+ sys.exit(NZBGET_POSTPROCESS_NONE)
+
+
+def get_file_name(path):
+ try:
+ file_name = os.path.basename(path)
+ extensions = re.findall(r'\.([^.]+)', file_name)
+ ext = '.'.join(extensions)
+ name = file_name.replace(".%s" % ext, '')
+ return name, ext
+ except Exception:
+ pass
+ return None
+
+
+def is_file_hash(file_name):
+ hash_regexp = [
+ r'^[a-fA-F0-9]{40}$',
+ r'^[a-fA-F0-9]{32}$',
+ r'^[a-f0-9]{128}$',
+ r'^[a-zA-Z0-9]{42}$'
+ ]
+ for hash in hash_regexp:
+ if re.match(hash, file_name):
+ return True
+ return False
+
+
+def find_files(folder, extension=None, depth=None):
+ file_list = []
+ start_count = folder.count(os.sep)
+ for path, subdirs, files in os.walk(folder, topdown=True):
+ for name in files:
+ if depth and path.count(os.sep) - start_count >= depth:
+ del subdirs[:]
+ continue
+ file = os.path.join(path, name)
+ if not extension:
+ file_list.append(file)
+ else:
+ if file.lower().endswith(extension.lower()):
+ file_list.append(file)
+
+ return sorted(file_list, key=lambda x: x.count(os.path.sep), reverse=True)
+
+
+############################################################
+# MAIN
+############################################################
+
+# do checks
+do_check()
+
+# retrieve required variables
+directory = os.path.normpath(os.environ['NZBPP_DIRECTORY'])
+nzb_name = os.environ['NZBPP_NZBFILENAME']
+if nzb_name is None:
+ print("[ERROR] Unable to retrieve NZBPP_NZBFILENAME")
+ sys.exit(NZBGET_POSTPROCESS_ERROR)
+nzb_name = nzb_name.replace('.nzb', '')
+
+print(("[INFO] Using \"%s\" for hashed filenames" % nzb_name))
+print(("[INFO] Scanning \"%s\" for hashed filenames" % directory))
+
+# scan for files
+found_files = find_files(directory)
+if not found_files:
+ print(("[INFO] No files were found in \"%s\"" % directory))
+ sys.exit(NZBGET_POSTPROCESS_NONE)
+else:
+ print(("[INFO] Found %d files to check for hashed filenames" % len(found_files)))
+ # loop files checking for file hash
+ moved_files = 0
+ for found_file_path in found_files:
+ # set variable
+ dir_name = os.path.dirname(found_file_path)
+ file_name, file_ext = get_file_name(found_file_path)
+
+ # is this a file hash
+ if is_file_hash(file_name):
+ new_file_path = os.path.join(dir_name, "%s.%s" % (nzb_name, file_ext))
+ print(("[INFO] Moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)))
+ try:
+ shutil.move(found_file_path, new_file_path)
+ moved_files += 1
+ except Exception:
+ print(("[ERROR] Failed moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)))
+
+ print(("[INFO] Finished processing \"%s\", moved %d files" % (directory, moved_files)))
+
+sys.exit(NZBGET_POSTPROCESS_SUCCESS)
+
WtFnZb-Renamer.py
NZBGET SCAN SCRIPT
+Extract filenames from subjects containing [PRiVATE]-[WtFnZb]
+This extensions extracts obfuscated filenames from .nzb files
+#!/usr/bin/env python3
+### NZBGET SCAN SCRIPT
+
+# Extract filenames from subjects containing [PRiVATE]-[WtFnZb]
+#
+# This extensions extracts obfuscated filenames from .nzb files
+# created by WtFnZb.
+#
+# Supported subject formats:
+#
+# - [PRiVATE]-[WtFnZb]-[filename]-[1/5] - "" yEnc 0 (1/1)"
+#
+# - [PRiVATE]-[WtFnZb]-[5]-[1/filename] - "" yEnc
+#
+#
+# NOTE: Requires Python and lxml (sudo apt install python3-lxml python-lxml)
+#
+
+### NZBGET SCAN SCRIPT
+
+import sys
+import os
+import re
+
+# Exit codes used by NZBGet
+POSTPROCESS_SUCCESS = 93
+POSTPROCESS_NONE = 95
+POSTPROCESS_ERROR = 94
+
+try:
+ from lxml import etree
+except ImportError:
+ print(u'[ERROR] Python lxml required. Please install with "sudo apt install python-lxml" or "pip install lxml".')
+ sys.exit(POSTPROCESS_ERROR)
+
+patterns = (
+ re.compile(r'^(?P<prefix>.*\[PRiVATE\]-\[WtFnZb\]-)'
+ r'\[(?P<total>\d+)\]-\[(?P<segment>\d+)\/(?P<filename>.{3,}?)\]'
+ r'\s+-\s+""\s+yEnc\s+',
+ re.MULTILINE | re.UNICODE),
+ re.compile(r'^(?P<prefix>.*\[PRiVATE\]-\[WtFnZb\]-)'
+ r'\[(?P<filename>.{3,}?)\]-\[(?P<segment>\d+)/(?P<total>\d+)\]'
+ r'\s+-\s+""\s+yEnc\s+',
+ re.MULTILINE | re.UNICODE))
+
+nzb_dir = os.getenv('NZBNP_DIRECTORY')
+nzb_filename = os.getenv('NZBNP_FILENAME')
+nzb_name = os.getenv('NZBNP_NZBNAME')
+nzb_file_naming = os.getenv('NZBOP_FILENAMING')
+
+if nzb_dir is None or nzb_filename is None or nzb_name is None:
+ print('Please run as NZBGet plugin')
+ sys.exit(POSTPROCESS_ERROR)
+
+if nzb_file_naming is not None and nzb_file_naming.lower() != 'nzb':
+ print(u'[ERROR] NZBGet setting FileNaming (under Download Queue) '
+ u'must be set to "Nzb" for this extension to work correctly, exiting.')
+ sys.exit(POSTPROCESS_ERROR)
+
+if not os.path.exists(nzb_dir):
+ print('[ERROR] NZB directory doesn\'t exist, exiting')
+ sys.exit(POSTPROCESS_ERROR)
+
+if not nzb_filename.lower().endswith('.nzb'):
+ print(u'[ERROR] {} is not a .nzb file.'.format(nzb_filename))
+ sys.exit(POSTPROCESS_ERROR)
+
+nzb = os.path.join(nzb_dir, nzb_filename)
+if not os.path.exists(nzb):
+ print('[ERROR] {nzb} doesn\'t exist, exiting'.format(nzb=nzb))
+ sys.exit(POSTPROCESS_ERROR)
+
+with open(nzb, mode='rb') as infile:
+ tree = etree.parse(infile)
+
+changed = False
+file_count = 0
+totals = set()
+filenames = set()
+
+for f in tree.getiterator('{http://www.newzbin.com/DTD/2003/nzb}file'):
+ subject = f.get('subject')
+ if subject is None:
+ print(u'[DETAIL] No subject in <file>, skipping')
+ continue
+ file_count += 1
+ result = [re.match(pattern, subject) for pattern in patterns]
+ matched = [m for m in result if m is not None]
+ if len(matched) == 0:
+ print(u'[INFO] No pattern matching subject, exiting.')
+ sys.exit(POSTPROCESS_NONE)
+ elif len(matched) > 1:
+ print(u'[ERROR] Multiple patterns matched, exiting.')
+ sys.exit(POSTPROCESS_ERROR)
+ else:
+ match = matched[0].groupdict()
+
+ if match['filename'].lower().endswith('.par2'):
+ print(u'[INFO] par2 exists, exiting')
+ sys.exit(POSTPROCESS_NONE)
+
+ if int(match['segment']) > int(match['total']):
+ print(u'[DETAIL] Segment index is greater then total, skipping')
+ continue
+
+ # NZBGet subject parsing changes when duplicate filenames are present
+ # prefix duplicates to avoid that
+ if match['filename'] in filenames:
+ match['filename'] = u'{}.{}'.format(file_count, match['filename'])
+
+ filenames.add(match['filename'])
+
+ s = u'WtFnZb "{filename}" yEnc ({segment}/{total})'.format(
+ filename = match['filename'],
+ segment = match['segment'],
+ total = match['total'])
+
+ print(u'[INFO] New subject {subject}'.format(subject=s.encode('ascii', 'ignore')))
+ f.set('subject', s)
+ changed = True
+ totals.add(int(match['total']))
+
+if not changed:
+ print(u'[WARNING] No subject changed, exiting.')
+ sys.exit(POSTPROCESS_NONE)
+
+if len(totals) != 1:
+ print(u'[WARNING] Mixed values for number of total segments, exiting.')
+ sys.exit(POSTPROCESS_NONE)
+
+if totals.pop() != file_count:
+ print(u'[WARNING] Listed segment count does not match <file> count, exiting.')
+ sys.exit(POSTPROCESS_NONE)
+
+org = u'{}.wtfnzb.original.processed'.format(nzb)
+exists_counter = 0
+while os.path.exists(org):
+ exists_counter += 1
+ org = u'{}.{}.wtfnzb.original.processed'.format(nzb, exists_counter)
+
+print(u'[INFO] Preserving original nzb as {}'.format(org))
+os.rename(nzb, org)
+
+print(u'[INFO] Writing {}'.format(nzb))
+with open(nzb, mode='wb') as outfile:
+ outfile.write(etree.tostring(tree,
+ xml_declaration=True,
+ encoding=tree.docinfo.encoding,
+ doctype=tree.docinfo.doctype))
+
+sys.exit(POSTPROCESS_SUCCESS)
+
Tip
+This script doesn't always work and is often needed if you use a certain indexer.
+It might be better to use the following Sonarr Regex in your release profile
+ +This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
and /downloads
is very suboptimal because it makes them look like two or three file systems, even if they aren’t. It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used.
But you're able to change this, by not using the pre-defined/recommended paths like:
+/downloads
=> /data/downloads
/movies
=> /data/media/movies
/tv
=> /data/media/tv
.Note
+Settings that aren't covered means you can change them to your own liking or just leave them on default.
+ I also recommend to enable the Advanced Settings
on the top right.
Settings
=> General
=> Tuning
+
I recommend setting a sane maximum speed and then limiting below that, to keep your internet connection happy. You can use Settings
=> Scheduling
to toggle the limit on and off based on time, slowing it down while your family is using the internet and speeding it up at night when they're not.
Settings
=> Folders
=> Users Folders
+
Here you setup your download path/location.
+ATTENTION
+Your Download and Media Library should be NEVER the same locations
+Settings
=> Folders
=> System Folders
+
I recommend the .nzb Backup Folder because sabnzbd doesn't have a hidden history and having remove from history enabled in Sonarr/Radarr is the best method. This allows you to see your past downloads and it is used for duplicate download detection/prevention. Default is empty, I picked history because it is easy. It'll end up in the /config
folder for Docker, which isn't crazy... but this is literally compressed nzb files, so can end up pretty big. But the choice is yours what you prefer.
Settings
=> Servers
=> Add Server
+
USP = Usenet Service Provider
+SSL
so you get a secure connection to the USP.Settings
=> Categories
Covered and fully explained in SABnzbd - Paths and Categories
+Settings
=> Switches
=> Queue
+
Settings
=> Switches
=> Post processing
+
Settings
=> Sorting
MAKE SURE THAT SORTING IS ENTIRELY DISABLED
+The following settings are recommended to for Sonarr/Radarr, else it could happen that Sonarr/Radarr will miss downloads that are still in the queue/history. +Being that Sonarr/Radarr only looks at the last xx amount in the queue/history.
+Settings
=> Download Clients
Make sure you check both boxes under Completed Download Handling
at step 3.
Select Sabnzbd at step 4 and scroll down to the bottom of the new window where it says Completed Download Handling
and check both boxes.
Settings
=> Download Clients
Make sure you check both boxes under Completed Download Handling
at step 3,
and both boxes under Failed Download Handling
at step 4.
Thanks to fryfrog for helping me with the settings and providing the info needed to create this Guide.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+Info
+Pick one path layout and use it for all of them.
+It doesn't matter if you prefer to use /data
, /shared
, /storage
or whatever.
The screenshots in the examples are using the following root path /data
SABnzbd config
=> Folders
SABnzbd config
=> Categories
ATTENTION
+Your Download and Media Library should be NEVER the same locations
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Clean.py
Removes the following suffixes from NZB name: +NZBgeek / Obfuscated / BUYMORE / Scrambled /etc... +Cleans the NZB name by removing the retagged stuff (-Obfuscated, -postbox, etc).
+Install Instructions:
+sudo chmod +x Clean.py
Settings
=> Switches
Clean.py
#!/usr/bin/python3 -OO
+
+##################################################################
+### SABnzbd - Clean NZB Renamer ##
+##################################################################
+## NOTE: This script is considered ALPHA! ##
+## ##
+## Removes the suffixes from NZB name used by bots: ##
+## examples: NZBgeek / Obfuscated / BUYMORE / Scrambled, etc.. ##
+## ##
+## NOTE: This script requires Python 3 ##
+## ##
+## Install: ##
+## 1. Copy script to sabnzbd's script folder ##
+## 2. run: sudo chmod +x Clean.py ##
+## 3. in SABnzbd go to Config > Switches ##
+## 4. Change Pre-queue user script and select: Clean.py ##
+##################################################################
+
+import sys
+import re
+
+try:
+ (scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist, showname, season, episodenumber, episodename) = sys.argv
+ downloadsize = int(downloadsize)
+except:
+ sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script
+
+fwp = nzbname
+fwp = re.sub('(?i)-4P$', '', fwp)
+fwp = re.sub('(?i)-4Planet$', '', fwp)
+fwp = re.sub('(?i)-AsRequested$', '', fwp)
+fwp = re.sub('(?i)-AsRequested-xpost$', '', fwp)
+fwp = re.sub('(?i)-BUYMORE$', '', fwp)
+fwp = re.sub('(?i)-Chamele0n$', '', fwp)
+fwp = re.sub('(?i)-GEROV$', '', fwp)
+fwp = re.sub('(?i)-iNC0GNiTO$', '', fwp)
+fwp = re.sub('(?i)-NZBGeek$', '', fwp)
+fwp = re.sub('(?i)-Obfuscated$', '', fwp)
+fwp = re.sub('(?i)-postbot$', '', fwp)
+fwp = re.sub('(?i)-Rakuv$', '', fwp)
+fwp = re.sub('(?i)-Scrambled$', '', fwp)
+fwp = re.sub('(?i)-WhiteRev$', '', fwp)
+fwp = re.sub('(?i)-WRTEAM$', '', fwp)
+fwp = re.sub('(?i)-CAPTCHA$', '', fwp)
+fwp = re.sub('(?i)\[eztv\]$', '', fwp)
+fwp = re.sub('(?i)\[TGx\]$', '', fwp)
+fwp = re.sub('(?i)\[ettv\]$', '', fwp)
+fwp = re.sub('(?i)\[TGx\]-xpost$', '', fwp)
+fwp = re.sub('(?i).mkv-xpost$', '', fwp)
+fwp = re.sub('(?i)-xpost$', '', fwp)
+fwp = re.sub(r'(\-[^-.\n]*)(\-.{4})?$', r'\1', fwp)
+print("1") # Accept
+print(fwp)
+print()
+print()
+print()
+print()
+print()
+# 0 means OK
+sys.exit(0)
+
This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
and /downloads
is very suboptimal because it makes them look like two or three file systems, even if they aren’t. It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used.
But you're able to change this, by not using the pre-defined/recommended paths like:
+/downloads
=> /data/downloads
/movies
=> /data/media/movies
/tv
=> /data/media/tv
.This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+Info
+Pick one path layout and use it for all of them.
+It doesn't matter if you prefer to use /data
, /shared
, /storage
or whatever.
The screenshots in the examples are using the following root path /data
Add category
Downloads do not go into the category folder
+When your downloads ends up in /data/torrents/
and not in /data/torrents/{tv|movies|music}
then you probably forgot to change Default Torrent Management Mode:
to Automatic
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+Info
+Pick one path layout and use it for all of them.
+It doesn't matter if you prefer to use /data
, /shared
, /storage
or whatever.
The screenshots in the examples are using the following root path /data
Options
=> Downloads
You've followed the Setup TorGuard for port forwarding and want to know where in your download client you should add the port you've port forwarded.
+Tools
=> Options
=> Connection
Connection
Tab.TCP and uTP
if you get speed issues try one of the others.This basic example is based on the use of docker images
+Keep in mind the path are setup so it works with hardlinks and instant moves.
+More info HERE
+The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
and /downloads
is very suboptimal because it makes them look like two or three file systems, even if they aren’t. It is the easiest way to get started. While easy to use, it has a major drawback. Mainly losing the ability to hardlink or instant move, resulting in a slower and more I/O intensive copy + delete is used.
But you're able to change this, by not using the pre-defined/recommended paths like:
+/downloads
=> /data/downloads
/movies
=> /data/media/movies
/tv
=> /data/media/tv
.Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +You've followed the guide step by step but still want to check if hardlinks are working, or someone on the Sonarr/Radarr support team asked you to check if your files are hardlinked?
+You can use 2 options to check if you got working hardlinks.
+Both ways requires you to login to your terminal with PuTTY or similar software.
+If you use usenet these examples won't work because you make use of instant moves/atomic moves and not hardlinks.
+Still want to test if it works ?
+Test a import of a 4k remux (or any other big file and you should notice it's almost instant) and not a slower and more I/O intensive copy + delete.
+This is the easiest to check in my opinion.
+In your terminal cd
to your download location and run ls -al
or type ls -al /path/to/your/download/location/
You will get a listing of all your files and on the left side you will see a couple of numbers, every file with a number above 1 are hardlinks.
+ +This way requires a bit more work.
+On the terminal type: stat /path/to/your/download/location/file.mkv
On the terminal type: stat /path/to/your/media/location/file.mkv
You will get 2 results you can use to compare several things.
+ +Info
+Pick one path layout and use it for all of them.
+It doesn't matter if you prefer to use /data
, /shared
, /storage
or whatever.
The screenshots in the examples are using the following root path /data
Settings
=> Media Management
=> Importing
Settings
=> Media Management
=> Root Folders
Series
=> Add New
Settings
=> Media Management
=> Importing
Settings
=> Media Management
=> Root Folders
Movies
=> Add New
SABnzbd config
=> Folders
SABnzbd config
=> Categories
Settings
=> PATHS
Settings
=> CATEGORIES
Options
=> Downloads
Preferences
=> Downloads
../config/rtorrent/config/rtorrent.rc
(path to your appdata)
Settings
=> Downloads
Settings
=> Autotools
Big Thanks to fryfrog for his Docker Guide that I used as basis for this guide.
+ +Info
+If you’re wondering why hard links aren’t working or why a simple move is taking far longer than it should.
+Here we will try to explain it.
+This Guide exist out of 4 Sections
+So you want one of the following ?
+Then Continue to How to setup for your installation method.
+[Long answer] Hard links are a way for a copy operation to be instant and not consume space for those additional copies.
+Every file is a hard link: some metadata that points at blocks on the file system, which is why they're restricted to the same file system. There can be as many metadata files pointing at those blocks as needed and the blocks know how many links point to them. Once the blocks have 0 links, they're considered deleted.
+This means:
+You can delete any "copy" w/o impacting the others.
+Your download client can remove it's "copy" w/o impacting the library "copy". The library "copy" can be removed by Plex or Sonarr/Radarr or yourself w/o impacting the download client "copy".
+Space is only regained when all "copies" are deleted.
+Modifying the file will impact all "copies".
+For example, modifying the id3 tags of a .mp3 download after import would modify the download client "copy", resulting in breaking the torrent.
+A real move and not a copy file from download folder to media folder and then delete file from download folder.
+*arr
? - [CLICK TO EXPAND]Sonarr, Radarr, Lidarr, etc.
+Tip
+If you're new to dockers and want a easy setup I suggest to take a look at DockSTARTer. +I've also created a short guide HERE where I explain the settings for the most used applications.
+The main goal of DockSTARTer is to make it quick and easy to get up and running with Docker. +You may choose to rely on DockSTARTer for various changes to your Docker system or use DockSTARTer as a stepping stone and learn to do more advanced configurations.
+DockSTARTer was actually my first steps in to the world of dockers.
+Note
+I'm not going to explain how to get dockers installed and running, I will only explain which folder structure we recommend.
+The paths mentioned below refer to internal paths for the containers!
+External paths depends where you mounted your share or your drives.
+For example /<path_to_data>/data
, or even /data
.
Info
+The paths you use on the inside matter. Because of how Docker’s volumes work, passing in two or three volumes such as the commonly suggested /tv
, /movies
and /downloads
makes them look like two or three file systems, even if they aren’t. This means hard links won’t work and instead of an instant move, a slower and more I/O intensive copy + delete is used.
Attention
+It doesn't really matter which path you use for your media and appdata,
+the only thing you should avoid is /home
.
Because user folders in /home
are expected to have some restrictive permissions.
It just could end up creating a permissions mess, so it's better to just avoid entirely.
+For this example we're going to make use of a share called data
.
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
and Music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
In this examples I'm using lower case on all folder on purpose, being Linux is case sensitive.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
qBittorrent, Deluge, ruTorrent
+The reason why we use /data/torrents
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+The reason why we use /data/usenet
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside the applications.
+Recursively chown user and group and Recursively chmod to 775/664
+sudo chown -R $USER:$USER /data
+sudo chmod -R a=,a+rX,u+w,g+w /data
+
This is a docker-compose example based on a default Ubuntu install.
+The storage location used for the host is actually the same as in the container to make it easier to understand in this case /data
.
The appdata (/config
) will be stored on the host in the /docker/appdata/{appname}
version: "3.2"
+services:
+ radarr:
+ container_name: radarr
+ image: cr.hotio.dev/hotio/radarr:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 7878:7878
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/radarr:/config
+ - /data:/data
+ sonarr:
+ container_name: sonarr
+ image: cr.hotio.dev/hotio/sonarr:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 8989:8989
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/sonarr:/config
+ - /data:/data
+ bazarr:
+ container_name: bazarr
+ image: cr.hotio.dev/hotio/bazarr:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 6767:6767
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/bazarr:/config
+ - /data/media:/data/media
+ sabnzbd:
+ container_name: sabnzbd
+ image: cr.hotio.dev/hotio/sabnzbd:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 8080:8080
+ - 9090:9090
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/sabnzbd:/config
+ - /data/usenet:/data/usenet:rw
+
sudo docker-compose up -d
(This Docker-compose command helps builds the image, then creates and starts Docker containers. The containers are from the services specified in the compose file. If the containers are already running and you run docker-compose up, it recreates the container.)sudo docker-compose pull
(Pulls an image associated with a service defined in a docker-compose.yml)sudo docker-compose down
(The Docker-compose down command also stops Docker containers like the stop command does. But it goes the extra mile. Docker-compose down, doesn’t just stop the containers, it also removes them.)sudo docker system prune -a --volumes --force
(Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.)Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+I'm using the default paths in this example, and will keep the other paths unchanged so nothing will break if you make a mistake.
+We're going to use a mounted drive that we're going to use as storage for downloads and your media.
+In this example the mounted drive will be mounted to /mnt/
with the following folder structure.
storage
+├── downloads
+| ├── torrents
+│ | ├── movies
+│ | ├── music
+│ | └── tv
+| └── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── medialibrary
+ ├── movies
+ ├── music
+ └── tv
+
To accomplish this we need to change first a few paths in your .env
(Usually ~/.docker/compose/.env
)
# Global Settings
+COMPOSE_HTTP_TIMEOUT=60
+DOCKERCONFDIR=~/.config/appdata
+DOCKERGID=999
+DOCKERHOSTNAME=DockSTARTer
+DOCKERLOGGING_MAXFILE=10
+DOCKERLOGGING_MAXSIZE=200k
+DOCKERSTORAGEDIR=/mnt/storage
+PGID=1000
+PUID=1000
+TZ=America/Chicago
+
+# DEPRECATED Settings (will be removed at the end of 2020)
+DOCKERSHAREDDIR=~/shared
+DOWNLOADSDIR=/mnt/downloads
+MEDIADIR_AUDIOBOOKS=/mnt/medialibrary/audiobooks
+MEDIADIR_BOOKS=/mnt/medialibrary/books
+MEDIADIR_COMICS=/mnt/medialibrary/comics
+MEDIADIR_MOVIES=/mnt/medialibrary/movies
+MEDIADIR_MUSIC=/mnt/medialibrary/music
+MEDIADIR_TV=/mnt/medialibrary/tv
+
When that's all set then you will need to change the paths you're going to use in the containers from:
+/downloads
=> /storage/downloads
/audiobooks
=> /storage/medialibrary/audiobooks
/books
=> /storage/medialibrary/books
/comics
=> /storage/medialibrary/comics
/movies
=> /storage/medialibrary/movies
/music
=> /storage/medialibrary/music
/tv
=> /storage/medialibrary/tv
Info
+The screenshots in the examples are using the following root path /storage
Settings
=> Media Management
=> Importing
Settings
=> Media Management
=> Root Folders
Series
=> Add New
Settings
=> Media Management
=> Importing
Settings
=> Media Management
=> Root Folders
Movies
=> Add New
SABnzbd config
=> Folders
SABnzbd config
=> Categories
../config/rtorrent/config/rtorrent.rc
(path to your appdata)
Settings
=> Downloads
Settings
=> Autotools
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+I'm not going to explain how to install all the applications, I will only explain which folder structure we recommend.
+Attention
+It doesn't really matter which path you use for your media and appdata,
+the only thing you should avoid is /home
.
Because user folders in /home
are expected to have some restrictive permissions.
It just could end up creating a permissions mess, so it's better to just avoid entirely.
+For this example we're going to make use of a share called data
.
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
and Music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
In this examples I'm using lower case on all folder on purpose, being Linux is case sensitive.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
qBittorrent, Deluge, ruTorrent
+The reason why we use /data/torrents
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+The reason why we use /data/usenet
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside the applications.
+Recursively chown user and group and Recursively chmod to 775/664
+sudo chown -R $USER:$USER /data
+sudo chmod -R a=,a+rX,u+w,g+w /data
+
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+Being I don't have a Synology myself and I kind of hate the Synology GUI for the dockers, I'm doing this with the use of docker-compose through a terminal.
+This is faster then the GUI and after installing, it shows up in the Docker GUI.
+Thanks to faxity for the initial compose that I used to create the Synology Guide.
+And a very big thanks to Bokkoman and BZwart that updated this Guide for DSM 7 and also offered their help on discord as Synology Support Team.
+This page will provide you with guidance on how to install several Docker images to your Synology system. We highly recommend to read the full guide, that way you have a better understanding of what you do, in case you later decide to make changes.
+Warning
+Though, we offer a short way out. This is intended as a quick way to do everything that is written on this page within one script.
+The script is new and only tested on Synology DSM7.
+We are not held reliable if anything breaks on your system. Use at your own risk
+To get this working you will need to enable terminal access (SSH).
+To enable this on your Synology take a look HERE.
+When you enabled the terminal access (SSH) run the following commands and follow the onscreen questions.
+curl -sL git.io/syno-script > ~/syno-script
+
sudo bash ~/syno-script
+
You need to install Docker from the Package Center
. This should also create a share named docker
, check File Station if it is present.
Attention
+To get Hardlinks and Atomic-Moves working with your Synology you will need to make use of ONE share with subfolders.
+We will use a new share named data
(lowercase) for all your library media.
Later in this guide, we will fill this share with subfolders.
+To create a new share:
+Control Panel
> Shared Folder
> click Create
> choose Create Shared Folder
Name this shared folder data
. You can disable the trash can. Click next until you are done.
For this, we are going to create a new user that only has access to the share(s) that we use for this guide.
+Go to Control Panel
> User & Group
In the User
section, create a new user. Name it whatever you like, but for this guide we will use docker
.
Fill out the rest of the information, generate a password or type your own.
+Click next, you will now be able to select which group this user will belong to, it should only be users
. Click Next
.
In this screen you will be able to select which Shares this user will have access to, click No Access
on the top, this will deny all access.
Now only select Read/Write
on the shares docker
and data
.
Click Next
until you reach Assign application permissions
In this screen you will be able to select which application this user will have access to, Check Deny
for all applications.
Continue to click Next
until you are finished.
You are mostly going to use the terminal. Some parts will need the Synology web GUI. +To enable terminal, you need to enable SSH in the Synology Settings.
+Control Panel
> Terminal & SNMP
> Enable SSH service
Then use a program like Putty and you can SSH into your Synology.
+If you get a popup asking if you want to trust the key,
+Just press OK
or ACCEPT
Enter the login information of your main Synology user account.
+In order for the Docker container to access the shares on the Synology, we need to know the user ID (PUID) and group ID (PGID) from the docker
user we just created.
Go into your terminal app, login to your synology ssh.
+Once logged in type id $user
. Change $user to the newly created username docker
.
This will show you the UID (aka PUID).
+Which in this screenshot is 1035
for the docker user
+and the GID (aka PGID) which is 100
for the users group.
+Remember these values for later use.
Attention
+It is not recommended to use (anymore) your admin/main user account. That is why we just created a new user.
+For this example we're going to make use of the share called data
.
On the host (Synology) terminal you will need to add /volume1/
before it. So /volume1/data
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The library
folder has nicely named tv
, movies
and music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
These subfolders you need to create your self.
+I'm using lower case on all folder on purpose, being Linux is case sensitive.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
qBittorrent, Deluge, ruTorrent
+The reason why we use /data/torrents
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+The reason why we use /data/usenet
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside the applications.
+Here we will create the needed subfolders for your media library and also for your preferred download client. +If you use both then run both commands
+sudo mkdir -p /volume1/data/{usenet/{tv,movies,music},media/{tv,movies,music}}
+
sudo mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}}
+
Your appdata will be stored in /volume1/docker/appdata/{appname}
+These {appname}
sub folders you need to create your self. (This is a limitation of the Synology)
+We're going to do this in Putty or a similar program.
sudo mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,pullio}
+
You can add your own sub folders for your download client(s) using the command above, by adding the name to the command.
+So your appdata folder will look like this.
+ls -al /volume1/docker/appdata
+
docker
+└── appdata
+ ├── radarr
+ ├── sonarr
+ ├── bazarr
+ ├── plex
+ ├── pullio
+ └── (your download client, i.e. nzbget; sabnzbd; qbittorrent)
+
Now we are ready to move to the installation of containers.
+For this, we need two files:
+docker-compose.yml
.env
We will start with downloading the docker-compose.yml
file
Download this docker-compose.yml to your /volume1/docker/appdata
location so you got your important stuff together. Or use the command below:
sudo wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml -P /volume1/docker/appdata/
+
This docker-compose file will have the following docker containers included.
+What's not included (and where are the download clients?).
+I didn't add a download client to it, because it depends on what you prefer (usenet/torrent) and which client you prefer, so I created a new Repository on Github where I provide and maintain some templates that are ready to use with the main docker-compose.yml
.
The only thing you need to do is copy/paste what's inside the .yml
file in to the main docker-compose.yml
, the template also has the command what you need to use to create the appdata folder that we explained earlier.
Second we will download the .env
file
Download this .env to your /volume1/docker/appdata
location so you got your important stuff together. Or use this command:
sudo wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env -P /volume1/docker/appdata/
+
Attention
+ MAKE SURE THE FILE KEEPS THE ORIGINAL NAME .env
WITH THE DOT BEFORE IT
Tip
+If you need to edit docker-compose.yml ot he .env file we advise to use Notepad++ or Visual Studio Code
+The .env
file we downloaded holds the variables/information you need to change in order for everything to work. I added explanations in the .env
file.
The .env
holds more variables/information for other containers you don't need to remove those variables and will be only used when you install the other containers.
Pullio allows you to automatically update your containers. And send you a notification through various means. In my setup, I use a Discord Webhook.
+First you need to download Pullio
+ sudo curl -fsSL "https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh" -o /usr/local/bin/pullio
+
sudo chmod +x /usr/local/bin/pullio
+
For Pullio to work, you will need to create in your Task Scheduler a "Scheduled Task" that runs for example at 4am at night with root privileges.
+Control Panel
> Task Scheduler
> click Create
> choose Scheduled task - user defined script
Give the task a name so you know what it does. Choose user root
.
In the Schedule
tab choose whenever you want it to check for updates.
At Task Settings
tab, add the following line in the Run Command section:
/usr/local/bin/pullio > /volume1/docker/appdata/pullio/pullio.log 2>&1
+
It can be frustrating to test the script if no docker image updates are available, for that you can run command sudo pullio --debug
and the script will behave as if an update is available. If you have set to receive notifications, you should receive them.
More info about Pullio HERE
+Now we need to make sure that the newly created files and folders have the correct permissions.
+Note
+If you're using a different user than docker
(the user generated in the beginning), then you need to change the docker:users
part in the commands below!!!
sudo chown -R docker:users /volume1/data /volume1/docker
+
sudo chmod -R a=,a+rX,u+w,g+w /volume1/data /volume1/docker
+
Note
+If you copy files from a different library into the newly created library, you need to rerun these commands. !!!
+Important
+make sure you delete/remove all your existing dockers from the Docker GUI and also remove your native installs (in Package Center) of these applications !!! +If you had previous installed apps, make a backup of their config folders.
+When you did all the above steps you only need to run the following commands:
+cd /volume1/docker/appdata
+
sudo docker-compose up -d
+
You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then look at the error what it says and try to fix it. If you still got issues then put your used docker-compose.yml on 0bin and join the guides-discord here and provide the pastebin link with the error, have patience because of timezone differences.
+Don't forget to look at the Examples how to setup the paths inside your applications.
+Attention
+If you need to do any changes, only edit the docker-compose.yml
file. To activate the changes, run the command sudo docker-compose -f /volume1/docker/appdata/docker-compose.yml up -d
again.
Any changes you do/did in the GUI will be reverted when you run the docker-compose command.
+Just don't use the GUI, only for information purposes !!!
+sudo docker-compose up -d
(This Docker-compose command helps builds the image, then creates and starts Docker containers. The containers are from the services specified in the compose file. If the containers are already running and you run docker-compose up, it recreates the container.)sudo docker-compose pull
(Pulls an image associated with a service defined in a docker-compose.yml)sudo docker-compose down
(The Docker-compose down command also stops Docker containers like the stop command does. But it goes the extra mile. Docker-compose down, doesn’t just stop the containers, it also removes them.)sudo docker system prune -a --volumes --force
(Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.)Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+The first thing you need to do is forget the suggested paths from the Spaceinvader One YouTube Tutorials,
+and don't use the predefined paths from the unraid templates.
+(Spaceinvader One YouTube guides are great to learn how to start with unraid or how to setup certain applications, and yes I did and still do use them. Probably the main reason why he's using those path is because they are predefined in the template)
+Attention
+To get Hardlinks and Atomic-Moves working with Unraid you will need to make use of ONE share with subfolders.
+For this example I'm using my own setup and preferred share data
.
Go to your dashboard and on the top select shares
select add share
.
data
Yes
or keep it disabled (Hardlinks will stay in tact if you're using the cache)ADD SHARE
Note
+Keep in mind regarding the use of the Cache drive, The mover can't move files that are in use, like when seeding with torrents. You will need to shutdown your client or stop/pause the torrents so the mover can move them to your Array.
+With Usenet you won't have any issues.
+On the host (Unraid) you will need to add /mnt/user
before it. So /mnt/user/data
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
and Music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
These subfolders you need to create your self, you can use krusader or winscp to create them or any other way you prefer.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
I'm using lower case on all folder on purpose, being Linux is case sensitive.
+Info
+The paths you use on the inside matter. Because of how Docker’s volumes work, passing in two or three volumes such as the commonly suggested /tv
, /movies
and /downloads
makes them look like two or three file systems, even if they aren’t. This means hard links won’t work and instead of an instant move, a slower and more I/O intensive copy + delete is used.
After you created all the needed folders it's time to setup the paths in the docker containers.
+Go to your dashboard and select your docker container you want to edit or if you're starting fresh add the docker containers you want to use or prefer.
+Unraid makes it actually pretty clear what's the Host Path and what's the Container Path.
+Container Path:
=> The path that will be used inside the container.
Host Path:
=> The path on your Unraid Server (The Host).
qBittorrent, Deluge, ruTorrent
+ +Container Path:
=> /data/torrents/
Host Path:
=> /mnt/user/data/torrents/
Info
+The reason why we use /data/torrents/
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+ +Container Path:
=> /data/usenet/
Host Path:
=> /mnt/user/data/usenet/
Info
+The reason why we use /data/usenet/
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+ +Container Path:
=> /data
Host Path:
=> /mnt/user/data/
Info
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+ +Container Path:
=> /data/media
Host Path:
=> /mnt/user/data/media/
Info
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside your applications.
+Big Thanks to IBRACORP for noticing this Guide and creating a Video covering this unraid section.
+The reason why I added the video to the end is because I want the user to actually learn and understand why it's recommended to use this folder structure, before going straight to the YouTube video.
+ +Please don't forget to check out his other Unraid Video's HERE
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +In this section you will find several how-to's for installation of the *arrs. +This is all done in a way to achieve Hardlinks and Instant Moves (Atomic-Moves).
+Select your desired method of installation:
+Tip
+If you're new to dockers and want a easy setup I suggest to take a look at DockSTARTer. +I've also created a short guide HERE where I explain the settings for the most used applications.
+The main goal of DockSTARTer is to make it quick and easy to get up and running with Docker. +You may choose to rely on DockSTARTer for various changes to your Docker system or use DockSTARTer as a stepping stone and learn to do more advanced configurations.
+DockSTARTer was actually my first steps in to the world of dockers.
+Note
+I'm not going to explain how to get dockers installed and running, I will only explain which folder structure we recommend.
+The paths mentioned below refer to internal paths for the containers!
+External paths depends where you mounted your share or your drives.
+For example /<path_to_data>/data
, or even /data
.
Info
+The paths you use on the inside matter. Because of how Docker’s volumes work, passing in two or three volumes such as the commonly suggested /tv
, /movies
and /downloads
makes them look like two or three file systems, even if they aren’t. This means hard links won’t work and instead of an instant move, a slower and more I/O intensive copy + delete is used.
Attention
+It doesn't really matter which path you use for your media and appdata,
+the only thing you should avoid is /home
.
Because user folders in /home
are expected to have some restrictive permissions.
It just could end up creating a permissions mess, so it's better to just avoid entirely.
+For this example we're going to make use of a share called data
.
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
and Music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
In this examples I'm using lower case on all folder on purpose, being Linux is case sensitive.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
qBittorrent, Deluge, ruTorrent
+The reason why we use /data/torrents
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+The reason why we use /data/usenet
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside the applications.
+Recursively chown user and group and Recursively chmod to 775/664
+sudo chown -R $USER:$USER /data
+sudo chmod -R a=,a+rX,u+w,g+w /data
+
This is a docker-compose example based on a default Ubuntu install.
+The storage location used for the host is actually the same as in the container to make it easier to understand in this case /data
.
The appdata (/config
) will be stored on the host in the /docker/appdata/{appname}
version: "3.2"
+services:
+ radarr:
+ container_name: radarr
+ image: cr.hotio.dev/hotio/radarr:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 7878:7878
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/radarr:/config
+ - /data:/data
+ sonarr:
+ container_name: sonarr
+ image: cr.hotio.dev/hotio/sonarr:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 8989:8989
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/sonarr:/config
+ - /data:/data
+ bazarr:
+ container_name: bazarr
+ image: cr.hotio.dev/hotio/bazarr:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 6767:6767
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/bazarr:/config
+ - /data/media:/data/media
+ sabnzbd:
+ container_name: sabnzbd
+ image: cr.hotio.dev/hotio/sabnzbd:latest
+ restart: unless-stopped
+ logging:
+ driver: json-file
+ network_mode: bridge
+ ports:
+ - 8080:8080
+ - 9090:9090
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Europe/Amsterdam
+ volumes:
+ - /etc/localtime:/etc/localtime:ro
+ - /docker/appdata/sabnzbd:/config
+ - /data/usenet:/data/usenet:rw
+
sudo docker-compose up -d
(This Docker-compose command helps builds the image, then creates and starts Docker containers. The containers are from the services specified in the compose file. If the containers are already running and you run docker-compose up, it recreates the container.)sudo docker-compose pull
(Pulls an image associated with a service defined in a docker-compose.yml)sudo docker-compose down
(The Docker-compose down command also stops Docker containers like the stop command does. But it goes the extra mile. Docker-compose down, doesn’t just stop the containers, it also removes them.)sudo docker system prune -a --volumes --force
(Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.)Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+I'm using the default paths in this example, and will keep the other paths unchanged so nothing will break if you make a mistake.
+We're going to use a mounted drive that we're going to use as storage for downloads and your media.
+In this example the mounted drive will be mounted to /mnt/
with the following folder structure.
storage
+├── downloads
+| ├── torrents
+│ | ├── movies
+│ | ├── music
+│ | └── tv
+| └── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── medialibrary
+ ├── movies
+ ├── music
+ └── tv
+
To accomplish this we need to change first a few paths in your .env
(Usually ~/.docker/compose/.env
)
# Global Settings
+COMPOSE_HTTP_TIMEOUT=60
+DOCKERCONFDIR=~/.config/appdata
+DOCKERGID=999
+DOCKERHOSTNAME=DockSTARTer
+DOCKERLOGGING_MAXFILE=10
+DOCKERLOGGING_MAXSIZE=200k
+DOCKERSTORAGEDIR=/mnt/storage
+PGID=1000
+PUID=1000
+TZ=America/Chicago
+
+# DEPRECATED Settings (will be removed at the end of 2020)
+DOCKERSHAREDDIR=~/shared
+DOWNLOADSDIR=/mnt/downloads
+MEDIADIR_AUDIOBOOKS=/mnt/medialibrary/audiobooks
+MEDIADIR_BOOKS=/mnt/medialibrary/books
+MEDIADIR_COMICS=/mnt/medialibrary/comics
+MEDIADIR_MOVIES=/mnt/medialibrary/movies
+MEDIADIR_MUSIC=/mnt/medialibrary/music
+MEDIADIR_TV=/mnt/medialibrary/tv
+
When that's all set then you will need to change the paths you're going to use in the containers from:
+/downloads
=> /storage/downloads
/audiobooks
=> /storage/medialibrary/audiobooks
/books
=> /storage/medialibrary/books
/comics
=> /storage/medialibrary/comics
/movies
=> /storage/medialibrary/movies
/music
=> /storage/medialibrary/music
/tv
=> /storage/medialibrary/tv
Info
+The screenshots in the examples are using the following root path /storage
Settings
=> Media Management
=> Importing
Settings
=> Media Management
=> Root Folders
Series
=> Add New
Settings
=> Media Management
=> Importing
Settings
=> Media Management
=> Root Folders
Movies
=> Add New
SABnzbd config
=> Folders
SABnzbd config
=> Categories
../config/rtorrent/config/rtorrent.rc
(path to your appdata)
Settings
=> Downloads
Settings
=> Autotools
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+I'm not going to explain how to install all the applications, I will only explain which folder structure we recommend.
+Attention
+It doesn't really matter which path you use for your media and appdata,
+the only thing you should avoid is /home
.
Because user folders in /home
are expected to have some restrictive permissions.
It just could end up creating a permissions mess, so it's better to just avoid entirely.
+For this example we're going to make use of a share called data
.
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
and Music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
In this examples I'm using lower case on all folder on purpose, being Linux is case sensitive.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
qBittorrent, Deluge, ruTorrent
+The reason why we use /data/torrents
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+The reason why we use /data/usenet
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside the applications.
+Recursively chown user and group and Recursively chmod to 775/664
+sudo chown -R $USER:$USER /data
+sudo chmod -R a=,a+rX,u+w,g+w /data
+
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+Being I don't have a Synology myself and I kind of hate the Synology GUI for the dockers, I'm doing this with the use of docker-compose through a terminal.
+This is faster then the GUI and after installing, it shows up in the Docker GUI.
+Thanks to faxity for the initial compose that I used to create the Synology Guide.
+And a very big thanks to Bokkoman and BZwart that updated this Guide for DSM 7 and also offered their help on discord as Synology Support Team.
+This page will provide you with guidance on how to install several Docker images to your Synology system. We highly recommend to read the full guide, that way you have a better understanding of what you do, in case you later decide to make changes.
+Warning
+Though, we offer a short way out. This is intended as a quick way to do everything that is written on this page within one script.
+The script is new and only tested on Synology DSM7.
+We are not held reliable if anything breaks on your system. Use at your own risk
+To get this working you will need to enable terminal access (SSH).
+To enable this on your Synology take a look HERE.
+When you enabled the terminal access (SSH) run the following commands and follow the onscreen questions.
+curl -sL git.io/syno-script > ~/syno-script
+
sudo bash ~/syno-script
+
You need to install Docker from the Package Center
. This should also create a share named docker
, check File Station if it is present.
Attention
+To get Hardlinks and Atomic-Moves working with your Synology you will need to make use of ONE share with subfolders.
+We will use a new share named data
(lowercase) for all your library media.
Later in this guide, we will fill this share with subfolders.
+To create a new share:
+Control Panel
> Shared Folder
> click Create
> choose Create Shared Folder
Name this shared folder data
. You can disable the trash can. Click next until you are done.
For this, we are going to create a new user that only has access to the share(s) that we use for this guide.
+Go to Control Panel
> User & Group
In the User
section, create a new user. Name it whatever you like, but for this guide we will use docker
.
Fill out the rest of the information, generate a password or type your own.
+Click next, you will now be able to select which group this user will belong to, it should only be users
. Click Next
.
In this screen you will be able to select which Shares this user will have access to, click No Access
on the top, this will deny all access.
Now only select Read/Write
on the shares docker
and data
.
Click Next
until you reach Assign application permissions
In this screen you will be able to select which application this user will have access to, Check Deny
for all applications.
Continue to click Next
until you are finished.
You are mostly going to use the terminal. Some parts will need the Synology web GUI. +To enable terminal, you need to enable SSH in the Synology Settings.
+Control Panel
> Terminal & SNMP
> Enable SSH service
Then use a program like Putty and you can SSH into your Synology.
+If you get a popup asking if you want to trust the key,
+Just press OK
or ACCEPT
Enter the login information of your main Synology user account.
+In order for the Docker container to access the shares on the Synology, we need to know the user ID (PUID) and group ID (PGID) from the docker
user we just created.
Go into your terminal app, login to your synology ssh.
+Once logged in type id $user
. Change $user to the newly created username docker
.
This will show you the UID (aka PUID).
+Which in this screenshot is 1035
for the docker user
+and the GID (aka PGID) which is 100
for the users group.
+Remember these values for later use.
Attention
+It is not recommended to use (anymore) your admin/main user account. That is why we just created a new user.
+For this example we're going to make use of the share called data
.
On the host (Synology) terminal you will need to add /volume1/
before it. So /volume1/data
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The library
folder has nicely named tv
, movies
and music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
These subfolders you need to create your self.
+I'm using lower case on all folder on purpose, being Linux is case sensitive.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
qBittorrent, Deluge, ruTorrent
+The reason why we use /data/torrents
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+The reason why we use /data/usenet
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside the applications.
+Here we will create the needed subfolders for your media library and also for your preferred download client. +If you use both then run both commands
+sudo mkdir -p /volume1/data/{usenet/{tv,movies,music},media/{tv,movies,music}}
+
sudo mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}}
+
Your appdata will be stored in /volume1/docker/appdata/{appname}
+These {appname}
sub folders you need to create your self. (This is a limitation of the Synology)
+We're going to do this in Putty or a similar program.
sudo mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,pullio}
+
You can add your own sub folders for your download client(s) using the command above, by adding the name to the command.
+So your appdata folder will look like this.
+ls -al /volume1/docker/appdata
+
docker
+└── appdata
+ ├── radarr
+ ├── sonarr
+ ├── bazarr
+ ├── plex
+ ├── pullio
+ └── (your download client, i.e. nzbget; sabnzbd; qbittorrent)
+
Now we are ready to move to the installation of containers.
+For this, we need two files:
+docker-compose.yml
.env
We will start with downloading the docker-compose.yml
file
Download this docker-compose.yml to your /volume1/docker/appdata
location so you got your important stuff together. Or use the command below:
sudo wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml -P /volume1/docker/appdata/
+
This docker-compose file will have the following docker containers included.
+What's not included (and where are the download clients?).
+I didn't add a download client to it, because it depends on what you prefer (usenet/torrent) and which client you prefer, so I created a new Repository on Github where I provide and maintain some templates that are ready to use with the main docker-compose.yml
.
The only thing you need to do is copy/paste what's inside the .yml
file in to the main docker-compose.yml
, the template also has the command what you need to use to create the appdata folder that we explained earlier.
Second we will download the .env
file
Download this .env to your /volume1/docker/appdata
location so you got your important stuff together. Or use this command:
sudo wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env -P /volume1/docker/appdata/
+
Attention
+ MAKE SURE THE FILE KEEPS THE ORIGINAL NAME .env
WITH THE DOT BEFORE IT
Tip
+If you need to edit docker-compose.yml ot he .env file we advise to use Notepad++ or Visual Studio Code
+The .env
file we downloaded holds the variables/information you need to change in order for everything to work. I added explanations in the .env
file.
The .env
holds more variables/information for other containers you don't need to remove those variables and will be only used when you install the other containers.
Pullio allows you to automatically update your containers. And send you a notification through various means. In my setup, I use a Discord Webhook.
+First you need to download Pullio
+ sudo curl -fsSL "https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh" -o /usr/local/bin/pullio
+
sudo chmod +x /usr/local/bin/pullio
+
For Pullio to work, you will need to create in your Task Scheduler a "Scheduled Task" that runs for example at 4am at night with root privileges.
+Control Panel
> Task Scheduler
> click Create
> choose Scheduled task - user defined script
Give the task a name so you know what it does. Choose user root
.
In the Schedule
tab choose whenever you want it to check for updates.
At Task Settings
tab, add the following line in the Run Command section:
/usr/local/bin/pullio > /volume1/docker/appdata/pullio/pullio.log 2>&1
+
It can be frustrating to test the script if no docker image updates are available, for that you can run command sudo pullio --debug
and the script will behave as if an update is available. If you have set to receive notifications, you should receive them.
More info about Pullio HERE
+Now we need to make sure that the newly created files and folders have the correct permissions.
+Note
+If you're using a different user than docker
(the user generated in the beginning), then you need to change the docker:users
part in the commands below!!!
sudo chown -R docker:users /volume1/data /volume1/docker
+
sudo chmod -R a=,a+rX,u+w,g+w /volume1/data /volume1/docker
+
Note
+If you copy files from a different library into the newly created library, you need to rerun these commands. !!!
+Important
+make sure you delete/remove all your existing dockers from the Docker GUI and also remove your native installs (in Package Center) of these applications !!! +If you had previous installed apps, make a backup of their config folders.
+When you did all the above steps you only need to run the following commands:
+cd /volume1/docker/appdata
+
sudo docker-compose up -d
+
You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then look at the error what it says and try to fix it. If you still got issues then put your used docker-compose.yml on 0bin and join the guides-discord here and provide the pastebin link with the error, have patience because of timezone differences.
+Don't forget to look at the Examples how to setup the paths inside your applications.
+Attention
+If you need to do any changes, only edit the docker-compose.yml
file. To activate the changes, run the command sudo docker-compose -f /volume1/docker/appdata/docker-compose.yml up -d
again.
Any changes you do/did in the GUI will be reverted when you run the docker-compose command.
+Just don't use the GUI, only for information purposes !!!
+sudo docker-compose up -d
(This Docker-compose command helps builds the image, then creates and starts Docker containers. The containers are from the services specified in the compose file. If the containers are already running and you run docker-compose up, it recreates the container.)sudo docker-compose pull
(Pulls an image associated with a service defined in a docker-compose.yml)sudo docker-compose down
(The Docker-compose down command also stops Docker containers like the stop command does. But it goes the extra mile. Docker-compose down, doesn’t just stop the containers, it also removes them.)sudo docker system prune -a --volumes --force
(Remove all unused containers, networks, images (both dangling and unreferenced), and optionally, volumes.)Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+The first thing you need to do is forget the suggested paths from the Spaceinvader One YouTube Tutorials,
+and don't use the predefined paths from the unraid templates.
+(Spaceinvader One YouTube guides are great to learn how to start with unraid or how to setup certain applications, and yes I did and still do use them. Probably the main reason why he's using those path is because they are predefined in the template)
+Attention
+To get Hardlinks and Atomic-Moves working with Unraid you will need to make use of ONE share with subfolders.
+For this example I'm using my own setup and preferred share data
.
Go to your dashboard and on the top select shares
select add share
.
data
Yes
or keep it disabled (Hardlinks will stay in tact if you're using the cache)ADD SHARE
Note
+Keep in mind regarding the use of the Cache drive, The mover can't move files that are in use, like when seeding with torrents. You will need to shutdown your client or stop/pause the torrents so the mover can move them to your Array.
+With Usenet you won't have any issues.
+On the host (Unraid) you will need to add /mnt/user
before it. So /mnt/user/data
The data
folder has sub-folders for torrents
and usenet
and each of these have sub-folders for tv
, movie
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
and Music
sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin.
These subfolders you need to create your self, you can use krusader or winscp to create them or any other way you prefer.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
I'm using lower case on all folder on purpose, being Linux is case sensitive.
+Info
+The paths you use on the inside matter. Because of how Docker’s volumes work, passing in two or three volumes such as the commonly suggested /tv
, /movies
and /downloads
makes them look like two or three file systems, even if they aren’t. This means hard links won’t work and instead of an instant move, a slower and more I/O intensive copy + delete is used.
After you created all the needed folders it's time to setup the paths in the docker containers.
+Go to your dashboard and select your docker container you want to edit or if you're starting fresh add the docker containers you want to use or prefer.
+Unraid makes it actually pretty clear what's the Host Path and what's the Container Path.
+Container Path:
=> The path that will be used inside the container.
Host Path:
=> The path on your Unraid Server (The Host).
qBittorrent, Deluge, ruTorrent
+ +Container Path:
=> /data/torrents/
Host Path:
=> /mnt/user/data/torrents/
Info
+The reason why we use /data/torrents/
for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data
+└── torrents
+ ├── movies
+ ├── music
+ └── tv
+
NZBGet or SABnzbd
+ +Container Path:
=> /data/usenet/
Host Path:
=> /mnt/user/data/usenet/
Info
+The reason why we use /data/usenet/
for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/{tv|movies|music}
.
data
+└── usenet
+ ├── movies
+ ├── music
+ └── tv
+
Sonarr, Radarr and Lidarr
+ +Container Path:
=> /data
Host Path:
=> /mnt/user/data/
Info
+Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete.
+data
+├── torrents
+│ ├── movies
+│ ├── music
+│ └── tv
+├── usenet
+│ ├── movies
+│ ├── music
+│ └── tv
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Plex, Emby, JellyFin and Bazarr
+ +Container Path:
=> /data/media
Host Path:
=> /mnt/user/data/media/
Info
+Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
+data
+└── media
+ ├── movies
+ ├── music
+ └── tv
+
Don't forget to look at the Examples how to setup the paths inside your applications.
+Big Thanks to IBRACORP for noticing this Guide and creating a Video covering this unraid section.
+The reason why I added the video to the end is because I want the user to actually learn and understand why it's recommended to use this folder structure, before going straight to the YouTube video.
+ +Please don't forget to check out his other Unraid Video's HERE
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +In this section you will find several how-to's for installation of the *arrs. +This is all done in a way to achieve Hardlinks and Instant Moves (Atomic-Moves).
+Select your desired method of installation:
+Note
+These settings are a recommendation if you want to choose other settings be my guest.
+If you want to support me, please use the following referral link and use one of the following codes:
+TGLIFE
: Get 50% Off for Life for Anonymous Proxy, Anonymous VPN, Anonymous Webmail.TGLIFE-STREAMING
: Get 50% Off for Life Anonymous Proxy, Anonymous VPN, Streaming Bundle.TGLIFE-PRO
: Get 50% Off for Life for Anonymous VPN, Streaming Bundle, Anonymous VPN Pro.Login to your Client Area.
+ +First we're going to create a User Account for your VPN so we won't need to use your main account that you use to login to your account on the Torguard site. +This account will be used for authentication with your VPN Torrent client.
+Services
> My Services
> Manage
> Manage Credentials
Create a new username and choose a secure password or create a random username and password.
+ +Now it's time to get the IP of your VPN server you're going to use from the Global VPN Network, From your Client Area.
+Servers
> Global VPN Network
Then we're going to select which server we're going to use,
+For the best speed it's recommended to choose the one nearest to your location.
+Let's use for this example: USA Miami
and copy/paste the Hostname us-fl.secureconnect.me
.
Important
+Also check if your chosen server supports OpenVPN or Wireguard depending what you want to use.
+Open a cmd window or something equal and type:
+ ping us-fl.secureconnect.me
+
You will then get the IP of the server. +Remember that for later use.
+ +Note
+This section will consist of 2 parts depending if you want to use OVPN or WireGuard so make sure you choose your preferred VPN Tunnel type.
+From your Client Area go to your My Services.
+Then click on Manage
and select Request Port Forward
.
Services
> My Services
> Manage
> Request Port Forward
Choose your preferred VPN Tunnel type.
+IP
we found earlier.UDP
.Port/Auth
I personally use 995|SHA1
.Protocol
TCP
.Port
number 10.000+ or a game port you don't use, don't use the default torrent ports 6881- 6889
+ (This is also the port you will use in your torrent client).+
sign and do the same with the UDP
Protocol
.Submit Request
.If everything went according to plan you will see something like this.
+ +You will also receive a e-mail with the ports you forwarded.
+Note
+Normally it doesn't take more then a few seconds/minutes to get the ports approved if it takes longer or you get PENDING
I suggest to ping the server again (or choose another sever) and you often get a new IP and retry it again with the new IP.
IP
we found earlier.UDP
. ( KEEP THIS ON UDP FOR WireGuard )Port/Auth
and select WireGuard
.Protocol
TCP
.Port
number 10.000+ or a game port you don't use, don't use the default torrent ports 6881- 6889
+ (This is also the port you will use in your torrent client).+
sign and do the same with the UDP
Protocol
.Submit Request
.WARNING
+ DON'T CHANGE OPTION 2 UDP
to TCP
If everything went according to plan you will see something like this.
+ +You will also receive a e-mail with the ports you forwarded.
+Note
+Normally it doesn't take more then a few seconds/minutes to get the ports approved if it takes longer or you get PENDING
I suggest to ping the server again (or choose another sever) and you often get a new IP and retry it again with the new IP.
Note
+This section will consist of 2 parts depending if you want to use OVPN or WireGuard so make sure you choose your preferred VPN Tunnel type.
+From your Client Area go to your Config Generator.
+Tools
> Config Generator
Choose your preferred VPN Tunnel type.
+Default
.OpenVPN
.IP
we got earlier and used for the port forwarding.UDP
.995|SHA1
or what you selected during the port forwarding.AES-128-GCM
.2.4 and above
.Require TLS 1.2
Generate Config
,Now you will download a .conf
file with a random number.
Rename the extension from *.conf
to *.ovpn
and copy it to your openvpn folder of your VPN torrent client.
WireGuard
.IP
we got earlier and used for the port forwarding.VPN Username
.Generate Config
Now you will download a .conf
file with a random number.
Rename the file from *.conf
to wg0.conf
and copy it to your wireguard folder of your VPN torrent client.
Thanks:
+A big Thanks to mrhotio for his excellent instructions on how to setup WireGuard for TorGuard.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +When you're running dockers and you need help on discord etc you often hear the question:
+"Provide a docker compose"
+If you need to provide this info always remember to provide it from all your *arr (Sonarr, Radarr, Lidarr, Bazarr) and also from your download client(s).
+If you're using a system with a GUI (Synology, unRAID, OMV, etc.) it's not always easy to provide a docker compose but it's possible.
+Warning
+Please don't use screenshots to provide the info as they aren't always revealing all the needed info
+Use one of the following from terminal(puTTy) to get the docker compose with or without the use of sudo
.
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose CONTAINER_NAME CONTAINER_NAME2
+
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose sonarr radarr bazarr nzbget
+
Paste the results on one of the following sites.
+If you use docker run command to create your docker containers, paste your run command in to composerize
+ +Quote
+x265 is good for 4k stuff or 1080p if they used the the remuxes as source. +If the media isn't source quality/remux, then there will be a loss of quality every time. +Also, once you go x265, typically that file is done. +It can't be changed to something else without a huge loss of quality.
+Something like 95% of video files are x264 and have much better direct play support. +If you have more than a couple users, +you will notice much more transcoding. +Just depends on your priorities.
+So basically if you are storage poor and just need to save space, use x265. +The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes. +If you want maximum compatibility and the option to change your files to something else later, +then x264. +It's all really dependent on specific situations for different people
+It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it.
+That's why I created my own golden rule.
+4k, transcoding, and you - aka the rules of 4k - a FAQ - Plex.tv
+Here we're going to explain the basic setup for Notifiarr to get it working with Sonarr, Radarr, Bazarr.
+If you want to make use of the other options I suggest to looking at the Notifiarr Wiki.
+First we're going to visit the Notifiarr site, if you don't have an account yet, click the link to signup.
+ +After you have logged in, you will be redirected to your profile screen.
+ +Generate API Key
(This needs to be done)Country
Timezone
Time Format
to your likingSite Theme
Notification Language
Save
your changesFirst, click on Manage Integrations
so you can enable what you want to receive notifications for.
A screen will popup and here you're able to select from which application/services you receive a notification.
+When you enabled the ones you want click on Save
Setup which notifications you want to to receive from each option.
+ +Here we will cover the following
+First thing to do is create a few channels (in your discord server) where you receive your notifications.
+Note
+I won't be explaining how to setup a discord channel, that's up to you but google has plenty of references.
+You can do it all from one channel or separate the notifications (granular) for each trigger if you want.
+#media
=> All the *arr
notifications you setup in Integration Settings.
#errors
=> Health checks, network errors, etc.
#plex
=> Play, resume, etc. for Plex.
After you create the needed channels, it's time to add them to the Setup the channels
First we need to get the server ID
+Open your User Settings -> Appearance -> Enable Developer Mode.
+ +Right click on your server name and select "Copy ID"
+ +Paste the server ID in box [1]
#errors
channel.It's time to invite the bot in to your Server/Channels by clicking on the following link.
+ +You will get a screen that looks like the following screenshot.
+ +Continue
to approve.Note
+Check Discord Permissions for information which permissions the bot needs.
+Here we will setup the Notifiarr reactions(emoji's) that will be shown during a playback in plex, or during a download/import in Sonarr/Radarr.
+ +This section exist of 2 parts.
+First we're going to download the emoji's and you can do that in 2 ways.
+Attention
+To download the Emoji Pack from the link in this Guide you will need to be logged in to Notifiarr site !!!
+Else you can find it on the main Notifiarr site in the Integration Setup
Category at the bottom right
For this example, we will be using Pack Download. You'll need download the file and then unpack it somewhere on your computer. After which, you can then add the emoji's to your Discord Server easily.
+How to add your own Emoji's => LINK
+After you've added them to your Discord Server it's time to get the ID's from your emoji's, to do this go in to one of your channels and type:
+\:emoji_name:
+
What results in to.
+ +So your ID would be :grab:706535455876710461
.
Paste the ID results from your channel in to the corresponding boxes.
+ +Do this for all the other boxes also including your Trackers/Indexers.
+What will result in to.
+ +If you use a different name in Sonarr and Radarr just add them with a comma BeyondHD - Jackett,BHD
.
Don't forget to click on Save Changes
!!!
Note
+After pasting the Emoji's ID in to the box you will notice that the leading colon will disappear nothing to worry about that's per design
+Here we will explain how to we add notifiarr to your *arr and Plex.
+When you click on the cogwheel of the enabled Integration you will see on the top Instructions
It will show you a short description where and how to add what.
+??? example "Example" - [CLICK TO EXPAND]
+![!dn-radarr-integration-instructions](images/dn-radarr-integration-instructions.png)
+
Radarr, Readarr and Lidarr supports Notifiarr natively so that's an easy one to add.
+Settings
=> Connect
=> click on the plus
icon and select Notifiarr
add your API key and you're done.
In Radarr go to Settings
=> Connect
=> Click on the plus
icon and select notifiarr
.
Then add the following info.
+ +On Grab
, On Import
, On Upgrade
, On Health Issue
& Include Health Warnings
.Test
to see if it works.Save
Sonarr doesn't have native support & will not get one per their devs. +That's why we're going to use the webhook method.
+ +Settings
=> Connect
> Click on the plus
icon and select Webhook
.
Add the following info:
+Name: Notifiarr
+Enable: On Grab
, On Import
, On Upgrade
, On Health Issue
& Include Health Warnings
.
URL: The URL that you can copy/paste from the integrations page.
+Click Save
+Settings
=> Connect
> Click on the plus
icon and select Webhook
.
Add the following info.
+ +On Grab
, On Import
, On Upgrade
, On Health Issue
& Include Health Warnings
.POST
.Test
to see if it works.Save
For Bazarr you need to make use of JSON method.
+ +Settings
=> Notifications
=> and selectJSON
On the top click on the Edit
icon and Enable the notification type.
Add the JSON URL that you copy/pasted from the integrations page.
+Scroll up and save
+Settings
=> Notifications
=> and selectJSON
On the top click on the Edit
icon and Enable the notification type.
Add the following info.
+ +Test
to see if it works.Ok
Don't forget to click on Save on the top of the Bazarr screen.
+ +Settings
=> Webhooks
=> click on ADD WEBHOOK
and add the URL that you can copy/paste from the integrations page and click on SAVE CHANGES
Settings
=> Webhooks
=> click on ADD WEBHOOK
On the top right click on the Settings
icon, and on the left sidebar select Webhooks
+Click on the middle of the screen on and add the following info.
SAVE CHANGES
If you want to show more advanced info like Transcode, CPU & Ram take a look at Plex Integration
+Note
+If there is still an issue, try asking in the Notifiarr discord channel for additional support.
+So, what are the best Plex Media Server settings?
+This is something that can't really be answered because it depends on the use case and your personal preference.
+Here I will provide some suggestions and try to explain why I recommend these settings. Adjust it to your own liking and keep in mind that it is only a suggestion. I'm not a Plex Pro in anyway
+Attention
+Some settings are only visible for Plex Pass holders.
+All changes need to be done on your Plex Media Server.
+ +Why didn't you cover option .... ?
+I will only cover settings that I think might be interesting or are personal preference, if you would like me to cover some other settings, please contact me on
+32400
)Apply
and when everything is setup correctly, your Plex Media Server should be fully accessible outside of your network, so you can connect to your Plex server from outside. You may also need to configure port forwarding on your router. Detailed instructions are available HERE.This can be ignored if you use the new Plex agents,
+The new agent settings are now managed “per library”.
+When a change is detected in the source location for a library’s content, the appropriate library will be scanned. This function relies on the computer’s operating system providing the “something changed” trigger. Some operating systems don’t provide this trigger and content mounted via a network will also typically not work. If your library doesn’t automatically scan, you may have to set a periodical scan or do it manually.
+Suggested: Enabled
If for some reason ex. your operating systems don’t provide this trigger or your storage is mounted on a network (SMB/NFS/Cloud Storage) or your library just doesn't automatically scan, or is just plain impractical, You might want to consider using autoscan. IBRACORP (A Youtube channel I collaborate with) has a video explaining it in further detail.
+ +Please don't forget to check out his other Unraid Video's HERE
+When changes to library folders are detected, only scan the folder which changed rather than scanning the entire content location. This works together with the normal Update my library automatically setting (and requires that setting to be enabled).
+Suggested: Enabled
I don't do music, so this choice is up to you, and I won't be covering it.
+Turning this on will cause your Plex Media Server to run scans on your libraries using the designated interval.
+Suggested: Disabled
Do you need a extra scan for your library to recognize new media?
+With this option enabled, when an item’s file is deleted from the drive, it will be removed from the Plex library on the next scan. Disabling this option keeps the item in the library with an overlay over the item’s poster when the item is removed.
+Suggested: Enabled
The owner of the server will be allowed to delete media files from disk.
+Suggested: Disabled
In my opinion Plex shouldn't touch your media files. Use Sonarr/Radarr to manage your media library. (For extra security I've setup Plex with Read Only access to the media library)
+On low-powered systems (e.g. ARM-based NAS devices), it can be beneficial to run scanner tasks at a lower priority than other tasks. This can help ensure they do not interfere with regular streaming.
+Suggested: Enabled
Makes sure it uses less resources and ensure they do not interfere with regular streaming.
+This option creates a series of preview thumbnails from a media item when it is analyzed. These images are used by some Plex apps when you move back and forward in an app with the timeline scrubber. They’ll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video.
+Suggested: Never
Besides that, it uses a lot of disk space and high I/O, No one in my family uses FastForward/Rewind but they use the skip forward/backward.
+ATTENTION
+Creating these images can
+The images are stored in your Plex database location (/config) so be careful you don’t fill the drive
+You can choose to have TV episodes analyzed to try and detect when the “intro” occurs during playback. When detected, apps will then offer a Skip Intro
button, allowing you to quickly jump over the intro.
Suggested: as a scheduled task
or
+Suggested: as a scheduled task and when media is added
Chapter thumbnails provide images in the chapter view on supported apps. They can take a little time to generate and consume very minor additional disk space.
+Suggested: as a scheduled task
or
+Suggested: as a scheduled task and when media is added
Enable IPv6 support.
+Suggested: Disabled
If you're not sure your network 100% works with ip6 don't Enable it.
+Choose how your Plex Media Server handles secure connections.
+Suggested: Preferred
Accept and prefer secure connections when they’re available for a Plex app, but allow regular HTTP connections if the app doesn’t support secure connections or if one can’t be established
+For users with multiple network cards or systems such as NAS or Docker where there is always another network interface which Plex client applications may try to use to connect to the Plex Media Server, with this option you can ensure that your local Plex clients would only try that interface.
+Attention
+If you have enabled Remote Access enabled and are having Plex automatically map the port (as opposed to specifying a port manually), then Plex Media Server has no control over which network interface is used for an automatically-mapped port. Thus, it’s possible that Remote Access connections could come through an interface other than the one specified here.
+Suggested: Whatever suits your setup
If this setting is enabled, it prevents Plex Media Server from using or accepting the deprecated TLSv1.0 and v1.1 protocols, as well as legacy weak ciphers. May prevent older clients from connecting. The vast majority of users will have no reason to enable this option (and receive no benefit from doing so).
+Suggested: Disabled
Enable “G’Day Mate” discovery. This is used to allows Plex apps and servers to find each other automatically on a local network.
+Suggested: Enabled
You can set the maximum number of simultaneous streams each remote user is allowed to have.
+Suggested: Whatever suits your setup
It lets you specify which IP addresses or networks will be considered to be “local” to you.
+Suggested: Your local IP/netmasks
If your local devices are seen as remote devices, then this could solve your issue. (Do not include spaces or tabs.)
+Allows incoming requests from this network’s WAN IP address to be treated as LAN requests in terms of bandwidth. This often occurs when DNS rebinding protection is in place and clients on the LAN cannot contact the server directly but instead have to go through the WAN IP address.
+Suggested: Enabled
The Relay allows connections to the server through a proxy relay when the server is not accessible otherwise. Relay connections are bandwidth limited.
+Suggested: Disabled
I've seen several reports where people that had this Enabled had playback issues because it seems to be limited at 2 Mbps.
+A comma-separated list of URLs (either HTTP or HTTPS), which will be published to plex.tv for server discovery. This can be very useful in a few cases: if you’re using a reverse proxy in front of the media server, or if your networking configuration is otherwise unique. For instance, if you have your own custom domain with subdomain.
+Suggested: Depending on your setup
Example: https://plex.mycustomdomain.com:32400
This feature can be enabled to allow your server to send events to external services. For example Notifiarr
+This will influence the quality used when transcoding media.
+Suggested: Automatic
Most users should leave it set to Automatic. Hardware-Accelerated Streaming is not affected by this setting.
+Directory to use when transcoding temporary files for streaming.
+Suggested: Depending on your setup, if possible, your RAM (disk)
Speeds up transcoding and less I/O, transcode data is temporary and doesn't need to be writing to a disk.
+If you run docker set this to /transcode
and map it to /tmp/plex
Default Linux only allocates a max of 50% of total system RAM to any ram directories (ie. /tmp, /dev/shm, etc.)
+WARNING
+YOU SHOULD NOT SPECIFY A LOCATION THAT RESIDES ON A NETWORK SHARE/DISK.
+This feature allows Plex Media Server to maintain high visual fidelity of content, by applying tone mapping to convert it to SDR when transcoding HDR content.
+Suggested: Depending on your setup
Most HDR content will be in 4K resolution. If your platform has to use software transcoding to perform the tone mapping, then it may well struggle convert 4K content in real-time, unless you’re running on a very powerful system.
+Note
+Plex’s tone mapping support should generally be able to produce good color mapping and help avoid the “washed out” colors that occur when converting HDR content without tone mapping.
+To use Hardware-Accelerated Streaming in Plex Media Server.
+Suggested: Enabled
To use Hardware-Accelerated Encoding in Plex Media Server.
+Suggested: Enabled
Here you will find your libraries you've added to your Plex Media Server.
+(/data/media/movies)
(/data/media/movies4k)
/(/data/media/movies-uhd)
(/data/media/movies-kids)
(/data/media/movies-anime)
(/data/media/tv)
(/data/media/tv-4k)
/(/data/media/tv-uhd)
(/data/media/tv-kids)
(/data/media/tv-anime)
(/data/media/anime)
I will only cover the libraries settings for Movies and TV shows
+The new version of the Plex Movie agent/scanner
+Suggested: Plex Movie
Besides being much faster at scanning and getting metadata, one of the benefits of the new agent is that all agent settings are set at the library level, so that different libraries using the same agent can have different agent settings.
+When scanning this library, use local posters and artwork if present. (Local subtitles files will be used whether this is enabled or not)
+Suggested: Enabled
I had this enabled because I thought it was needed for local subtitles (.srt), but after research it seems it isn't needed. +If you want you could disable it, the choice is yours.
+When scanning this library, prefer embedded tags and local files if present.
+Suggested: Disabled
If enabled you could end up with weird movie naming you don't want, happens especially from releases from RARBG
Automatically create collections when there are more than the selected number of items for an available collection.
+Suggested: 2
Only show collections when you have more than one item in your library
+This option creates a series of preview thumbnails from a media item when it is analyzed. These images are used by some Plex apps when you move back and forward in an app with the timeline scrubber. They’ll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video.
+ATTENTION
+Creating these images can take a considerable amount of time, CPU resources, and increase the storage space used. The images are stored in your Plex database so be careful you don’t fill the drive
+Suggested: Disabled
Besides that, it uses a lot of disk space and high I/O, No one in my family uses FastForward/Rewind but they use the skip forward/backward.
+This deletes the preview thumbnails it generated before you disabled this option
+If you want to show your Collection in your library
+Suggested: Disabled
When Disabled your movies will show up normally when you use library view, This doesn't mean it will disable the collection view.
+The new version of the Plex Movie agent/scanner
+Suggested: Plex TV Series
Besides being much faster at scanning and getting metadata, one of the benefits of the new agent is that all agent settings are set at the library level, so that different libraries using the same agent can have different agent settings.
+When scanning this library, use local posters and artwork if present. (Local subtitles files will be used whether this is enabled or not)
+Suggested: Enabled
I had this enabled because I thought it was needed for local subtitles (.srt), but after research it seems it isn't needed. +If you want you could disable it, the choice is yours.
+When scanning this library, prefer embedded tags and local files if present.
+Suggested: Disabled
If enabled you could end up with weird movie naming you don't want, happens especially from releases from RARBG
This option creates a series of preview thumbnails from a media item when it is analyzed. These images are used by some Plex apps when you move back and forward in an app with the timeline scrubber. They’ll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video.
+ATTENTION
+Creating these images can take a considerable amount of time, CPU resources, and increase the storage space used. The images are stored in your Plex database so be careful you don’t fill the drive
+Suggested: Disabled
Besides that, it uses a lot of disk space and high I/O, No one in my family uses FastForward/Rewind but they use the skip forward/backward.
+This deletes the preview thumbnails it generated before you disabled this option
+If you want to show your Collection in your library
+Suggested: Disabled
When Disabled your tv show will show up normally when you use library view, This doesn't mean it will disable the collection view.
+Generate intro detection for items in this library when enabled in server settings.
+Suggested: Enabled
Ever watch a TV show and it starts playing that same minute and a half credits intro that you've already watched multiple times? Well, you can have your Plex Media Server analyze the TV shows to try and detect those introductions and then let you skip through them with a single click!
+For the information of this guide, I made use of the following sources
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Here you will find a collection of profiles you can use with Plex.
+Profiles are used if Plex has issues direct playing your media on your devices, these profiles could help but result.
+To make use of the profiles you need to add it in your your plex folder
+Example paths:
+/appdata/plex/Profiles
/appdata/plex/database/Library/Application Support/Plex Media Server/Profiles
or /appdata/plex/Library/Application Support/Plex Media Server/Profiles
If you got some to share, pls make a PR so we can collect them at one place
+ Android-SHIELD Android TV.xml
+
<?xml version="1.0" encoding="utf-8"?>
+<Client name="SHIELD Android TV">
+ <Identification>
+ <Header name="User-Agent" substring="SHIELD Android TV" />
+ </Identification>
+ <TranscodeTargets>
+ <VideoProfile container="mkv" codec="h264" audioCodec="aac" context="streaming" />
+ <MusicProfile container="flac" codec="flac" id="StereoMusicTranscodeProfile" />
+ <PhotoProfile container="jpeg" />
+ </TranscodeTargets>
+ <DirectPlayProfiles>
+ <VideoProfile container="mkv" codec="vp9,hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca" subtitleFormat="srt,ass,smi,ssa,subrip,pgs"/>
+ <VideoProfile container="mp4" codec="hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
+ <VideoProfile container="asf" codec="wmv3,wmv3,vc1" audioCodec="wmav2,wmav2,wmapro,wmavoice,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
+ <VideoProfile container="avi" codec="h264,msmpeg4v3,mpeg4,mjpeg" audioCodec="mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
+ <VideoProfile container="mpeg" codec="h264,mpeg1video,mpeg2video" audioCodec="mp2,mp3,ac3,eac3,aac,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
+ <VideoProfile container="flv" codec="h264" audioCodec="aac,ac3,eac3,mp3,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
+ <VideoProfile container="mpegts" codec="h264,mpeg2video,vc1" audioCodec="mp2,mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
+ <VideoProfile container="wtv" codec="mpeg2video" audioCodec="ac3,eac3,aac,pcm"/>
+ <VideoProfile container="3gpp" codec="h264,mpeg4" audioCodec="aac,he-aac"/>
+ <MusicProfile container="mp4" codec="aac" />
+ <MusicProfile container="mp3" codec="mp2,mp3" />
+ <MusicProfile container="flac" codec="flac" />
+ <MusicProfile container="ogg" codec="vorbis" />
+ <MusicProfile container="ac3" codec="ac3"/>
+ <MusicProfile container="wav" codec="pcm"/>
+ <PhotoProfile container="jpeg,gif,bmp,png" />
+ </DirectPlayProfiles>
+ <ContainerProfiles>
+ <VideoContainer name="mp4">
+ <Limitations>
+ <Match name="part.optimizedForStreaming" value="1" />
+ </Limitations>
+ </VideoContainer>
+ </ContainerProfiles>
+ <CodecProfiles>
+ <VideoCodec name="*">
+ <Limitations>
+ <UpperBound name="video.width" value="3840" isRequired="true" />
+ <UpperBound name="video.height" value="2160" isRequired="true" />
+ <UpperBound name="video.bitDepth" value="10" />
+ </Limitations>
+ </VideoCodec>
+ <VideoCodec name="h264">
+ <Limitations>
+ <Match name="video.profile" list="baseline|main|high" />
+ </Limitations>
+ </VideoCodec>
+ <VideoAudioCodec name="aac">
+ <Limitations>
+ <UpperBound name="audio.channels" value="8" />
+ </Limitations>
+ </VideoAudioCodec>
+ </CodecProfiles>
+</Client>
+
Chromecast.xml
+
<?xml version="1.0" encoding="utf-8"?>
+<Client name="Chromecast">
+ <!-- Author: xtrap225 -->
+ <TranscodeTargets>
+ <VideoProfile protocol="http" container="mkv" codec="h264" audioCodec="aac,mp3" context="streaming" />
+ <MusicProfile container="mkv" codec="opus" />
+ <PhotoProfile container="jpeg" />
+ <SubtitleProfile container="ass" codec="ass" />
+ </TranscodeTargets>
+ <DirectPlayProfiles>
+ <VideoProfile container="mp4" codec="Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="aac,mp3,mp2"/>
+ <VideoProfile container="mkv" codec="vp9,Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="aac,mp3,mp2,pcm,flac,alac" subtitleFormat="srt,ass"/>
+ <VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="aac" />
+ <MusicProfile container="mp3" codec="mp2,mp3"/>
+ <MusicProfile container="mp4" codec="aac"/>
+ <MusicProfile container="flac" codec="flac"/>
+ <MusicProfile container="wav" codec="pcm"/>
+ <PhotoProfile container="jpeg,png,gif"/>
+ </DirectPlayProfiles>
+<CodecProfiles>
+ <VideoCodec name="h265,Hevc,vp9">
+ <Limitations>
+ <UpperBound name="video.width" value="3840"/>
+ <UpperBound name="video.height" value="2176"/>
+ <UpperBound name="video.bitrate" value="75000"/>
+ </Limitations>
+ </VideoCodec>
+ <VideoCodec name="h264,mpeg4">
+ <Limitations>
+ <UpperBound name="video.width" value="3840"/>
+ <UpperBound name="video.height" value="2176"/>
+ <UpperBound name="video.bitrate" value="75000"/>
+ <UpperBound name="video.bitDepth" value="10" />
+ <UpperBound name="video.level" value="42" />
+ </Limitations>
+ </VideoCodec>
+ <VideoAudioCodec name="aac,mp3">
+ <Limitations>
+ <UpperBound name="audio.channels" value="2" />
+ </Limitations>
+ </VideoAudioCodec>
+ </CodecProfiles>
+</Client>
+
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +I often get the question what's the best Quality Settings to use, +Well it's actually personal preference so I will show you a recommended Quality Settings. +But before you continue to read, as with all my guides:
+If you don't care about quality then stop reading and see if the other tutorials are helpful for you.
+This Quality Settings has been created and tested with info I got from others, and release comparisons from different sources.
+Q: Why do you only show starting from HDTV720p?
+A: With the big screens these days anything lower doesn't look watchable
+Q: Why do you have some sized set to max?
+A: You probably didn't read the bold text above
+Q: When I set Bluray to MAX size I get often ISO's/ Bluray folder structure.
+A: You probable have configured your Quality Profiles wrong and enabled BR-DISK and didn't add the recommended Custom Profile to help Radarr to block/ignore it. BR-DISK
+Q: Some movies won't be grabbed because of these settings.
+A: If you notice that some movies won't be grabbed because of these size settings you can provide me a proof with a screenshot and the error it shows you when you do a interactive search (non redacted except the indexer/tracker if you want to).
+Quality | +Minimum | +Maximum | +
---|---|---|
HDTV-720p | +17.1 | +400 | +
WEBDL-720p | +17.1 | +400 | +
WEBRip-720p | +17.1 | +400 | +
Bluray-720p | +25.7 | +400 | +
HDTV-1080p | +33.7 | +400 | +
WEBDL-1080p | +25.2 | +400 | +
WEBRip-1080p | +25.2 | +400 | +
Bluray-1080p | +50.8 | +400 | +
Remux-1080p | +136.8 | +400 | +
HDTV-2160p | +85 | +400 | +
WEBDL-2160p | +85 | +400 | +
WEBRip-2160p | +85 | +400 | +
Bluray-2160p | +102 | +400 | +
Remux-2160p | +221.5 | +400 | +
Note
+The reason why you don't see the preferred score in the Table is because we want max quality anyway so as high as possible.
+The highest preferred quality you can manually enter is 1 less than the Maximum quality. If you use the slider, the preferred quality can be up to 5 lesser than the Maximum quality.
+Make sure you have enabled 'Show Advanced' in Radarr, if you don't see a provision to enter the scores, under the Quality settings.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Here I will try to collect a collection of the most needed and commonly used Custom Formats. +These have been collected from either discussions on discord or that I created with help from others. +Special thanks to rg9400, bakerboy448 and Team Radarr.
+With Radarr V3, Custom Formats are much more advanced/powerful than with v0.2, although this also means a Custom Format is much more complicated to setup.
+After requesting at Team Radarr we now have the options to import/export the Custom Formats in a JSON format that we can use here what makes it easier to share the different kind of Custom Formats.
+I also made 3 guides related to this one.
+Tip
+I also suggest to change the Propers and Repacks settings in Radarr
+Media Management
=> File Management
to Do Not Prefer
and use the Repack/Proper Custom Format.
This way you make sure the Custom Formats preferences will be used and not ignored.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Audio Advanced #1 | +Audio Advanced #2 | +Audio Channels | +HDR Metadata | +
---|---|---|---|
TrueHD ATMOS | +FLAC | +1.0 Mono | +Dolby Vision | +
DTS X | +PCM | +2.0 Stereo | +Dolby Vision (Single Layer) | +
ATMOS (undefined) | +DTS-HD HRA | +3.0 Sound | +HDR | +
DD+ ATMOS | +AAC | +4.0 Sound | +HDR (undefined) | +
TrueHD | +Dolby Digital | +5.1 Surround | +10 Bit | +
DTS-HD MA | +MP3 | +6.1 Surround | ++ |
Dolby Digital Plus | +Opus | +7.1 Surround | ++ |
DTS-ES | ++ | 9.1 Surround | ++ |
DTS | ++ | + | + |
Movie Versions | +Misc (-10000) | +Misc #1 | +Misc #2 | +
---|---|---|---|
Hybrid | +BR-DISK | +Repack/Proper | +HQ-Remux | +
Remaster | +EVO (no WEBDL) | +Streaming Services | +High Quality Releases | +
4K Remaster | +Low Quality Releases | +Multi | +HQ-WEBDL | +
Special Editions | +720/1080p no x265 | +x264 | ++ |
Criterion Collection | +3D | +x265 | ++ |
Theatrical Cut | +No-RlsGroup | +MPEG2 | ++ |
IMAX | +Obfuscated | +FreeLeech | ++ |
+ | DoVi (WEBDL) | +Dutch Groups | ++ |
+ | + | Anime Dual Audio | ++ |
++From Wikipedia, the free encyclopedia
+Dolby Atmos is a surround sound technology developed by Dolby Laboratories. It expands on existing surround sound systems by adding height channels, allowing sounds to be interpreted as three-dimensional objects.
+
{
+ "trash_id": "496f355514737f7d83bf7aa4d24f8169",
+ "trash_score": "2000",
+ "name": "TrueHD ATMOS",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "TrueHD",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "TrueHD"
+ }
+ },
+ {
+ "name": "ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ }
+ ]
+}
+
++DTS:X is an object-based audio codec, which aims to create a multi-dimensional sound that “moves around you like it would in real life”
+
{
+ "trash_id": "2f22d89048b01681dde8afe203bf2e95",
+ "trash_score": "1900",
+ "name": "DTS X",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "DTS X",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?x(?!\\d)"
+ }
+ },
+ {
+ "name": "Not Basic DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "DTS[ .]?[1-9]"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDD(\\b|\\d)|(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ }
+ ]
+}
+
++Handles cases where only Atmos is specified in title but not DD+ or TrueHD (Where it is not specified if it is Lossy or Lossless)
+
Note
+Give this the same score as Lossy Atmos, and then on import, it will get changed to either lossy or lossless based on mediainfo.
+{
+ "trash_id": "417804f7f2c4308c1f4c5d380d4c4475",
+ "trash_score": "1800",
+ "name": "ATMOS (undefined)",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not TrueHD",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ }
+ ]
+}
+
++Atmos via UHD Blu-ray will be lossless, or lossy via streaming services so in this case it will be lossy + Atmos
+
{
+ "trash_id": "1af239278386be2919e1bcee0bde047e",
+ "trash_score": "1800",
+ "name": "DD+ ATMOS",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(ATMOS|DDPA)(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not TrueHD",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ }
+ ]
+}
+
++From Wikipedia, the free encyclopedia
+Dolby TrueHD is a lossless, multi-channel audio codec developed by Dolby Laboratories for home video, used principally in Blu-ray Disc and compatible hardware.
+
{
+ "trash_id": "3cafb66171b47f226146a0770576870f",
+ "trash_score": "1700",
+ "name": "TrueHD",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "TrueHD",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "TrueHD"
+ }
+ },
+ {
+ "name": "ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ }
+ ]
+}
+
++From Wikipedia, the free encyclopedia
+DTS-HD Master Audio is a multi-channel, lossless audio codec developed by DTS as an extension of the lossy DTS Coherent Acoustics codec (DTS CA; usually itself referred to as just DTS). Rather than being an entirely new coding mechanism, DTS-HD MA encodes an audio master in lossy DTS first, then stores a concurrent stream of supplementary data representing whatever the DTS encoder discarded. This gives DTS-HD MA a lossy "core" able to be played back by devices that cannot decode the more complex lossless audio. DTS-HD MA's primary application is audio storage and playback for Blu-ray Disc media.
+
{
+ "trash_id": "dcf3ec6938fa32445f590a4da84256cd",
+ "trash_score": "1600",
+ "name": "DTS-HD MA",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "DTS-HD MA",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "(dts(?>[-. ](?>ma|hd(?!china))))"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not Basic DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "DTS[ .]?[1-9]"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDD(\\b|\\d)|(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not DTS X",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?x(?!\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS-HD HRA/ES",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?(es|(hd[. ]?)?(hr|hi))"
+ }
+ }
+ ]
+}
+
++FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio
+
{
+ "trash_id": "a570d4a0e56a2874b64e5bfa55202a1b",
+ "trash_score": "1500",
+ "name": "FLAC",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ }
+ ]
+}
+
++PCM is the method of encoding typically used for uncompressed digital audio
+
{
+ "trash_id": "e7c2fcae07cbada050a0af3357491d7b",
+ "trash_score": "1500",
+ "name": "PCM",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ }
+ ]
+}
+
++Description placeholder
+
{
+ "trash_id": "8e109e50e0a0b83a5098b056e13bf6db",
+ "trash_score": "1400",
+ "name": "DTS-HD HRA",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "DTS-HD HRA",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?(hd[. ]?)?(hr|hi)"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not Basic DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "DTS[ .]?[1-9]"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDD(\\b|\\d)|(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not DTS X",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?x(?!\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS-ES",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "dts.?es"
+ }
+ },
+ {
+ "name": "Not 6.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]6[ .][0-1]"
+ }
+ }
+ ]
+}
+
Dolby Digital Plus = DD+
+++From Wikipedia, the free encyclopedia
+Dolby Digital Plus, also known as Enhanced AC-3 (and commonly abbreviated as DD+ or E-AC-3, or EC-3) is a digital audio compression scheme developed by Dolby Labs for transport and storage of multi-channel digital audio. It is a successor to Dolby Digital (AC-3).
+
{
+ "trash_id": "185f1dd7264c4562b9022d963ac37424",
+ "trash_score": "1300",
+ "name": "DD+",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^-]DD[P+](?!A)|eac3"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ }
+ ]
+}
+
++DTS-ES (DTS Extended Surround) includes two variants, DTS-ES Discrete 6.1, and DTS-ES Matrix 5.1, depending on how the sound was originally mastered and stored.
+
{
+ "trash_id": "f9f847ac70a0af62ea4a08280b859636",
+ "trash_score": "1200",
+ "name": "DTS-ES",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "DTS-ES",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?(es|(hd[. ]?)?(hr|hi))"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not Basic DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "DTS[ .]?[1-9]"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDD(\\b|\\d)|(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not DTS X",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?x(?!\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ },
+ {
+ "name": "6.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]6[ .][0-1]"
+ }
+ }
+ ]
+}
+
DTS = Basic DTS
+++Description placeholder
+
{
+ "trash_id": "1c1a4c5e823891c75bc50380a6866f73",
+ "trash_score": "1100",
+ "name": "DTS",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Basic DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS-HD",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "dts.?(hd|ma|es|hi|hr)"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDD(\\b|\\d)|(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not DTS X",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "dts[-. ]?x(?!\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ }
+ ]
+}
+
Advanced Audio Coding
+++From Wikipedia, the free encyclopedia +Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression. Designed to be the successor of the MP3 format, AAC generally achieves higher sound quality than MP3 at the same bit rate.
+
{
+ "trash_id": "240770601cc226190c367ef59aba7463",
+ "trash_score": "1000",
+ "name": "AAC",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ }
+ ]
+}
+
(Basic) Dolby Digital = DD
+++From Wikipedia, the free encyclopedia
+Dolby Digital, also known as Dolby AC-3, the audio compression is lossy.
+
{
+ "trash_id": "c2998bd0d90ed5621d8df281e839436e",
+ "trash_score": "900",
+ "name": "DD",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Basic Dolby Digital",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bDD[^a-z+]|(?<!e)ac3"
+ }
+ },
+ {
+ "name": "Not Dolby Digital Plus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^-]dd[p+]|eac3"
+ }
+ },
+ {
+ "name": "Not TrueHD/ATMOS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "TrueHD|\\bATMOS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not DTS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bDTS(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not FLAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bFLAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not AAC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bAAC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not PCM",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(l?)PCM(\\b|\\d)"
+ }
+ }
+ ]
+}
+
++Description placeholder
+
{
+ "trash_id": "6ba9033150e7896bdc9ec4b44f2b230f",
+ "name": "MP3",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "MP3",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "mp3"
+ }
+ }]
+}
+
++From Wikipedia, the free encyclopedia
+Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors.Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC
+
{
+ "trash_id": "a061e2e700f81932daf888599f8a8273",
+ "name": "Opus",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Opus",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bOPUS(\\b|\\d)"
+ }
+ }]
+}
+
{
+ "trash_id": "b124be9b146540f8e62f98fe32e49a2a",
+ "name": "1.0 Mono",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Mono",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]1[ .]0|\\bMono\\b|\\[PCM \\]"
+ }
+ },
+ {
+ "name": "Not Stereo",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9]2[ .]0|\\bStereo\\b"
+ }
+ },
+ {
+ "name": "Not 3.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]3[ .]0"
+ }
+ },
+ {
+ "name": "Not 4.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]4[ .]0"
+ }
+ },
+ {
+ "name": "Not High Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][5-9][ .][0-1]"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "89dac1be53d5268a7e10a19d3c896826",
+ "name": "2.0 Stereo",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Stereo",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9]2[ .]0|\\bStereo\\b"
+ }
+ },
+ {
+ "name": "Not 3.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]3[ .]0"
+ }
+ },
+ {
+ "name": "Not 4.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]4[ .]0"
+ }
+ },
+ {
+ "name": "Not High Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][5-9][ .][0-1]"
+ }
+ },
+ {
+ "name": "Not Mono",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]1[ .]0|\\bMono\\b|\\[PCM \\]"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "205125755c411c3b8622ca3175d27b37",
+ "name": "3.0 Sound",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "3.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]3[ .]0"
+ }
+ },
+ {
+ "name": "Not Mono",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]1[ .]0|\\bMono\\b|\\[PCM \\]"
+ }
+ },
+ {
+ "name": "Not Stereo",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9]2[ .]0|\\bStereo\\b"
+ }
+ },
+ {
+ "name": "Not 4.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]4[ .]0"
+ }
+ },
+ {
+ "name": "Not High Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][5-9][ .][0-1]"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "373b58bd188fc00c817bd8c7470ea285",
+ "name": "4.0 Sound",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "4.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]4[ .]0"
+ }
+ },
+ {
+ "name": "Not Mono",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]1[ .]0|\\bMono\\b|\\[PCM \\]"
+ }
+ },
+ {
+ "name": "Not Stereo",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9]2[ .]0|\\bStereo\\b"
+ }
+ },
+ {
+ "name": "Not 3.0ch",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]3[ .]0"
+ }
+ },
+ {
+ "name": "Not High Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][5-9][ .][0-1]"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "77ff61788dfe1097194fd8743d7b4524",
+ "name": "5.1 Surround",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "5.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]5[ .][0-1]"
+ }
+ },
+ {
+ "name": "Not 7.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][7-8][ .][0-1]"
+ }
+ },
+ {
+ "name": "Not 9.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]9[ .][0-1]"
+ }
+ },
+ {
+ "name": "Not Low Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9][1-4][ .][0-1]|\\b(Stereo|Mono)\\b"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "6fd7b090c3f7317502ab3b63cc7f51e3",
+ "name": "6.1 Surround",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "6.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]6[ .][0-1]"
+ }
+ },
+ {
+ "name": "Not 7.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][7-8][ .][0-1]"
+ }
+ },
+ {
+ "name": "Not 9.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]9[ .][0-1]"
+ }
+ },
+ {
+ "name": "Not Low Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9][1-4][ .][0-1]|\\b(Stereo|Mono)\\b"
+ }
+ },
+ {
+ "name": "Not 5.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]5[ .][0-1]"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "e77382bcfeba57cb83744c9c5449b401",
+ "name": "7.1 Surround",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "7.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][7-8][ .][0-1]"
+ }
+ },
+ {
+ "name": "Not 9.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]9[ .][0-1]"
+ }
+ },
+ {
+ "name": "Not Low Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9][1-4][ .][0-1]|\\b(Stereo|Mono)\\b"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "f2aacebe2c932337fe352fa6e42c1611",
+ "name": "9.1 Surround",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "9.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[^0-9]9[ .][0-1]"
+ }
+ },
+ {
+ "name": "Not 7.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][7-8][ .][0-1]"
+ }
+ },
+ {
+ "name": "Not 5.1 Surround",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "[^0-9][5-6][ .][0-1]"
+ }
+ },
+ {
+ "name": "Not Low Channel Count",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "(?<!repac)[^0-9][1-4][ .][0-1]|\\b(Stereo|Mono)\\b"
+ }
+ }
+ ]
+}
+
Dolby Vision = DoVi
+++Dolby Vision is a content mastering and delivery format similar to the HDR10 media profile.
+Dolby Vision is a proprietary, dynamic HDR format developed by Dolby Labs. By adjusting the picture on a scene-by-scene (and even frame-by-frame) basis, it lets you see more detail with better color accuracy. It is constantly making adjustments so that each image on the screen is optimized.
+
{
+ "trash_id": "5d96ce331b98e077abb8ceb60553aa16",
+ "trash_score": "1000",
+ "name": "DoVi",
+ "includeCustomFormatWhenRenaming": true,
+ "specifications": [
+ {
+ "name": "Dolby Vision",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(dv|dovi|dolby[ .]vision)\\b"
+ }
+ },
+ {
+ "name": "DoVi-SL: Dolby Vision (Single Layer)",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(sl[ .]dv|single[ .]layer[ .]dovi)\\b"
+ }
+ }
+ ]
+}
+
Score [295]
+Dolby Vision (Single Layer) = DoVi (SL)
+++Custom Format for Single Layer Dolby Vision releases.
+
Note
+This used to be the the preferred option for PLeX with a Shield 2019 model that supports DV.
+But now DV is part of the MKV spec and ExoPlayer added native support.
+{
+ "trash_id": "462c511637953269a9053d1ed1ffc3a5",
+ "trash_score": "950",
+ "name": "DoVi (SL)",
+ "includeCustomFormatWhenRenaming": true,
+ "specifications": [{
+ "name": "Dolby Vision (Single Layer)",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(sl[ .]dv|single[ .]layer[ .]dovi)\\b"
+ }
+ },
+ {
+ "name": "Remux",
+ "implementation": "QualityModifierSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": 5
+ }
+ }
+ ]
+}
+
++From Wikipedia, the free encyclopedia
+High-dynamic-range video (HDR video) is video having a dynamic range greater than that of standard-dynamic-range video (SDR video).HDR video involves capture, production, content/encoding, and display. HDR capture and displays are capable of brighter whites and deeper blacks. To accommodate this, HDR encoding standards allow for a higher maximum luminance and use at least a 10-bit dynamic range (color depth, compared to 8-bit for non-professional and 10-bit for professional SDR video) in order to maintain precision across this extended range.
+
{
+ "trash_id": "e61e28db95d22bedcadf030b8f156d96",
+ "trash_score": "850",
+ "name": "HDR",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "HDR",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bHDR(\\b|\\d)"
+ }
+ },
+ {
+ "name": "DoVi",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(dv|dovi|dolby[ .]vision)\\b"
+ }
+ }
+ ]
+}
+
++Some groups don't add HDR to their 4K release name so I suggest to add this Custom Format at the same score as you add one of your HDR Custom Formats.
+For now it's only FraMeSToR that doesn't add HDR to their release name but in the feature we can add more to it if needed.
+
{
+ "trash_id": "2a4d9069cc1fe3242ff9bdaebed239bb",
+ "trash_score": "850",
+ "name": "HDR (undefined)",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "Groups",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(FraMeSToR|HQMUX)\\b"
+ }
+ },
+ {
+ "name": "2160p",
+ "implementation": "ResolutionSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": 2160
+ }
+ },
+ {
+ "name": "HDR: HDR",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bHDR(\\b|\\d)"
+ }
+ },
+ {
+ "name": "DoVi: Dolby Vision",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(dv|dovi|dolby[ .]vision)\\b"
+ }
+ },
+ {
+ "name": "SDR: SDR",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\bSDR(\\b|\\d)"
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "e114f2f915fa2414b60683cd73c554f3",
+ "name": "10 Bit",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "10 Bit",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b10bit(\\b|\\d)"
+ }
+ }]
+}
+
++A hybrid release means any combination of sources (video + audio) and not a direct encode of a single source. Generally you can be sure that any hybrid that has been put together is the best quality release of a particular title.
+
{
+ "trash_id": "0f12c086e289cf966fa5948eac571f44",
+ "trash_score": "200",
+ "name": "Hybrid",
+ "includeCustomFormatWhenRenaming": true,
+ "specifications": [{
+ "name": "Hybrid",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bhybrid(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Hybrid Release Group",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "-HYBRID"
+ }
+ }
+ ]
+}
+
++From Wikipedia, the free encyclopedia
+For the software term, see Software remastering. +Remaster (also digital remastering and digitally remastered) refers to changing the quality of the sound or of the image, or both, of previously created recordings, either audiophonic, cinematic, or videographic.
+
{
+ "trash_id": "570bc9ebecd92723d2d21500f4be314c",
+ "trash_score": "190",
+ "name": "Remaster",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Remaster",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "Remaster"
+ }
+ },
+ {
+ "name": "Not 4K Remaster",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "4K"
+ }
+ }
+ ]
+}
+
++A remastered or mastered in 4K should give you usually the best picture and audio currently for the movie. Both are just names to describe the best possible currently for the movie.
+To be clear, the final digital films on the Mastered in 4K Blu-rays still only have the same 1920 x 1080 pixels of actual resolution as normal Blu-rays. But the argument goes that because these full HD files were derived from higher-resolution masters, their images will be more precise, with better colours, less noise, and enhanced sharpness and detail. Not least because the higher-resolution mastering process will provide more detail from the original print for the Blu-ray masters to draw on when going through their (hopefully…) frame-by-frame compression process.
+Another important element of the Mastered in 4K discs is that they’re all mastered with ‘x.v.YCC’ colour specification. This delivers an expanded colour range closer to that contained in original source material.
+
{
+ "trash_id": "eca37840c13c6ef2dd0262b141a5482f",
+ "trash_score": "190",
+ "name": "4K Remaster",
+ "includeCustomFormatWhenRenaming": true,
+ "specifications": [
+ {
+ "name": "Remaster",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "Remaster"
+ }
+ },
+ {
+ "name": "4K",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "4k"
+ }
+ },
+ {
+ "name": "Not 4K Resolution",
+ "implementation": "ResolutionSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 2160
+ }
+ }
+ ]
+}
+
++The Criterion Collection, Inc. (or simply Criterion) is an American home video distribution company which focuses on licensing "important classic and contemporary films" and selling them to film aficionados.Criterion has helped to standardize characteristics of home video such as film restoration, using the letterbox format for widescreen films, and adding bonus features and commentary tracks.
+
{
+ "trash_id": "e0c07d59beb37348e975a930d5e50319",
+ "trash_score": "170",
+ "name": "Criterion Collection",
+ "includeCustomFormatWhenRenaming": true,
+ "specifications": [{
+ "name": "Criterion",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "criterion"
+ }
+ },
+ {
+ "name": "CC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\bCC\\b"
+ }
+ }
+ ]
+}
+
++The Theatrical Cut is the version of the film that was shown at cinemas.
+
{
+ "trash_id": "e9001909a4c88013a359d0b9920d7bea",
+ "name": "Theatrical Cut",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Theatrical",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "Theatrical"
+ }
+ }]
+}
+
++Custom format for several Special Editions
++
+- The Director's Cut is the version edited by the Director, usually for additional home media releases.
+- An Extended Cut is usually any version of the film which is longer than the theatrical cut (though in very rare cases, its shorter).
+
{
+ "trash_id": "957d0f44b592285f26449575e8b1167e",
+ "trash_score": "180",
+ "name": "Special Edition",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Special Edition",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "(?<!^)\\b(extended|uncut|director|special|unrated|uncensored|cut|version|edition)(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Not Theatrical ",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "Theatrical"
+ }
+ }
+ ]
+}
+
++Description placeholder
+
{
+ "trash_id": "eecf3a857724171f968a66cb5719e152",
+ "trash_score": "190",
+ "name": "IMAX",
+ "includeCustomFormatWhenRenaming": true,
+ "specifications": [
+ {
+ "name": "IMAX",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bIMAX\\b"
+ }
+ }
+ ]
+}
+
++This is a custom format to help Radarr recognize & ignore BR-DISK (ISO's and Blu-ray folder structure) in addition to the standard BR-DISK quality.
+You will need to add the following to your new Custom Format when created in your Quality Profile (
+Setting
=>Profiles
) and then set the score to-1000
or even-10000
Note
+Depending on your renaming scheme it could happen that Radarr will match renamed files after they are downloaded and imported as BR-DISK
,
+This is a cosmetic annoyance till I come up for another way to solve this,
+being that this Custom Format is used to not download BR-DISK it does its purpose as intended.
+Several reasons why this is happening:
{
+ "trash_id": "ed38b889b31be83fda192888e2286d83",
+ "trash_score": "-10000",
+ "name": "BR-DISK",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "DOES NOT INCLUDE ANY OF THESE WORDS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "^(?!.*((?<!HD[._ -]|HD)DVD|BDRip|720p|MKV|XviD|WMV|d3g|REMUX|[xh][-_. ]?26[45]|German[-_. ]?DL)).*"
+ }
+ },
+ {
+ "name": "BUNCH OF COMBINATIONS",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "^(((?=.*(Blu[-_. ]?ray|HD[-_. ]?DVD)\\b)(?=.*\\b(AVC|HEVC|VC[-_. ]?1|MVC|MPEG[-_. ]?2|BDMV)\\b))|^((?=.*\\b(^((?=.*(COMPLETE|\\bDis[ck]\\b))(?=.*(Blu[-_. ]?ray|HD[-_. ]?DVD)))|3D[-_. ]?BD|BR[-_. ]?DISK|Full[-_. ]?Blu[-_. ]?ray|^((?=.*((BD|UHD)[-_. ]?(25|50|66)))(?=.*ISO)?))))).*"
+ }
+ }
+ ]
+}
+
++This group is often banned for the low quality Blu-ray releases, but their WEB-DL are okay.
+You will need to add the following to your new Custom Format when created in your Quality Profile (
+Setting
=>Profiles
) and then set the score to-1000
or even-10000
{
+ "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223",
+ "trash_score": "-10000",
+ "name": "EVO (no WEBDL)",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "EVO",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bEVO(TGX)?\\b"
+ }
+ },
+ {
+ "name": "WEBDL",
+ "implementation": "SourceSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 7
+ }
+ },
+ {
+ "name": "WEBRIP",
+ "implementation": "SourceSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 8
+ }
+ }
+ ]
+}
+
Low Quality Releases = LQ
+++A collection of known Low Quality groups that are often banned from the the top trackers because the lack of quality.
+
Note
+You might want to add the following also EVO (no WEBDL)
+{
+ "trash_id": "90a6f9a284dff5103f6346090e6280c8",
+ "trash_score": "-10000",
+ "name": "LQ",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "[BLOCK1]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\b(aXXo|CrEwSaDe|DNL|FaNGDiNG0|FRDS|HDTime|iPlanet|-KiNGDOM|Leffe|mHD|mSD|nHD|nikt0|nSD|NhaNc3|PRODJi|RDN|SANTi|STUTTERSHIT|WAF|x0r|YIFY|YTS)\\b"
+ }
+ },
+ {
+ "name": "[BLOCK2]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\b(aXXo|CrEwSaDe|DNL|FaNGDiNG0|FRDS|HDTime|iPlanet|-KiNGDOM|Leffe|mHD|mSD|nHD|nikt0|nSD|NhaNc3|PRODJi|RDN|SANTi|STUTTERSHIT|WAF|x0r|YIFY|YTS)\\b"
+ }
+ },
+ {
+ "name": "[BLOCK3]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\b(x0r|nikt0|FGT|d3g|MeGusta|YIFY|YTS|tigole|C4K|RARBG|4K4U)\\b"
+ }
+ },
+ {
+ "name": "[BLOCK4]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\b(-AROMA|aXXo|CrEwSaDe|d3g|DNL|FGT|FaNGDiNG0|FRDS|HDTime|iPlanet|-KiNGDOM|Leffe|MeGusta|mHD|mSD|nHD|nikt0|nSD|NhaNc3|PRODJi|RDN|SANTi|STUTTERSHIT|WAF|x0r|YIFY|YTS)\\b"
+ }
+ },
+ {
+ "name": "[BLOCK5]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\b(RARBG|FGT|STUTTERSHIT|LiGaS|-DDR|-Zeus|Tigole|TBS)\\b"
+ }
+ },
+ {
+ "name": "[BLOCK6]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\b(-beAst|CHD|HDWinG|MTeam|MySiLU|-WiKi)\\b"
+ }
+ },
+ {
+ "name": "RiffTrax",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\b(Rifftrax|RU4HD)\\b"
+ }
+ }
+ ]
+}
+
720/1080p no x265 = x265 (720/1080p)
+++This blocks/ignores 720/1080p releases that are encoded in x265
+You will need to add the following to your new Custom Format when created in your Quality Profile (
+Setting
=>Profiles
) and then set the score to-1000
or even-10000
Quote
+x265 is good for 4k stuff or 1080p if they used the the remuxes as source. +If the media isn't source quality/remux, then there will be a loss of quality every time. +Also, once you go x265, typically that file is done. +It can't be changed to something else without a huge loss of quality.
+Something like 95% of video files are x264 and have much better direct play support. +If you have more than a couple users, +you will notice much more transcoding. +Just depends on your priorities.
+So basically if you are storage poor and just need to save space, use x265. +The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes. +If you want maximum compatibility and the option to change your files to something else later, +then x264. +It's all really dependent on specific situations for different people
+It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it.
+That's why I created my own golden rule.
+{
+ "trash_id": "dc98083864ea246d05a42df0d05f81cc",
+ "trash_score": "-10000",
+ "name": "x265 (720/1080p)",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "720p",
+ "implementation": "ResolutionSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": 720
+ }
+ },
+ {
+ "name": "1080p",
+ "implementation": "ResolutionSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": 1080
+ }
+ },
+ {
+ "name": "x265/HEVC",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[xh][ .]?265|\\bHEVC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Quality Group Exceptions",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "-MZABI|-NCmt\\b"
+ }
+ }
+ ]
+}
+
++If you prefer or not prefer 3D.
+You can use Custom Format or use Restrictions (
+Settings
=>Indexers
=>Restrictions
) what ever you prefer.
{
+ "trash_id": "b8cd450cbfa689c0259a01d9e29ba3d6",
+ "trash_score": "-10000",
+ "name": "3D",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "3D",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b3d|sbs|half[ .-]ou|half[ .-]sbs\\b"
+ }
+ }]
+}
+
++Some indexers strip out the release group what could result in LQ groups getting a higher score. +For example a lot of EVO releases end up stripping the group name, so they appear as "upgrades", and they end up getting a decent score if other things match
+
Warning
+If you don't use a decent filenames like not adding release groups don't add this Custom Format, except if you want to upgrade them.
+{
+ "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5",
+ "trash_score": "-10000",
+ "name": "No-RlsGroup",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "No -RlsGroup",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "-[ ]?(?!(HD|MA|ES|X)\\b)\\w+?(\\.\\w{3})?$"
+ }
+ },
+ {
+ "name": "No Weird Groups",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": "\\b(Tigole|Joy|YIFY|YTS.MX|FreetheFish|afm72|Anna|Bandi|Ghost|Kappa|MONOLITH|Qman|RZeroX|SAMPA|Silence|theincognito|t3nzin|Vyndros|KRaLiMaRKo|E\\.N\\.D|PrimeHD|BluDragon|SumVision|FTW-HD)\\b"
+ }
+ }
+ ]
+}
+
++Optional (use these only if you dislike renamed and retagged releases)
+
{
+ "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2",
+ "trash_score": "-10000",
+ "name": "Obfuscated",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "Obfuscated",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(-4P|-4Planet|-AsRequested|-BUYMORE|-Chamele0n|-GEROV|-iNC0GNiTO|-NZBGeek|-Obfuscated|-postbot|-Rakuv|-Scrambled|-WhiteRev|-xpost|-WRTEAM|-CAPTCHA)\\b"
+ }
+ },
+ {
+ "name": "Retagged",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(\\[rartv\\]|\\[eztv\\]|\\[TGx\\])"
+ }
+ }
+ ]
+}
+
Dolby Vision = DoVi
+++This is a special Custom Format that ignores DV for WEB-DL but together with the normal DoVi allows for other sources.
+WEB-DL from Streaming Services don't have the fallback to HDR(10), What can results in weird playback issues like weird colors if you want to play it on a not DoVi compatible setup. +Remuxes and Bluray have a fallback to HDR(10).
+
{
+ "trash_id": "923b6abef9b17f937fab56cfcf89e1f1",
+ "trash_score": "-10000",
+ "name": "DoVi (WEBDL)",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "Dolby Vision",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(dv|dovi|dolby[ .]vision)\\b"
+ }
+ },
+ {
+ "name": "WEBDL",
+ "implementation": "SourceSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": 7
+ }
+ },
+ {
+ "name": "WEBRIP",
+ "implementation": "SourceSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": 8
+ }
+ }
+ ]
+}
+
HQ-Releases = HQ
+++A collection of P2P groups that are known for their high quality releases.
+
{
+ "trash_id": "1c7d7b04b15cc53ea61204bebbcc1ee2",
+ "trash_score": "1700",
+ "name": "HQ",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "[BLOCK1]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "-BMF|-decibeL|\\bD-Z0N3\\b|\\bFTW-HD\\b|-HiFi|-NCmt|-OISTiLe|-TDD|\\bZQ\\b"
+ }
+ },
+ {
+ "name": "[BLOCK2]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "-HiSD|-NTb|-ift|-geek|-tnp|-pter|-bbq"
+ }
+ },
+ {
+ "name": "[BLOCK3]",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "-CRiSC|-CtrlHD|-DON|\\b-EA\\b|-EbP|-LolHD|-SbR|-TayTo|-VietHD"
+ }
+ },
+ {
+ "name": "Not WEBDL",
+ "implementation": "SourceSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 7
+ }
+ },
+ {
+ "name": "Not WEBRIP",
+ "implementation": "SourceSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 8
+ }
+ },
+ {
+ "name": "Not REMUX",
+ "implementation": "QualityModifierSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 5
+ }
+ },
+ {
+ "name": "Not 2160p",
+ "implementation": "ResolutionSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 2160
+ }
+ }
+ ]
+}
+
Score [1]
+{
+ "trash_id": "e7718d7a3ce595f289bfee26adc178f5",
+ "trash_score": "1",
+ "name": "Repack/Proper",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Repack",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "Repack"
+ }
+ },
+ {
+ "name": "Proper",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "Proper"
+ }
+ },
+ {
+ "name": "Rerip",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "Rerip"
+ }
+ }
+ ]
+}
+
++Collection of Streaming Services
+
Attention
+This CF only prefers the known streaming services and doesn't work the same way like the release profile that can be used in Sonarr to include the streaming service name in your renaming scheme when using {[Custom Formats]}
!!!
+If you want to have this option then you need to add them all separate.
{
+ "trash_id": "fd7da02c647dd3f1b6757e150fffc5ff",
+ "name": "Streaming Services",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Amazon",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(amzn|amazon).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "Netflix",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(nf|netflix).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "AppleTV+",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(atvp).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "Disney+",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(dsnp|dsny|disney).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "DCU",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(dcu).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "HBO Max",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(hmax).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "HBO",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(hbo).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "Youtube Red",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(red).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "Quibi",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(qibi).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "iTunes",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(it).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "Hulu",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(hulu).?web.?(dl|rip)"
+ }
+ },
+ {
+ "name": "Peacock",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "(pcok|peacock).?web.?(dl|rip)"
+ }
+ }
+ ]
+}
+
++x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format, and is released under the terms of the GNU GPL.
+
If you want maximum compatibility and have much better direct play support then use x264 for 720p/1080p
+{
+ "trash_id": "2899d84dc9372de3408e6d8cc18e9666",
+ "name": "x264",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "x264",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[xh][ .]?264|\\bAVC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Remux",
+ "implementation": "QualityModifierSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 5
+ }
+ }
+ ]
+}
+
++x265 is a free software library and application for encoding video streams into the H.265/MPEG-H HEVC compression format, and is released under the terms of the GNU GPL.
+
Quote
+x265 is good for 4k stuff or 1080p if they used the the remuxes as source. +If the media isn't source quality/remux, then there will be a loss of quality every time. +Also, once you go x265, typically that file is done. +It can't be changed to something else without a huge loss of quality.
+Something like 95% of video files are x264 and have much better direct play support. +If you have more than a couple users, +you will notice much more transcoding. +Just depends on your priorities.
+So basically if you are storage poor and just need to save space, use x265. +The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes. +If you want maximum compatibility and the option to change your files to something else later, +then x264. +It's all really dependent on specific situations for different people
+It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it.
+That's why I created my own golden rule.
+{
+ "trash_id": "9170d55c319f4fe40da8711ba9d8050d",
+ "name": "x265",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "x265",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "[xh][ .]?265|\\bHEVC(\\b|\\d)"
+ }
+ },
+ {
+ "name": "Remux",
+ "implementation": "QualityModifierSpecification",
+ "negate": true,
+ "required": true,
+ "fields": {
+ "value": 5
+ }
+ }
+ ]
+}
+
++Sometimes, torrent sites set a torrent to be freeleech. This means, that the download of this torrent will not count towards your download quota or ratio. This is really useful, if you do not have the best ratio yet.
+
Attention
+Keep in mind not all trackers support this option.
+{
+ "trash_id": "0d91270a7255a1e388fa85e959f359d8",
+ "trash_score": "5",
+ "name": "FreeLeech",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "FreeLeech",
+ "implementation": "IndexerFlagSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": 1
+ }
+ }]
+}
+
++If you prefer movies with also a Dutch audio track.
+
{
+ "trash_id": "9de657fd3d327ecf144ec73dfe3a3e9a",
+ "name": "Dutch Groups",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Dutch Groups",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "-CyTSuNee|-SHiTSoNy|-QoQ"
+ }
+ }]
+}
+
{
+ "trash_id": "4a3b087eea2ce012fcc1ce319259a3be",
+ "name": "Anime Dual Audio",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "Dual Audio",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "dual.?audio"
+ }
+ },
+ {
+ "name": "BluDragon",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "bludragon"
+ }
+ },
+ {
+ "name": "EN+JA",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "EN\\+JA|JA\\+EN"
+ }
+ },
+ {
+ "name": "ZR",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": "\\bZR\\b"
+ }
+ },
+ {
+ "name": "Japanese Language",
+ "implementation": "LanguageSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": 8
+ }
+ }
+ ]
+}
+
{
+ "trash_id": "ff86c4326018682f817830ced463332b",
+ "name": "MPEG2",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "MPEG2",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "MPEG[-.]?2"
+ }
+ }]
+}
+
{
+ "trash_id": "4b900e171accbfb172729b63323ea8ca",
+ "name": "Multi",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [{
+ "name": "Multi",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\bMulti(\\b|\\d)"
+ }
+ }]
+}
+
++A personal collection of P2P WEB-DL groups that are known for their high quality releases.
+
{
+ "trash_id": "26fa26253af4001701fedb56cec376dc",
+ "trash_score": "1700",
+ "name": "HQ-WEBDL",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "P2P Groups",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(-TOMMY|-BLUTONiUM|-NTG|-TEPES|-KiNGS|-NTb|-CMRG|AJP69|-PHOENiX|-monkee|-MZABI|ROCCaT|FLUX|NOSiViD)\\b"
+ }
+ },
+ {
+ "name": "WEBDL",
+ "implementation": "SourceSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": 7
+ }
+ },
+ {
+ "name": "WEBRIP",
+ "implementation": "SourceSpecification",
+ "negate": false,
+ "required": false,
+ "fields": {
+ "value": 8
+ }
+ }
+ ]
+}
+
++A personal collection of P2P Remux groups that are known for their high quality releases.
+
{
+ "trash_id": "403f3f6266b90439cacc1e07cae4dc2d",
+ "trash_score": "1700",
+ "name": "HQ-Remux",
+ "includeCustomFormatWhenRenaming": false,
+ "specifications": [
+ {
+ "name": "Remux Groups",
+ "implementation": "ReleaseTitleSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": "\\b(FraMeSToR|EPSiLON|KRaLiMaRKo|PmP|BLURANiUM|SiCFoI|SURFINBIRD|HiFi|iFT)\\b"
+ }
+ },
+ {
+ "name": "REMUX",
+ "implementation": "QualityModifierSpecification",
+ "negate": false,
+ "required": true,
+ "fields": {
+ "value": 5
+ }
+ }
+ ]
+}
+
Here I will show various ways how you can update your Custom Formats with any changes from the Guide or provided to you from other sources, without loosing the scoring in your Quality Profile.
+Starting from v4.0.0.5653 Radarr now supports Import to update existing Custom Formats.
+The manual way is almost the same as the import Custom Format way.
+In Radarr
+Settings
=> Custom Formats
Open the custom Format you want to update.
+ +In the empty Custom Format JSON
box (1) you just paste the JSON
what you got from the Custom Format Collection or provided to you from other sources followed by the Import
button (2).
What you see in the red box is a example txt that you don't and can't remove!
+ +After selecting the Import
button you will get a screen that has all the Custom Formats variables filled in correctly,
+all you need to do now is click on the Save
button and you're done.
Attention
+The Import to update existing Custom Formats replaces the existing Custom Format, so all manual changes you did to it will be lost
+It's possible with Notifiarr (Patron feature)
+After setup it's fully automated and will check every X minutes for updates to the Custom Formats or Sonarr Release Profile and will update it to your Radarr or Sonarr (Multiple Client Support).
+ +It's possible with trash-updater
+Automatically mirror TRaSH guides to your Sonarr/Radarr instance based on your setup scheduler.
+ +Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Here I will try to explain how you can import Custom Formats for Radarr v3.
+Attention
+Keep in mind Custom Formats are made to fine tune your Quality Profile
+Quality Profile trumps Custom Formats
+More info HERE
+In this example i will use the BR-DISK Custom Format the one most people don't want to download anyway and if you do then you probably don't use Radarr or Plex being both don't support it.
+Visit the Collection of Custom Formats and from the Table select BR-DISK
+After you selected it you expand the JSON
+Then you select the Copy/Paste icon on the top far right
+In Radarr
+Settings
=> Custom Formats
Then click on the to add a new Custom Format.
+Followed by the Import
in the lower left.
In the empty Custom Format JSON
box (1) you just paste the JSON
what you got from the Custom Format Collection followed by the Import
button (2).
What you see in the red box is a example txt that you don't and can't remove!
+ +After selecting the Import
button you will get a screen that has all the Custom Formats variables filled in correctly,
+all you need to do now is click on the Save
button and you're done.
Tip
+Now Start adding other Custom Formats wisely, Don't add all the available Custom Formats !!!
+Personally I would only add the Custom Formats that do what you actually prefer especially in the beginning, including the Releases you should avoid
+Check out the How to setup Custom Formats where I will try to explain how to make the most use of custom formats and show some personal examples that I'm using. That you can use to get a idea how to setup yours.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Often on the Radarr Discord people ask what's the recommended/best way to +name your files. First off it's personal preference, but it's often recommended +to add non-recoverable info.
+Why?
+If, for what ever reason, you ever need to do a re-install or re-import in +Radarr or Plex/Emby/JellyFin it's nice to have all that info in the filename so +it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc.
+The Tokens not available in the release won't be used/shown.
+This naming scheme is made to be compatible with the New Plex Agent that now support IMDB and TMDB IDs in file names, if you don't need it or want it just remove [imdb-{ImdbId}]
{Movie CleanTitle} {(Release Year)} {Edition Tags} [imdb-{ImdbId}]{[Custom Formats]}{[Quality Full]}{[MediaInfo 3D]}{[MediaInfo VideoDynamicRange]}[{Mediainfo VideoBitDepth}bit][{Mediainfo VideoCodec}]{[Mediainfo AudioCodec}{ Mediainfo AudioChannels}]{-Release Group}
+
RESULT:
+The Movie Title (2010) Ultimate Extended Edition [imdb-tt0066921][Surround Sound x264][Bluray-1080p Proper][3D][HDR][10bit][x264][DTS 5.1]-EVOLVE
If you do Anime you might consider to add the {MediaInfo AudioLanguages}
token to your naming scheme.
{Movie CleanTitle} {(Release Year)} {Edition Tags} [imdb-{ImdbId}]{[Custom Formats]}{[Quality Full]}{[MediaInfo 3D]}{[MediaInfo VideoDynamicRange]}[{Mediainfo VideoBitDepth}bit][{Mediainfo VideoCodec}]{[Mediainfo AudioCodec}{ Mediainfo AudioChannels}]{MediaInfo AudioLanguages}{-Release Group}
+
This naming scheme is made to be compatible with the New Plex Agent that now support IMDB and TMDB IDs in file names, if you don't need it or want it just remove [imdb-{ImdbId}]
{Movie CleanTitle} {(Release Year)} [imdb-{ImdbId}]{[Quality Full]}{[MediaInfo AudioCodec}{ MediaInfo AudioChannels]}{[MediaInfo VideoDynamicRange]}{[MediaInfo VideoCodec]}{-Release Group}
+
RESULT:
+The Movie Title (2010) [imdb-tt0066921][Bluray-1080p Proper][DTS 5.1][HDR][x264]-EVOLVE
The officially supported format is {imdb-{ImdbId}}
but plex also support (imdb-{ImdbId})
or [imdb-{ImdbId}]
what you can read here, though the above should work for now. IMDb IDs are going to be very accurate and rarely change, but they may be missing for some movies added to Radarr. TMDB IDs, on the other hand, do change or are removed more frequently, but Radarr will always have this ID for each movie.
Want to keep the original release name that holds like all the info of the file then I suggest to use {Original Title}
over {Original Filename}
Why?
+The filename can be Obscured where the Release naming isn't especially when you use Usenet.
+{Original Title}
=> The.Movie.Title.2010.REMASTERED.1080p.BluRay.x264-GROUP
{Original Filename}
=> group-karatekid-1080p
or lchd-tkk1080p
or t1i0p3s7i8yuti
Please note that folder names are created (in the database) whenever the movie is added to Radarr, and it may be missing or incorrect at that time and your folder would have a blank ID !!!
+If you instead add it in the filename, the IMDb ID will be freshly pulled for any download or upgrade.
+Another potential negative of using it in the folder is that folder renames are complex, lengthy, and potentially destructive in Radarr compared to file renames.
+{Movie CleanTitle} ({Release Year})
+
RESULT:
+The Movie Title (2010)
Note
+Keep in mind adding anything more after the release year could give issues during a fresh import in to Radarr, but it helps for movies that have the same release name and year.
+Radarr does supports iMDb ID and TMDb ID in the folder name.
+Quote From a developer
+TMDb is usually better as it guarantees a match, imdb only gets matched if the TMDb entry has the correct imdb Id association. We don't actually talk to imdb
+Thanks:
+A big Thanks to fryfrog and rg9400 for the suggestions.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Seems that a lot of people don't understand how the remote path mapping works for Radarr. I will try to explain it with some screenshots and a short description.
+Remote Path Mapping acts as a dumb find Remote Path
and replace with Local Path
Note
+If you run dockers it would be smarter to fix the problem at the source what's causing the actual issue.
+Your download stays in your download client and Radarr doesn't want to import it.
+Go to Activity
=> Queue
You will see a orange download icon, hover with your mouse over it and you will get a error that looks a bit like this.
+ +Go to System
=> Events
You will see somewhere a error that looks a bit like this.
+ +The following error could also mean that you need remote path mapping
+ +So looking at these screenshot it seems you need to make use of Remote Path Mappings.
+Go to Settings
=> Download Clients
Scroll all the way down where you see Remote Path Mappings
and click on the right on the plus sign.
A screen will popup with the following options.
+ +Host
=> This is the hostname or IP you set in your download client settings.Remote Path
=> The download path that you've set in your download client.Local Path
=> The path Radarr needs to access the same path.To find what you need to put in your host
+Go to Settings
=> Download Clients
There you open up the download client for this example I will be using SABnzbd
+ +This is what you put in your Host in Remote Path Mapping.
+This could be a hostname
, container name
or a IP Address
To find what you need to put in your remote path you need to open up your download client and look what you've used there as download location.
+In SABnzbd go to settings
=> Folders
To find what you need to put in in your local path you need to know how Radarr is able to access the files your download client downloaded. And this can be done in different ways. Mounting/Network share what ever but Radarr needs to have local access to it so you need to figure this one out your self what's the best way for Radarr to access the download clients downloaded files.
+Click on the browse button and browse to the location where the files are accessible for Radarr.
+ +The final result will look something like this.
+ +After these changes the file should be able to be imported by Radarr.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +So what's the best way to setup the Custom Profiles and which one to use with which scores?
+There isn't a best scores setup, being that everyone has its own personal preference what they prefer Audio or Video or perhaps both.
+But being I still get a lot of questions about it I decided to create a Guide for it.
+Here I will try to explain with some personal used examples how to make the most use of Custom Formats. That you can use to get a idea how to setup yours.
+Important
+I also suggest to change the Propers and Repacks settings in Radarr !!!
+Instructions can be found HERE
+Note
+Custom formats are implemented within and have their impact controlled by Quality Profiles.
+First the basics where we going to explain where to setup the Custom Formats after you've added them, what we've explained in How to import Custom Formats. +And a short description what the settings means.
+Settings
=> Profiles
Then select the profile that you use/prefer.
+ +Radarr Custom Format can be set per profile and isn't global
+Minimum Custom Format Score
allowed to download. More Info0
means no upgrades will happen based on Custom Formats)In your chosen profile at the bottom you will see the added Custom Profiles where you can start setting up the scores.
+ +Attention
+Keep in mind Custom Formats are made to fine tune your Quality Profile
+Generally Quality Trumps All
+The current logic can be found HERE As of 1/19/2021 the logic is as follows
+My suggestion is to create tiers of scores based on what things matter to you.
+Personally I would only add the Custom Formats that do what you actually prefer especially in the beginning, including the Releases you should avoid
+Here I will show how to make the most use of Custom Formats and show some personal examples that I'm using. That you can use to get a idea how to setup yours.
+All these examples make use of the Collection of Custom Formats
+If you notice that some scores are missing between the different Quality Profiles examples it's because I decided to be consistent with the scoring. Meaning a certain Custom Format has in every used Quality Profile the same score.
+In my opinion this is a must for every Quality Profile you use, all these Custom Formats make sure you don't get Low Quality Releases.
+Info
+Add all of the following Custom Formats as -10000
Tip
+You might even can consider to add Multi if you want to make sure you don't grab releases with often foreign audio.
+Lets say you prefer HD audio (with object metadata)
+Then we would use the following order.
+Basic Dolby Digital (DD) < AAC < Basic DTS (DTS) < DTS-ES < Dolby Digital Plus (DD+) < DTS-HD HRA < PCM = FLAC < DTS-HD MA < TrueHD < DD+ ATMOS = ATMOS (undefined) < DTS X < TrueHD ATMOS
In this example above I have lossy Atmos over lossless DTS because the object metadata matters more to me over lossy vs lossless
+ +Lets say you prefer HDR metadata
+Then we would use the following order.
+HDR (undefined) = HDR < Dolby Vision
I didn't add Dolby Vision (Single Layer)
being most of the releases are already replaced by real Dolby Vision
releases, If you still want to add it put it between HDR
and Dolby Vision
so they still can get upgraded.
Also I didn't add 10 Bit
being 4k releases are 99% 10bit anyway.
If you prefer HQ Encodes (Bluray-720/1080/2160p)
+I suggest to first follow the Quality Settings (File Size) +If you think the sizes are to big to your preference then stop reading and see if the other tutorials are helpful for you.
+For this Quality Profile we're going to make use of Movie Versions
, Misc (-10000)
and Misc
Make sure you add the Releases you should avoid
+I decided not to add Audio Advanced
Custom Formats to the encodes profile being with encodes I prefer higher video quality, If I want also the HD audio formats I would go for the Remuxes.
The Custom Formats we're going to use and scoring.
+ +And you use the following main settings in your profile.
+ +Info
+Make sure you don't check the BR-DISK, The reason why I didn't select the WEB-DL 720p is because you will find hardly any releases that aren't done as 1080p WEB-DL
+The following workflow will be applied:
+So why such a ridiculous high Upgrade Until Custom
and not a score of 100
?
+Because I'm to lazy to calculate the maximum for every of my used Quality Profile and I want it to upgrade to the highest as possible anyway.
Info
+If you prefer 2160/4K encodes you might consider to enable HDR and set the Upgrade Until Quality
to Bluray-2160p
If you prefer 1080p Remuxes (Remux-1080p)
+I suggest to first follow the Quality Settings (File Size) +If you think the sizes are to big to your preference then stop reading and see if the other tutorials are helpful for you.
+For this Quality Profile we're going to make use of Audio Advanced
, Movie Versions
, Misc (-10000)
and Misc
Make sure you add the Releases you should avoid
+The Custom Formats we're going to use and scoring.
+ +And you use the following main settings in your profile.
+ +Info
+Make sure you don't check the BR-DISK, The reason why I didn't select the WEB-DL 720p is because you will find hardly any releases that aren't done as 1080p WEB-DL
+The following workflow will be applied:
+So why such a ridiculous high Upgrade Until Custom
and not a score of 500
?
+Because I'm to lazy to calculate the maximum for every of my used Quality Profile and I want it to upgrade to the highest as possible anyway.
If you prefer 2160p Remuxes (Remux-2160p)
+I suggest to first follow the Quality Settings (File Size) +If you think the sizes are to big to your preference then stop reading and see if the other tutorials are helpful for you.
+For this Quality Profile we're going to make use of Audio Advanced
, HDR Metadata
,Movie Versions
, Misc (-10000)
and Misc
Make sure you add the Releases you should avoid
+The Custom Formats we're going to use and scoring.
+ +And you use the following main settings in your profile.
+ +Info
+Make sure you don't check the BR-DISK.
+The following workflow will be applied:
+So why such a ridiculous high Upgrade Until Custom
and not a score of 500
?
+Because I'm to lazy to calculate the maximum for every of my used Quality Profile and I want it to upgrade to the highest as possible anyway.
I also suggest to change the Propers and Repacks settings in Radarr
+Media Management
=> File Management
to Do Not Prefer
and use the Repack/Proper Custom Format.
This way you make sure the Custom Formats preferences will be used and not ignored.
+For Custom Formats you really want to avoid, set it to something really low like -10000
and not something like -10
.
+Being when you add a Custom Format what you prefer and you set it to something like +10
it could happen that for example the BR-DISK
will be downloaded (-10)+(+10)=0 and if your Minimum Custom Format Score
is set at 0
.
All Custom Formats with a score of 0 are pure informational and don't do anything.
+Some people suggest not to use minus score for your Custom Formats and set this option to a higher score then 0.
+The reason why I don't prefer/use this is because you could limit your self when some new groups or what ever will be released.
+Also it makes it much more clear what you prefer and what you want to avoid.
+Personally I wouldn't add the audio channels Custom Formats being you could limit your self in the amount of releases you're able to get. Only use this if you got specific reasons that you need them.
+Using it with any kind of Remuxes Quality Profile is useless in my opinion being that 99% of all remuxes are multi audio anyway. and you can better score using the Audio Advanced
Custom Formats
If possible avoid using the x264/x265 Custom Format with a score, it's smarter to use the 720/1080p no x265 Custom Format.
+Something like 95% of video files are x264 and have much better direct play support. If you have more than a couple users, you will notice much more transcoding.
+Use x265 only for 4k releases and the 720/1080p no x265 makes sure you still can get the x265 releases.
+A big Thanks to rg9400 for providing me with info needed to create the Tips section.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +One of the coolest new features in Radarr v3 in my opinion.
+The option to add movies collection based on a movie you already got.
+So lets say you add a movie like Pirates of the Caribbean: The Curse of the Black Pearl
and you actually want to have the other movies from the same collection.
Now you can let Radarr add them for you with just a few simple clicks
+First go to the movie where you want to add the collection from, and click on the collection
flag
After you clicked on it a new window/popup will appear with the following options.
+ +Warning
+Don't change the Collection Id else you will end up with the wrong collection !!!
+After clicking on Save
the movies from the lists will be added to Radarr and searched for.
And the added movies will show up in your movie overview
+ +If for any reason you need or want to edit your added list go to.
+Settings
=> Lists
Then search for you list you want to edit/remove
+ +Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +If you want to rename your current folders names for example to your new naming scheme or for any other reason. You can do this with this little magic trick.
+ +Go to you movie overview
+Movies
On the top click on Movie Editor
After activating it you select the movie(s) from where you want to have the folder(s) to be renamed.
+ +Root Folder
A new popup will be shown
+ +Select Yes, Move the files
Warning
+If you got a larger library, remote storage, cloud storage or your path structure isn't well planned that doesn't support instant moves then this process could take a while, make sure you don't interrupt this process if it does stop before completing, it could results in quite the mess.
+Then Magic
+ +As you can see the folder has been renamed to the correct year following your naming scheme.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +You downloaded a movie and it doesn't show up in your Activity in Radarr ?
+By enabling the following option it will Show items without a movie in the queue. This could include removed movies or anything else in Radarr's category.
+Go to your Activity
+Activity
Then on the top right click on Options
and a new window will popup and enable Show Unknown Movie Items
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +In this Guide I will try to explain how you can sync 2 Radarr/Sonarr with each other.
+I'm going to show 2 different options how you can setup your sync with 2 Radarr/Sonarr.
+I'm not going to explain how to set up 2 Radarr/Sonarr for your system, being it depends how you have it installed/running.
+For this you need to have prepared the following:
+Attention
+You can't use the same root (media library) folder for both Radarr's/Sonarr's
+Make sure you use 2 separate root folders in Radarr/Sonarr (movies-hd, movies-uhd, tv-hd, tv-uhd, etc)
+In this example I'm going to use 2 Radarr (The basics is the same for Sonarr).
+Radarr 1
= My main 4K/2160p (UHD) Radarr.Radarr 2
= My 1080p Radarr that I've setup for streaming optimized quality profile.1This option is best used if you want a 1:1 copy of your Radarr/Sonarr instances
+In Radarr 2
go to Settings
=> Lists
Click on the + to add a lists and select Radarr
Then you get a screen with the following options.
+ +Radarr 2
.Radarr 1
(Use local URL if they run on the same system).Radarr 1
.Radarr 1
you want to Sync with Radarr 2
.Radarr 1
.You don't need a separate download client for your 2 Radarr instances, this all can be done with 1 download client (2 if you prefer Usenet and Torrents).
+Settings
=> Download Clients
Select your preferred download client.
+ +Only thing you need to change/create is a separate Category
that you're going to use for Radarr 2
Attention
+This can't and shouldn't be the same category you use for Radarr 1
but a separate Category
.
You now only need to make use of Radarr 1
all movies your add to Radarr 1
will be synced to Radarr 2
at a scheduled time.
In this example I'm going to use 2 Sonarr (The basics is the same for Radarr).
+Sonarr 1
= My main 1080p WEB-DL Sonarr.Sonarr 2
= 4K/2160p (UHD) WEB-DL Sonarr.This option is best used if you only want to have a few TV shows (or a Movies if you use this option with Radarr) as 4K/2160p (UHD)
+In Sonarr 1
go to Settings
=> Profiles
And Clone your used profile and rename your profile from Profilename - Copy
to Profilename!
In Sonarr 2
go to Settings
=> Import Lists
Click on the + to add a lists and select Sonarr
Then you get a screen with the following options.
+ +Sonarr 2
.Sonarr 1
(Use local URL if they run on the same system).Sonarr 1
.Sonarr 1
that we're going to use to Sync with Sonarr 2
.Sonarr 1
.You don't need a separate download client for your 2 Radarr instances, this all can be done with 1 download client (2 if you prefer Usenet and Torrents).
+Settings
=> Download Clients
Select your preferred download client.
+ +Only thing you need to change/create is a separate Category
that you're going to use for Sonarr 2
Important
+This can't and shouldn't be the same category you use for Sonarr 1
but a separate Category
.
You now only need to make use of Sonarr 1
, When you got a TV Shows (or a Movie if you use this option with Radarr) that you also want as 4K/2160p (UHD) then you make sure you make use of the Cloned Quality Profile. And it will sync at a scheduled time.
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +If you're interested in the 1080p streaming optimized quality profile you can contact me on discord
+This is a special quality profile i created for people who are really interested in it
+This release profile is fine tuned when you want to run a 2nd Radarr for 1080p, and want minimum to none transcoding and smaller sizes for the second copy's
+Why choose this quality profile?
+Here you will find a collection of Radarr Guides I made.
+hotio/radarr:release
+
I often get the question what's the best Quality Settings to use, +Well it's actually personal preference so I will show you a recommended Quality Settings. +But before you continue to read, as with all my guides:
+If you don't care about quality then stop reading and see if the other tutorials are helpful for you.
+This Quality Settings has been created and tested with info I got from others, and release comparisons from different sources.
+I only do WEB-DL my self for TV shows because in my opinion WEB-DL is the sweet spot between Quality and Size and you often don't see big difference anyway for TV shows. (Except for shows like GOT, Vikings, etc)
+Q: Why do you only show starting from HDTV720p?
+A: With the big screens these days anything lower doesn't look watchable
+Q: Why do you have some sized set so high?
+A: You probably didn't read the bold text above, I also need to keep in mind usenet releases that are often bigger then torrent releases.
+Q: You noticed that some episodes don't grab because of these settings.
+A: If you notice that some episodes won't be grabbed because of these size settings you can provide me a proof with a screenshot and the error it shows you when you do a interactive search (non redacted except the indexer/tracker if you want to).
+Quality | +Minimum | +Maximum | +
---|---|---|
HDTV-720p | +10 | +67.5 | +
HDTV-1080p | +15 | +137.3 | +
WEBRip-720p | +10 | +137.3 | +
WEBDL-720p | +10 | +137.3 | +
Bluray-720p | +17.1 | +137.3 | +
WEBRip-1080p | +15 | +137.3 | +
WEBDL-1080p | +15 | +137.3 | +
Bluray-1080p | +50.4 | +227 | +
Bluray-1080p Remux | +69.1 | +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 | +
Quality | +Minimum | +Maximum | +
---|---|---|
HDTV-720p | +2.3 | +51.4 | +
HDTV-1080p | +2.3 | +100 | +
WEBRip-720p | +4.3 | +100 | +
WEBDL-720p | +4.3 | +51.4 | +
Bluray-720p | +4.3 | +102.2 | +
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 | +
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Note
+This Guide is Created and Maintained by Visorask/Visorak
+It's recommended to run 2 Sonarr's 1 for Anime and 1 for normal tv shows, or you can make use of tags.
+Being that release profiles are global without the use of a tag.
+Having tested most of these settings, they work pretty well but Anime is a fickle beast to toy with so be warned.
+If you have issues with sonarr picking up a bunch of:
+Then this script (linux based only) will delete these files and get rid of them and you don't have to worry about them cluttering up your Auto or Manual import process.
+#!/usr/bin/env bash
+
+# Set the following location to your completed download location for Anime.
+# Usually one of the following paths:
+# Dockers => /data/{usenet|torrents}/anime
+# Cloudbox => /mnt/local/downloads/nzbs/nzbget/completed/sonarranime
+location="/your/download/path/here"
+
+find $location -type f \( -iname "*op[0-9]*" -o -iname "*nced*" -o -iname "*ncop*" -o -iname "*music video*" \) -exec rm -rf {} \;
+
This script will be called through a custom connection in sonarr.
+/config/app/
or /appdata/sonarr/scripts
)location="/your/download/path/here"
and make sure it's in quotes.Settings
=> Connect
=> Click on the +
Symbol => and select Custom Script
On Grab
and On Import
.Now when you download or import any files the script will run and clear out those files that you most likely won't use and if you want them well this script isn't for you.
+Note
+There a few settings which make life a lot easier when tracking down and keeping certain information for your Anime and with tweaks to make it work better with HamaAgent for plex.
+For this I used the Sonarr Recommended naming scheme for Sonarr with only a small change for a formatting error to be fixed and the Series Folder Format
for easier matching.
Has all necessary information and a little extra if you needed to rebuild.
+{Series TitleYear} - S{season:00}E{episode:00} - {absolute:000} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRange]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}[{Mediainfo AudioCodec} { Mediainfo AudioChannels}]{MediaInfo AudioLanguages}{-Release Group}
+
Single Episode:
+The Series Title! (2010) - S01E01 - 001 - Episode Title 1 [AMZN WEBDL-1080p v2][HDR][10bit][x264][DTS 5.1][FLAC][JA]-RlsGrp
Multi Episode:
+The Series Title! (2010) - S01E01-E02-E03 - 001-002-003 - Episode Title [AMZN WEBDL-1080p v2][HDR][10bit][x264][DTS 5.1][FLAC][JA]-RlsGrp
Adding year back in with tvdb id allows matching to be correct. Thanks salty.
+{Series TitleTheYear} [tvdb-{TvdbId}]
+
RESULT:
+The Series Title! (2010) [tvdb-12345]
The only one real option to use in my opinion.
+Season {season:00}
+
RESULT:
+Season 01
Scene
+
RESULTS:
+ + +We need to add HDTV-1080p
and Bluray-1080p
into the same group as WEBDL-1080p
and WEBRip-1080p
so that it will download correctly and not upgrade past HDTV-1080P if Preferred Words does not allow it.
We need to add the Anime Categories to our indexers otherwise this all won't work very well.
+Settings -> Indexers
Anime
Anime Categories
.
+Anime
category.
+Add Indexer
modal.
+Note
+Check mark Include Preferred when Renaming
where applicable and add {Preferred Words}
to your renaming scheme else you could get a download loop issues!!!
Note
+We're going to make use of 2 separate release profiles.
+Add this to your Preferred with a score of [500]
+/(multi[ ._-]?audio)/i
+
Add this to your Preferred with a score of [0]. This is for renames only and why it is at 0. It is also added in the second profile. This one is to ensure that the preferred words get added.
+/(dual[ ._-]?audio)/i
+
Add this to your Preferred with a score of [100]/[-10000]
+If you would like it to be priority then set to 100. If you do not want uncensored set it to -10000. If you don't care either way just leave it out. The reasoning behind only 100 is so that it doesn't trump other release further up in the chain, this way it will trump maybe a couple release but not more. And -10000 to hopefully put it at the bottom of any tier list if you don't want it.
+/(uncut|unrated|uncensored|\b(AT[-_. ]?X)\b)/i
+
The reason most of these are added is due to their shitty quality or just in general are not as good as other stuff that is out there. This can be tweaked as needed. Let me know if you run into any issues here. You should be able to just copy paste these in one go. If there is a reason something shouldn't be here let me know and your logic and I will be open to adjusting.
+Important
+If you would like dub
releases then remove the last 2 lines and do not add them.
/(\[EMBER\]|-EMBER\b|DaddySubs)/i,
+/(BDMV|M2TS|\bSSA\b|\bVOSTFR\b|\bAbemaTV\b)/i,
+/(CuaP|PnPSubs|ICEBLUE|SLAX|U3-Web)/i,
+/(Raws-Maji|\bKRP\b|M@nI|Kanjouteki|PuyaSubs)/i,
+/\b(Beatrice|ohys|Kawaiika|neko|daddy)[ ._-]?(raws)\b/i,
+/\b(LowPower|Scryous)[ ._-]?(raws)\b/i,
+/\b(NS|AREY|BDMV|BDVD|BJX|DKB|DP|TnF)\b/i,
+/(Amb3r|DsunS|ExREN|\$tore-Chill)/i,
+/(\[Hatsuyuki\]|-Hatsuyuki\b|\[Hitoku\]|-Hitoki\b)/i,
+/(\[Foxtrot\]|-Foxtrot\b|HollowRoxas|\bMGD\b)/i,
+/(JacobSwaggedUp|KEKMASTERS|\[Mites\]|-Mites\b)/i,
+/(neoHEVC|Pantsu|\[Pao\]|-Pao\b|Plex Friendly)/i,
+/(Rando235|RandomRemux|Reaktor|RightShiftBy2)/i,
+/(\bSHFS\b|StrayGods|\bUQW\b|Yabai_Desu_Ne)/i,
+/(YakuboEncodes|\b(WtF[ ._-]?Anime)\b)/i,
+/((funi|eng(lish)?)_?dub|\bdub(bed)?\b)/i,
+/(Golumpa|torenter69|KamiFS|KaiDubs)/i
+
Note
+2 lines in one grouping is just there for readability purposes but achieves the same result and score.
+Add this to your Preferred with a score of [501]
+Note
+This is set to 501 so that it may jump 1 tier if need be but not more.
+/dual[ ._-]?audio|EN\+JA|JA\+EN/i
+
Important
+These next few are optional but they are here to move releases up over lower tiers of 1080/720p
or WEB-DL/Blu-Ray
. Will add another note like this to end the optional section.
Add this to your Preferred with a score of [100]
+Note
+We are adding this as 100 so that any unknown Blu-Ray
can jump tiers inside the Subs categories but not interfere with any tiers above.
/\b(?:(Blu-?Ray|BDMux|BD(?!$))|(B[DR]Rip))(?:\b|$|[ .])/ix
+
Add this to your Preferred with a score of [15]
+/\b(WEB[-_. ]?DL|WebHD|[. ]WEB[. ](?:[xh]26[45]|DDP?5[. ]1)|[. ](?-i:WEB)$|\d+0p(?:WEB-DLMux|\b\s\/\sWEB\s\/\s\b))/ix
+
Add this to your Preferred with a score of [10]
+/(Web-?Rip|WEBMux)/ix
+
Add this to your Preferred with a score of [5]
+/\b(?:(1080p|1920x1080|1440p|FHD|1080i|4kto1080p))\b/i
+
Important
+This is the end of the optional section.
+Add this to your Preferred with a score of [4000]
+BluRay-Remux / Dual-Audio / 1st Tier
+/(deanzel|\bZR\b|\bCTR\b|\bSCY\b|\bMK\b|TTGA)/i
+
/(\bShir\b|LostYears|BluDragon|KAWAiREMUX)/i
+
/(\bAC\b|ShadyCrab|Rasetsu|Raizel|Dragon-Releases)/i
+
/(\[Spark\]|-Spark\b|\bREVO\b|\bSRLS\b|ANThELIa)/i
+
/(\[Vanilla\]|-Vanilla\b|\bAP\b)/i
+
Add this to your Preferred with a score of [3750]
+BluRay / Dual-Audio / Special (Releases they have are in between below releases and remuxes above.)
+/(E[.-]N[.-]D)/i
+
Add this to your Preferred with a score of [3500]
+BluRay / Dual-Audio / 1st Tier
+/(\bHAiKU\b|Exiled-Destiny|\b(E-D)\b|Koten[ ._-]Gars)/i
+
/(\[GHOST\]|-GHOST\b|\[NPC\]|-NPC\b|\bCBM\b)/i
+
/(\bKH\b|\bCBT\b|\[naiyas\]|-naiyas\b|ShowY|Kametsu|\bPn8\b|Hark0N)/i
+
Add this to your Preferred with a score of [3000]
+BluRay / Dual-Audio / Scene|P2P Groups
+/(\bDHD\b|RedBlade|TENEIGHTY|WaLMaRT)/i
+
/(\bBMF\b|\[STRiFE\]|-STRiFE\b)/i
+
/(MKVULTRA|iAHD|ANiHLS)/i
+
Add this to your Preferred with a score of [2500]
+BluRay / Dual-Audio / 2ndd Tier
+/(\[YURASUKA\]|-YURASUKA\b|karios|Arukoru)/i
+
/(\bRH\b|\[Prof\]|-Prof\b)/i
+
Add this to your Preferred with a score of [2000]
+WebSource / Dual|Multi-Audio
+/(DragsterPS)/i
+
Add this to your Preferred with a score of [1500]
+WebSource / Dual-Audio
+/(xPearse|\bMCR\b|\bKS\b|KiyoshiStar)/i
+
Add this to your Preferred with a score of [1000]
+DVD / Dual-Audio
+/(\b(A-L)\b)/i
+
Add this to your Preferred with a score of [300]
+Subs with multi such as German, French , Spanish, Italian, Russian, Arabic, Portuguese and English
+/(Erai-raws|KAN3D2M)/i
+
Add this to your Preferred with a score of [250]
+Subs
+/(HorribleSubs|SubsPlease|SallySubs)/i
+
Add this to your Preferred with a score of [200]
+Subs 2nd Tier
+/(\[Mysteria\]|-Mysteria\b|Asenshi)/i
+
/(\[meta\]|-meta\b|BlueLobster)/i
+
Add this to your Preferred with a score of [150]
+Subs 3rd Tier
+/(\bGJM\b|kBaraka)/i
+
Add this to your Preferred with a score of [100]
+FanSubs 1st Tier
+/(\bCH\b|\bFFF\b|Licca|Soldado|SNSbu)/i
+
/(Coalgirls|BlurayDesuYo|DameDesuYo|\bPAS\b)/i
+
Add this to your Preferred with a score of [50]
+FanSubs 2nd Tier
+/(\[Orphan\]|-Orphan\b|\[Yabai\]|-Yabai\b|\bNii-sama\b)/i
+
/(\[Doki\]|-Doki\b|\[Chihiro\]|-Chihiro\b|Final8)/i
+
/(\[tenshi\]|-tenshi\b|SHiN-gx)/i
+
Add this to your Preferred with a score of [25]
+FanSubs 3rd Tier
+/(AkihitoSubs|\bASW\b|Commie)/i
+
Note
+These are extra parameters that can help and are not needed but are nice to have. They are set low mainly to supercede themselves and not interfere with other releases.
+Add this to your Preferred with a score of [1]
+Adds Hi10|Hi10p into a match. Prefers this over some erroneous matches.
+/(10.?bit|hi10p)/i
+
Add this to your Preferred with a score of [1]
+Adds version due to anime groups sometimes fixing issues with their releases.
+/\d(v2)\b/i
+
Add this to your Preferred with a score of [2]
+/\d(v3)\b/i
+
Add this to your Preferred with a score of [3]
+/\d(v4)\b/i
+
Note
+This section can be controversial but most of these releases are micro/mini encodes or crappy quality. I personally add them into the do not want section but I will leave them here with negative values so you can still grab them if all else fails.
+Add this to your Preferred with a score of [-10000]
+Sub-Par Releases 1st Tier (Re-encoded to crap or really small filesizes) (Little less worse than the rest)
+/(\[Judas\]|-Judas|\[Cleo\]|-Cleo)/i
+
/(AnimeRG|bonkai77|URANiME)/i
+
Add this to your Preferred with a score of [-15000]
+Sub-Par Releases 2nd Tier (Re-encoded to crap or really small filesizes) (Seperated onto separate lines for readability)
+/(\[Pixel\]|-Pixel\b\[EDGE\]|-EDGE\b|\[Ranger\]|-Ranger\b)/i
+
/(SpaceFish|DeadFish|\bDB\b|Man\.K|\bHR\b)/i
+
/(BakedFish|N[eo][wo]b[ ._-]?Subs|\bAnime[ .]Time\b)/i
+
/(AnimeKaizoku|\[Kaizoku\]|-Kaizoku\b|\bCBB\b|phazer11)/i
+
/(iPUNISHER|MiniTheatre|MiniFreeza|Mr\.Deadpool)/i
+
/(NemDiggers|Project-gxs|youshikibi)/i
+
/(\bMD\b|Pog42|mdcx)/i
+
/(A-Destiny|TOPKEK|\bUwU\b|DARKFLiX)/i
+
/(\[Maximus\]|-Maximus\b|\[224\]|-224\b)/i
+
/(\[Harunatsu\]|-Harunatsu\b)/i
+
/(\[Davinci\]|-Davinci\b)/i
+
/(\[Pixel\]|-Pixel\b\[EDGE\]|-EDGE\b|\[Ranger\]|-Ranger\b)/i,
+/(SpaceFish|DeadFish|\bDB\b|Man\.K|\bHR\b)/i,
+/(BakedFish|N[eo][wo]b[ ._-]?Subs|\bAnime Time\b)/i,
+/(AnimeKaizoku|Kaizoku|\bCBB\b|phazer11)/i,
+/(iPUNISHER|MiniTheatre|MiniFreeza|Mr\.Deadpool)/i,
+/(NemDiggers|Project-gxs|youshikibi)/i,
+/(\bMD\b|Pog42|mdcx)/i,
+/(A-Destiny|TOPKEK|\bUwU\b|DARKFLiX)/i,
+/(\[Maximus\]|-Maximus\b|\[224\]|-224\b)/i,
+/(\[Harunatsu\]|-Harunatsu\b)/i,
+/(\[Davinci\]|-Davinci\b)/i
+
When completed your Release Profiles should look like this:
+ +Most of my information and knowledge came from:
+Kaiser (Guidance on anime groups)
+rg9400 (Guidance on regex fixes, anime groups and general knowledge share.)
+Drazzilb (Guidance on regex fixes, anime groups and general knowledge share.)
+TRaSH (For allowing me to utilize his website for my guide and general knowledge share.)
+Thanks a bunch!!
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Sonarr V3 has a great feature called Release Profile. +With this option you can fine tune your preference.
+The Release profile that we're going to use for this example is mainly to prefer P2P releases over Scene releases, (Scene releases are still being downloaded but upgraded).
+If you don't care about quality then stop reading and see if the other tutorials are helpful for you.
+Q: Why do you only have a release profile for WEB-DL?
+A: I only do WEB-DL my self for TV shows because in my opinion WEB-DL is the sweet spot between Quality and Size and you often don't see big difference anyway for TV shows. (Except for shows like GOT, Vikings, etc)
+Q: Why do you prefer P2P groups over scene releases?
+A: Scene release always release in a rush to bring it out as fast as possible.
+So I noticed often that I got Repacks/Proper releases from them or from different groups and quality.
+P2P releases are a bit smarter and work sort of together by not doing the same release.
+Also I noticed that with some Scene releases the 5.1 audio was stripped out or converted to AAC audio.
+And in my opinion the P2P are of better quality.
+There's one scene group that does bring out quality releases -deflate/-inflate
.
Q: Why do I see that many Amazon WEB-DL's repacks/proper lately?
+A: A large portion of Amazon WEB-DLs in the last week have only had 192Kbps DD+5.1, because that's all Amazon made available initially. +The proper 640Kbps DD+5.1 audio might appear a few hours later or a few months, but when they get updated the episodes will be REPACKED.
+Q: Why did you remove all the scene groups?
+A: I decided to redo the Release Profile to make it easier for me and the end user to update/manage the Release Profile, I decided not to add the scene groups anymore (and also removing the current ones). Why ? Lately I noticed a lot of popup scene releases meaning we need to update often.
+With this it also means all scene and (yet) unknown groups will be getting a score of 0
and not -50
.
I will still keep a eye on them and add the Low Quality Groups to the -100
score and when I find a new P2P group I will add them, resulting in less updates and a more accurate upgrade.
First we're need to make sure a P2P release isn't being replaced by a Scene Repack/Proper release !
+ +Settings => Media Management
+Where we going to set it to Do not Prefer
Then we navigate in Sonarr to the Settings => Profiles
Then you will get a popup screen that will look like this:
+ +Must Contain
=> add words that the release name MUST HAVE!
Must Not Contain
=> add words that the release name MUST NOT HAVE OR IT WILL BE REJECTED!
Preferred
=> add words you prefer with a certain score what you prefer more or upgrade.
Include Preferred when Renaming
=> When you add {Preferred Words}
to your renaming scheme it will add this info.
Indexers
=> Specify what indexer the profile applies to.
Tags
=> create a tag so this is only used by shows that you give this tag or else it's global.
Note
+The Number between the [brackets] in the following release profiles are the scores the release name will get during a automatic and manual search and with the use of the scores some releases will be preferred over others and even upgraded.
+Important
+We're going to make use of 2 separate release profiles.
+Note
+Also check mark Include Preferred when Renaming
and add {Preferred Words}
to your renaming scheme when you get download loop issues!!!
What it does:
+When enabled the block with the Release Source (Streaming Service) in it are then added to the file name which fixes any loops due to Sonarr seeing a new NF rip when an AMZN rip is found. +Probably doesn’t happen if cutoff is met, but for anything that is unmet or any forced searches it results in a loop because NF is not in Sonarr’s copy so it upgrades, and loops.
+Enabling the include in preferred words for AMZN and adding that to the file name fixes that.
+Example of a naming scheme for series:
+Can be found HERE
+Add this to your Preferred (3)
with a score of [100]
/\b(amzn|amazon)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(atvp|aptv)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(hmax)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
Add this to your Preferred (3)
with a score of [95]
/\b(sho)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
Add this to your Preferred (3)
with a score of [90]
/\b(dsnp|dsny|disney)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(nf|netflix)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(qibi)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
Add this to your Preferred (3)
with a score of [85]
/\b(hulu)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(pcok)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
Add this to your Preferred (3)
with a score of [75]
/\b(dcu)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(hbo)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(red)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(it)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
/\b(pmtp)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
+
Caution
+Don't forget to click on SAVE
after you've added everything you want to the release profile
Attention
+These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
+Warning
+DO NOT Check mark Include Preferred when Renaming
Add this to your Must not contain (2)
/(?=(1080|720)).*((x|h)[ ._-]?265|hevc)/i
+
So why did I put /(?=(1080|720)).*((x|h)[ ._-]?265|hevc)/i
as Must Not Contain
and what does it do ?
It blocks/ignores 720/1080p releases that are encoded in x265, why ?
+Quote
+x265 is good for for 4k stuff or 1080p if they used the the remuxes as source. +If the media isn't source quality/remux, then there will be a loss of quality every time. +Also, once you go x265, typically that file is done. +It can't be changed to something else without a huge loss of quality.
+Something like 95% of video files are x264 and have much better direct play support. +If you have more than a couple users, +you will notice much more transcoding. +Just depends on your priorities.
+So basically if you are storage poor and just need to save space, use x265. +The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes. +If you want maximum compatibility and the option to change your files to something else later, +then x264. +It's all really dependent on specific situations for different people
+It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it.
+That's why I created my own golden rule.
+Add this to your Preferred (3)
with a score of [180]
+The reason why this one get's such a high score is because it's the only quality scene group that exist (till now) and scene groups don't add the Release Sources (Streaming Service) to their release name so they don't get the extra point of the release source regex.
/(-deflate|-inflate)\b/i
+
Add this to your Preferred (3)
with a score of [150]
/(-AJP69|-BTN|-CasStudio|-CtrlHD|-KiNGS)\b/i
+
/(-monkee|-NTb|-NTG|-QOQ|-RTN)\b/i
+
/(-TOMMY|-ViSUM|-T6D)\b/i
+
Add this to your Preferred (3)
with a score of [125]
/(-BTW|-Chotab|-CiT|-DEEP|-iJP|-iT00NZ)\b/i
+
/(-LAZY|-NYH|-SA89|-SIGMA|-TEPES|-TVSmash)\b/i
+
/(-SDCC|-iKA|-iJP|-Cinefeel|-SPiRiT|-FC)\b/i
+
/(-JETIX|-Coo7|-WELP|-KiMCHI|-BLUTONiUM)\b/i
+
/(-orbitron|-ETHiCS|-RTFM|-PSiG|-MZABI)\b/i
+
/(-ROCCaT|3cTWeB|playWEB|-FLUX|NOSiViD)\b/i
+
/(-KHN|NPMS|-END)\b/i
+
Add this to your Preferred (3)
with a score of [100]
/(-ViSiON)\b/i
+
Add this to your Preferred (3)
with a score of [12]
/(repack3)/i
+
Add this to your Preferred (3)
with a score of [11]
/(repack2)/i
+
Add this to your Preferred (3)
with a score of [10]
/\b(repack|proper)\b/i
+
Attention
+These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
+Add this to your Preferred (3)
with a score of [-100]
/(TBS|-BRiNK|-CHX|-XLF|-worldmkv|-GHOSTS)\b/i
+
/(-VIDEOHOLE|nhanc3)\b/i
+
Attention
+These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
+Note
+These options are optional and only needed if you got a certain use case for it.
+If you see certain optional options with a positive score and you actually don't want them just add them with a negative score !!!
+Add this to your Preferred (3)
with a score of [10]
/\bHDR(\b|\d)/i
+
Add this to your Preferred (3)
with a score of [-25]
/(\[rartv\]|\[rarbg\]|\[eztv\]|\[TGx\])/i
+
/(-4P|-4Planet|-AsRequested|-BUYMORE)\b/i
+
/(-Chamele0n|-GEROV|-iNC0GNiTO|-NZBGeek)\b/i
+
/(-Obfuscated|-postbot|-Rakuv|-Scrambled)\b/i
+
/(-WhiteRev|-xpost|-WRTEAM|-CAPTCHA)\b/i
+
Add this to your Preferred (3)
with a score of [-25]
/\s?\ben\b$/i
+
Add this to your Preferred (3)
with a score of [-25]
/(1-.+)$/i
+
This will upgrade also your already downloaded single episodes
+Add this to your Preferred (3)
with a score of [15]
/\bS\d+\b(?!E\d+\b)/i
+
When you see a error in Sonarr that looks somehow like the follow screenshot
+ +Then theirs only one way real way that always solves this issue.
+create a new release profile specific for .su that uses the Season regex as Must not contain (2)
Note
+Theirs a script for NZBGet that sometimes could help but it seems it doesn't always work. It also seems theirs a work around for SABnzbd but i can't confirm being i'm not using Sab.
+This is a RegEx that ignores DV for WEB-DL but allows for other sources. WEB-DL from Streaming Services don't have the fallback to HDR(10), What can results in weird playback issues like weird colors if you want to play it on a not DoVi compatible setup. Remuxes and Bluray have a fallback to HDR(10).
+Add this to your Must not contain (2)
/(?=.*\b(dv|dovi|dolby[ .]vision)\b)(?=.*(WEB[-_. ]?(DL|RIP)|\bWEB\b))/i
+
Seems plex ignores -scene
because it thinks they are extra's. SOURCE
Add this to your Must not contain (2)
/\b(-scene)\b/i
+
If you don't want to download so called scene releases.
+Add this to your Must not contain (2)
/([_. ]WEB[_. ]|\\bCAKES\\b|GGEZ|GGWP|GLHF)/i
+
Scores [-25] Retagged/Renames/Obfuscated releases.
+If you're getting often a error message like Has the same filesize as existing file
, you might need to consider to remove the [-25]
Scores [-100] Groups that mess with the audio or add another preferred language.
+Optional => We've tested it and it worked for what we've tested it on, if it will work in your situation we don't know.
+If you notice something wrong just contact me and we will try to fix it or remove it.
+The reason why I got multiple entry's with the same score is because the line will go out of the box and I don't like how that looks.
+When you've done it correctly it will look something like this.
+Attention
+These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
+And after you clicked on Save
it will look something like this:
This list is made by collecting information from Sonarr Discord Channel, and personal testing and a few others that helped.
+So I want to thank everyone who helped to make this list possible, for privacy reasons I decided not to add the names/nick of the persons.
+If you want to be mentioned please message me on discord, including a link for proof to what part you want to be credited.
+Info
+Keep in mind this list will be a constant work in progress because I will be updating it when it's needed.
+So best to set a notification for updates for this page.
+Or use one of the 2 automation tools.
+ +Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Often on the Sonarr Discord people ask what's the recommended/best way to +name your files. First off it's personal preference, but it's often recommended +to add non-recoverable info.
+Why?
+If, for whatever reason, you ever need to do a re-install or re-import in +Sonarr or Plex/Emby/JellyFin it's nice to have all that info in the filename so +it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc.
+The Tokens not available in the release won't be used/shown.
+++All the details
+
{Series TitleYear} - S{season:00}E{episode:00} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRange]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels]}{MediaInfo AudioLanguages}{-Release Group}
+
Single Episode:
+The Series Title! (2010) - S01E01 - Episode Title 1 [AMZN WEBDL-1080p Proper][HDR][10bit][x264][DTS 5.1]-RlsGrp
Multi Episode:
+The Series Title! (2010) - S01E01-E02-E03 - Episode Title [AMZN WEBDL-1080p Proper][HDR][10bit][x264][DTS 5.1]-RlsGrp
++Minimal details + the irreplaceable data
+
{Series Title} S{season:00}E{episode:00} {[Quality Title]}{[MediaInfo AudioCodec}{ MediaInfo AudioChannels]}{[MediaInfo VideoCodec]}{-Release Group}
+
Single Episode:
+The Series Title! S01E01 [HDTV-720p][DTS 5.1][x264]-RlsGrp
Multi Episode:
+The Series Title! S01E01-E02-E03 [HDTV-720p][DTS 5.1][x264]-RlsGrp
++All the details
+
{Series TitleYear} - {Air-Date} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRange]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels]}{MediaInfo AudioLanguages}{-Release Group}
+
The Series Title! (2010) - 2013-10-30 - Episode Title 1 [AMZN WEBDL-1080p Proper][HDR][10bit][x264][DTS 5.1]-RlsGrp
++Minimal details + the irreplaceable data
+
{Series Title} - {Air-Date} - {Episode CleanTitle} {[Quality Title]}{[MediaInfo AudioCodec}{ MediaInfo AudioChannels]}{[MediaInfo VideoCodec]}{-Release Group}
+
The Series Title! - 2013-10-30 - Episode Title 1 [HDTV-720p][DTS 5.1][x264]-RlsGrp
++All the details
+
{Series TitleYear} - S{season:00}E{episode:00} - {absolute:000} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRange]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}[{Mediainfo AudioCodec} { Mediainfo AudioChannels}]{MediaInfo AudioLanguages}{-Release Group}
+
Single Episode:
+The Series Title! (2010) - S01E01 - 001 - Episode Title 1 [iNTERNAL HDTV-720p v2][HDR][10bit][x264][DTS 5.1][JA]-RlsGrp
Multi Episode:
+The Series Title! (2010) - S01E01-E02-E03 - 001-002-003 - Episode Title [iNTERNAL HDTV-720p v2][HDR][10bit][x264][DTS 5.1][JA]-RlsGrp
++Minimal details + the irreplaceable data
+
{Series Title} - S{season:00}E{episode:00} - {absolute:000} - {[Quality Title]}[{Mediainfo AudioCodec} { Mediainfo AudioChannels}]{[MediaInfo VideoCodec]}{-Release Group}
+
Single Episode:
+The Series Title! - S01E01 - 001 - [HDTV-720p][DTS 5.1][x264]-RlsGrp
Multi Episode:
+The Series Title! - S01E01-E02-E03 - 001-002-003 - [HDTV-720p][DTS 5.1][x264]-RlsGrp
{Series TitleYear}
+
RESULT:
+The Series Title! (2010)
This naming scheme is made to be compatible with the New Plex TV Series Scanner that now support IMDB and TVDB IDs in file names.
+For Plex:
+{Series TitleYear} [imdb-{ImdbId}]
+
RESULT:
+The Series Title! (2010) [imdb-tt1520211]
Note
+The officially supported format is {imdb-{ImdbId}}
but plex should also support (imdb-{ImdbId})
or [imdb-{ImdbId}]
, though the above should work for now, It's actually not needed to add a ID to the folder or filename to use the New Plex TV Series Scanner.
For Jellyfin/Emby:
+{Series TitleYear} [imdbid-{ImdbId}]
+
RESULT:
+The Series Title! (2010) [imdbid-tt1520211]
Tip
+IMDb IDs are going to be very accurate and rarely change, TVDB/TMDB IDs, on the other hand, do change or are removed more frequently.
+For this there's only one real option to use in my opinion.
+Season {season:00}
+
RESULT:
+Season 01
Scene
+
RESULTS:
+ +Want to keep the original release name that holds like all the info of the file then I suggest to use {Original Title}
over {Original Filename}
Why?
+The filename can be Obscured where the Release naming isn't especially when you use Usenet.
+{Original Title}
=> The.Series.Title.S01E01.Episode.Title.1080p.AMZN.WEB-DL.DDP5.1.H.264-RlsGrp
{Original Filename}
=> show episode 1-1080p
or lchd-tkk1080p
or t1i0p3s7i8yuti
Thanks:
+A big Thanks to fryfrog, rg9400 and bakerboy448 for the suggestions.
+Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +Seems that a lot of people don't understand how the remote path mapping works for Sonarr. I will try to explain it with some screenshots and a short description.
+Remote Path Mapping acts as a dumb find Remote Path
and replace with Local Path
Note
+If you run dockers it would be smarter to fix the problem at the source what's causing the actual issue.
+If your download client is on another system then Sonarr then you probably need to make use of Remote Path Mappings.
+You will get a error that looks a little bit like the following screenshot.
+ +So looking at this screenshot it seems we need to make use of Remote Path Mappings
+First we navigate in Sonarr to the Settings => Download Clients
Tab.
At the bottom you choose Add new mapping
A screen will popup with the following options.
+ +Host
=> This is the hostname or IP you set in your download client settings.Remote Path
=> The download path that you've set in your download client.Local Path
=> The path Sonarr needs to access the same path.To find what you need to put in your host you navigate in Sonarr to the Settings => Download Clients Tab. +There you open up the download client for this example I will be using QBittorrent
+ +This is what you put in your Host in Remote Path Mapping.
+To find what you need to put in your remote path you need to open up your download client and look what you've used there as download location.
+In QBittorrent navigate to Tools => Options (or ALT+O) and navigate to the Download settings.
+ +This is what you add in your Remote Path in Remote Path Mapping.
+To find what you need to put in in your local path you need to know how Sonarr is able to access the files your download client downloaded. +And this can be done in different ways. +Mounting/Network share what ever but Sonarr needs to have local access to it so you need to figure this one out your self what's the best way for Sonarr to access the download clients downloaded files.
+The final result will look something like this.
+ +Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +In this Guide I will try to explain how you can sync 2 Radarr/Sonarr with each other.
+I'm going to show 2 different options how you can setup your sync with 2 Radarr/Sonarr.
+I'm not going to explain how to set up 2 Radarr/Sonarr for your system, being it depends how you have it installed/running.
+For this you need to have prepared the following:
+Attention
+You can't use the same root (media library) folder for both Radarr's/Sonarr's
+Make sure you use 2 separate root folders in Radarr/Sonarr (movies-hd, movies-uhd, tv-hd, tv-uhd, etc)
+In this example I'm going to use 2 Radarr (The basics is the same for Sonarr).
+Radarr 1
= My main 4K/2160p (UHD) Radarr.Radarr 2
= My 1080p Radarr that I've setup for streaming optimized quality profile.1This option is best used if you want a 1:1 copy of your Radarr/Sonarr instances
+In Radarr 2
go to Settings
=> Lists
Click on the + to add a lists and select Radarr
Then you get a screen with the following options.
+ +Radarr 2
.Radarr 1
(Use local URL if they run on the same system).Radarr 1
.Radarr 1
you want to Sync with Radarr 2
.Radarr 1
.You don't need a separate download client for your 2 Radarr instances, this all can be done with 1 download client (2 if you prefer Usenet and Torrents).
+Settings
=> Download Clients
Select your preferred download client.
+ +Only thing you need to change/create is a separate Category
that you're going to use for Radarr 2
Attention
+This can't and shouldn't be the same category you use for Radarr 1
but a separate Category
.
You now only need to make use of Radarr 1
all movies your add to Radarr 1
will be synced to Radarr 2
at a scheduled time.
In this example I'm going to use 2 Sonarr (The basics is the same for Radarr).
+Sonarr 1
= My main 1080p WEB-DL Sonarr.Sonarr 2
= 4K/2160p (UHD) WEB-DL Sonarr.This option is best used if you only want to have a few TV shows (or a Movies if you use this option with Radarr) as 4K/2160p (UHD)
+In Sonarr 1
go to Settings
=> Profiles
And Clone your used profile and rename your profile from Profilename - Copy
to Profilename!
In Sonarr 2
go to Settings
=> Import Lists
Click on the + to add a lists and select Sonarr
Then you get a screen with the following options.
+ +Sonarr 2
.Sonarr 1
(Use local URL if they run on the same system).Sonarr 1
.Sonarr 1
that we're going to use to Sync with Sonarr 2
.Sonarr 1
.You don't need a separate download client for your 2 Radarr instances, this all can be done with 1 download client (2 if you prefer Usenet and Torrents).
+Settings
=> Download Clients
Select your preferred download client.
+ +Only thing you need to change/create is a separate Category
that you're going to use for Sonarr 2
Important
+This can't and shouldn't be the same category you use for Sonarr 1
but a separate Category
.
You now only need to make use of Sonarr 1
, When you got a TV Shows (or a Movie if you use this option with Radarr) that you also want as 4K/2160p (UHD) then you make sure you make use of the Cloned Quality Profile. And it will sync at a scheduled time.
Questions or Suggestions?
+If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
+ +If you're interested in the 1080p streaming optimized quality profile you can contact me on discord
+This is a special quality profile i created for people who are really interested in it
+This release profile is fine tuned when you want to run a 2nd Radarr for 1080p, and want minimum to none transcoding and smaller sizes for the second copy's
+Why choose this quality profile?
+Here you will find a collection of Sonarr Guides I made.
+hotio/sonarr:release
+
\n {translation(\"search.result.term.missing\")}: {...missing}\n
\n }\n