diff --git a/Radarr/Tips/Sync-2-radarr-sonarr/index.html b/Radarr/Tips/Sync-2-radarr-sonarr/index.html index 0e7d9fcc3..b4cd2846f 100644 --- a/Radarr/Tips/Sync-2-radarr-sonarr/index.html +++ b/Radarr/Tips/Sync-2-radarr-sonarr/index.html @@ -3593,8 +3593,8 @@
In this guide I will try to explain how you can sync two (or more) Radarr/Sonarr instances with each other.
I'm going to show two different options on how you can setup your sync with two Radarr/Sonarr instances.
I'm not going to explain how to set up two Radarr/Sonarr instances for your system, being it depends on how you have it installed/running. Radarr Multiple Instance Information and Sonarr Multiple Instance Information
@@ -3706,17 +3706,12 @@You now only need to make use of Sonarr 1
. When you got a TV show (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.
In this guide I will try to explain how you can sync two (or more) Radarr/Sonarr instances with each other.
I'm going to show two different options on how you can setup your sync with two Radarr/Sonarr instances.
I'm not going to explain how to set up two Radarr/Sonarr instances for your system, being it depends on how you have it installed/running. Radarr Multiple Instance Information and Sonarr Multiple Instance Information
@@ -3707,17 +3707,12 @@You now only need to make use of Sonarr 1
. When you got a TV show (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.
TRaSH Guides, Guides that aren't trash.
Here you will find guides mainly for Sonarr/Radarr/Bazarr and everything related to it.
"},{"location":"#how-this-all-started","title":"How this all started","text":"When I started using Sonarr/Radarr, I noticed that it didn't grab the releases that I actually wanted, as I'm a bit picky about which releases and what quality I prefer. So I decided to fine tune it to try to get the releases & quality I preferred. On Discord, I also noticed that others run in to the same issue so I explained them how I managed to get it solved. Being that I had to explain it often, I decided to write it down and make it public so I could easily link it to someone when they needed it. After a while I also decided to create guides for frequently asked questions, and started to collect all kind of information gathered from various sources. I try to make my guides as easy as possible for everyone to understand, in my opinion pictures explain often more than just some text.
"},{"location":"#support","title":"Support","text":"If you have questions, suggestions, requests or want to contribute, click the chat badge to join the Discord Channel where you can ask your questions directly or use the following link to open an issue on GitHub. Feel free to create a PR if you want to.
"},{"location":"#disclaimer","title":"DISCLAIMER","text":"The information I use for the guides is information I have gathered from different sources like support forums, Reddit or Discord, provided by user input or from the development teams. I have tested most things myself and I have tried to see if I could tune them a bit more to my needs and sometimes even for others.
You use everything here at your own risk. I won't be responsible if something happens to your setup or collection!
"},{"location":"#special-thanks","title":"Special Thanks","text":"Here you will find several scripts you can use with Bazarr
"},{"location":"Bazarr/#stable-bazarr-branch-master","title":"Stable Bazarr Branch: master","text":"hotio/bazarr:latest\n
"},{"location":"Bazarr/#dev-bazarr-branch-development","title":"Dev = Bazarr Branch: development","text":"hotio/bazarr:nightly\n
"},{"location":"Bazarr/After-install-configuration/","title":"After Install Configuration","text":"After you've installed everything it's best to check all of your settings,
Warning
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.
"},{"location":"Bazarr/Setup-Guide/","title":"Setup Guide","text":"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.
"},{"location":"Bazarr/Setup-Guide/#sonarr","title":"Sonarr","text":"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 refers 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 subtitle 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 downloading 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 downloading of subtitles.
Options: Standard
, Anime
, Daily
Automatic downloading 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 than Bazarr or have a Synology and mix packages with Docker.)
Click on Add
and you will get an extra option
Warning
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 AN 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!!!
"},{"location":"Bazarr/Setup-Guide/#radarr","title":"Radarr","text":"Next we're going to setup Radarr.
Settings
=> Radarr
Click on Enabled
Enter the hostname or the IP address of the computer running your Radarr 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 refers 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 subtitle 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 downloading of subtitles. In Radarr you add a custom tag to a movie.
Automatic downloading 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 than Bazarr or have a Synology and mix packages with Docker.)
Click on Add
and you will get an extra option
Warning
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 AN 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!!!
"},{"location":"Bazarr/Setup-Guide/#languages","title":"Languages","text":"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.
"},{"location":"Bazarr/Setup-Guide/#default-settings","title":"Default Settings","text":"Automatically applied Languages Profiles
to Series and Movies added to Bazarr after enabling this option.
Don't forget to Save your settings !!!
"},{"location":"Bazarr/Setup-Guide/#providers","title":"Providers","text":"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!!!
"},{"location":"Bazarr/Setup-Guide/#subtitles","title":"Subtitles","text":"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/
"},{"location":"Bazarr/Setup-Guide/#performance-optimization","title":"Performance / Optimization","text":"Enable this option for automatic subtitles synchronization.
Don't forget to save your settings!!!
Now wait until Bazarr gets all the info needed from Sonarr/Radarr.
"},{"location":"Bazarr/Setup-Guide/#important","title":"IMPORTANT","text":"Tip
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.
"},{"location":"Bazarr/Tips/Bazarr-suggested-scoring/","title":"Suggested Scoring","text":"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.
"},{"location":"Bazarr/Tips/Bazarr-suggested-scoring/#radarr-subtitle-minimum-score","title":"Radarr Subtitle Minimum Score","text":"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.
"},{"location":"Bazarr/Tips/Bazarr-suggested-scoring/#synchronization-score-threshold","title":"Synchronization Score Threshold","text":"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.
Why not set the Synchronization Score to max? It's kinda useless to start with why would you want to try to sync perfectly matching subs in the first place ?
I personally noticed that when setting it to high 98-100 I would actually get subs that are like 1 second to slow/fast.\u00a0\u21a9\u21a9
Here you will find a collection of Scripts you can 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
"},{"location":"Bazarr/scripts/#2-to-3-language-code","title":"2 to 3 language code","text":"2 to 3 language code2to3_language_code.sh
Changes the 2 iso code to 3 iso code.
Script#!/bin/bash\n\nmv \"{{subtitles}}\" \"{{directory}}/{{episode_name}}.{{subtitles_language_code3}}.srt\"\n\nexit\n
"},{"location":"Downloaders/","title":"Download Clients","text":"Here you will find Guides for several Download Clients.
"},{"location":"Downloaders/#usenet-clients","title":"Usenet Clients","text":"NZBGet
NZBGet development has been officially abandoned by the developer
SABnzbd
"},{"location":"Downloaders/#torrent-clients","title":"Torrent Clients","text":"qBittorrent
Deluge
ruTorrent
"},{"location":"Downloaders/Deluge/","title":"Installing","text":""},{"location":"Downloaders/Deluge/#introduction","title":"Introduction","text":"Deluge is an open-source cross-platform torrent client written in Python. It has been around since 2006 and offers many features that, while niche, many consider to be critical to their setups.
"},{"location":"Downloaders/Deluge/#installation","title":"Installation","text":"Information sourced mostly from Deluge's Downloads Page
"},{"location":"Downloaders/Deluge/#windows","title":"Windows","text":"You can find the latest Windows installers here
Note
lt2.0
in the filename means the installer includes libtorrent 2.0.x instead of the older 1.2.x
Due to most default OS repositories being outdated, I recommend using Deluge's repositories to install the latest version.
Using apt-get
to install
sudo add-apt-repository ppa:deluge-team/stable\n sudo apt-get update\n sudo apt-get install deluge\n
Using pip3
to install (included in the Python package)
pip3 install deluge\n
Info
You can find this project's pip repo @ pypi.org/project/deluge/
Advanced
If you want to install deluged as a service, documentation can be found here
"},{"location":"Downloaders/Deluge/#docker-containers","title":"Docker Containers","text":"LinuxServer.io
BinHex
BinHex VPN
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.
"},{"location":"Downloaders/Deluge/Basic-Setup/","title":"Basic-Setup","text":"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
"},{"location":"Downloaders/Deluge/Basic-Setup/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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
, /data/usenet
, /data/torrents
/movies
=> /data/media/movies
/tv
=> /data/media/tv
Note
Settings that aren't covered means you can change them to your liking or just leave them on default.
"},{"location":"Downloaders/Deluge/Basic-Setup/#accessing-your-settings","title":"Accessing your settings","text":"Edit
=> Preferences
will bring up your option window once you have launched Deluge for the first time.
Once you are here, you can edit your download settings in the Downloads
section.
Download to
is where you want you want Deluge to download your media. If you want to move your files upon completion - check the box and enter a path for that option as well.
Copy (and delete upon removal) of the .torrent file upon completion.
Suggested: Personal preference
Pre-allocate disk space for the added torrents. This limits fragmentation and also makes sure if you use a cache drive or a feeder disk, that the space is available.
Suggested: Enabled
Warning
Do not set Pre-allocated disk space if you are using ZFS as your filesystem as ZFS does not support fallocate
ATTENTION
Your Download and Media Library should be **NEVER the same locations**
"},{"location":"Downloaders/Deluge/Basic-Setup/#bandwidth","title":"Bandwidth","text":"Here you can set your rate limits, meaning your maximum download/upload/connections.
Info
In Deluge, the value of -1
is used for \"infinity\" or \"unlimited\".
The best settings depend on many factors.
Suggested: For a home connection that you use with others it's best practice to set the upload/download rate to about 70-80% of your maximum upload/download speed.
These are the client-wide settings, they will apply to the total traffic of all torrents.
Tip
The only thing you NEED to place a limit on is half-open connections and connections per second.
For most high-speed broadband connections ~100-150 seems ideal. If you experience lag when initiating a download, try lowering these values.
"},{"location":"Downloaders/Deluge/Basic-Setup/#per-torrent-limits","title":"Per-Torrent Limits","text":"In addition to global limits, you can set limits per torrent.
Info
If you only wish to apply global limits, set all of these to -1
.
These settings are intended to manage your number of active seeds, downloads, and uploads.
Info
In Deluge, the value of -1
is used for \"infinity\" or \"unlimited\".
Unless you have a specific reason, Total
can be set to -1
. These are torrents seen as seeding by the tracker.
Seeding
is the number of active torrents uploading, and Downloading
is the number of concurrently downloading torrents.
I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced) to remove completed downloads. These sections are then not necessary.
"},{"location":"Downloaders/Deluge/Basic-Setup/#network","title":"Network","text":"This is where you will bind Deluge to a specific interface/address, specify port usage, and disable network protocols.
"},{"location":"Downloaders/Deluge/Basic-Setup/#incoming-port","title":"Incoming Port","text":"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.
Incoming Port
should be set to a specific port that you have opened/forwarded (if you are behind any NAT/Firewall/VPN.)
Warning
Default ports of 6880-6890 are not recommended.
Make sure you click Test Active Port
and get a \u2713 before moving on.
Suggested: Critical
Encryption should be enabled on both Incoming
and Outgoing
. The default Level
of Either
will accept both encrypted and standard connections.
Suggested: Level = Full Stream
You can configure your network protocols in this section. Depending on which type of tracker you use, some of these will be beneficial while on other trackers (private) it will put you at risk of being banned/disabled.
Warning
Please read this section carefully.
UPnP and NAT-PMP should be both disabled in your router, as well as in Deluge, as they can pose security risks.
Suggested: Disabled
Public trackers can benefit from having settings like DHT (Distributed Hash Table) and Peer Exchange (PEX) enabled. These protocols rely on sources besides the trackers to get peers. The following settings are recommended ONLY for public trackers.
Suggested: Recommended
Decent private trackers will use the \"private flag\" and ignore these settings by default. However, it is strongly recommended that you use the following settings if you use private trackers. Almost all private trackers have rules stating that you must disable DHT, PEX, and LSD/LPD (Local Peer Discovery). Failing to do so puts your account at risk of being disabled.
Suggested: Disabled
Finally, you will want to enable some plugins. There are plenty of plugins on the Deluge community forums to browse once you are familiar with the client, but for the time being, we will only be covering the WebUI
and Label
plugins to get started.
Tip
If you are familiar with the client and plugins you can find more information here
Info
If you are running a docker container, such as binhex's image, the WebUI
plugin may not need to be enabled. Instead, it may be configured in the container.
Once you have enabled the WebUI
plugin, it will appear in your Preferences
menu list, and you will need to enable the web interface and set the port you want the WebUI to listen on.
Info
The default WebUI password is deluge
and you can change that in preferences inside the WebUI once you access it through your browser.
Remember your password, we will need this later.
"},{"location":"Downloaders/Deluge/Basic-Setup/#label","title":"Label","text":"The Label
plugin will allow you to categorize/sort your torrents. You can assign one Label per torrent. Starr apps can also use Deluge's labels to help them keep track of downloads and imported torrents.
Labels are a valuable tool, if used properly, to keep your torrents managed and organized.
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.
"},{"location":"Downloaders/Deluge/Port-Forwarding/","title":"Port Forwarding","text":"The Network
section of Preferences
is where you will bind Deluge to a specific interface/address, and specify port usage.
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 forwarded.
Incoming Port
should be set to a specific port that you have opened/forwarded (if you are behind any NAT/Firewall/VPN.)
Warning
Default ports of 6880-6890 are not recommended.
Make sure you click Test Active Port
and get a \u2713 before moving on.
Suggested: Critical
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.
"},{"location":"Downloaders/Deluge/Using-Labels/","title":"Using Labels","text":""},{"location":"Downloaders/Deluge/Using-Labels/#labels","title":"Labels","text":"Info
Labels are the equivalent of categories for qBittorrent, and how you can manage and organize your torrents in groups. Starr apps can use labels in Deluge to keep track of downloads to monitor, rather than watching every torrent in your client.
"},{"location":"Downloaders/Deluge/Using-Labels/#managing-labels","title":"Managing Labels","text":"Once you have enabled the Label
plugin, you simply right-click anywhere in the area occupied by the label index on the pane on the left and you will be presented with a menu to add/remove/edit a label or its options.
Each label can be customized by selecting the label, right-clicking, and going to its Label Options
. Here you can specify the bandwidth settings, download location settings, and even seed goals.
Info
In Deluge, the value of -1
is used for \"infinity\" or \"unlimited\".
Below you see an example of the bandwidth options available for a specific label. These settings will be automatically applied as long as a torrent has this label.
If you want torrents to be moved upon completion to a specific folder, you can specify this in Folder Options
. The torrent WILL need to finish downloading while under the label for this to happen.
Info
Enabling a \"Move completed to\" for a label may require you to restart Deluge before it will take effect.
Rechecking torrents will not trigger the \"completion\" call.
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.
"},{"location":"Downloaders/Deluge/Tips/Plugins/","title":"Plugins","text":"Here you will find a list of included and available plugins that may be useful. These are not required but should be seen as ways to advance/customize your setup once you understand the client and its behaviors.
Info
All plugins are .egg files, these files will need to be placed inside your deluge config/data directory, inside the plugins
folder. If you are using a thin client, they will also need to be present on your local instance as well.
Tip
Links to the plugins below are directly to the latest versions available on Deluge's forums, see the original and subsequent posts for more information concerning the plugin's features and iterations.
"},{"location":"Downloaders/Deluge/Tips/Plugins/#autoadd","title":"AutoAdd","text":"Use this plugin as a \"Watch\" directory for .torrent files, you can customize the settings using the Edit
button for that specific directory (download directory, label, etc).
Place a .torrent file in a watched folder, and Deluge will add the torrent to your client. Make sure your directory is marked with a checkmark under Active
if you wish it to be monitored.
This plugin is used to continuously update the tracker when adding torrents from IRC (think autodl-irssi or autobrr) before they are registered.
See the forum thread for details below.
AddTorrentCheck
"},{"location":"Downloaders/Deluge/Tips/Plugins/#blocklist","title":"Blocklist","text":"This plugin has mixed reception, depending on the use case. For private trackers, it is generally recommended to keep it disabled. There is an argument that some benefits, in privacy/security, could be made for public trackers - however, reports of many false positives and actual TRACKERS being flagged/blocked have been reported.
Use at your own discretion.
"},{"location":"Downloaders/Deluge/Tips/Plugins/#execute","title":"Execute","text":"Execute will run a program or script upon reaching a specified event. It is recommended that after adding events, you restart Deluge.
Info
Checking or Rechecking a torrent will not trigger the \"Torrent Completed\" event, you will need to actually download the torrent to trigger this.
"},{"location":"Downloaders/Deluge/Tips/Plugins/#stats","title":"Stats","text":"Stats does exactly what it sounds like; provides you with statistics on torrent traffic. You can find the latest version on the forums, but depending on which version of Deluge you install an older version may be included.
Stats
"},{"location":"Downloaders/Deluge/Tips/Plugins/#yarss2","title":"YaRSS2","text":"YaRSS2 should be considered unsupported/abandoned at this point. This plugin will crash your client after a random amount of time.
There is not currently any active development on the project, as far as I'm aware.
There is currently no viable RSS support natively in Deluge.
"},{"location":"Downloaders/Deluge/Tips/Plugins/#autoremoveplus","title":"AutoRemovePlus","text":"This is one of the forks of the original AutoRemovePlus (also referred to as ARP) which will automatically remove torrents from your client:
Other forks, and the original plugin, can be found on the GitHub page.
AutoRemovePlus
"},{"location":"Downloaders/Deluge/Tips/Plugins/#ltconfig","title":"ltConfig","text":"If you need to set libtorrent settings to anything other than their defaults, this is the plugin for you. There are presets, but you can fine-tune the settings as you need as well.
Attention
There is a known bug when trying to enable settings in ltConfig, double-clicking will sometimes not \"check\" the option.
Simply click the option, then use the space bar to enable that checkbox.
Tips
If you want to seed over 1600 torrents, you will need this plugin. You will need to increase the active_tracker_limit.
If your tracker's SSL certificate has expired, you can disable validate_https_trackers to bypass validation.
See the forum thread for details below.
ltConfig
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.
"},{"location":"Downloaders/Deluge/Tips/Thin-Client/","title":"Thin Client","text":""},{"location":"Downloaders/Deluge/Tips/Thin-Client/#daemon","title":"Daemon","text":"If you are already running Deluge in daemon
or console
mode, or running via Docker, this is usually enabled by default. You will need to check your compose or core.conf for the \"daemon_port\" if you do not know it.
Tip
You can also access the daemon settings in Preferences
in the WebUI if you do not have access to the GTK/UI
You will need to have \"Allow Remote Connections\" enabled if you are not connecting to Deluge from localhost.
Info
If you do not have access to the WebUI, and are instead doing this by editing Deluge's core.conf
, you will need to change \"allow_remote\" to true.
Restart Deluge for the changes to take effect.
"},{"location":"Downloaders/Deluge/Tips/Thin-Client/#switching-to-thin-client","title":"Switching to Thin-Client","text":"Once your daemon is up and running, it's time to set up the client you'll be using to manage your daemon. This will usually be on a second computer, but if you wish to use Deluge with Thin-Client locally (to always seed in the background) that works as well.
Simply go to Edit
=> Preferences
and switch from Standalone
to Thin Client
Restart Deluge.
Info
You will still need to set the daemon to run at start-up.
"},{"location":"Downloaders/Deluge/Tips/Thin-Client/#connections-manager","title":"Connections Manager","text":"After switching to Thin Client
you will need to connect to your daemon. Go to Edit
=> Connections Manager
and click on Add
to add the daemon.
Attention
If you mistyped your password while adding the connection, it will prompt you to enter it. There is a bug that does not accept/save the correct password unless it is entered through the Add
/Edit
Menu.
If you mistype the password while you are adding the connection, go to Edit
on the connection and retype the password into the password field.
Warning
You can find your users and passwords for the daemon in the auth
file inside your appdata/config folder for Deluge.
You can add users in the Daemon
settings in preferences as well.
BE AWARE: These passwords are stored in PLAIN-TEXT in your auth
file.
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.
"},{"location":"Downloaders/Deluge/Tips/Unraid-Mover/","title":"unRAID Mover and Deluge","text":"When you make use of the unRAID cache drive for your /data/torrents
share, and the torrents in Deluge are still seeding, the mover can't move files since they are still in use.
Using the following instructions will allow you to move the files with the use of the Deluge JSON-RPC.
Workflow Rules
Warning
The screenshots below are only EXAMPLES to show you how it should look and where you need to place the data that you need to add. They are NOT always a 100% reflection of the actual data, and not always the actual values you need to add.
deluge-mover
script","text":"Download the following standalone Python script.
Thanks to zakary (Developer on cross-seed)
"},{"location":"Downloaders/Deluge/Tips/Unraid-Mover/#plugins","title":"Plugins","text":"Install the following Plugins.
(1) These need to be installed from NerdTools.
"},{"location":"Downloaders/Deluge/Tips/Unraid-Mover/#setup","title":"Setup","text":"After you install the needed Plugins
- it's time to configure everything.
requests
module","text":"deluge-mover.py
needs the requests Python module, so we need to make sure it's installed when your unRAID server starts, or when the Array is started the first time.
You can choose one of the following 3 options (select a tab) to install requests
.
With this option, we're going to install the requests
module when the Array is started the first time.
In your unRAID Dashboard, go to your Settings
tab and select User Scripts
in the User Utilities
section at the bottom.
At the bottom of the User Scripts
page select the ADD NEW SCRIPT
button.
A popup will appear asking you to name the script. For this example, we're going to use Install requests (deluge-mover)
and then click on OK
.
Click on the cogwheel of the new script in the list, and select Edit Script
.
Copy/Paste the following in the new window that opens, then click SAVE CHANGES
.
#!/bin/bash\npip3 install requests\n
Select in the schedule list when the script should run, and choose At First Array Start Only
.
Click on Apply
.
Finally, you will need to choose RUN IN BACKGROUND
or restart your unRAID server to install the requests
module.
With this option, we're going to create a Python virtual environment on our disk. We will use this to run and store dependencies (requests
) for this specific environment.
By doing this, we will only need to configure this once and it will be persistent after reboots (this differs from the previous steps).
First, you need to choose a location to start a new Python environment.
Info
In the next steps, you will be asked to choose a location to store the script, try to be consistent.
Suggestions:
/mnt/user/appdata/deluge/scripts/.venv
/mnt/user/data/scripts/.venv
Run the following command in unRAID's terminal in the directory you chose:
python3 -m venv --clear /mnt/user/data/scripts/.venv\n
We now need to enter this new environment and install our dependency (requests
) in it, run:
source /mnt/user/data/scripts/.venv/bin/activate\npip3 install requests\ndeactivate # to leave the environment\n
Info
Replace /mnt/user/data/scripts/.venv
with the path you have chosen.
With this option, we're going to install the requests
module when the unRAID server is started.
On your USB stick/key go to /boot/config
and open the go
file with your text editor (VSCode/Notepad++).
Copy/paste the following command
pip3 install requests\n
Restart your unRAID Server or run the above command from the terminal.
"},{"location":"Downloaders/Deluge/Tips/Unraid-Mover/#script","title":"Script","text":"Now, using your favorite text editor (VSCode/Notepad++) edit the script you downloaded at the beginning of the guide (HERE).
You only need to change a few options at the top of the script.
### CONFIGURATION VARIABLES ###\n\n# this webui will need to be the JSON-RPC endpoint\n# this ends with '/json'\ndeluge_webui = \"http://localhost:8112/json\"\ndeluge_password = \"deluged\"\n\n# this changes whether the actual cache drive is checked for\n# applicable files to pause/move before pausing.\n#\n# if this is false, it will pause all torrents in the age-range\n# instead of only torrents in that range that exist on the cache\ncheck_fs = False\n\n# if you are using the mover tuner and don't want to use it for\n# this script, set this to true\n#\n# if you do not use mover tuner, leave this as false\nuse_mover_old = False\n\n# this is the absolute host path to your cache drive's downloads\n# you only need this to be changed/set if using 'check_fs = True'\ncache_download_path = \"/mnt/cache/torrents/completed\"\n\n# the age range of days to look for relevant torrents to move\n# i dont recommend setting age_day_max to less than the schedule\n# you run the script on...\n#\n# if you run every 7 days, this should be at least 7 to prevent\n# files from being stuck on your cache forever\n#\n# 0 disables age_day_max\n# set both age vars to 0 to move everything on your cache drive\n\nage_day_min = 3\nage_day_max = 0\n
deluge_webui
=> The URL you use to access Deluge locally. (the \"
should remain)deluge_password
=> Your Deluge WebUI Password
. (the \"
should remain)check_fs
=> If set to True
, it will check for the file on the cache drive before pausing.use_mover_old
=> See below.
Mover Tuning
, you DO NOT have to make any changes.Mover Tuning
but DON'T want to use it for the script, change this to True
Mover Tuning
and DO want to use it for the script, you will not have to make any changes. However, for this option, inside the Mover Tuner
you will need to set Move Now button follows plugin filters
to Yes
and Disable Mover running on a schedule
to No
.cache_download_path
=> The location (host path) for your cache folder (if check_fs is True)
age_day_min
=> Set the minimum age (days) of the torrents that you wish to move.age_day_max
=> Set the maximum age (days) of the torrents that you wish to move.Place the script you just edited somewhere easy to access/remember.
Suggestions:
/mnt/user/appdata/deluge/scripts/deluge-mover.py
/mnt/user/data/scripts/deluge-mover.py
Set up the scheduler for when the mover should run.
In your unRAID Dashboard, go to your Settings
tab and select User Scripts
in the User Utilities
section at the bottom.
At the bottom of the User Scripts
page select the ADD NEW SCRIPT
button.
A popup will appear asking you to name the script. For this example, we're going to use deluge-mover
and then click on OK
.
Click on the cogwheel of the new script in the list.
Choose your method (select a tab) and copy/paste the script in the new window that opens, then click SAVE CHANGES
.
#!/bin/bash\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"Deluge Mover\" -d \"Deluge Mover starting @ `date +%H:%M:%S`.\"\n echo \"executing script to pause torrents and run mover.\"\n python3 /mnt/user/data/scripts/deluge-mover.py\n echo \"deluge-mover completed and resumed all paused torrents.\"\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"Deluge Mover\" -d \"Deluge Mover completed @ `date +%H:%M:%S`.\"\n
#!/bin/bash\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"Deluge Mover\" -d \"Deluge Mover starting @ `date +%H:%M:%S`.\"\n echo \"executing script to pause torrents and run mover.\"\n /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/deluge-mover.py\n echo \"deluge-mover completed and resumed all paused torrents.\"\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"Deluge Mover\" -d \"Deluge Mover completed @ `date +%H:%M:%S`.\"\n
Info
Replace /mnt/user/data/scripts/
in the script with the path you have chosen for the Python script.
Click the schedule dropdown to choose when the script should run. We want to select Custom
.
After changing to Custom
you will get an extra text field on the right where you can set your schedule (cron).
For this example, we're going to tell the script to run every day at 4 AM.
0 4 * * *
You can generate your scheduling 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.
"},{"location":"Downloaders/NZBGet/","title":"NZBGet","text":"NZBGet development has been officially abandoned by the developer
"},{"location":"Downloaders/NZBGet/Basic-Setup/","title":"NZBGet - Basic Setup","text":"NZBGet development has been officially abandoned by the developer
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
"},{"location":"Downloaders/NZBGet/Basic-Setup/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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
, /data/usenet
, /data/torrents
/movies
=> /data/media/movies
/tv
=> /data/media/tv
${MainDir}
Root directory for all tasks. ${AppDir}
Where NZBGet is installed. ${DestDir}
Destination directory for downloaded files."},{"location":"Downloaders/NZBGet/Basic-Setup/#paths","title":"PATHS","text":"I will only explain the so called most important paths.
Name DescriptionMainDir
/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)"},{"location":"Downloaders/NZBGet/Basic-Setup/#news-servers","title":"NEWS-SERVERS","text":"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 number of connections to reach your max download speed +1 connection. Retention
How long the articles are stored on the news server."},{"location":"Downloaders/NZBGet/Basic-Setup/#categories","title":"CATEGORIES","text":"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."},{"location":"Downloaders/NZBGet/Basic-Setup/#incoming-nzbs","title":"INCOMING NZBS","text":"Info
AppendCategoryDir
: Create subdirectory with category-name in destination-directory.
Warning
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
"},{"location":"Downloaders/NZBGet/Basic-Setup/#recommended-sonarrradarr-settings","title":"Recommended Sonarr/Radarr Settings","text":"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.
"},{"location":"Downloaders/NZBGet/Basic-Setup/#sonarr","title":"Sonarr","text":"SonarrSettings
=> 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.
"},{"location":"Downloaders/NZBGet/Paths-and-Categories/","title":"NZBGet - Paths and Categories","text":"NZBGet development has been officially abandoned by the developer
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.
"},{"location":"Downloaders/NZBGet/scripts/","title":"NzbGet Scripts","text":"NZBGet development has been officially abandoned by the developer
"},{"location":"Downloaders/NZBGet/scripts/#clean","title":"Clean","text":"Clean NZB nameClean.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).
Script#!/usr/bin/env python3\n#\n\n##############################################################################\n### NZBGET SCAN SCRIPT ###\n\n# Clean NZB name.\n#\n# Removes the following suffixes from NZB name:\n# NZBgeek / Obfuscated / BUYMORE / Scrambled.\n#\n# NOTE: This script requires Python to be installed on your system.\n\n### NZBGET SCAN SCRIPT ###\n##############################################################################\n\nfrom __future__ import print_function\nimport os, re, sys\n\n# Exit codes used by NZBGet\nPOSTPROCESS_SUCCESS=93\nPOSTPROCESS_ERROR=94\nPOSTPROCESS_SKIP=95\n\n# Check if the script is called from NZBGet 13.0 or later\nif not 'NZBOP_SCRIPTDIR' in os.environ:\n print('*** NZBGet post-processing script ***')\n print('This script is supposed to be called from NZBGet (13.0 or later).')\n sys.exit(POSTPROCESS_ERROR)\n\nif not 'NZBNP_NZBNAME' in os.environ:\n print('[WARN] Filename not found in environment')\n sys.exit(POSTPROCESS_ERROR)\n\nfwp = os.environ['NZBNP_NZBNAME']\nfwp = re.sub('(?i)-4P\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-4Planet\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-AsRequested\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-AsRequested-xpost\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-BUYMORE\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-Chamele0n\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-GEROV\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-iNC0GNiTO\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-NZBGeek\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-Obfuscated\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-postbot\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-Rakuv\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-Scrambled\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-WhiteRev\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-xpost\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)\\[eztv([ ._-]re)?\\]\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)\\[TGx\\]\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)\\[TGx\\]-xpost\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)\\[ettv\\]\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-WRTEAM\\.nzb$', '.nzb', fwp)\nfwp = re.sub('(?i)-CAPTCHA\\.nzb$', '.nzb', fwp)\nfwp = re.sub(r'(\\-[^-.\\n]*)(\\-.{4})?\\.nzb$', r'\\1.nzb', fwp)\nif fwp:\n print('[NZB] NZBNAME=', fwp, sep='')\n\nsys.exit(POSTPROCESS_SUCCESS)\n
"},{"location":"Downloaders/NZBGet/scripts/#hashrenamer","title":"HashRenamer","text":"Renames hashed media files to match the source NZB 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
Script#!/usr/bin/env python3\n#\n##############################################################################\n# Title: HashRenamer.py #\n# Author(s): l3uddz, desimaniac #\n# URL: https://github.com/l3uddz/nzbgetScripts #\n# Description: Renames hashed media files to match the source NZB. #\n# -- #\n# Part of the Cloudbox project: https://cloudbox.works #\n##############################################################################\n\n##############################################################################\n# Built on top of the NZBGet scripts template created by Clinton Hall #\n# (https://github.com/clinton-hall). #\n# Released under GNU General Public License v2.0 #\n##############################################################################\n\n\n##############################################################################\n### NZBGET POST-PROCESSING SCRIPT ###\n\n# Rename files with hashes for file name\n#\n# NOTE: This script requires Python to be installed on your system.\n#\n##############################################################################\n### NZBGET POST-PROCESSING SCRIPT ###\n##############################################################################\n\nimport os\nimport re\nimport shutil\nimport sys\n\n# NZBGet Exit Codes\nNZBGET_POSTPROCESS_PARCHECK = 92\nNZBGET_POSTPROCESS_SUCCESS = 93\nNZBGET_POSTPROCESS_ERROR = 94\nNZBGET_POSTPROCESS_NONE = 95\n\n\n############################################################\n# EXTENSION STUFF\n############################################################\n\ndef do_check():\n if 'NZBOP_SCRIPTDIR' not in os.environ:\n print(\"This script can only be called from NZBGet (11.0 or later).\")\n sys.exit(0)\n\n if os.environ['NZBOP_VERSION'][0:5] < '11.0':\n print(\"[ERROR] NZBGet Version %s is not supported. Please update NZBGet.\" % (str(os.environ['NZBOP_VERSION'])))\n sys.exit(0)\n\n print(\"Script triggered from NZBGet Version %s.\" % (str(os.environ['NZBOP_VERSION'])))\n\n status = 0\n if 'NZBPP_TOTALSTATUS' in os.environ:\n if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS':\n print(\"[ERROR] Download failed with status %s.\" % (os.environ['NZBPP_STATUS']))\n status = 1\n else:\n # Check par status\n if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4':\n print(\"[ERROR] Par-repair failed, setting status \\\"failed\\\".\")\n status = 1\n\n # Check unpack status\n if os.environ['NZBPP_UNPACKSTATUS'] == '1':\n print(\"[ERROR] Unpack failed, setting status \\\"failed\\\".\")\n status = 1\n\n if os.environ['NZBPP_UNPACKSTATUS'] == '0' and os.environ['NZBPP_PARSTATUS'] == '0':\n # Unpack was skipped due to nzb-file properties or due to errors during par-check\n\n if os.environ['NZBPP_HEALTH'] < 1000:\n print(\"[ERROR] Download health is compromised and Par-check/repair disabled or no .par2 files found. \" \\\n \"Setting status \\\"failed\\\".\")\n print(\"[ERROR] Please check your Par-check/repair settings for future downloads.\")\n status = 1\n\n else:\n print(\"[ERROR] Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is \" \\\n \"ok so handle as though download successful.\")\n print(\"[WARNING] Please check your Par-check/repair settings for future downloads.\")\n\n # Check if destination directory exists (important for reprocessing of history items)\n if not os.path.isdir(os.environ['NZBPP_DIRECTORY']):\n print(\"[ERROR] Nothing to post-process: destination directory\", os.environ[\n 'NZBPP_DIRECTORY'], \"doesn't exist. Setting status \\\"failed\\\".\")\n status = 1\n\n # All checks done, now launching the script.\n if status == 1:\n sys.exit(NZBGET_POSTPROCESS_NONE)\n\n\ndef get_file_name(path):\n try:\n file_name = os.path.basename(path)\n extensions = re.findall(r'\\.([^.]+)', file_name)\n ext = '.'.join(extensions)\n name = file_name.replace(\".%s\" % ext, '')\n return name, ext\n except Exception:\n pass\n return None\n\n\ndef is_file_hash(file_name):\n hash_regexp = [\n r'^[a-fA-F0-9]{40}$',\n r'^[a-fA-F0-9]{32}$',\n r'^[a-f0-9]{128}$',\n r'^[a-zA-Z0-9]{42}$'\n ]\n for hash in hash_regexp:\n if re.match(hash, file_name):\n return True\n return False\n\n\ndef find_files(folder, extension=None, depth=None):\n file_list = []\n start_count = folder.count(os.sep)\n for path, subdirs, files in os.walk(folder, topdown=True):\n for name in files:\n if depth and path.count(os.sep) - start_count >= depth:\n del subdirs[:]\n continue\n file = os.path.join(path, name)\n if not extension:\n file_list.append(file)\n else:\n if file.lower().endswith(extension.lower()):\n file_list.append(file)\n\n return sorted(file_list, key=lambda x: x.count(os.path.sep), reverse=True)\n\n\n############################################################\n# MAIN\n############################################################\n\n# do checks\ndo_check()\n\n# retrieve required variables\ndirectory = os.path.normpath(os.environ['NZBPP_DIRECTORY'])\nnzb_name = os.environ['NZBPP_NZBFILENAME']\nif nzb_name is None:\n print(\"[ERROR] Unable to retrieve NZBPP_NZBFILENAME\")\n sys.exit(NZBGET_POSTPROCESS_ERROR)\nnzb_name = nzb_name.replace('.nzb', '')\n\nprint((\"[INFO] Using \\\"%s\\\" for hashed filenames\" % nzb_name))\nprint((\"[INFO] Scanning \\\"%s\\\" for hashed filenames\" % directory))\n\n# scan for files\nfound_files = find_files(directory)\nif not found_files:\n print((\"[INFO] No files were found in \\\"%s\\\"\" % directory))\n sys.exit(NZBGET_POSTPROCESS_NONE)\nelse:\n print((\"[INFO] Found %d files to check for hashed filenames\" % len(found_files)))\n # loop files checking for file hash\n moved_files = 0\n for found_file_path in found_files:\n # set variable\n dir_name = os.path.dirname(found_file_path)\n file_name, file_ext = get_file_name(found_file_path)\n\n # is this a file hash\n if is_file_hash(file_name):\n new_file_path = os.path.join(dir_name, \"%s.%s\" % (nzb_name, file_ext))\n print((\"[INFO] Moving \\\"%s\\\" to \\\"%s\\\"\" % (found_file_path, new_file_path)))\n try:\n shutil.move(found_file_path, new_file_path)\n moved_files += 1\n except Exception:\n print((\"[ERROR] Failed moving \\\"%s\\\" to \\\"%s\\\"\" % (found_file_path, new_file_path)))\n\n print((\"[INFO] Finished processing \\\"%s\\\", moved %d files\" % (directory, moved_files)))\n\nsys.exit(NZBGET_POSTPROCESS_SUCCESS)\n
"},{"location":"Downloaders/NZBGet/scripts/#replace_for","title":"replace_for","text":"Replaces underscores with dots replace_for.py
Replaces underscores with dots in downloaded filename to prevent download loops with poorly named releases on some indexers (often HONE releases).
Install Instructions:
sudo chmod +x replace_for.py
Settings
=> Extension Scripts
replace_for.py
in the Extensions
setting.#!/usr/bin/env python3\n#\n\n##############################################################################\n### NZBGET POST-PROCESSING SCRIPT ###\n\n# Replace underscore with dot.\n#\n# Author: miker\n#\n#\n# Copy script to NZBGet's script folder.\n# Run sudo chmod +x replace_for.py\n#\n#\n# NOTE: This script requires Python to be installed on your system.\n\n### NZBGET POST-PROCESSING SCRIPT ###\n##############################################################################\n\nfrom __future__ import print_function\nimport os, re, sys\n\n# Exit codes used by NZBGet\nPOSTPROCESS_SUCCESS=93\nPOSTPROCESS_ERROR=94\nPOSTPROCESS_SKIP=95\n\n\ndirectory = os.environ['NZBPP_DIRECTORY']\nprint('Directory used is: ',directory)\n\nfor path, currentDirectory, files in os.walk(directory):\n for file in files:\n if file.find(\"_\") !=-1:\n dst = file.replace('_', '.')\n os.rename (os.path.join(path,file),os.path.join(path,dst) )\n print('Result: ',file,\" renamed to \",dst)\n\nsys.exit(POSTPROCESS_SUCCESS)\n
"},{"location":"Downloaders/NZBGet/scripts/#wtfnzb-renamer","title":"WtFnZb-Renamer","text":"Renames hashed media files to match the source NZB WtFnZb-Renamer.py
NZBGET SCAN SCRIPT
Extract filenames from subjects containing [PRiVATE]-[WtFnZb]
This extensions extracts obfuscated filenames from .nzb files
Script#!/usr/bin/env python3\n### NZBGET SCAN SCRIPT\n\n# Extract filenames from subjects containing [PRiVATE]-[WtFnZb]\n#\n# This extensions extracts obfuscated filenames from .nzb files\n# created by WtFnZb.\n#\n# Supported subject formats:\n#\n# - [PRiVATE]-[WtFnZb]-[filename]-[1/5] - \"\" yEnc 0 (1/1)\"\n#\n# - [PRiVATE]-[WtFnZb]-[5]-[1/filename] - \"\" yEnc\n#\n#\n# NOTE: Requires Python and lxml (sudo apt install python3-lxml python-lxml)\n#\n\n### NZBGET SCAN SCRIPT\n\nimport sys\nimport os\nimport re\n\n# Exit codes used by NZBGet\nPOSTPROCESS_SUCCESS = 93\nPOSTPROCESS_NONE = 95\nPOSTPROCESS_ERROR = 94\n\ntry:\n from lxml import etree\nexcept ImportError:\n print(u'[ERROR] Python lxml required. Please install with \"sudo apt install python-lxml\" or \"pip install lxml\".')\n sys.exit(POSTPROCESS_ERROR)\n\npatterns = (\n re.compile(r'^(?P<prefix>.*\\[PRiVATE\\]-\\[WtFnZb\\]-)'\n r'\\[(?P<total>\\d+)\\]-\\[(?P<segment>\\d+)\\/(?P<filename>.{3,}?)\\]'\n r'\\s+-\\s+\"\"\\s+yEnc\\s+',\n re.MULTILINE | re.UNICODE),\n re.compile(r'^(?P<prefix>.*\\[PRiVATE\\]-\\[WtFnZb\\]-)'\n r'\\[(?P<filename>.{3,}?)\\]-\\[(?P<segment>\\d+)/(?P<total>\\d+)\\]'\n r'\\s+-\\s+\"\"\\s+yEnc\\s+',\n re.MULTILINE | re.UNICODE))\n\nnzb_dir = os.getenv('NZBNP_DIRECTORY')\nnzb_filename = os.getenv('NZBNP_FILENAME')\nnzb_name = os.getenv('NZBNP_NZBNAME')\nnzb_file_naming = os.getenv('NZBOP_FILENAMING')\n\nif nzb_dir is None or nzb_filename is None or nzb_name is None:\n print('Please run as NZBGet plugin')\n sys.exit(POSTPROCESS_ERROR)\n\nif nzb_file_naming is not None and nzb_file_naming.lower() != 'nzb':\n print(u'[ERROR] NZBGet setting FileNaming (under Download Queue) '\n u'must be set to \"Nzb\" for this extension to work correctly, exiting.')\n sys.exit(POSTPROCESS_ERROR)\n\nif not os.path.exists(nzb_dir):\n print('[ERROR] NZB directory doesn\\'t exist, exiting')\n sys.exit(POSTPROCESS_ERROR)\n\nif not nzb_filename.lower().endswith('.nzb'):\n print(u'[ERROR] {} is not a .nzb file.'.format(nzb_filename))\n sys.exit(POSTPROCESS_ERROR)\n\nnzb = os.path.join(nzb_dir, nzb_filename)\nif not os.path.exists(nzb):\n print('[ERROR] {nzb} doesn\\'t exist, exiting'.format(nzb=nzb))\n sys.exit(POSTPROCESS_ERROR)\n\nwith open(nzb, mode='rb') as infile:\n tree = etree.parse(infile)\n\nchanged = False\nfile_count = 0\ntotals = set()\nfilenames = set()\n\nfor f in tree.getiterator('{http://www.newzbin.com/DTD/2003/nzb}file'):\n subject = f.get('subject')\n if subject is None:\n print(u'[DETAIL] No subject in <file>, skipping')\n continue\n file_count += 1\n result = [re.match(pattern, subject) for pattern in patterns]\n matched = [m for m in result if m is not None]\n if len(matched) == 0:\n print(u'[INFO] No pattern matching subject, exiting.')\n sys.exit(POSTPROCESS_NONE)\n elif len(matched) > 1:\n print(u'[ERROR] Multiple patterns matched, exiting.')\n sys.exit(POSTPROCESS_ERROR)\n else:\n match = matched[0].groupdict()\n\n if match['filename'].lower().endswith('.par2'):\n print(u'[INFO] par2 exists, exiting')\n sys.exit(POSTPROCESS_NONE)\n\n if int(match['segment']) > int(match['total']):\n print(u'[DETAIL] Segment index is greater then total, skipping')\n continue\n\n # NZBGet subject parsing changes when duplicate filenames are present\n # prefix duplicates to avoid that\n if match['filename'] in filenames:\n match['filename'] = u'{}.{}'.format(file_count, match['filename'])\n\n filenames.add(match['filename'])\n\n s = u'WtFnZb \"{filename}\" yEnc ({segment}/{total})'.format(\n filename = match['filename'],\n segment = match['segment'],\n total = match['total'])\n\n print(u'[INFO] New subject {subject}'.format(subject=s.encode('ascii', 'ignore')))\n f.set('subject', s)\n changed = True\n totals.add(int(match['total']))\n\nif not changed:\n print(u'[WARNING] No subject changed, exiting.')\n sys.exit(POSTPROCESS_NONE)\n\nif len(totals) != 1:\n print(u'[WARNING] Mixed values for number of total segments, exiting.')\n sys.exit(POSTPROCESS_NONE)\n\nif totals.pop() != file_count:\n print(u'[WARNING] Listed segment count does not match <file> count, exiting.')\n sys.exit(POSTPROCESS_NONE)\n\norg = u'{}.wtfnzb.original.processed'.format(nzb)\nexists_counter = 0\nwhile os.path.exists(org):\n exists_counter += 1\n org = u'{}.{}.wtfnzb.original.processed'.format(nzb, exists_counter)\n\nprint(u'[INFO] Preserving original nzb as {}'.format(org))\nos.rename(nzb, org)\n\nprint(u'[INFO] Writing {}'.format(nzb))\nwith open(nzb, mode='wb') as outfile:\n outfile.write(etree.tostring(tree,\n xml_declaration=True,\n encoding=tree.docinfo.encoding,\n doctype=tree.docinfo.doctype))\n\nsys.exit(POSTPROCESS_SUCCESS)\n
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
su season pack issue
"},{"location":"Downloaders/SABnzbd/","title":"SABnzbd","text":""},{"location":"Downloaders/SABnzbd/Basic-Setup/","title":"SABnzbd - Basic Setup","text":"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
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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
, /data/usenet
, /data/torrents
/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.
Sabnzbd Documentation
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#tuning","title":"Tuning","text":"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.
Sabnzbd Documentation
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#user-folders","title":"User Folders","text":"Settings
=> Folders
=> Users Folders
Here you setup your download path/location.
ATTENTION
Your Download and Media Library should be **NEVER the same locations**
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#system-folders","title":"System Folders","text":"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.
Sabnzbd Documentation
Settings
=> Servers
=> Add Server
USP = Usenet Service Provider
SSL
so you get a secure connection to the USP.Sabnzbd Documentation
Settings
=> Categories
Covered and fully explained in SABnzbd - Paths and Categories
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#switches","title":"Switches","text":"Sabnzbd Documentation
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#queue","title":"Queue","text":"Settings
=> Switches
=> Queue
Settings
=> Switches
=> Post processing
Settings
=> Sorting
MAKE SURE THAT SORTING IS ENTIRELY DISABLED
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#special","title":"Special","text":"Rarely used options. Don't change these without checking the SABnzbd Wiki first, as some have serious side-effects. The default values are between parentheses.
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#unable-to-connect-to-sabnzbd","title":"Unable to connect to SABnzbd","text":"If you're trying to connect your Starr apps to SABnzbd and you're getting a error like Unable to connect to SABnzbd
after clicking on Test.
And it SABnzbd you will see something like this.
Then go in to Settings
=> Special
=> Values
.
Scroll down to host_whitelist ( )
and enter your docker container name and or your domain name.
Example: sabnzbd.domain.tld, <container name >
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.
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#sonarr","title":"Sonarr","text":"Sonarr - [Click to show/hide]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.
Select Sabnzbd at step 5 and scroll down to the bottom of the new window where it says Completed Download Handling
and check both boxes.
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.
"},{"location":"Downloaders/SABnzbd/Paths-and-Categories/","title":"SABnzbd - Paths and Categories","text":"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
You don't need to add the full path under Folder/Path
, it will use the Relative folders are based on:
path you see on the top of the screenshot, that you setup as Completed Download Folder
.
ATTENTION
Your Download and Media Library should be **NEVER the same locations**
"},{"location":"Downloaders/SABnzbd/Paths-and-Categories/#paths-and-categories-breakdown","title":"Paths and Categories Breakdown","text":"This screenshot isn't 100% a reflection of the instructions above, it's mainly to explain the breakdown and the logic.
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.
"},{"location":"Downloaders/SABnzbd/scripts/","title":"SABnzbd Scripts","text":""},{"location":"Downloaders/SABnzbd/scripts/#clean","title":"Clean","text":"Clean NZB nameClean.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\n\n##################################################################\n### SABnzbd - Clean NZB Renamer ##\n##################################################################\n## NOTE: This script is considered ALPHA! ##\n## ##\n## Removes the suffixes from NZB name used by bots: ##\n## examples: NZBgeek / Obfuscated / BUYMORE / Scrambled, etc.. ##\n## ##\n## NOTE: This script requires Python 3 ##\n## ##\n## Install: ##\n## 1. Copy script to sabnzbd's script folder ##\n## 2. run: sudo chmod +x Clean.py ##\n## 3. in SABnzbd go to Config > Switches ##\n## 4. Change Pre-queue user script and select: Clean.py ##\n##################################################################\n\nimport sys\nimport re\n\ntry:\n # Parse the 18 input variables for SABnzbd version >= 4.0.0\n (scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist, showname, season, episodenumber, episodename, is_proper, resolution, decade, year, month, day, job_type) = sys.argv\n downloadsize = int(downloadsize)\nexcept ValueError:\n # ...or 11 variables for earlier versions\n (scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist, showname, season, episodenumber, episodename) = sys.argv\nexcept:\n sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script\n\nfwp = nzbname\nfwp = re.sub('(?i)-4P$', '', fwp)\nfwp = re.sub('(?i)-4Planet$', '', fwp)\nfwp = re.sub('(?i)-AlternativeToRequested$', '', fwp)\nfwp = re.sub('(?i)-AlteZachen$', '', fwp)\nfwp = re.sub('(?i)-AsRequested$', '', fwp)\nfwp = re.sub('(?i)-AsRequested-xpost$', '', fwp)\nfwp = re.sub('(?i)-BUYMORE$', '', fwp)\nfwp = re.sub('(?i)-Chamele0n$', '', fwp)\nfwp = re.sub('(?i)-GEROV$', '', fwp)\nfwp = re.sub('(?i)-iNC0GNiTO$', '', fwp)\nfwp = re.sub('(?i)-NZBGeek$', '', fwp)\nfwp = re.sub('(?i)-Obfuscated$', '', fwp)\nfwp = re.sub('(?i)-Obfuscation$', '', fwp)\nfwp = re.sub('(?i)-postbot$', '', fwp)\nfwp = re.sub('(?i)-Rakuv[a-z0-9]*$', '', fwp)\nfwp = re.sub('(?i)-RePACKPOST$', '', fwp)\nfwp = re.sub('(?i)-Scrambled$', '', fwp)\nfwp = re.sub('(?i)-WhiteRev$', '', fwp)\nfwp = re.sub('(?i)-WRTEAM$', '', fwp)\nfwp = re.sub('(?i)-CAPTCHA$', '', fwp)\nfwp = re.sub('(?i)-Z0iDS3N$', '', fwp)\nfwp = re.sub('(?i)\\[eztv([ ._-]re)?\\]$', '', fwp)\nfwp = re.sub('(?i)\\[TGx\\]$', '', fwp)\nfwp = re.sub('(?i)\\[ettv\\]$', '', fwp)\nfwp = re.sub('(?i)\\[TGx\\]-xpost$', '', fwp)\nfwp = re.sub('(?i).mkv-xpost$', '', fwp)\nfwp = re.sub('(?i)-xpost$', '', fwp)\nfwp = re.sub(r'(?i)(-D-Z0N3|\\-[^-.\\n]*)(\\-.{4})?$', r'\\1', fwp)\n\nprint(\"1\") # Accept\nprint(fwp)\nprint()\nprint()\nprint()\nprint() \nprint()\n# 0 means OK\nsys.exit(0)\n
"},{"location":"Downloaders/SABnzbd/scripts/#replace_for","title":"replace_for","text":"Replaces underscores with dots replace_for.py
Replaces underscores with dots in downloaded filename to prevent download loops with poorly named releases on some indexers (often HONE releases).
Install Instructions:
sudo chmod +x replace_for.py
Settings
=> Categories
replace_for.py
#!/usr/bin/python3 -OO\n\n##################################################################\n### SABnzbd - Replace underscores with dots ##\n##################################################################\n## ##\n## NOTE: This script requires Python 3 ##\n## ##\n## Author: miker ##\n## ##\n## Install: ##\n## 1. Copy script to sabnzbd's script folder ##\n## 2. run: sudo chmod +x replace_for.py ##\n## 3. in SABnzbd go to Config > Categories ##\n## 4. Assign replace_for.py to the required category ##\n##################################################################\n\nimport sys\nimport os\nimport os.path\n\ntry:\n (scriptname, directory, orgnzbname, jobname, reportnumber, category, group, postprocstatus, url) = sys.argv\nexcept:\n print(\"No commandline parameters found\")\n sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script\n\nfiles = os.listdir(directory)\n\nfor src in files:\n if src.find(\"_\") !=-1:\n dst = src.replace('_', '.')\n os.rename (os.path.join(directory,src),os.path.join(directory,dst) )\n print(src, \"renamed to \",dst)\n\nprint()\nprint()\nprint() \nprint()\n# 0 means OK\nsys.exit(0)\n
"},{"location":"Downloaders/qBittorrent/","title":"qBittorrent","text":""},{"location":"Downloaders/qBittorrent/3rd-party-tools/","title":"3rd Party tools","text":"Here you will find a collection of 3rd party tools and other related links for qBittorrent.
"},{"location":"Downloaders/qBittorrent/3rd-party-tools/#qbit-manage","title":"qBit Manage","text":"This is a program used to manage your qBittorrent instance such as:
qBit Manage
"},{"location":"Downloaders/qBittorrent/3rd-party-tools/#qbitrr","title":"qBitrr","text":"This is a program used to manage your qBittorrent instance and Arr instances
Features
qbitrr DownloadedMoviesScan
for Radarrqbitrr DownloadedEpisodesScan
for SonarrqBitrr
"},{"location":"Downloaders/qBittorrent/3rd-party-tools/#qbittorrent-cli","title":"qbittorrent-cli","text":"A cli to manage qBittorrent. Add torrents, reannounce and import from other clients.
qbittorrent-cli
"},{"location":"Downloaders/qBittorrent/3rd-party-tools/#qbittools","title":"qbittools","text":"qbittools is a feature rich CLI for the management of torrents in qBittorrent.
qbittools
"},{"location":"Downloaders/qBittorrent/3rd-party-tools/#a-dark-but-not-black-qbittorrent-webui","title":"A Dark but not black qBittorrent WebUI","text":"A darker theme for qBittorrent WebUI (made with the help of the Walkerservers community)
Nightwalker
"},{"location":"Downloaders/qBittorrent/3rd-party-tools/#cross-seed","title":"cross-seed","text":"Fully-automatic cross-seeding
Run cross-seed 24/7 to:
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.
"},{"location":"Downloaders/qBittorrent/Basic-Setup/","title":"qBittorrent - Basic Setup","text":"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
"},{"location":"Downloaders/qBittorrent/Basic-Setup/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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
, /data/usenet
, /data/torrents
/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.
"},{"location":"Downloaders/qBittorrent/Basic-Setup/#downloads","title":"Downloads","text":"Tools
=> Options
=> Downloads
(Or click on the cogwheel to access the options)
For consistency with other torrents I recommend leaving this on Original
.
Suggested: Original
Delete the .torrent file after it has been added to qBittorrent.
Suggested: Personal preference
Pre-allocated disk space for the added torrents, this limits fragmentation and also makes sure if you use a cache drive or a feeder disk that the space is available.
Suggested: Enabled
Warning
Do not set Pre-allocated disk space if you are using ZFS as your filesystem as ZFS does not support fallocate
Make sure this is set to Automatic
. Your downloads will not go into the category folder otherwise.
Suggested: Automatic
This helps you to manage your file location based on categories.
Suggested: Enabled
Same as Step 2
Suggested: Enabled
Your download root path (Download folder/location).
Read the ATTENTION
block below
If you enable this, your incomplete downloads will be placed in this directory until completed. This could be useful if you want your downloads to use a separate SSD/Feeder disk1, but this also results in extra unnecessary moves or in worse cases a slower and more I/O intensive copy + delete.
Suggested: Personal preference
ATTENTION
Your Download and Media Library should be **NEVER the same locations**
"},{"location":"Downloaders/qBittorrent/Basic-Setup/#connection","title":"Connection","text":""},{"location":"Downloaders/qBittorrent/Basic-Setup/#listening-port","title":"Listening Port","text":"Set this to TCP for the best performance
Suggested: TCP
Your port used for incoming connections, this is the port you opened in your router/firewall or port forwarded at your VPN provider to make sure you're connectable.
Suggested: The port you opened in your router/firewall or port forwarded at your VPN provider
This should be disabled in your router for several security reasons.
Suggested: Disabled
Make sure this is disabled so you don't mess up the forwarded port.
Suggested: Disabled
The best settings for this depends on many factors so I won't be covering this.
Suggested: personal preference based on your setup and connection.
This is where you would add for example your SOCKS5 settings from your VPN provider.
Suggested: I personally don't recommend this unsecure option being it's un-encrypted and only spoofs your IP.
Here you can set your global rate limits, meaning your maximum download/upload speed used by qBittorrent. (For all torrents)
The best settings depends on many factors.
Bandwidth needed by other services in your home network.
Suggested: For a home connection that you use with others it's best practice to set the upload/download rate to about 70-80% of your maximum upload/download speed.
When enabled, it basically does the same as above, but with the option to setup a schedule.
Examples:
If you have an internet connection that's limited during specific hours (unlimited bandwidth during the night, but limited during the day)
Suggested: Personal preference
Not going to cover the technical part of what it does, but the following settings are recommended for best speeds (in most cases).
Prevents you from being flooded if the uTP protocol is used for any reason.
Suggested: Enabled
Apply rate limit to transport overhead
Suggested: Disabled
Apply rate limit to peers on LAN
Suggested: Enabled
These settings are mainly used for public trackers (and should be enabled for them) and not for private trackers, decent private trackers use a private flag where they ignore these settings.
Suggested: Personal preference
Recommended setting Allow encryption
rather than enforcing it allows more peers to connect and is recommended on underpowered systems as it will allow for lower overhead.
Suggested: Allow encryption
Anonymous mode hides clients (qBittorrent) fingerprint from the peer-ID, sets the \u2018User-Agent\u2019 to Null and it doesn\u2019t share your IP-address directly with trackers (though peers will still see your IP address). If using private trackers, it's recommended to disable
this. I also got reports from people who are using this that they had worse speeds.
Suggested: Disabled
These options allow you to control the number of active torrents being downloaded and uploaded.
Suggested: personal preference based on your setup and connection.
Your maximum seeding ratio preference. (When both ratio and seeding time are enabled it will trigger the action on whatever happens first.)
Suggested: Disabled
Your maximum seeding time preference (When both ratio and seeding time are enabled it will trigger the action on whatever happens first.)
Suggested: Disabled
What to do when ratio or seeding time is reached.
Suggested: Paused and Disabled
Tip
Personally, I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced), or use qBit Manage
"},{"location":"Downloaders/qBittorrent/Basic-Setup/#automatically-add-these-trackers-to-new-downloads","title":"Automatically add these trackers to new downloads","text":"Recommendation: Disabled
Warning
NEVER USE THIS OPTION ON (Semi-)PRIVATE TRACKERS
"},{"location":"Downloaders/qBittorrent/Basic-Setup/#web-ui","title":"Web UI","text":""},{"location":"Downloaders/qBittorrent/Basic-Setup/#authentication","title":"Authentication","text":"step.3
whitelist.In some cases when this is enabled it could result in issues.
Suggested: Disabled
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 use unRaid then you don't need this since you can make use of the default cache drive option.\u00a0\u21a9
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
You don't need to add the full path under Save Path
, it will use the root download path that you setup in Options
=> Saving Management
=> Default Save Path:
.
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.
"},{"location":"Downloaders/qBittorrent/Paths/","title":"qBittorrent - Paths","text":"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
to TCP
, if you get speed issues try one of the others.When you make use of the unRAID cache drive for your /data/torrents
share, and the torrents in qBittorrent are still seeding, the mover can't move files since they are still in use.
Using the following instructions will allow you to move the files with the use of the qBittorrent API.
Workflow Rules
Warning
The screenshots below are only EXAMPLES to show you how it should look and where you need to place the data that you need to add. They are NOT always a 100% reflection of the actual data, and not always the actual values you need to add.
Download the following standalone Python script.
Big Thnx to bobokun Developer of qBit Manage
"},{"location":"Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/#plugins","title":"Plugins","text":"Install the following Plugins.
(1) These need to be installed from NerdTools.
"},{"location":"Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/#setup","title":"Setup","text":"After you install the needed Plugins
- it's time to configure everything.
qbittorrent-api
module","text":"The script needs the qbittorrent-api module to work, so we need to make sure it's installed when your unRAID server starts, or when the Array is started the first time.
You can choose one of the following 3 options (select a tab) to install qbittorrent-api
.
With this option, we're going to install the qbittorrent-api
module when the Array is started the first time.
In your unRAID Dashboard, go to your Settings
tab and select User Scripts
in the User Utilities
section at the bottom.
At the bottom of the User Scripts
page select the ADD NEW SCRIPT
button.
A popup will appear asking you to name the script. For this example, we're going to use Install qBittorent-API
and then click on OK
.
Click on the cogwheel of the new script in the list, and select Edit Script
.
Copy/Paste the following in the new window that opens, then click SAVE CHANGES
.
#!/bin/bash\npip3 install qbittorrent-api\n
Select in the schedule list when the script should run, and choose At First Array Start Only
.
Click on Apply
.
Finally, you will need to choose RUN IN BACKGROUND
or restart your unRAID server to install the qbittorrent-api
module.
With this option, we're going to create a Python virtual environment on our disk. We will use this to run and store dependencies (qbittorrent-api
) for this specific environment.
By doing this, we will only need to configure this once and it will be persistent after reboots (this differs from the previous steps).
First, you need to choose a location to start a new Python environment.
Info
In the next steps, you will be asked to choose a location to store the script, try to be consistent.
Suggestions:
/mnt/user/appdata/qbittorrent/scripts/.venv
/mnt/user/data/scripts/.venv
Run the following command in unRAID's terminal in the directory you chose:
python3 -m venv --clear /mnt/user/data/scripts/.venv\n
We now need to enter this new environment and install our dependency (qbittorrent-api
) in it, run:
source /mnt/user/data/scripts/.venv/bin/activate\npip3 install qbittorrent-api\ndeactivate # to leave the environment\n
Info
Replace /mnt/user/data/scripts/.venv
with the path you have chosen.
With this option, we're going to install the qbittorrent
module when the unRAID server is started.
On your USB stick/key go to /boot/config
and open the go
file with your text editor (VSCode/Notepad++).
Copy/paste the following command
pip3 install qbittorrent-api\n
Restart your unRAID Server or run the above command from the terminal.
"},{"location":"Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/#script","title":"Script","text":"Now, using your favorite text editor (VSCode/Notepad++) edit the script you downloaded at the beginning of the guide (HERE).
You only need to change a few options at the top of the script.
# --DEFINE VARIABLES--#\n# Set Number of Days to stop torrents between two offsets\n# days_from set to 0 will pause any torrents from todays date\n# days_to will be the upper limit of how far you want to pause torrents to\ndays_from = 0\ndays_to = 2\nqbt_host = \"192.168.2.200:8080\"\nqbt_user = None\nqbt_pass = None\n# --DEFINE VARIABLES--#\n
days_from
=> Set Number of Days to stop torrents from for the move.days_to
=> Set Number of Days to stop torrents to for the move.qbt_host
=> The URL you use to access qBittorrent locally. (the \"
should remain)qbt_user
=> Your used qBittorrent User Name
if you have authentication enabled. Add '
either side.qbt_pass
=> Your used qBittorrent Password
if you have authentication enabled. Add '
either side.If you have authentication enabled. Add '
either side of your User/Password.
Depending on whether you use the unRaid Mover Tuning
app, You might need to change line 68:
Mover Tuning
, change line 68 from os.system('/usr/local/sbin/mover.old start')
to os.system('/usr/local/sbin/mover start')
Mover Tuning
but don't want to use it for the script, do not change line 68Mover Tuning
and do want to use it for the script, change line 68 from os.system('/usr/local/sbin/mover.old start')
to os.system('/usr/local/sbin/mover start')
. For this option, inside the Mover Tuner
options you will also need to set Move Now button follows plugin filters
to Yes
and Disable Mover running on a schedule
to No
.Place the script you just edited somewhere easy to access/remember.
Suggestions:
/mnt/user/appdata/qbittorrent/scripts/mover.py
/mnt/user/data/scripts/mover.py
Set up the scheduler for when the mover should run.
In your unRAID Dashboard, go to your Settings
tab and select User Scripts
in the User Utilities
section at the bottom.
At the bottom of the User Scripts
page select the ADD NEW SCRIPT
button.
A popup will appear asking you to name the script. For this example, we're going to use qBittorrent Mover
and then click on OK
.
Click on the cogwheel of the new script in the list.
Choose your method (select a tab) and copy/paste the script in the new window that opens, then click SAVE CHANGES
.
#!/bin/bash\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"qBittorrent Mover\" -d \"qBittorrent Mover starting @ `date +%H:%M:%S`.\"\n echo \"executing script to pause torrents and run mover.\"\n python3 /mnt/user/data/scripts/mover.py\n echo \"qbittorrent-mover completed and resumed all paused torrents.\"\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"qBittorrent Mover\" -d \"qBittorrent Mover completed @ `date +%H:%M:%S`.\"\n
#!/bin/bash\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"qBittorrent Mover\" -d \"qBittorrent Mover starting @ `date +%H:%M:%S`.\"\n echo \"executing script to pause torrents and run mover.\"\n /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/mover.py\n echo \"qbittorrent-mover completed and resumed all paused torrents.\"\n /usr/local/emhttp/plugins/dynamix/scripts/notify -s \"qBittorrent Mover\" -d \"qBittorrent Mover completed @ `date +%H:%M:%S`.\"\n
Info
Replace /mnt/user/data/scripts/
in the script with the path you have chosen for the Python script.
Click the schedule dropdown to choose when the script should run. We want to select Custom
.
After changing to Custom
you will get an extra text field on the right where you can set your schedule (cron).
For this example, we're going to tell the script to run every day at 4 AM.
0 4 * * *
You can generate your scheduling 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.
"},{"location":"Downloaders/qBittorrent/Tips/Themes/","title":"Themes","text":"A list of known working qBittorrent themes.
Theme Style Compatibility Honeywell Dark v4.3.1 - v4.4.5 Nightwalker Theme (CallMeBruce fork) Dark v4.5 World of Quinoa Dark v4.3.9, v4.4.5Questions 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.
"},{"location":"Downloaders/ruTorrent/","title":"ruTorrent Placeholder","text":"I've asked several people that used this download client for some help/feedback, but most of them just switched to qBittorrent.
"},{"location":"Downloaders/ruTorrent/ruTorrent-Basic-Setup/","title":"ruTorrent - Basic Setup","text":"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
"},{"location":"Downloaders/ruTorrent/ruTorrent-Basic-Setup/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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
, /data/usenet
, /data/torrents
/movies
=> /data/media/movies
/tv
=> /data/media/tv
I've asked several people that used this download client for some help/feedback, but most of them just switched to qBittorrent.
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.
"},{"location":"Guide-Sync/","title":"Guide Sync","text":"These are 3rd party applications to sync several sections of the guide with your Sonarr/Radarr (or multiple).
Feature Notifiarr Recyclarr GUI (graphical user interface) v Radarr Custom Formats v v Radarr Use Flowchart to choose the correct Custom Formats for your Quality Profile v Radarr predefined config files available v Radarr Clear all Custom Formats v v Radarr Scores v v Radarr Quality Settings (File Size) v v Radarr Naming Scheme v v Radarr Quality Profiles v Sonarr v3 Release Profile RegEx v v Sonarr v4 Custom Formats v v Sonarr v4 predefined config files available v Sonarr v3/v4 Clear all Release Profiles v Sonarr v3/v4 Clear all Custom Formats v v Sonarr v3/v4 Scores v v Sonarr v3/v4 Quality Settings (File Size) v v Sonarr v3/v4 Naming Scheme v v Sonarr v3/v4 Quality Profiles v"},{"location":"Guide-Sync/#notifiarr","title":"Notifiarr","text":"It's possible with Notifiarr (Patron feature)
Notifiarr is a service much bigger in scope than just custom format syncing.
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).
Just enable the Custom Formats/Release Profiles you want.
Examples - [Click to show/hide]Radarr Custom Formats Table
Radarr Custom Formats (Multiple Instances possible)
Radarr Custom Formats (Multiple Instances possible)
Radarr scoring (Multiple profiles possible)
Sonarr Release Profile (Multiple Instances possible)
Instructions
"},{"location":"Guide-Sync/#video-tutorial","title":"Video Tutorial","text":"Big Thanks to IBRACORP who created a great video that covers the basics.
Also check out other videos from IBRACORP HERE
"},{"location":"Guide-Sync/#recyclarr","title":"Recyclarr","text":"Info // Documentation
Recyclarr is a command line application utilizing configuration files to sync the guides to Radarr & Sonarr.
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.
"},{"location":"Hardlinks/Check-if-hardlinks-are-working/","title":"How to check if hardlinks are working","text":"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 3 options to check if you got working hardlinks.
All methods require you to login to your terminal with PuTTY or similar software.
Warning
You can't create hard links for directories
You can't cross file systems
"},{"location":"Hardlinks/Check-if-hardlinks-are-working/#usenet","title":"Usenet","text":"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.
"},{"location":"Hardlinks/Check-if-hardlinks-are-working/#method-1-using-ls","title":"Method 1: Using ls","text":"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.
In the terminal type: stat /path/to/your/download/location/file.mkv
In the terminal type: stat /path/to/your/media/location/file.mkv
You will get 2 results you can use to compare several things.
cd
to your download location and run ls -i file.mkv
or type ls -i /path/to/your/download/location/file.mkv
This will reveal the inode of your file on the left side of the file.
find /mnt/user/data/ -inum ###
or find . -inum ###
if you're in your root folder.###
= Your inode number on the left of the file you found.
It will list all files linked with the same inode number.
"},{"location":"Hardlinks/Examples/","title":"Examples","text":"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.
"},{"location":"Hardlinks/Hardlinks-and-Instant-Moves/","title":"Hardlinks and Instant Moves (Atomic-Moves)","text":""},{"location":"Hardlinks/Hardlinks-and-Instant-Moves/#description","title":"Description","text":"Info
If you\u2019re wondering why hard links aren\u2019t 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.
"},{"location":"Hardlinks/Hardlinks-and-Instant-Moves/#faq","title":"FAQ","text":""},{"location":"Hardlinks/Hardlinks-and-Instant-Moves/#what-are-hardlinks","title":"What are Hardlinks","text":"What are hardlinks? - [Click to show/hide][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.
More info from Wikipedia, the free encyclopedia
Warning
You can't create hard links for directories
You can't cross file systems
A real move and not a copy file from download folder to media folder and then delete file from download folder.
"},{"location":"Hardlinks/Hardlinks-and-Instant-Moves/#what-are-the-starr-apps","title":"What are the Starr Apps","text":"What are theStarr Apps
? - [Click to show/hide] Sonarr, Radarr, Lidarr, etc.
"},{"location":"Hardlinks/Replace-copies-with-hardlinks/","title":"Replace copies with hardlinks","text":"You recently switched to a proper setup that supports Hardlinks and Instant Moves (Atomic-Moves).
And you would like to replace copies with hardlinks ?
If your Operating System supports it you could make use of Jdupes.
"},{"location":"Hardlinks/Replace-copies-with-hardlinks/#usage","title":"Usage","text":"I won't cover every command
If you want to know what else Jdupes can do please read the manual.
Tip
This process can take a long time and a pretty big hit on your resources depending on how big your library is, I did notice the first time it takes longer then the second time. Not sure if this is a cache thing or something else.
jdupes [options] DIR1 DIR2\n
This will do a dry run and summarize at the end.
jdupes -rMX onlyext:mp4,mkv,avi \"/data/torrents/movies/\" \"/data/media/movies\"\n
This will hard link all duplicate files without prompting.
jdupes -rLX onlyext:mp4,mkv,avi \"/data/torrents/movies/\" \"/data/media/movies\"\n
Windows allows a maximum of 1023 hard links per file
Warning
The -Q
or --quick
option only reads each file once, hashes it, and performs comparisons based solely on the hashes. There is a small but significant risk of a hash collision which is the purpose of the failsafe byte-for-byte comparison that this option explicitly bypasses. Do not use it on ANY data set for which any amount of data loss is unacceptable. You have been warned!
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.
"},{"location":"Hardlinks/How-to-setup-for/","title":"How to setup for","text":"In this section you will find several how-to's for installation of the Starr Apps. 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 (or Container Path
) for the containers!
External paths (or Host Path
) depends where you mounted your share or your drives.
For example /<path_to_data>/data
, or even /data
.
Warning
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
, books
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
, Books
and Music
sub-folders, this is your library and what you\u2019d 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\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Docker/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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.
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\u2019ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data\n\u2514\u2500\u2500 torrents\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data/torrents/
Host Path:
=> /<path_to_data>/data/torrents/
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\u2019ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/complete/{tv|movies|music}
.
data\n\u2514\u2500\u2500 usenet\n \u251c\u2500\u2500 incomplete\n \u2514\u2500\u2500 complete\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data/usenet/
Host Path:
=> /<path_to_data>/data/usenet/
Sonarr, Radarr, Readarr and Lidarr
Sonarr, Radarr, Readarr and Lidarr gets access to everything using /data
because the download folder(s) and media folder will look like and be one file system. Hardlinks will work and moves will be atomic, instead of copy + delete.
data\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data
Host Path:
=> /<path_to_data>/data/
Plex, Emby, JellyFin and Bazarr
Plex, Emby, JellyFin and Bazarr only needs access to your media library using /data/media
, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
data\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u251c\u2500\u2500 books\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data/media
Host Path:
=> /<path_to_data>/data/media/
Don't forget to look at the Examples how to setup the paths inside the applications.
"},{"location":"Hardlinks/How-to-setup-for/Docker/#permissions","title":"Permissions","text":"Recursively chown user and group and Recursively chmod to 775/664
sudo chown -R $USER:$USER /data\nsudo chmod -R a=,a+rX,u+w,g+w /data\n
"},{"location":"Hardlinks/How-to-setup-for/Docker/#docker-compose-example","title":"Docker-compose Example","text":"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\"\nservices:\n radarr:\n container_name: radarr\n image: ghcr.io/hotio/radarr:latest\n restart: unless-stopped\n logging:\n driver: json-file\n ports:\n - 7878:7878\n environment:\n - PUID=1000\n - PGID=1000\n - TZ=Europe/Amsterdam\n volumes:\n - /etc/localtime:/etc/localtime:ro\n - /docker/appdata/radarr:/config\n - /data:/data\n sonarr:\n container_name: sonarr\n image: ghcr.io/hotio/sonarr:latest\n restart: unless-stopped\n logging:\n driver: json-file\n ports:\n - 8989:8989\n environment:\n - PUID=1000\n - PGID=1000\n - TZ=Europe/Amsterdam\n volumes:\n - /etc/localtime:/etc/localtime:ro\n - /docker/appdata/sonarr:/config\n - /data:/data\n bazarr:\n container_name: bazarr\n image: ghcr.io/hotio/bazarr:latest\n restart: unless-stopped\n logging:\n driver: json-file\n ports:\n - 6767:6767\n environment:\n - PUID=1000\n - PGID=1000\n - TZ=Europe/Amsterdam\n volumes:\n - /etc/localtime:/etc/localtime:ro\n - /docker/appdata/bazarr:/config\n - /data/media:/data/media\n sabnzbd:\n container_name: sabnzbd\n image: ghcr.io/hotio/sabnzbd:latest\n restart: unless-stopped\n logging:\n driver: json-file\n ports:\n - 8080:8080\n - 9090:9090\n environment:\n - PUID=1000\n - PGID=1000\n - TZ=Europe/Amsterdam\n volumes:\n - /etc/localtime:/etc/localtime:ro\n - /docker/appdata/sabnzbd:/config\n - /data/usenet:/data/usenet:rw\n
"},{"location":"Hardlinks/How-to-setup-for/Docker/#docker-compose-commands","title":"Docker-Compose Commands","text":"docker-compose commands - [Click to show/hide] 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\u2019t 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.
"},{"location":"Hardlinks/How-to-setup-for/Dockstarter/","title":"Dockstarter","text":"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.
"},{"location":"Hardlinks/How-to-setup-for/Dockstarter/#folder-structure","title":"Folder Structure","text":"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\n\u251c\u2500\u2500 downloads\n\u2502 \u251c\u2500\u2500 torrents\n\u2502 \u2502 \u251c\u2500\u2500 movies\n\u2502 \u2502 \u251c\u2500\u2500 music\n\u2502 \u2502 \u251c\u2500\u2500 books\n\u2502 \u2502 \u2514\u2500\u2500 tv\n\u2502 \u2514\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 medialibrary\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u251c\u2500\u2500 books\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Dockstarter/#changes-to-the-env","title":"Changes to the .env","text":"To accomplish this we need to change first a few paths in your .env
(Usually ~/.docker/compose/.env
)
# Global Settings\nCOMPOSE_HTTP_TIMEOUT=60\nDOCKERCONFDIR=~/.config/appdata\nDOCKERGID=999\nDOCKERHOSTNAME=DockSTARTer\nDOCKERLOGGING_MAXFILE=10\nDOCKERLOGGING_MAXSIZE=200k\nDOCKERSTORAGEDIR=/mnt/storage\nPGID=1000\nPUID=1000\nTZ=America/Chicago\n
"},{"location":"Hardlinks/How-to-setup-for/Dockstarter/#changes-to-your-paths","title":"Changes to your paths","text":"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
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.
"},{"location":"Hardlinks/How-to-setup-for/Dockstarter/#sonarr","title":"Sonarr","text":"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
Note
I'm not going to explain how to install all the applications, I will only explain which folder structure we recommend.
"},{"location":"Hardlinks/How-to-setup-for/Native/#folder-structure","title":"Folder Structure","text":"Warning
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
, books
and music
downloads to keep things neat. The media
folder has nicely named TV
, Movies
, Books
and Music
sub-folders, this is your library and what you\u2019d 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\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Native/#breakdown-of-the-folder-structure","title":"Breakdown of the Folder Structure","text":""},{"location":"Hardlinks/How-to-setup-for/Native/#torrent-clients","title":"Torrent clients","text":"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\u2019ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data\n\u2514\u2500\u2500 torrents\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Native/#usenet-clients","title":"Usenet clients","text":"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\u2019ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/complete/{tv|movies|music}
.
data\n\u2514\u2500\u2500 usenet\n \u251c\u2500\u2500 incomplete\n \u2514\u2500\u2500 complete\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Native/#the-starr-apps","title":"The Starr Apps","text":"Sonarr, Radarr, Readarr and Lidarr
Sonarr, Radarr, Readarr and Lidarr gets access to everything using /data
because the download folder(s) and media folder will look like and be one file system. Hardlinks will work and moves will be atomic, instead of copy + delete.
data\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Native/#media-server","title":"Media Server","text":"Plex, Emby, JellyFin and Bazarr
Plex, Emby, JellyFin and Bazarr only needs access to your media library using /data/media
, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
data\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u251c\u2500\u2500 books\n \u2514\u2500\u2500 tv\n
Don't forget to look at the Examples how to setup the paths inside the applications.
"},{"location":"Hardlinks/How-to-setup-for/Native/#permissions","title":"Permissions","text":"Recursively chown user and group and Recursively chmod to 775/664
sudo chown -R $USER:$USER /data\nsudo chmod -R a=,a+rX,u+w,g+w /data\n
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.
"},{"location":"Hardlinks/How-to-setup-for/Synology/","title":"Synology","text":"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 than 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.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#introduction","title":"Introduction","text":"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.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#automated-script","title":"Automated Script","text":"Automated script (Use this script at your own risk) - [Click to show/hide]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. And is only for initial setup. After that, you need to manage it yourself. Rerunning the script can or will reset all personal changes made in the compose/env.
The script is only tested on Synology DSM7 and higher.
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) and home folders.
Be sure to delete current running Docker containers related to this guide (ie. *arr apps, download clients), backup settings before you do.
To enable SSH on your Synology take a look HERE.
To enable Home folders, go to Control Panel
> User & Group
> Advanced
> Enable user home service
at the bottom.
When you enabled these two settings, run the following commands in your favorite terminal app and follow the onscreen questions.
curl -sL git.io/syno-script > ~/syno-script\n
sudo bash ~/syno-script\n
"},{"location":"Hardlinks/How-to-setup-for/Synology/#install-docker","title":"Install Docker","text":"You need to install Docker from the Package Center
. This should also create a share named docker
, check File Station if it is present.
Warning
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 or Powershell/Terminal to SSH into your Synology.
Enter the login information of a Synology user account that has admin priveliges, as only members of the 'administrators' user group are able to use SSH.
If you get a popup asking if you want to trust the key, Just press OK
or ACCEPT
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.
Warning
It is not recommended to use (anymore) your admin/main user account. That is why we just created a new user.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#folder-structure","title":"Folder Structure","text":"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\u2019d 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\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Synology/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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.
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\u2019ll need to reconfigure paths and you can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data\n\u2514\u2500\u2500 torrents\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data/torrents/
Host Path:
=> /volume1/data/torrents/
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\u2019ll need to reconfigure paths and you can sort into sub-folders like /data/usenet/complete/{tv|movies|music}
.
data\n\u2514\u2500\u2500 usenet\n \u251c\u2500\u2500 incomplete\n \u2514\u2500\u2500 complete\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data/usenet/
Host Path:
=> /volume1/data/usenet/
Sonarr, Radarr, Readarr and Lidarr
Sonarr, Radarr, Readarr and Lidarr gets access to everything using /data
because the download folder(s) and media folder will look like and be one file system. Hardlinks will work and moves will be atomic, instead of copy + delete.
data\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data
Host Path:
=> /volume1/data/
Plex, Emby, JellyFin and Bazarr
Plex, Emby, JellyFin and Bazarr only needs access to your media library using /data/media
, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders.
data\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u251c\u2500\u2500 books\n \u2514\u2500\u2500 tv\n
Container Path:
=> /data/media
Host Path:
=> /volume1/data/media/
Don't forget to look at the Examples how to setup the paths inside the applications.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#create-the-needed-subfolder","title":"Create the needed subfolder","text":"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
"},{"location":"Hardlinks/How-to-setup-for/Synology/#if-you-use-usenet","title":"If you use usenet","text":"mkdir -p /volume1/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv,movies,music}}\n
"},{"location":"Hardlinks/How-to-setup-for/Synology/#if-you-use-torrents","title":"If you use torrents","text":"mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}}\n
"},{"location":"Hardlinks/How-to-setup-for/Synology/#appdata","title":"Appdata","text":"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.
mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,pullio}\n
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\n
docker\n\u2514\u2500\u2500 appdata\n \u251c\u2500\u2500 radarr\n \u251c\u2500\u2500 sonarr\n \u251c\u2500\u2500 bazarr\n \u251c\u2500\u2500 plex\n \u251c\u2500\u2500 pullio\n \u2514\u2500\u2500 (your download client, i.e. nzbget; sabnzbd; qbittorrent)\n
"},{"location":"Hardlinks/How-to-setup-for/Synology/#needed-files","title":"Needed files","text":"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:
wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml -P /volume1/docker/appdata/\n
"},{"location":"Hardlinks/How-to-setup-for/Synology/#whats-included-and-whats-not-included","title":"Whats included and Whats not included","text":"What's included and What's not included - [Click to show/hide] 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:
wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env -P /volume1/docker/appdata/\n
Warning
MAKE SURE THE FILE KEEPS THE ORIGINAL NAME .env
WITH THE DOT BEFORE IT
Tip
If you need to edit docker-compose.yml or the .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\n
sudo chmod +x /usr/local/bin/pullio\n
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\n
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
"},{"location":"Hardlinks/How-to-setup-for/Synology/#permissions","title":"Permissions","text":"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\n
sudo chmod -R a=,a+rX,u+w,g+w /volume1/data /volume1/docker\n
Note
If you copy files from a different library into the newly created library, you need to rerun these commands. !!!
"},{"location":"Hardlinks/How-to-setup-for/Synology/#run-the-docker-compose","title":"Run the Docker Compose","text":"Tip
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\n
sudo docker-compose up -d\n
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.
Warning
If you need to do any changes, only edit the docker-compose.yml
file. To activate the changes, run the command sudo docker-compose up -d
again, from within the /volume1/docker/appdata
folder.
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 !!!
"},{"location":"Hardlinks/How-to-setup-for/Synology/#docker-compose-commands","title":"Docker-Compose Commands","text":"docker-compose commands - [Click to show/hide]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\u2019t 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.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#additional-synology-info","title":"Additional Synology Info","text":""},{"location":"Hardlinks/How-to-setup-for/Synology/#dsm-task-for-correctly-reporting-ip-in-plexnginxetc","title":"DSM Task for correctly reporting IP in Plex/Nginx/Etc","text":"Due to some iptables configuration in DSM, you can get an incorrect IP reported in Plex or other apps that need an read/report the IP. To fix this, you need to add two rules to your iptables. unfortunately, those rules can sometimes be deleted at reboot or after DSM update.
To fix this, you will need to add a Scheduled Task that executes at boot with root user, which will check if the rules exists, if not, re-add them.
Task bash command - [Click to show/hide]#!/bin/bash\ncurrentAttempt=0\ntotalAttempts=10\ndelay=15\n\nwhile [ $currentAttempt -lt $totalAttempts ]\ndo\n currentAttempt=$(( $currentAttempt + 1 ))\n\n echo \"Attempt $currentAttempt of $totalAttempts...\"\n\n result=$(iptables-save)\n\n if [[ $result =~ \"-A DOCKER -i docker0 -j RETURN\" ]]; then\n echo \"Docker rules found! Modifying...\"\n\n iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER\n iptables -t nat -A PREROUTING -m addrtype --dst-type LOCAL ! --dst 127.0.0.0/8 -j DOCKER\n\n echo \"Done!\"\n\n break\n fi\n\n echo \"Docker rules not found! Sleeping for $delay seconds...\"\n\n sleep $delay\ndone\n
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/","title":"TrueNAS Core","text":"Note
This guide is based on TrueNAS Core 13, a storage solution based on ZFS. While there are more similarities than differences between Core and Scale in terms of creating datasets, this guide explicitly covers dataset, share, and basic permission setup in order to provide a place for creating and accessing the recommended folder structure. This does not cover jails or other virtualization means on the TrueNAS Core platform.
This guide assumes that you've already created a pool, which by default will contain a top-level dataset that was configured during the time of pool configuration. For the examples below, we'll be using a pool name of tank
. Encryption is recommended on the pool (TrueNAS uses ZFS Encryption with AES-256-GCM in TrueNAS Core 13), but not required. TrueNAS Core allows for granularity in encrypting individual datasets if you don't want to encrypt at the top-level dataset and have it be inherited down to the other datasets.
TrueNAS Core defaults to lz4
encryption as the compression level when creating a pool. This is fine for most workloads, and can be safely inherited down to other datasets under the top-level dataset. ztsd
is currently the default in FreeBSD, however TrueNAS Core still defaults to lz4
. Given that media files are not very compressible by nature, the only benefit that compression provides in this case is to supplementary files such as .srt
, .nfo
, etc.
Additionally, since SMB does not support hardlinks we will only be covering the creation and use of NFS shares.
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/#create-the-main-dataset","title":"Create the main dataset","text":"Warning
To get hardlinks and atomic moves working with ZFS you will need to make use of ONE dataset with subfolders. Note that this does not mean multiple datasets under the example top-level dataset tank
from this example.
For this example I'm using the dataset from my existing setup, Media
. The naming isn't important as host machine mappings can be manipulated as desired.
Go to Storage -> Pools and click on \u22ee on the right side of your root dataset, then select Add Dataset
.
On the next screen you'll fill out your basic dataset info, such as name and comments. I have a few things grayed out here as the dataset has already been configured, but in this example you would use Media
in the Name field and keep everything else at its default (Inherit
) with the exception of Enable Atime
and Record Size
. Set Enable Atime
to off
and Record Size
to 1M
. This provides a performance increase on a dataset that will primarily be handling media files. Optionally, you can configure Quota for this dataset
if you want to limit what the dataset displays and will accept in terms of capacity when it's mounted (i.e. setting this to 10 TiB
will show 10T as the capacity when mounted).
During share creation, there will be an option at the bottom for Share Type
. Generic
is the default, with SMB
as a selectable option. Since we'll be using NFS, select Generic
.
Click Submit
(mine shows Save
since this is an existing dataset) once complete.
We'll need to create a shared group so that we can ensure proper access when mounting, and to avoid ending up with nobody
as the group name when mounting over NFS. This group should contain any of your user accounts that will be accessing the share (Starr apps, download clients, etc). It should also match the group and GID
on the host you plan to mount the share to, and run your apps on.
Navigate to Accounts -> Groups, and click Add
at the top right.
You'll arrive at a simple configuration screen like the one shown below. Set your GID
that you plan to use, and name the group. In this example I'm using a GID
of 1215
and a group name of dockermedia
. Since this group won't be used for anything other than share permissions, leave Permit Sudo
and Samba Authentication
unchecked. Click Submit
once complete.
We'll need to create a user (or users if you're using individual user accounts per service) on TrueNAS that matches the user and UID of the user you'll be mounting your share with. It's important that these match since we're not using the Mapall
function that exist under the NFS Share options.
Navigate to Accounts -> Users, and click Add
at the top right.
You'll arrive at a configuration screen like the one shown below. Fill out Full Name
and Username
with the desired username, and set your User ID
that you plan to use.
You'll need to uncheck New Primary Group
so you can manually populate Primary Group
with the shared group you created in the previous step. In this example I'm using a GID of 1215
and a Primary Group
name of dockermedia
. Leave Home Directory
as /nonexistent
, and set Disable Password
to Yes
. Uncheck Samba Authentication
and click Submit
once complete. Home Directory Permissions
aren't important as it's set to /nonexistent
, and we won't ever be accessing it.
Note
If you're using a single, shared user and group setup (1000:1000 is the common one) you can leave New Primary Group checked. Assuming there's not a group that already exists with GID 1000 it will create that group automatically with the same name as the user.
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/#dataset-permissions","title":"Dataset permissions","text":"Now that we have a user and a group, we can set the permissions on the dataset.
Navigate to Storage -> Pools, and click \u22ee on the right side of your target dataset (Media
if you're following my example), then select Edit Permissions
.
You'll arrive at a configuration screen like the one shown below. Under Owner
, fill out your User
and Group
information with your desired user and the shared group you plan to use for your apps. User
isn't super important here if you're using a NFS share and have Group
configured properly, but it would matter if you're doing a single-user share (i.e. if you wanted a single person to have their own dataset -> share to map).
Check the boxes for Apply User
, Apply Group
, and Apply Permissions Recursively
(check Confirm
and click Continue
if you get a popup). Check the Access Mode
boxes as indicated in the image example and click Save
once complete.
Navigate to Sharing -> Unix Shares (NFS), and click Add
at the top right.
Under Paths
you can either use the interactive browser by clicking /mnt
, or just enter the correct Path
. Following along with the previous examples, mine is /mnt/tank/Media
.
Set a Description
if desired (recommended for tracking), and check All dirs
and Enabled
.
Click Advanced Options
to show the rest of the options we need.
Leave Security
alone as the defaults are fine.
At the bottom, you have a couple of options. You can either specify Authorized Networks
for more broad access, or authorize specific hosts (my preferred method). Either way, make sure you use one of these options to ensure that whichever host is mounting the NFS share has access.
Click Submit
once complete.
Navigate to Services and click the edit icon under Actions
on the NFS
row.
Enabling NFSv4
is optional. If you wish to do so you will need to ensure that your NAS and host are on the same domain (verify with hostname -d
), otherwise you'll run into permission issues (indicated by nobody:4294967294
when checking files). Alternatively, enable NFSv3 ownership model for NFSv4
to avoid the domain requirements. Make sure to check Allow non-root mount
under Other Options
.
One of the most important options here is the Number of servers
setting. If you click on the help icon you'll see the help text for this setting, which indicates that you should keep this less than or equal to the number of CPUs reported by sysctl -n kern.smp.cpus
to limit CPU context switching.
Any other options are mostly up to your environment and you should consult standard TrueNAS support paths for assistance.
Click Save
once complete.
Make sure to check Start Automatically
and click the slider under Running
to make sure the service is running correctly and starts at boot.
Follow standard mounting procedures for your operating system/device. In Ubuntu mounting a NFS share is as simple as adding it to /etc/fstab
with <host>:/mnt/tank/Media /mnt/data nfs defaults,_netdev,rw 0 0
, and issuing mount -a
(or rebooting).
Regardless of method, make sure that the device ends up with a data
mount point. The mount point is important since it will allow us to follow the usual guide for folder structure. If you've followed the guide, from a NFS share standpoint the owner and group of the /mnt/data
directory will be the user and group that were previously configured in the Dataset Permissions section. If this is improperly configured you can end up with nobody
as the owner or group, or have permission errors.
Now that you have a data
folder, you can follow the normal folder structure recommendations, such as the one below.
data\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
These subfolders you need to create yourself using your preferred method. Set your permissions accordingly as well. If you use ACLs on the datasets you can replicate the usual 775/664 (UMASK 002) or 755/644 (UMASK 022) recommendation, but this guide only covers the use of basic permissions for mounting and expects the end user to fine-tune permissions via chmod, chown, and uid/gid/umask settings on the applications that will be utilizing the share.
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.
"},{"location":"Hardlinks/How-to-setup-for/Unraid/","title":"unRAID","text":"DO NOT use the template paths from unRAID or the suggested paths from SpaceInvader One
SpaceInvader One YouTube guides are great for learning how to start with unRAID or how to set up certain applications - and yes I did and still do use them.The main reason why he's probably using those paths is because they are predefined in the templates.
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#preparation","title":"Preparation","text":"Make sure Tunable (support Hard Links)
is enabled in your Settings
=> Global Share Settings
.
To get Hardlinks and Atomic-Moves working with unRAID,You will need to make use of ONE share with subfolders.
In this example, I'm using my own setup and the preferred share data
.
Go to your dashboard and select Shares
on the navigation bar, then choose Add Share
.
data
Set up your share with the applicable settings.
unRAID 6.12 (No Cache)unRAID 6.12 (Cache)unRAID 6.11Select the Primary storage
as Array
(shown in the No Cache
tab above).
Primary storage
as Cache
(shown in the Cache
tab above).Secondary storage
as Array
Mover action
is set to Cache -> Array
Choose Yes
on step (2) (unRAID 6.11 tab above). If not using a cache drive, keep this option disabled.
Hardlinks will stay intact if you're using a cache
Click on ADD SHARE
Note
Keep in mind, regarding the use of the cache drive, unRAID's integrated mover cannot move files that are in use, like seeding torrents. You will need to stop/pause the torrents so the mover can move the files from the cache to your array.
If you use qBittorrent you can automate the process by following the following Guide HEREIf you use Deluge you can automate the process by following the following Guide HERE
With Usenet, you won't have any issues.
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#folder-structure","title":"Folder Structure","text":"On the host (unRAID) you will need to add /mnt/user
before it. So /mnt/user/data
data\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
I'm using lower-case on all folders on purpose, being Linux is case-sensitive.
The data
folder has sub-folders for torrents
and usenet
, and each of these has sub-folders for tv
, movie
and music
downloads to keep things organized. The media
folder has nicely named TV
, Movies
and Music
sub-folders, this is where your library resides, and what you\u2019d pass to Plex, Emby or JellyFin.
You will need to create these subfolders yourself. You can do this in any way you prefer, but the fastest way to create all the necessary subfolders would be to use the terminal (explained below). Alternatively, Krusader or WinSCP are popular choices if you are unsure.
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#fastest-way-to-create-the-needed-subfolders","title":"Fastest way to create the needed subfolders","text":"The fastest way to create all the necessary subfolders would be to use the terminal, use a program like PuTTy or use the terminal from the dashboard. These options will automatically create the required subfolders for your media library as well as your preferred download client(s). If you use both torrents and usenet, use both commands.
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#if-you-use-usenet","title":"If you use usenet","text":"mkdir -p /mnt/user/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv,movies,music}}\n
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#if-you-use-torrents","title":"If you use torrents","text":"mkdir -p /mnt/user/data/{torrents/{tv,movies,music},media/{tv,movies,music}}\n
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#breakdown-of-the-folder-structure","title":"Breakdown of the Folder Structure","text":""},{"location":"Hardlinks/How-to-setup-for/Unraid/#bad-path-suggestion","title":"Bad path suggestion","text":"The default path setup suggested by some docker developers that encourages people to use mounts like /movies
, /tv
, /books
or /downloads
is very suboptimal and it makes them look like two or three file systems, even if they aren\u2019t (Because of how Docker\u2019s volumes work). 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.
After you've created all the necessary folders, it's time to set up the Docker container's paths.
Go to your dashboard and select the Docker container you want to edit, or, if you're starting fresh, add the container/App you want to use.
unRAID makes it pretty clear which is the Host Path and Container Path.
Container Path:
=> The path that will be used from inside the container.
Host Path:
=> The actual/absolute path used 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 data. In the torrent software settings, you\u2019ll need to configure your categories/labels to utilize the right path for specific content. You can sort into sub-folders like /data/torrents/{tv|movies|music}
.
data\n\u2514\u2500\u2500 torrents\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#usenet-clients","title":"Usenet clients","text":"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 that it only needs access to the usenet data. In the usenet software settings, you\u2019ll need to configure your paths to sort content into sub-folders like /data/usenet/{tv|movies|music}
.
data\n\u2514\u2500\u2500 usenet\n \u251c\u2500\u2500 incomplete\n \u2514\u2500\u2500 complete\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#the-starr-apps","title":"The Starr Apps","text":"Sonarr, Radarr and Lidarr
Container Path:
=> /data
Host Path:
=> /mnt/user/data/
Info
Sonarr, Radarr and Lidarr get access to everything because the download folder(s) and media folder will need to look like, and be one mount, on the file system. Hard links will work properly and any moves will be atomic, rather than copying and deleting.
data\n\u251c\u2500\u2500 torrents\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u251c\u2500\u2500 usenet\n\u2502 \u251c\u2500\u2500 incomplete\n\u2502 \u2514\u2500\u2500 complete\n\u2502 \u251c\u2500\u2500 books\n\u2502 \u251c\u2500\u2500 movies\n\u2502 \u251c\u2500\u2500 music\n\u2502 \u2514\u2500\u2500 tv\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 books\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#media-server","title":"Media Server","text":"Plex, Emby, JellyFin and Bazarr
Container Path:
=> /data/media
Host Path:
=> /mnt/user/data/media/
Info
Plex, Emby, JellyFin and Bazarr only need access to your media library, which can have any number of sub-folders (Movies, Kids Movies, TV, Documentary TV and/or Music).
data\n\u2514\u2500\u2500 media\n \u251c\u2500\u2500 movies\n \u251c\u2500\u2500 music\n \u251c\u2500\u2500 books\n \u2514\u2500\u2500 tv\n
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#final-result","title":"Final Result","text":""},{"location":"Hardlinks/How-to-setup-for/Unraid/#examples-how-to-set-up-your-paths-inside-your-applications","title":"Examples how to set up your paths INSIDE your applications","text":"Don't forget to look at the Examples of how to set up your paths INSIDE your applications.
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#video-tutorial","title":"Video Tutorial","text":"Big Thanks to IBRACORP for noticing this Guide and creating a Video covering this unRAID section.
The reason why I have this video at the end is because I want the users to ACTUALLY LEARN and UNDERSTAND why it's recommended to use this folder structure prior to going straight to a YouTube video.
Check out other videos from IBRACORP 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.
"},{"location":"Misc/","title":"Misc","text":"Here you will find a collection of random guides I made.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/","title":"Setup TorGuard for port forwarding","text":"Note
These settings are a recommendation if you want to choose other settings be my guest.
If you want to support me, please use this referral link and enter the following discount code:
Get 50% Off ALL Plans (Anonymous VPN, Anonymous VPN Pro, Anonymous VPN Premium)
TRaSH-Guides-2024\n
As of 13 March Torguard Settles Piracy Lawsuit and has agreed to use commercially reasonable efforts to block BitTorrent traffic on its servers in the US using firewall technology.
I Talked to several people and they are still able to use Torguard for Torrents, Perhaps because the connection is encrypted. And others just selected a server in another country.
If the US server doesn't work for you use another country
Source Torguard.
Source Torrentfreak.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#login-to-your-client-area","title":"Login to your Client area","text":"Login to your Client Area.
Example - [Click to show/hide] "},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#create-a-user-account","title":"Create a user account","text":"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.
Example - [Click to show/hide] "},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#how-to-get-the-ip-of-your-vpn-server","title":"How to get the IP of your VPN server","text":"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.
Sometimes you get better speeds if you use one of your neighboring countries.
If the US server doesn't work for you use another country
Let's use for this example: USA Miami
and copy/paste the Hostname us-fl.torguard.org
.
Tip
Also check if your chosen server supports OpenVPN or Wireguard depending what you want to use.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#get-your-vpn-ip","title":"Get your VPN IP","text":"Open a cmd window or something equal and type:
ping us-fl.torguard.org\n
You will then get the IP of the server. Remember that for later use.
Example - [Click to show/hide] "},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#how-to-setup-port-forwarding","title":"How to setup Port forwarding","text":"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.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#port-forward-request","title":"Port Forward Request","text":"From your Client Area go to your My Services.
Then click on Manage
and select Port Forward Request
.
Services
> My Services
> Manage
> Port Forward Request
Choose your preferred VPN Tunnel type.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#ovpn-request-port-forward","title":"OVPN Request Port Forward","text":"OVPN Request Port ForwardIP
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.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#ovpn-config-generator","title":"OVPN Config Generator","text":"OVPN Config Generator - [Click to show/hide]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.
"},{"location":"Misc/how-to-provide-a-docker-compose/","title":"How to provide a docker compose","text":"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 Starr Apps (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\n
Example: sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose sonarr radarr bazarr nzbget\n
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
"},{"location":"Misc/x265-4k/","title":"x265-4k","text":""},{"location":"Misc/x265-4k/#x265","title":"x265","text":"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
"},{"location":"Misc/x265-4k/#microsized-wrong-source","title":"Microsized & Wrong Source","text":"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.
"},{"location":"Misc/x265-4k/#golden-rule","title":"Golden Rule","text":"That's why I created my own golden rule.
4k, transcoding, and you - aka the rules of 4k - a FAQ - Plex.tv
Here I will start adding Tips and Info for plex
"},{"location":"Plex/Tips/4k-transcoding/","title":"JBOPS 4K Transcode Stopping with Tautulli","text":""},{"location":"Plex/Tips/4k-transcoding/#introduction","title":"Introduction","text":"The bane of Plex admins existence... 4K Transcodes. According to Plex's forum post The Rules of 4K the first three rules of collecting 4k content is don\u2019t bother transcoding 4k.
This guide will walk you through getting started with Tautulli and JBOPS. By the end of this guide you'll be able to stop all 4K video transcodes on your server. Note that this does require a Plex Pass to work.
"},{"location":"Plex/Tips/4k-transcoding/#getting-started","title":"Getting Started","text":"git clone https://github.com/blacktwin/JBOPS
into the config dir of your tautulli instance (if dockerized) Install requirements if needed (pip install -r requirements.txt
)
Go to your tautulli and go to the settings menu. In the sidebar, open \u201cNotification Agents\u201d. Create a new Notification Agent.
"},{"location":"Plex/Tips/4k-transcoding/#configuration-tab","title":"Configuration Tab","text":"Script Folder: /config/JBOPS\nScript File: killstream/kill_stream.py\nScript Timeout: 30 (default)\nDescription (optional): 4K Transcode Stopper\n
"},{"location":"Plex/Tips/4k-transcoding/#triggers","title":"Triggers","text":"\u2611\ufe0f Playback Start\n\u2611\ufe0f Playback Resume\n\u2611\ufe0f Transcode Decision Change\n
"},{"location":"Plex/Tips/4k-transcoding/#conditions","title":"Conditions","text":"Condition {1}\nVideo Decision is transcode\n\nCondition {2}\nVideo Resolution is 4k\n\nCondition Logic\n{1} and {2}\n
"},{"location":"Plex/Tips/4k-transcoding/#arguments","title":"Arguments","text":"Under each: Playback Start, Playback Resume, Transcode Decision Change
--jbop stream --username {username} --sessionId {session_id} --killMessage 'Transcoding streams are not allowed for {video_resolution} streams.'\n
"},{"location":"Plex/Tips/Optimal-plex-client-settings/","title":"Optimal Plex Client Settings","text":"So, what are the best Plex Client settings?
I was considering to start fresh on this, but then why reinvent the wheel when someone else already done the research on it?
Here i will add links to 3rd party sites that will provide Optimal settings for all the possible clients that can be used to stream content. While these settings won't be optimal for everyone's setup, they will be for the majority of you.
"},{"location":"Plex/Tips/Optimal-plex-client-settings/#external-links","title":"External Links","text":"The Media Clients Wiki
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.
"},{"location":"Plex/Tips/Plex-media-server/","title":"Suggested Plex Media Server Settings","text":"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
Warning
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
"},{"location":"Plex/Tips/Plex-media-server/#settings","title":"Settings","text":""},{"location":"Plex/Tips/Plex-media-server/#remote-access","title":"Remote Access","text":"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 \u201cper library\u201d.
"},{"location":"Plex/Tips/Plex-media-server/#library","title":"Library","text":""},{"location":"Plex/Tips/Plex-media-server/#scan-my-library-automatically","title":"Scan my library automatically","text":"When a change is detected in the source location for a library\u2019s content, the appropriate library will be scanned. This function relies on the computer\u2019s operating system providing the \u201csomething changed\u201d trigger. Some operating systems don\u2019t provide this trigger and content mounted via a network will also typically not work. If your library doesn\u2019t 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\u2019t 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
"},{"location":"Plex/Tips/Plex-media-server/#run-a-partial-scan-when-changes-are-detected","title":"Run a partial scan when changes are detected","text":"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.
"},{"location":"Plex/Tips/Plex-media-server/#scan-my-library-periodically","title":"Scan my library periodically","text":"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?
"},{"location":"Plex/Tips/Plex-media-server/#empty-trash-automatically-after-every-scan","title":"Empty trash automatically after every scan","text":"With this option enabled, when an item\u2019s 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\u2019s 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)
"},{"location":"Plex/Tips/Plex-media-server/#run-scanner-tasks-at-a-lower-priority","title":"Run scanner tasks at a lower priority","text":"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.
"},{"location":"Plex/Tips/Plex-media-server/#generate-video-preview-thumbnails","title":"Generate video preview thumbnails","text":"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\u2019ll 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\u2019t fill the drive
"},{"location":"Plex/Tips/Plex-media-server/#generate-intro-video-markers","title":"Generate intro video markers","text":"You can choose to have TV episodes analyzed to try and detect when the \u201cintro\u201d 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.
"},{"location":"Plex/Tips/Plex-media-server/#secure-connections","title":"Secure connections","text":"Choose how your Plex Media Server handles secure connections.
Suggested: Preferred
Accept and prefer secure connections when they\u2019re available for a Plex app, but allow regular HTTP connections if the app doesn\u2019t support secure connections or if one can\u2019t be established
"},{"location":"Plex/Tips/Plex-media-server/#preferred-network-interface","title":"Preferred network interface","text":"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.
Warning
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\u2019s 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 \u201cG\u2019Day Mate\u201d 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 \u201clocal\u201d 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.)
"},{"location":"Plex/Tips/Plex-media-server/#treat-wan-ip-as-lan-bandwidth","title":"Treat WAN IP As LAN Bandwidth","text":"Allows incoming requests from this network\u2019s 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.
"},{"location":"Plex/Tips/Plex-media-server/#custom-server-access-urls","title":"Custom server access URLs","text":"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\u2019re 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
"},{"location":"Plex/Tips/Plex-media-server/#transcoders","title":"Transcoders","text":""},{"location":"Plex/Tips/Plex-media-server/#transcoder-quality","title":"Transcoder quality","text":"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.
"},{"location":"Plex/Tips/Plex-media-server/#transcoder-temporary-directory","title":"Transcoder temporary directory","text":"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.
"},{"location":"Plex/Tips/Plex-media-server/#enable-hdr-tone-mapping","title":"Enable HDR tone mapping","text":"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\u2019re running on a very powerful system.
Note
Plex\u2019s tone mapping support should generally be able to produce good color mapping and help avoid the \u201cwashed out\u201d colors that occur when converting HDR content without tone mapping.
"},{"location":"Plex/Tips/Plex-media-server/#use-hardware-acceleration-when-available","title":"Use hardware acceleration when available","text":"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.
Examples - [Click to show/hide](/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
"},{"location":"Plex/Tips/Plex-media-server/#movies","title":"Movies","text":"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\u2019ll 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\u2019t 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\u2019ll 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\u2019t 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.
"},{"location":"Plex/profiles/","title":"Plex Profiles","text":"Info
Here you will find a collection of profiles you only should use if Plex has issues direct playing your media on your devices, these profiles could help but results might vary.
The profiles aren't tested on the Shield 2019 or newer Chromecast models
"},{"location":"Plex/profiles/#how-to","title":"How to","text":"To make use of the profiles you need to add it in your your plex folder
"},{"location":"Plex/profiles/#docker","title":"Docker","text":"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
Tip
If you got some to share, pls make a PR so we can collect them at one place
"},{"location":"Plex/profiles/#android-shield","title":"Android Shield","text":"Please name the file: Android-SHIELD Android TV.xml\n
Shield Profile <?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Client name=\"SHIELD Android TV\">\n <Identification>\n <Header name=\"User-Agent\" substring=\"SHIELD Android TV\" />\n </Identification>\n <TranscodeTargets>\n <VideoProfile container=\"mkv\" codec=\"h264\" audioCodec=\"aac\" context=\"streaming\" />\n <MusicProfile container=\"flac\" codec=\"flac\" id=\"StereoMusicTranscodeProfile\" />\n <PhotoProfile container=\"jpeg\" />\n </TranscodeTargets>\n <DirectPlayProfiles>\n <VideoProfile container=\"mkv\" codec=\"vp9,hevc,h265,mpeg1video,mpeg2video,h264,mpeg4\" audioCodec=\"eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca\" subtitleCodec=\"srt,ass,smi,ssa,subrip,pgs\"/>\n <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\"/>\n <VideoProfile container=\"asf\" codec=\"wmv3,wmv3,vc1\" audioCodec=\"wmav2,wmav2,wmapro,wmavoice,pcm\" subtitleCodec=\"srt,ass,smi,ssa,subrip,pgs\"/>\n <VideoProfile container=\"avi\" codec=\"h264,msmpeg4v3,mpeg4,mjpeg\" audioCodec=\"mp3,ac3,eac3,dca,pcm\" subtitleCodec=\"srt,ass,smi,ssa,subrip,pgs\"/>\n <VideoProfile container=\"mpeg\" codec=\"h264,mpeg1video,mpeg2video\" audioCodec=\"mp2,mp3,ac3,eac3,aac,pcm\" subtitleCodec=\"srt,ass,smi,ssa,subrip,pgs\"/>\n <VideoProfile container=\"flv\" codec=\"h264\" audioCodec=\"aac,ac3,eac3,mp3,pcm\" subtitleCodec=\"srt,ass,smi,ssa,subrip,pgs\"/>\n <VideoProfile container=\"mpegts\" codec=\"h264,mpeg2video,vc1\" audioCodec=\"mp2,mp3,ac3,eac3,dca,pcm\" subtitleCodec=\"srt,ass,smi,ssa,subrip,pgs\"/>\n <VideoProfile container=\"wtv\" codec=\"mpeg2video\" audioCodec=\"ac3,eac3,aac,pcm\"/>\n <VideoProfile container=\"3gpp\" codec=\"h264,mpeg4\" audioCodec=\"aac,he-aac\"/>\n <MusicProfile container=\"mp4\" codec=\"aac\" />\n <MusicProfile container=\"mp3\" codec=\"mp2,mp3\" />\n <MusicProfile container=\"flac\" codec=\"flac\" />\n <MusicProfile container=\"ogg\" codec=\"vorbis\" />\n <MusicProfile container=\"ac3\" codec=\"ac3\"/>\n <MusicProfile container=\"wav\" codec=\"pcm\"/>\n <PhotoProfile container=\"jpeg,gif,bmp,png\" />\n </DirectPlayProfiles>\n <ContainerProfiles>\n <VideoContainer name=\"mp4\">\n <Limitations>\n <Match name=\"part.optimizedForStreaming\" value=\"1\" />\n </Limitations>\n </VideoContainer>\n </ContainerProfiles>\n <CodecProfiles>\n <VideoCodec name=\"*\">\n <Limitations>\n <UpperBound name=\"video.width\" value=\"3840\" isRequired=\"true\" />\n <UpperBound name=\"video.height\" value=\"2160\" isRequired=\"true\" />\n <UpperBound name=\"video.bitDepth\" value=\"10\" />\n </Limitations>\n </VideoCodec>\n <VideoCodec name=\"h264\">\n <Limitations>\n <Match name=\"video.profile\" list=\"baseline|main|high\" />\n </Limitations>\n </VideoCodec>\n <VideoAudioCodec name=\"aac\">\n <Limitations>\n <UpperBound name=\"audio.channels\" value=\"8\" />\n </Limitations>\n </VideoAudioCodec>\n </CodecProfiles>\n</Client>\n
"},{"location":"Plex/profiles/#chromecast","title":"Chromecast","text":"Please name the file: Chromecast.xml\n
Chromecast Profile <?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Client name=\"Chromecast\">\n <!-- Author: xtrap225 -->\n <TranscodeTargets>\n <VideoProfile protocol=\"http\" container=\"mkv\" codec=\"h264\" audioCodec=\"aac,mp3\" context=\"streaming\" />\n <MusicProfile container=\"mkv\" codec=\"opus\" />\n <PhotoProfile container=\"jpeg\" />\n <SubtitleProfile container=\"ass\" codec=\"ass\" />\n </TranscodeTargets>\n <DirectPlayProfiles>\n <VideoProfile container=\"mp4\" codec=\"Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4\" audioCodec=\"aac,mp3,mp2\"/>\n <VideoProfile container=\"mkv\" codec=\"vp9,Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4\" audioCodec=\"aac,mp3,mp2,pcm,flac,alac\" subtitleCodec=\"srt,ass\"/>\n <VideoProfile protocol=\"hls\" container=\"mpegts\" codec=\"h264\" audioCodec=\"aac\" />\n <MusicProfile container=\"mp3\" codec=\"mp2,mp3\"/>\n <MusicProfile container=\"mp4\" codec=\"aac\"/>\n <MusicProfile container=\"flac\" codec=\"flac\"/>\n <MusicProfile container=\"wav\" codec=\"pcm\"/>\n <PhotoProfile container=\"jpeg,png,gif\"/>\n </DirectPlayProfiles>\n<CodecProfiles>\n <VideoCodec name=\"h265,Hevc,vp9\">\n <Limitations>\n <UpperBound name=\"video.width\" value=\"3840\"/>\n <UpperBound name=\"video.height\" value=\"2176\"/>\n <UpperBound name=\"video.bitrate\" value=\"75000\"/>\n </Limitations>\n </VideoCodec>\n <VideoCodec name=\"h264,mpeg4\">\n <Limitations>\n <UpperBound name=\"video.width\" value=\"3840\"/>\n <UpperBound name=\"video.height\" value=\"2176\"/>\n <UpperBound name=\"video.bitrate\" value=\"75000\"/>\n <UpperBound name=\"video.bitDepth\" value=\"10\" />\n <UpperBound name=\"video.level\" value=\"42\" />\n </Limitations>\n </VideoCodec>\n <VideoAudioCodec name=\"aac,mp3\">\n <Limitations>\n <UpperBound name=\"audio.channels\" value=\"2\" />\n </Limitations>\n </VideoAudioCodec>\n </CodecProfiles>\n</Client>\n
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.
"},{"location":"Prowlarr/","title":"Prowlarr","text":"Here you will find a collection of tips for Prowlarr.
Prowlarr is an indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports management of both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Lidarr, Mylar3, Radarr, Readarr, and Sonarr offering complete management of your indexers with no per app Indexer setup required (we do it all).
For Installation and Quick Start Guide please check the official WikiArr
"},{"location":"Prowlarr/#master","title":"Master","text":"(Default/Stable): It has been tested by users on the develop and nightly branches and it\u2019s not known to have any major issues. On GitHub, this is the master
branch.
Prowlarr does not yet have a stable release.
"},{"location":"Prowlarr/#develop","title":"Develop","text":"(Beta): This is the testing edge. Released after tested in nightly to ensure no immediate issues. New features and bug fixes released here first after nightly. It can be considered semi-stable, but is still beta
.
On GitHub, this is a snapshot of the develop
branch at a specific point in time.
(Alpha/Unstable): This is the bleeding edge. It is released as soon as code is committed and passes all automated tests. This build may have not been used by us or other users yet. There is no guarantee that it will even run in some cases. This branch is only recommended for advanced users. Issues and self investigation are expected in this branch.
Use this branch only if you know what you are doing and are willing to get your hands dirty to recover a failed update.
This version is updated immediately.
Warning: You may not be able to go back to develop
after switching to this branch. On GitHub, this is the develop
branch.
External link to the official WikiArr.
"},{"location":"Prowlarr/prowlarr-setup-flaresolverr/","title":"How to setup FlareSolverr","text":"FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection.
Info
Please follow the installation instruction from FlareSolverr
"},{"location":"Prowlarr/prowlarr-setup-flaresolverr/#add-flaresolverr-to-prowlarr","title":"Add FlareSolverr to Prowlarr","text":"Settings
=> indexers
Click on the + sign and select FlareSolverr
Add the following info
1
second and 180
seconds (Default: 60
seconds).Save
.Select the indexer that you want to use with FlareSolverr
Scroll down to the bottom and add the tag you've set up earlier at step 2.
Click Test
and Save
.
Now the indexer should be using FlareSolverr.
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.
"},{"location":"Prowlarr/prowlarr-setup-limited-api/","title":"How to setup indexers with limited API","text":"So you have access to a few (unpaid) usenet indexers with limited API calls and you still want to add them as backup for failed downloads, but you're always hitting the API limits in the first hour and can't make fully use of them.
In this Guide i will show you a trick how you can make more use of them without hitting the API limit in the first hour.
This is mainly a usenet option but might be useful for a few trackers that have rate limits. I will use for this guide mainly usenet indexers as examples.
"},{"location":"Prowlarr/prowlarr-setup-limited-api/#sync-profiles","title":"Sync Profiles","text":"This is the same you see in the Starr apps under indexers when you open the specific indexer settings.
A short description of what they do, what they mean, and when they are used.
Add + Search
, if a \"usenet\" download fails it will search for a replacement, When you click on the Search All
, Search Monitored
or on the magnifying icon
.For this we're going to create 2 new Sync Profiles
Settings
=> Apps
This one will only be used when a item is added to the Starr apps and you do a Add + Search
.If a \"usenet\" download fails it will search for a replacement.When you click on the Search All
, Search Monitored
or on the magnifying icon
.
Click on the + sign and create a new sync profile with the following options.
Automatic Search
This will be only used when you do a interactive search.
Click on the + sign and create a new sync profile with the following options.
Interactive Search
Next up configure the new Sync Profile for the indexer with the limited API.
"},{"location":"Prowlarr/prowlarr-setup-limited-api/#select-sync-profile","title":"Select Sync Profile","text":"In Prowlarr, edit the indexer of your choice and under Sync Profile
you choose one of the two newly created Sync Profiles.
For this example we're going to use Automatic Search
.
In Prowlarr, edit the indexer of your choice and under Query Limit
(API hits) and Grab Limit
(Downloads) you set your indexers API limits, these can be found in several places depending on the indexer, this could be in your profile or when you go to a page where you can select which package you want to buy.
We're adding this to prevent any abuse/hammering to the indexerIgnoring this can sometimes result in a (potentially lifetime) ban.
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.
"},{"location":"Prowlarr/prowlarr-setup-proxy/","title":"Setup proxy for certain indexers","text":"It's not recommended to run the Starr apps through a VPN, what can happen is that the Starr apps doesn't update the posters or metadata or you can't add new movies/tv shows, it doesn't need to happen right away. but sooner or later it can and probably will happen.
To be clear it is not a matter if VPNs will cause issues with the Starr Apps, but when: image providers will block you and cloudflare is in front of most of Starr servers (updates, metadata, etc.) and liable to block you too
Just run VPN on the apps that actually need it, like your torrent client, and perhaps in some cases certain indexers because of region/ISP restriction.
Warning
Please check the indexers rules if you're allowed to use a VPN/Proxy to access their site, being that VPN services often use shared IP it could be recognized as account sharing.
This isn't the same as the tracker, the API/Website scraping happens on the actual site and some indexers don't allow VPN usage on their site.
In this guide i will try to explain how to setup Prowlarr to use your VPN from your torrent client.
"},{"location":"Prowlarr/prowlarr-setup-proxy/#enable-privoxy","title":"Enable privoxy","text":"If you use docker you need to enable enable privoxy in you torrent client so you can use it to passthrough traffic.
Please check your used docker image how to enable privoxy.
"},{"location":"Prowlarr/prowlarr-setup-proxy/#add-privoxy-to-prowlarr","title":"Add privoxy to Prowlarr","text":"Settings
=> indexers
Click on the + sign and select http
Add the following info
Save
.Select the indexer that you want to use with Privoxy
Scroll down to the bottom and add the tag you've set up earlier at step 2.
Click Test
and Save
.
Now the indexer should be using the VPN of your torrent 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.
"},{"location":"Radarr/","title":"Radarr","text":"Here you will find a collection of Radarr Guides I made.
Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them. It can also be configured to automatically upgrade the quality of existing files in the library when a better quality format becomes available.
For Installation and Quick Start Guide please check the official WikiArr
"},{"location":"Radarr/#master","title":"Master","text":"(Default/Stable): It has been tested by users on the develop and nightly branches and it\u2019s not known to have any major issues. This version will receive updates approximately monthly. On GitHub, this is the master
branch.
(Beta): This is the testing edge. Released after tested in nightly to ensure no immediate issues. New features and bug fixes released here first after nightly. It can be considered semi-stable, but is still beta
. This version will receive updates either weekly or biweekly depending on development.
Warning: You may not be able to go back to master
after switching to this branch. On GitHub, this is a snapshot of the develop
branch at a specific point in time.
(Alpha/Unstable) : This is the bleeding edge. It is released as soon as code is committed and passes all automated tests. This build may have not been used by us or other users yet. There is no guarantee that it will even run in some cases. This branch is only recommended for advanced users. Issues and self investigation are expected in this branch.
Use this branch only if you know what you are doing and are willing to get your hands dirty to recover a failed update.
This version is updated immediately.
Warning: You may not be able to go back to master
after switching to this branch. On GitHub, this is the develop
branch.
External link to the official WikiArr.
"},{"location":"Radarr/Radarr-Quality-Settings-File-Size/","title":"Quality Settings (File Size)","text":"I often get the question \"What's the best quality settings to use?\" Well, it's actually personal preference so I will show you my recommendations.
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.
These Quality Settings have been created and tested with info I got from others, and release comparisons from different sources.
FAQ - [Click to show/hide]"},{"location":"Radarr/Radarr-Quality-Settings-File-Size/#faq","title":"FAQ","text":"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 sizes set to max?
A: You probably didn't read the bold text above
Q: When I set Bluray to MAX size I often get ISO's/ Bluray folder structure.
A: You probably 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 proof with a screenshot and the error it shows you when you do an interactive search (non redacted except the indexer/tracker if you want to).
400
is the displayed value for UnlimitedNote
The reason why you don't see the Preferred
score in the table above is because we want max quality anyway. So set it 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.
"},{"location":"Radarr/Radarr-collection-of-custom-formats/","title":"Collection of Custom Formats","text":"Here I will try to list 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 it at Team Radarr, we now have the option to import/export the Custom Formats in a JSON format. This makes it easier to share the 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 Format preferences will be used instead.
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.
"},{"location":"Radarr/Radarr-collection-of-custom-formats/#index","title":"INDEX","text":"Audio Advanced #1 Audio Advanced #2 Audio Channels HDR Formats TrueHD ATMOS FLAC 1.0 Mono DV HDR10+ DTS X PCM 2.0 Stereo DV HDR10 ATMOS (undefined) DTS-HD HRA 3.0 Sound DV DD+ ATMOS AAC 4.0 Sound DV HLG TrueHD DD 5.1 Surround DV SDR DTS-HD MA MP3 6.1 Surround HDR10+ DD+ Opus 7.1 Surround HDR10 DTS-ES 9.1 Surround HDR DTS HDR (undefined) PQ HLG Movie Versions Unwanted HQ Release Groups Streaming Services 4K Remaster 3D Remux Tier 01 Amazon Criterion Collection BR-DISK Remux Tier 02 Apple TV+ Hybrid Extras Remux Tier 03 BBC iPlayer (iP) IMAX Enhanced LQ UHD Bluray Tier 01 Bravia Core IMAX LQ (Release Title) UHD Bluray Tier 02 Crave Masters of Cinema Upscaled UHD Bluray Tier 03 Criterion Channel Open Matte x265 (HD) HD Bluray Tier 01 Disney+ Remaster HD Bluray Tier 02 FOD Special Edition HD Bluray Tier 03 HBO Theatrical Cut WEB Tier 01 HBO Max Vinegar Syndrome WEB Tier 02 Hulu WEB Tier 03 Max Movies Anywhere Netflix OViD Pathe Thuis Peacock TV Paramount+ Stan TVer U-NEXT Misc Optional French Audio Version French Source Groups Dutch Groups AV1 Multi-French FR Remux Tier 01 FreeLeech Bad Dual Groups Multi-Audio FR Remux Tier 02 MPEG2 DV (Disk) French Audio FR UHD Bluray Tier 01 Multi DV (WEBDL) VFF FR UHD Bluray Tier 02 Repack/Proper DV HDR10+ Boost VOF FR HD Bluray Tier 01 Repack2 EVO (no WEBDL) VFI FR HD Bluray Tier 02 x264 HDR10+ Boost VF2 FR WEB Tier 01 x265 HFR VFQ FR WEB Tier 02 Internal VOQ FR Scene Groups Line/Mic Dubbed VQ FR LQ No-RlsGroup VFB Obfuscated VOSTFR Retags FanSUB Scene FastSUB SDR (no WEBDL) SDR VP9 x265 (no HDR/DV) Anime Anime Anime Anime Optional Anime BD Tier 01 (Top SeaDex Muxers) Anime Web Tier 01 (Muxers) v0 Uncensored Anime BD Tier 02 (SeaDex Muxers) Anime Web Tier 02 (Top FanSubs) v1 10bit Anime BD Tier 03 (SeaDex Muxers) Anime Web Tier 03 (Official Subs) v2 Anime Dual Audio Anime BD Tier 04 (SeaDex Muxers) Anime Web Tier 04 (Official Subs) v3 Dubs Only Anime BD Tier 05 (Remuxes) Anime Web Tier 05 (FanSubs) v4 Anime BD Tier 06 (FanSubs) Anime Web Tier 06 (FanSubs) VRV Anime BD Tier 07 (P2P/Scene) Anime Raws Anime BD Tier 08 (Mini Encodes) Anime LQ Groups"},{"location":"Radarr/Radarr-collection-of-custom-formats/#audio-advanced","title":"Audio Advanced","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#truehd-atmos","title":"TrueHD ATMOS","text":"TrueHD ATMOS - [Click to show/hide]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.
JSON - [Click to show/hide]{\n \"trash_id\": \"496f355514737f7d83bf7aa4d24f8169\",\n \"trash_scores\": {\n \"default\": 5000,\n \"sqp-1-1080p\": -10000,\n \"sqp-1-2160p\": -10000\n },\n \"name\": \"TrueHD ATMOS\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"TrueHD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|W4NK3R|HQMUX\"\n }\n },\n {\n \"name\": \"ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(ATMOS|CtrlHD|W4NK3R|DON)(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS X\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?x)\\\\b(?!\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dts-x","title":"DTS X","text":"DTS:X - [Click to show/hide] DTS:X is an object-based audio codec, which aims to create a multi-dimensional sound that \u201cmoves around you like it would in real life\u201d. You may think that sounds a lot like Dolby Atmos, and you\u2019d be right. But where DTS:X differs lies in the required speaker configuration. While Dolby Atmos requires you to add extra overhead channels to your 5.1 or 7.1 setup, DTS:X works with standard surround speaker setups \u2013 just like the one you might already have at home. It can support up to 32 speaker locations and up to an 11.2-channel system. DTS:X like other higher quality DTS formats (e.g. DTS-HD MA) is lossless. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#atmos-undefined","title":"ATMOS (undefined)","text":"ATMOS (undefined) - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#ddplus-atmos","title":"DDPlus ATMOS","text":"DD+ ATMOS - [Click to show/hide] Atmos via UHD Blu-ray will be lossless, or lossy via streaming services so in this case it will be lossy + Atmos TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#truehd","title":"TrueHD","text":"TrueHD - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dts-hd-ma","title":"DTS-HD MA","text":"DTS-HD MA - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#flac","title":"FLAC","text":"FLAC - [Click to show/hide] 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 TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#pcm","title":"PCM","text":"PCM - [Click to show/hide] PCM is the method of encoding typically used for uncompressed digital audio TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dts-hd-hra","title":"DTS-HD HRA","text":"DTS-HD HRA - [Click to show/hide] Technical Whitepaper DTS-HD HRA is the lossy version of DTS-HD MA. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#ddplus","title":"DDPlus","text":" Dolby Digital Plus = DD+ = DDPlus 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). TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dts-es","title":"DTS-ES","text":"DTS-ES - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dts","title":"DTS","text":" DTS = Basic DTS Description placeholder TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#aac","title":"AAC","text":"AAC - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dd","title":"DD","text":" (Basic) Dolby Digital = DD From Wikipedia, the free encyclopedia Dolby Digital, also known as Dolby AC-3, the audio compression is lossy. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#mp3","title":"MP3","text":"MP3 - [Click to show/hide] Description placeholder TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#opus","title":"Opus","text":"Opus - [Click to show/hide] 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 TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#audio-channels","title":"Audio Channels","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#10-mono","title":"1.0 Mono","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#20-stereo","title":"2.0 Stereo","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#30-sound","title":"3.0 Sound","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#40-sound","title":"4.0 Sound","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#51-surround","title":"5.1 Surround","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#61-surround","title":"6.1 Surround","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#71-surround","title":"7.1 Surround","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#91-surround","title":"9.1 Surround","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hdr-formats","title":"HDR Formats","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-hdr10plus","title":"DV HDR10Plus","text":" Dolby Vision = DoVi = DV 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-hdr10","title":"DV HDR10","text":" Dolby Vision = DoVi = DV 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv","title":"DV","text":" Dolby Vision = DoVi = DV 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-hlg","title":"DV HLG","text":" Dolby Vision = DoVi = DV 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-sdr","title":"DV SDR","text":" Dolby Vision = DoVi = DV 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hdr10plus","title":"HDR10Plus","text":" HDR10Plus = HDR10+ HDR10+ enhances upon a pre-existing HDR10 base layer allowing backwards compatibility with HDR10 devices. It adds dynamic metadata for the devices that support it. From Wikipedia, the free encyclopedia HDR10+, also known as HDR10 Plus, is an HDR video format, announced on 20 April 2017. It is the same as HDR10 but with the addition of a system of dynamic metadata developed by Samsung. It is free to use for content creators and has a maximum $10,000 annual license for some manufacturers. It has been positioned as an alternative to Dolby Vision without the same expenses. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hdr10","title":"HDR10","text":" HDR10 HDR10 is the most basic HDR format used in consumer media and is supported by all HDR-supported devices. It adds static metadata upon the PQ10 format. From Wikipedia, the free encyclopedia HDR10 Media Profile, more commonly known as HDR10, is an open HDR standard announced on 27 August 2015 by the Consumer Technology Association. It is the most widespread of the HDR formats. It is not backward compatible with SDR displays. It is technically limited to a maximum of 10,000 nits peak brightness; however, HDR10 content is commonly mastered with a peak brightness between 1000 and 4000 nits. HDR10 lacks dynamic metadata. On HDR10 displays that have lower color volume than the HDR10 content (e.g. lower peak brightness capability), the HDR10 metadata provides information to help the display adjust to the video. The metadata, however, is static and constant with respect to each individual video and doesn't inform the display exactly how the content should be adjusted. The interaction between display capabilities, video metadata, and the ultimate output (i.e. the presentation of the video) is mediated by the display, with the result that the original producer's intent may not be preserved. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hdr","title":"HDR","text":" HDR 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hdr-undefined","title":"HDR (undefined)","text":"HDR (undefined) - [Click to show/hide] 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/HQMUX that doesn't add HDR to their release name but in the feature we can add more to it if needed. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#pq","title":"PQ","text":" PQ = PQ10 PQ10 is the most basic HDR format which all other common formats are based upon. It is the barebones SMPTE 2084 specification and has no metadata. From Wikipedia, the free encyclopedia PQ10, sometimes simply referred as the PQ format, is an HDR format that can be used for both video and still images. It is the same as the HDR10 format without any metadata. It uses the PQ transfer function, Rec. 2020 color primaries and a bit depth of 10-bits. It is not backward compatible with SDR. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hlg","title":"HLG","text":" HLG = HLG10 HLG does not use dynamic metadata and is backwards compatible with SDR devices. It is mostly used in broadcasting. From Wikipedia, the free encyclopedia HLG10, commonly simply referred as the HLG format, is an HDR format that can be used for both video and still images. It uses the HLG transfer function, Rec. 2020 color primaries, and a bit depth of 10 bits. The format is backwards compatible with SDR UHDTV but not with older SDR displays that do not implement the Rec. 2020 color standards. It doesn't use metadata and is royalty free. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#movie-versions","title":"Movie Versions","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#hybrid","title":"Hybrid","text":"Hybrid - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#remaster","title":"Remaster","text":"Remaster - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#4k-remaster","title":"4K Remaster","text":"4K Remaster - [Click to show/hide] 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 colors, 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\u2026) frame-by-frame compression process. Another important element of the Mastered in 4K discs is that they\u2019re all mastered with \u2018x.v.YCC\u2019 color specification. This delivers an expanded color range closer to that contained in original source material. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#criterion-collection","title":"Criterion Collection","text":"Criterion Collection - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#masters-of-cinema","title":"Masters of Cinema","text":"Masters of Cinema - [Click to show/hide] Masters of Cinema is a line of DVD and Blu-ray releases published through Eureka Entertainment. Because of the uniformly branded and spine-numbered packaging and the standard inclusion of booklets and analysis by recurring film historians, the line is often perceived as the UK equivalent of The Criterion Collection. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#vinegar-syndrome","title":"Vinegar Syndrome","text":"Vinegar Syndrome - [Click to show/hide] Vinegar Syndrome is a US-based company founded in 2012 to preserve and distribute old X-rated films. Over time, they expanded their catalog to include other types of cult and exploitation films, specializing in horror and action genres. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#theatrical-cut","title":"Theatrical Cut","text":"Theatrical Cut - [Click to show/hide] The Theatrical Cut is the version of the film that was shown at cinemas. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#special-edition","title":"Special Edition","text":"Special Edition - [Click to show/hide] Custom format for several Special Editions TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#imax","title":"IMAX","text":"IMAX - [Click to show/hide] Description placeholder TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#imax-enhanced","title":"IMAX Enhanced","text":"IMAX Enhanced - [Click to show/hide] IMAX Enhanced: Get More Picture Instead of Black Bars IMAX Enhanced exclusive expanded aspect ratio is 1:90:1, which offers up to 26% more picture for select sequences, meaning more of the action is visible on screen. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#open-matte","title":"Open Matte","text":"Open Matte - [Click to show/hide] Open matte is a filming technique that involves matting out the top and bottom of the film frame in the movie projector (known as a soft matte) for the widescreen theatrical release and then scanning the film without a matte (at Academy ratio) for a full screen home video release. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#unwanted","title":"Unwanted","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#br-disk","title":"BR-DISK","text":"BR-DISK - [Click to show/hide] 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 ( Note Depending on your renaming scheme it could happen that Radarr will match renamed files after they are downloaded and imported as TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#lq","title":"LQ","text":" Low Quality Releases = LQ A collection of known Low Quality groups that are often banned from the the top trackers because their lack of quality, Banned release groups, dishonest release groups or Rips from Scene and quick-to-release P2P groups while adequate, are not considered high quality. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#lq-release-title","title":"LQ (Release Title)","text":" Low Quality Releases = LQ A collection of terms seen in the titles of Low Quality releases that are not captured by using a release group name. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#3d","title":"3D","text":"3D - [Click to show/hide] If you prefer or not prefer 3D. You can use Custom Format or use Restrictions ( TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#x265-hd","title":"x265 (HD)","text":" 720/1080p no x265 = x265 (720/1080p) = x265 (HD) This blocks all 720/1080p (HD) releases that are encoded in x265. In your quality profile use the following score for this Custom Format: 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 TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#microsized-wrong-source","title":"Microsized & Wrong Source","text":" 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. 2160p/4k => x265 Don't use this together with x265 (no HDR/DV), Only ever include one of them This custom format is used to prevent Radarr from grabbing upscaled releases. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#extras","title":"Extras","text":"Extras - [Click to show/hide] This custom format is used to prevent Radarr from grabbing releases containing only extras/bonus material. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#optional","title":"Optional","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#bad-dual-groups","title":"Bad Dual Groups","text":"Bad dual groups - [Click to show/hide] These groups take the original release, then they add their own preferred language (ex. Portuguese) as the main audio track (AAC 2.0), What results after renaming and FFprobe that the media file will be recognized as Portuguese AAC audio. It's a common rule that you add the best audio as first. Also they often even rename the release name in to Portuguese. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-webdl","title":"DV (WEBDL)","text":" Dolby Vision = DoVi = DV This is a special Custom Format that block WEBDLs with Dolby Vision but without HDR10 fallback. You will need to add the following to your new Custom Format when created in your Quality Profile ( This Custom Format works together with the normal DV Custom Format that you can use to prefer Dolby Vision. Most WEBDL from Streaming Services don't have the fallback to HDR10, What can results in playback issues like weird colors (typically a green hue) if you want to play it on a not Dolby Vision compatible setup. Remuxes and Bluray have a fallback to HDR10. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#evo-no-webdl","title":"EVO (no WEBDL)","text":"EVO (no WEBDL) - [Click to show/hide] This group is often banned for the low quality Blu-ray releases, but their WEB-DLs are okay. You will need to add the following to your new Custom Format when created in your Quality Profile ( TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hdr10plus-boost","title":"HDR10Plus Boost","text":"HDR10+ Boost - [Click to show/hide] Optional: use this one only if you have a (Samsung) TV that supports HDR10+ and you don't have a Setup that supports DV or you prefer HDR10+. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-hdr10plus-boost","title":"DV HDR10Plus Boost","text":"DV HDR10+ Boost - [Click to show/hide] Optional: use this one if you want to upgrade from DV HDR10 to DV HDR10+ to support the best of both worlds. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#no-rlsgroup","title":"No-RlsGroup","text":"No-RlsGroup - [Click to show/hide] Some indexers strip out the release group which 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 decent filenames (like not adding release groups) don't add this Custom Format, except if you want to upgrade them. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#obfuscated","title":"Obfuscated","text":"Obfuscated - [Click to show/hide] Optional (use these only if you dislike renamed releases) TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#retags","title":"Retags","text":"Retags - [Click to show/hide] Optional (use these only if you dislike retagged releases) TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#scene","title":"Scene","text":"Scene - [Click to show/hide] This Custom Format will try to recognize so called Scene releases, depending on your preferences you can give it a negative score TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#x265-no-hdrdv","title":"x265 (no HDR/DV)","text":"x265 (no HDR/DV) - [Click to show/hide] This blocks most 720/1080p (HD) releases that are encoded in x265. But it will allow 720/1080p x265 releases if they have HDR and/or DV Being that some NF releases won't be released as 4k, but you want to have DV/HDR releases. In your quality profile use the following score for this Custom Format: Don't use this together with x265 (HD), Only ever include one of them TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#av1","title":"AV1","text":"AV1 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#vp9","title":"VP9","text":"VP9 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#internal","title":"Internal","text":"Internal - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#sdr","title":"SDR","text":"SDR - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#sdr-no-webdl","title":"SDR (no WEBDL)","text":"SDR (no WEBDL) - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-disk","title":"DV (Disk)","text":"DV (Disk) - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#linemic-dubbed","title":"Line/Mic Dubbed","text":"Line/Mic Dubbed - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hfr","title":"HFR","text":"HFR - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#misc","title":"Misc","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#repackproper","title":"Repack/Proper","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#repack2","title":"Repack2","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#x264","title":"x264","text":"x264 - [Click to show/hide] 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. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#x265","title":"x265","text":"x265 - [Click to show/hide] 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. This applies to all releases that are x265/HEVC that are not Remux. Please don't forget to read the following Microsized & Wrong Source TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#freeleech","title":"FreeLeech","text":"FreeLeech - [Click to show/hide] 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. Warning Keep in mind not all trackers support this option. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dutch-groups","title":"Dutch Groups","text":"Dutch Groups - [Click to show/hide] If you prefer movies with also a Dutch audio track. TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#mpeg2","title":"MPEG2","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#multi","title":"Multi","text":"JSON - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hq-release-groups","title":"HQ Release Groups","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#remux-tier-01","title":"Remux Tier 01","text":"Remux Tier 01 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#remux-tier-02","title":"Remux Tier 02","text":"Remux Tier 02 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#remux-tier-03","title":"Remux Tier 03","text":"Remux Tier 03 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#uhd-bluray-tier-01","title":"UHD Bluray Tier 01","text":"UHD Bluray Tier 01 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#uhd-bluray-tier-02","title":"UHD Bluray Tier 02","text":"UHD Bluray Tier 02 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#uhd-bluray-tier-03","title":"UHD Bluray Tier 03","text":"UHD Bluray Tier 03 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hd-bluray-tier-01","title":"HD Bluray Tier 01","text":"HD Bluray Tier 01 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hd-bluray-tier-02","title":"HD Bluray Tier 02","text":"HD Bluray Tier 02 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hd-bluray-tier-03","title":"HD Bluray Tier 03","text":"HD Bluray Tier 03 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#web-tier-01","title":"WEB Tier 01","text":"WEB Tier 01 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#web-tier-02","title":"WEB Tier 02","text":"WEB Tier 02 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#web-tier-03","title":"WEB Tier 03","text":"WEB Tier 03 - [Click to show/hide] TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#streaming-services","title":"Streaming Services","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#amzn","title":"AMZN","text":" Amazon From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#atvp","title":"ATVP","text":" Apple TV+ From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#crit","title":"CRiT","text":" Criterion Channel From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dsnp","title":"DSNP","text":" Disney+ From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hbo","title":"HBO","text":" HBO From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hmax","title":"HMAX","text":" HBO Max From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#max","title":"Max","text":" Max From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hulu","title":"Hulu","text":" Hulu From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#ip","title":"IP","text":" BBC iPlayer From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#nf","title":"NF","text":" Netflix From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#pcok","title":"PCOK","text":" Peacock TV From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#pmtp","title":"PMTP","text":" Paramount+ From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#ma","title":"MA","text":" Movies Anywhere From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#pathe","title":"Pathe","text":" Path\u00e9 Thuis From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#bcore","title":"BCORE","text":" Bravia Core From Sony, no wiki link available TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#stan","title":"STAN","text":" Stan From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#crav","title":"Crav","text":" Crave From Wikipedia, the free encyclopedia TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#ovid","title":"OViD","text":" OViD OViD Website TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#fod","title":"FOD","text":" FOD TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#tver","title":"TVer","text":" TVer TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#u-next","title":"U-NEXT","text":" U-NEXT TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime","title":"Anime","text":""},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-01-top-seadex-muxers","title":"Anime BD Tier 01 (Top SeaDex Muxers)","text":"Anime BD Tier 01 (Top SeaDex Muxers) - [Click to show/hide] Groups that do the best releases as per SeaDex. They are more consistent and trump others TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-02-seadex-muxers","title":"Anime BD Tier 02 (SeaDex Muxers)","text":"Anime BD Tier 02 (SeaDex Muxers) - [Click to show/hide] Groups that do the best releases as per SeaDex. They are more consistent and trump others TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-03-seadex-muxers","title":"Anime BD Tier 03 (SeaDex Muxers)","text":"Anime BD Tier 03 (SeaDex Muxers) - [Click to show/hide] Groups that do the best releases as per SeaDex. They are more consistent and trump others TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-04-seadex-muxers","title":"Anime BD Tier 04 (SeaDex Muxers)","text":"Anime BD Tier 04 (SeaDex Muxers) - [Click to show/hide] Groups that do the best releases as per SeaDex. They are more consistent and trump others TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-05-remuxes","title":"Anime BD Tier 05 (Remuxes)","text":"Anime BD Tier 05 (Remuxes) - [Click to show/hide] Groups that are consistent and do Remuxes TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-06-fansubs","title":"Anime BD Tier 06 (FanSubs)","text":"Anime BD Tier 06 (FanSubs) - [Click to show/hide] FanSub groups that are consistent TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-07-p2pscene","title":"Anime BD Tier 07 (P2P/Scene)","text":"Anime BD Tier 07 (P2P/Scene) - [Click to show/hide] Known P2P and Scene Anime groups TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-bd-tier-08-mini-encodes","title":"Anime BD Tier 08 (Mini Encodes)","text":"Anime BD Tier 08 (Mini Encodes) - [Click to show/hide] Know groups that do mini encodes TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-web-tier-01-muxers","title":"Anime Web Tier 01 (Muxers)","text":"Anime Web Tier 01 (Muxers) - [Click to show/hide] Groups that do the best releases as per SeaDex. They are more consistent and trump others TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-web-tier-02-top-fansubs","title":"Anime Web Tier 02 (Top FanSubs)","text":"Anime Web Tier 02 (Top FanSubs) - [Click to show/hide] Groups that do the best releases as per SeaDex. They are more consistent and trump others TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-web-tier-03-official-subs","title":"Anime Web Tier 03 (Official Subs)","text":"Anime Web Tier 03 Official Subs) - [Click to show/hide] Official sub groups that tend to be more consistent and release fast TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-web-tier-04-official-subs","title":"Anime Web Tier 04 (Official Subs)","text":"Anime Web Tier 04 (Official Subs) - [Click to show/hide] Official sub groups TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#anime-web-tier-05-fansubs","title":"Anime Web Tier 05 (FanSubs)","text":"Anime Web Tier 05 (FanSubs) - [Click to show/hide] FanSub groups that are consistent{\n \"trash_id\": \"2f22d89048b01681dde8afe203bf2e95\",\n \"trash_scores\": {\n \"default\": 4500,\n \"sqp-1-1080p\": -10000,\n \"sqp-1-2160p\": -10000\n },\n \"name\": \"DTS X\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"DTS X\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?x)\\\\b(?!\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"DTS[ .]?[1-9]\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"417804f7f2c4308c1f4c5d380d4c4475\",\n \"trash_scores\": {\n \"default\": 3000,\n \"sqp-1-1080p\": 0,\n \"sqp-1-2160p\": 0\n },\n \"name\": \"ATMOS (undefined)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not RlsGrp (Atmos Only)\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(W4NK3R|HQMUX)\\\\b\"\n }\n },\n {\n \"name\": \"Not TrueHD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"1af239278386be2919e1bcee0bde047e\",\n \"trash_scores\": {\n \"default\": 3000,\n \"sqp-1-1080p\": 135,\n \"sqp-1-2160p\": 135\n },\n \"name\": \"DD+ ATMOS\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(ATMOS|DDPA)(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not TrueHD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"3cafb66171b47f226146a0770576870f\",\n \"trash_scores\": {\n \"default\": 2750,\n \"sqp-1-1080p\": -10000,\n \"sqp-1-2160p\": -10000\n },\n \"name\": \"TrueHD\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"TrueHD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD\"\n }\n },\n {\n \"name\": \"ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not RlsGrp (TrueHD only)\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(CtrlHD|W4NK3R|DON)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"dcf3ec6938fa32445f590a4da84256cd\",\n \"trash_scores\": {\n \"default\": 2500,\n \"sqp-1-1080p\": -10000,\n \"sqp-1-2160p\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/U1asQG/1\",\n \"name\": \"DTS-HD MA\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"DTS-HD MA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?(ma|hd([-_. ]?ma)?|xll))(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not DTS X\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?x)\\\\b(?!\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS-HD HRA/ES\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"dts[-. ]?(es|(hd[. ]?)?(hr|hi))\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"a570d4a0e56a2874b64e5bfa55202a1b\",\n \"trash_scores\": {\n \"default\": 2250,\n \"sqp-1-1080p\": 0,\n \"sqp-1-2160p\": 0\n },\n \"name\": \"FLAC\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e7c2fcae07cbada050a0af3357491d7b\",\n \"trash_scores\": {\n \"default\": 2250,\n \"sqp-1-1080p\": 0,\n \"sqp-1-2160p\": 0\n },\n \"name\": \"PCM\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"8e109e50e0a0b83a5098b056e13bf6db\",\n \"trash_scores\": {\n \"default\": 2000,\n \"sqp-1-1080p\": -10000,\n \"sqp-1-2160p\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/jdUH4x/2\",\n \"name\": \"DTS-HD HRA\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"DTS-HD HRA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"dts[-. ]?(hd[. ]?)?(hra?|hi\\\\b)\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not Basic DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"DTS[ .]?[1-9]\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not DTS X\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?x)\\\\b(?!\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS-ES\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"dts.?es\"\n }\n },\n {\n \"name\": \"Not 6.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]6[ .][0-1]\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"185f1dd7264c4562b9022d963ac37424\",\n \"trash_scores\": {\n \"default\": 1750,\n \"sqp-1-1080p\": 125,\n \"sqp-1-2160p\": 125\n },\n \"name\": \"DD+\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+](?!A)|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"f9f847ac70a0af62ea4a08280b859636\",\n \"trash_scores\": {\n \"default\": 1500,\n \"sqp-1-1080p\": 0,\n \"sqp-1-2160p\": 0\n },\n \"name\": \"DTS-ES\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"DTS-ES\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"dts[-. ]?es\\\\b\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not Basic DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"DTS[ .]?[1-9]\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not DTS X\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?x)\\\\b(?!\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"1c1a4c5e823891c75bc50380a6866f73\",\n \"trash_scores\": {\n \"default\": 1250,\n \"sqp-1-1080p\": 0,\n \"sqp-1-2160p\": 0\n },\n \"trash_regex\": \"https://regex101.com/r/U1asQG/1\",\n \"name\": \"DTS\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Basic DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS-HD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?(ma|hd([-_. ]?ma)?|xll))(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS-HD HRA/ES\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"dts[-. ]?(es|(hd[. ]?)?(hr|hi))\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not DTS X\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dts[-_. ]?x)\\\\b(?!\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"240770601cc226190c367ef59aba7463\",\n \"trash_scores\": {\n \"default\": 1000,\n \"sqp-1-1080p\": 0,\n \"sqp-1-2160p\": 0\n },\n \"name\": \"AAC\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus \",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"c2998bd0d90ed5621d8df281e839436e\",\n \"trash_scores\": {\n \"default\": 750,\n \"sqp-1-1080p\": 115,\n \"sqp-1-2160p\": 115\n },\n \"name\": \"DD\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Basic Dolby Digital\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[^a-z+]|(?<!e)ac3\"\n }\n },\n {\n \"name\": \"Not Dolby Digital Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDD[P+]|\\\\b(e[-_. ]?ac3)\\\\b\"\n }\n },\n {\n \"name\": \"Not TrueHD/ATMOS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"True[ .-]?HD|\\\\bATMOS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DTS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bDTS(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not FLAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bFLAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not AAC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAAC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PCM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(l?)PCM(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"6ba9033150e7896bdc9ec4b44f2b230f\",\n \"trash_scores\": {\n \"default\": 500\n },\n \"name\": \"MP3\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"MP3\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"mp3\"\n }\n }]\n}\n
{\n \"trash_id\": \"a061e2e700f81932daf888599f8a8273\",\n \"trash_scores\": {\n \"default\": 250\n },\n \"trash_regex\": \"https://regex101.com/r/SsIWo3/1\",\n \"name\": \"Opus\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Opus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bOPUS(\\\\b|\\\\d)(?!.*[ ._-](\\\\d{3,4}p))\"\n }\n },\n {\n \"name\": \"Not OPUS Release Group\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"OPUS\"\n }\n }]\n}\n
{\n \"trash_id\": \"b124be9b146540f8e62f98fe32e49a2a\",\n \"name\": \"1.0 Mono\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Mono\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]1[ .]0|\\\\bMono\\\\b|\\\\[PCM \\\\]\"\n }\n },\n {\n \"name\": \"Not Stereo\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9]2[ .]0|\\\\bStereo\\\\b\"\n }\n },\n {\n \"name\": \"Not 3.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]3[ .]0\"\n }\n },\n {\n \"name\": \"Not 4.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]4[ .]0\"\n }\n },\n {\n \"name\": \"Not High Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][5-9][ .][0-1]\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"89dac1be53d5268a7e10a19d3c896826\",\n \"name\": \"2.0 Stereo\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Stereo\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9]2[ .]0|\\\\bStereo\\\\b\"\n }\n },\n {\n \"name\": \"Not 3.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]3[ .]0\"\n }\n },\n {\n \"name\": \"Not 4.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]4[ .]0\"\n }\n },\n {\n \"name\": \"Not High Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][5-9][ .][0-1]\"\n }\n },\n {\n \"name\": \"Not Mono\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]1[ .]0|\\\\bMono\\\\b|\\\\[PCM \\\\]\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"205125755c411c3b8622ca3175d27b37\",\n \"name\": \"3.0 Sound\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"3.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]3[ .]0\"\n }\n },\n {\n \"name\": \"Not Mono\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]1[ .]0|\\\\bMono\\\\b|\\\\[PCM \\\\]\"\n }\n },\n {\n \"name\": \"Not Stereo\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9]2[ .]0|\\\\bStereo\\\\b\"\n }\n },\n {\n \"name\": \"Not 4.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]4[ .]0\"\n }\n },\n {\n \"name\": \"Not High Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][5-9][ .][0-1]\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"373b58bd188fc00c817bd8c7470ea285\",\n \"name\": \"4.0 Sound\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"4.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]4[ .]0\"\n }\n },\n {\n \"name\": \"Not Mono\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]1[ .]0|\\\\bMono\\\\b|\\\\[PCM \\\\]\"\n }\n },\n {\n \"name\": \"Not Stereo\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9]2[ .]0|\\\\bStereo\\\\b\"\n }\n },\n {\n \"name\": \"Not 3.0ch\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]3[ .]0\"\n }\n },\n {\n \"name\": \"Not High Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][5-9][ .][0-1]\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"77ff61788dfe1097194fd8743d7b4524\",\n \"name\": \"5.1 Surround\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"5.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]5[ .][0-1]\"\n }\n },\n {\n \"name\": \"Not 7.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][7-8][ .][0-1]\"\n }\n },\n {\n \"name\": \"Not 9.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]9[ .][0-1]\"\n }\n },\n {\n \"name\": \"Not Low Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9][1-4][ .][0-1]|\\\\b(Stereo|Mono)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"6fd7b090c3f7317502ab3b63cc7f51e3\",\n \"name\": \"6.1 Surround\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"6.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]6[ .][0-1]\"\n }\n },\n {\n \"name\": \"Not 7.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][7-8][ .][0-1]\"\n }\n },\n {\n \"name\": \"Not 9.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]9[ .][0-1]\"\n }\n },\n {\n \"name\": \"Not Low Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9][1-4][ .][0-1]|\\\\b(Stereo|Mono)\\\\b\"\n }\n },\n {\n \"name\": \"Not 5.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]5[ .][0-1]\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e77382bcfeba57cb83744c9c5449b401\",\n \"name\": \"7.1 Surround\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"7.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][7-8][ .][0-1]\"\n }\n },\n {\n \"name\": \"Not 9.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]9[ .][0-1]\"\n }\n },\n {\n \"name\": \"Not Low Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9][1-4][ .][0-1]|\\\\b(Stereo|Mono)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"f2aacebe2c932337fe352fa6e42c1611\",\n \"name\": \"9.1 Surround\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"9.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9]9[ .][0-1]\"\n }\n },\n {\n \"name\": \"Not 7.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][7-8][ .][0-1]\"\n }\n },\n {\n \"name\": \"Not 5.1 Surround\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"[^0-9][5-6][ .][0-1]\"\n }\n },\n {\n \"name\": \"Not Low Channel Count\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!repac)[^0-9][1-4][ .][0-1]|\\\\b(Stereo|Mono)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"c53085ddbd027d9624b320627748612f\",\n \"trash_scores\": {\n \"default\": 1500\n },\n \"trash_regex\": \"https://regex101.com/r/60gMpz/1\",\n \"name\": \"DV HDR10+\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"DV HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b((HDR10(?=(P(lus)?)\\\\b|\\\\+))))\"\n }\n },\n {\n \"name\": \"Not DV HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]SDR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e23edd2482476e595fb990b12e7c609c\",\n \"trash_scores\": {\n \"default\": 1500\n },\n \"trash_regex\": \"https://regex101.com/r/voMQ5g/1\",\n \"name\": \"DV HDR10\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"DV HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b((HDR10(?!(P(lus)?)\\\\b|\\\\+))|(HDR))\\\\b)\"\n }\n },\n {\n \"name\": \"Not DV HDR10Plus\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b((HDR10(?=(P(lus)?)\\\\b|\\\\+))))\"\n }\n },\n {\n \"name\": \"Not DV HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]SDR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"58d6a88f13e2db7f5059c41047876f00\",\n \"trash_scores\": {\n \"default\": 1500\n },\n \"name\": \"DV\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b(HDR(10)?(P(lus)?)?)\\\\b)\"\n }\n },\n {\n \"name\": \"Not DV HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]SDR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"55d53828b9d81cbe20b02efd00aa0efd\",\n \"trash_scores\": {\n \"default\": 1500\n },\n \"name\": \"DV HLG\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"DV HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b(HDR(10)?(P(lus)?)?)\\\\b)\"\n }\n },\n {\n \"name\": \"Not DV SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]SDR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"a3e19f8f627608af0211acd02bf89735\",\n \"trash_scores\": {\n \"default\": 1500\n },\n \"name\": \"DV SDR\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"DV SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]SDR)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b(HDR(10)?(P(lus)?)?)\\\\b)\"\n }\n },\n {\n \"name\": \"Not DV HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]HLG)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"b974a6cd08c1066250f1f177d7aa1225\",\n \"trash_scores\": {\n \"default\": 600\n },\n \"trash_regex\": \"https://regex101.com/r/hCAQEO/4\",\n \"name\": \"HDR10+\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\+|P(lus)?\\\\b)\"\n }\n },\n {\n \"name\": \"Not DV HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b(HDR(10)?(P(lus)?)?)\\\\b)\"\n }\n },\n {\n \"name\": \"Not PQ\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(PQ)\\\\b\"\n }\n },\n {\n \"name\": \"Not HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bSDR(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"dfb86d5941bc9075d6af23b09c2aeecd\",\n \"trash_scores\": {\n \"default\": 500\n },\n \"name\": \"HDR10\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\b[^+|Plus])\"\n }\n },\n {\n \"name\": \"Not DV HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b(HDR(10)?(P(lus)?)?)\\\\b)\"\n }\n },\n {\n \"name\": \"Not PQ\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(PQ)\\\\b\"\n }\n },\n {\n \"name\": \"Not HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bSDR(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e61e28db95d22bedcadf030b8f156d96\",\n \"trash_scores\": {\n \"default\": 500\n },\n \"name\": \"HDR\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"HDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HDR)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n },\n {\n \"name\": \"Not HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\b[^+|Plus])\"\n }\n },\n {\n \"name\": \"Not HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\+|P(lus)?\\\\b)\"\n }\n },\n {\n \"name\": \"Not HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHLG(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not PQ\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(PQ)\\\\b\"\n }\n },\n {\n \"name\": \"Not RlsGrp (Missing HDR)\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(FraMeSToR|HQMUX|SiCFoI)\\\\b\"\n }\n },\n {\n \"name\": \"Not SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bSDR(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"2a4d9069cc1fe3242ff9bdaebed239bb\",\n \"trash_scores\": {\n \"default\": 500\n },\n \"name\": \"HDR (undefined)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"RlsGrp (Missing HDR)\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(FraMeSToR|HQMUX|SiCFoI)\\\\b\"\n }\n },\n {\n \"name\": \"2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"Not DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n },\n {\n \"name\": \"Not HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\b[^+|Plus])\"\n }\n },\n {\n \"name\": \"Not HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\+|P(lus)?\\\\b)\"\n }\n },\n {\n \"name\": \"Not HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not PQ\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(PQ)\\\\b\"\n }\n },\n {\n \"name\": \"Not SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bSDR(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"08d6d8834ad9ec87b1dc7ec8148e7a1f\",\n \"trash_scores\": {\n \"default\": 500\n },\n \"name\": \"PQ\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"PQ\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(PQ)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n },\n {\n \"name\": \"Not HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\+|P(lus)?\\\\b)\"\n }\n },\n {\n \"name\": \"Not HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\b[^+|Plus])\"\n }\n },\n {\n \"name\": \"Not HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bSDR(\\\\b|\\\\d)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"9364dd386c9b4a1100dde8264690add7\",\n \"trash_scores\": {\n \"default\": 500\n },\n \"name\": \"HLG\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n },\n {\n \"name\": \"Not HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\+|P(lus)?\\\\b)\"\n }\n },\n {\n \"name\": \"Not HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\b[^+|Plus])\"\n }\n },\n {\n \"name\": \"Not PQ\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(PQ)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"0f12c086e289cf966fa5948eac571f44\",\n \"trash_scores\": {\n \"default\": 100\n },\n \"name\": \"Hybrid\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Hybrid\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\bhybrid(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Hybrid Release Group\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HYBRID)\\\\b\"\n }\n },\n {\n \"name\": \"Remux\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n }\n ]\n}\n
{\n \"trash_id\": \"570bc9ebecd92723d2d21500f4be314c\",\n \"trash_scores\": {\n \"default\": 25\n },\n \"name\": \"Remaster\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Remaster\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"Remaster\"\n }\n },\n {\n \"name\": \"Not 4K Remaster\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"4K\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"eca37840c13c6ef2dd0262b141a5482f\",\n \"trash_scores\": {\n \"default\": 25\n },\n \"name\": \"4K Remaster\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Remaster\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"Remaster\"\n }\n },\n {\n \"name\": \"4K\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"4k\"\n }\n },\n {\n \"name\": \"Not 4K Resolution\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e0c07d59beb37348e975a930d5e50319\",\n \"trash_scores\": {\n \"default\": 25\n },\n \"name\": \"Criterion Collection\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Criterion\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Criterion)\\\\b\"\n }\n },\n {\n \"name\": \"CC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CC)\\\\b\"\n }\n },\n {\n \"name\": \"Not Criterion RlsGrp\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(Criterion)$\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"9d27d9d2181838f76dee150882bdc58c\",\n \"trash_scores\": {\n \"default\": 25\n },\n \"name\": \"Masters of Cinema\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Masters of Cinema\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Masters[ .-]?Of[ .-]?Cinema)(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"MoC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MoC)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"db9b4c4b53d312a3ca5f1378f6440fc9\",\n \"trash_scores\": {\n \"default\": 25\n },\n \"name\": \"Vinegar Syndrome\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Vinegar Syndrome\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Vinegar[ ._-]Syndrome)\\\\b\"\n }\n },\n {\n \"name\": \"VS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(V-S)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e9001909a4c88013a359d0b9920d7bea\",\n \"name\": \"Theatrical Cut\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Theatrical\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"Theatrical\"\n }\n }]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"957d0f44b592285f26449575e8b1167e\",\n \"trash_scores\": {\n \"default\": 125\n },\n \"trash_regex\": \"https://regex101.com/r/44pLFg/1\",\n \"name\": \"Special Edition\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Special Edition\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!^|{)\\\\b(extended|uncut|directors|special|unrated|uncensored|cut|version|edition)(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not IMAX Edition\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(IMAX[ ._-]Edition)\\\\b\"\n }\n },\n {\n \"name\": \"Not Open Matte\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(Open[ ._-]?Matte)\\\\b\"\n }\n },\n {\n \"name\": \"Not Theatrical\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"Theatrical\"\n }\n },\n {\n \"name\": \"Not Extended Clip\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(Extended[ ._-]Clip)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"eecf3a857724171f968a66cb5719e152\",\n \"trash_scores\": {\n \"default\": 800\n },\n \"trash_regex\": \"https://regex101.com/r/e7ugxU/1\",\n \"name\": \"IMAX\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"IMAX\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b((?<!NON[ ._-])IMAX)\\\\b\"\n }\n },\n {\n \"name\": \"NOT: IMAX Enhanced\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b((DSNP|Disney\\\\+|BC|B?CORE)(?=[ ._-]web[ ._-]?(dl|rip)\\\\b)))(?=.*\\\\b((?<!NON[ ._-])IMAX)\\\\b)|^(?=.*\\\\b(IMAX[ ._-]Enhanced)\\\\b)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"9f6cbff8cfe4ebbc1bde14c7b7bec0de\",\n \"trash_scores\": {\n \"default\": 800\n },\n \"trash_regex\": \"https://regex101.com/r/e7ugxU/1\",\n \"name\": \"IMAX Enhanced\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"IMAX Enhanced\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b((DSNP|Disney\\\\+|BC|B?CORE)(?=[ ._-]web[ ._-]?(dl|rip)\\\\b)))(?=.*\\\\b((?<!NON[ ._-])IMAX)\\\\b)|^(?=.*\\\\b(IMAX[ ._-]Enhanced)\\\\b)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"09d9dd29a0fc958f9796e65c2a8864b4\",\n \"trash_scores\": {\n \"default\": 25\n },\n \"name\": \"Open Matte\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Open Matte\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Open[ ._-]?Matte)\\\\b\"\n }\n }\n ]\n}\n
Setting
=> Profiles
) and then set the score to -10000
.BR-DISK
, This is a cosmetic annoyance until I come up with 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:
JSON - [Click to show/hide] {\n \"trash_id\": \"ed38b889b31be83fda192888e2286d83\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/UpA3I7/2\",\n \"name\": \"BR-DISK\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"BR-DISK\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?!.*\\\\b((?<!HD[._ -]|HD)DVD|BDRip|720p|MKV|XviD|WMV|d3g|(BD)?REMUX|^(?=.*1080p)(?=.*HEVC)|[xh][-_. ]?26[45]|German.*[DM]L|((?<=\\\\d{4}).*German.*([DM]L)?)(?=.*\\\\b(AVC|HEVC|VC[-_. ]?1|MVC|MPEG[-_. ]?2)\\\\b))\\\\b)(((?=.*\\\\b(Blu[-_. ]?ray|BD|HD[-_. ]?DVD)\\\\b)(?=.*\\\\b(AVC|HEVC|VC[-_. ]?1|MVC|MPEG[-_. ]?2|BDMV|ISO)\\\\b))|^((?=.*\\\\b(((?=.*\\\\b((.*_)?COMPLETE.*|Dis[ck])\\\\b)(?=.*(Blu[-_. ]?ray|HD[-_. ]?DVD)))|3D[-_. ]?BD|BR[-_. ]?DISK|Full[-_. ]?Blu[-_. ]?ray|^((?=.*((BD|UHD)[-_. ]?(25|50|66|100|ISO)))))))).*\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"90a6f9a284dff5103f6346090e6280c8\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"LQ\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"24xHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(24xHD)\\\\b\"\n }\n },\n {\n \"name\": \"41RGB\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(41RGB)$\"\n }\n },\n {\n \"name\": \"4K4U\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(4K4U)$\"\n }\n },\n {\n \"name\": \"AROMA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(AROMA)$\"\n }\n },\n {\n \"name\": \"aXXo\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(aXXo)$\"\n }\n },\n {\n \"name\": \"AZAZE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(AZAZE)$\"\n }\n },\n {\n \"name\": \"BARC0DE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BARC0DE)$\"\n }\n },\n {\n \"name\": \"BdC\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BdC)$\"\n }\n },\n {\n \"name\": \"beAst\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(beAst)$\"\n }\n },\n {\n \"name\": \"C4K\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(C4K)$\"\n }\n },\n {\n \"name\": \"CDDHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CDDHD)$\"\n }\n },\n {\n \"name\": \"CHAOS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CHAOS)$\"\n }\n },\n {\n \"name\": \"CHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CHD)$\"\n }\n },\n {\n \"name\": \"CiNE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CiNE)$\"\n }\n },\n {\n \"name\": \"CREATiVE24\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CREATiVE24)$\"\n }\n },\n {\n \"name\": \"CrEwSaDe\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CrEwSaDe)$\"\n }\n },\n {\n \"name\": \"CTFOH\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CTFOH)$\"\n }\n },\n {\n \"name\": \"d3g\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(d3g)$\"\n }\n },\n {\n \"name\": \"DDR\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(DDR)$\"\n }\n },\n {\n \"name\": \"DepraveD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(DepraveD)$\"\n }\n },\n {\n \"name\": \"DNL\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(DNL)$\"\n }\n },\n {\n \"name\": \"EPiC\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(EPiC)$\"\n }\n },\n {\n \"name\": \"EuReKA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(EuReKA)$\"\n }\n },\n {\n \"name\": \"FaNGDiNG0\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FaNGDiNG0)$\"\n }\n },\n {\n \"name\": \"FGT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FGT)$\"\n }\n },\n {\n \"name\": \"FRDS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FRDS)$\"\n }\n },\n {\n \"name\": \"FZHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FZHD)$\"\n }\n },\n {\n \"name\": \"GalaxyRG\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(GalaxyRG)$\"\n }\n },\n {\n \"name\": \"GHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(GHD)$\"\n }\n },\n {\n \"name\": \"GPTHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(GPTHD)$\"\n }\n },\n {\n \"name\": \"HDS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HDS)$\"\n }\n },\n {\n \"name\": \"HDT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HDT)$\"\n }\n },\n {\n \"name\": \"HDTime\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HDTime)$\"\n }\n },\n {\n \"name\": \"HDWinG\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HDWinG)$\"\n }\n },\n {\n \"name\": \"iNTENSO\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(iNTENSO)$\"\n }\n },\n {\n \"name\": \"iPlanet\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(iPlanet)$\"\n }\n },\n {\n \"name\": \"jennaortega\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(jennaortega(UHD)?)$\"\n }\n },\n {\n \"name\": \"JFF\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(JFF)$\"\n }\n },\n {\n \"name\": \"KiNGDOM\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(KiNGDOM)$\"\n }\n },\n {\n \"name\": \"KIRA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(KIRA)$\"\n }\n },\n {\n \"name\": \"L0SERNIGHT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(L0SERNIGHT)$\"\n }\n },\n {\n \"name\": \"LAMA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(LAMA)$\"\n }\n },\n {\n \"name\": \"Leffe\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Leffe)$\"\n }\n },\n {\n \"name\": \"Liber8\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Liber8)$\"\n }\n },\n {\n \"name\": \"LiGaS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(LiGaS)$\"\n }\n },\n {\n \"name\": \"MarkII\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(MarkII)$\"\n }\n },\n {\n \"name\": \"MeGusta\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(MeGusta)$\"\n }\n },\n {\n \"name\": \"mHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(mHD)$\"\n }\n },\n {\n \"name\": \"mSD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(mSD)$\"\n }\n },\n {\n \"name\": \"MTeam\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(MTeam|MT)$\"\n }\n },\n {\n \"name\": \"MySiLU\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(MySiLU)$\"\n }\n },\n {\n \"name\": \"NhaNc3\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NhaNc3)$\"\n }\n },\n {\n \"name\": \"nHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(nHD)$\"\n }\n },\n {\n \"name\": \"nikt0\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(nikt0)$\"\n }\n },\n {\n \"name\": \"NoGroup\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"NoGr(ou)?p\"\n }\n },\n {\n \"name\": \"nSD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(nSD)$\"\n }\n },\n {\n \"name\": \"OFT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(OFT)$\"\n }\n },\n {\n \"name\": \"Pahe\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"Pahe(\\\\.(ph|in))?\\\\b\"\n }\n },\n {\n \"name\": \"PATOMiEL\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PATOMiEL)$\"\n }\n },\n {\n \"name\": \"PiRaTeS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PiRaTeS)$\"\n }\n },\n {\n \"name\": \"PRODJi\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PRODJi)$\"\n }\n },\n {\n \"name\": \"PSA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PSA)$\"\n }\n },\n {\n \"name\": \"PTNK\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PTNK)$\"\n }\n },\n {\n \"name\": \"RARBG\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(RARBG)$\"\n }\n },\n {\n \"name\": \"RDN\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(RDN)$\"\n }\n },\n {\n \"name\": \"RiffTrax\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Rifftrax)$\"\n }\n },\n {\n \"name\": \"RU4HD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(RU4HD)$\"\n }\n },\n {\n \"name\": \"SANTi\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SANTi)$\"\n }\n },\n {\n \"name\": \"Scene\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Scene)$\"\n }\n },\n {\n \"name\": \"STUTTERSHIT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(STUTTERSHIT)$\"\n }\n },\n {\n \"name\": \"SWTYBLZ\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SWTYBLZ)$\"\n }\n },\n {\n \"name\": \"tarunk9c\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(tarunk9c)$\"\n }\n },\n {\n \"name\": \"TBS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TBS)$\"\n }\n },\n {\n \"name\": \"TEKNO3D\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TEKNO3D)$\"\n }\n },\n {\n \"name\": \"Tigole\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Tigole)$\"\n }\n },\n {\n \"name\": \"TIKO\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TIKO)$\"\n }\n },\n {\n \"name\": \"VISIONPLUSHDR\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(VISIONPLUSHDR(-X|1000)?)$\"\n }\n },\n {\n \"name\": \"WAF\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(WAF)$\"\n }\n },\n {\n \"name\": \"WiKi\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(WiKi)$\"\n }\n },\n {\n \"name\": \"x0r\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(x0r)$\"\n }\n },\n {\n \"name\": \"YIFY\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(YIFY)$\"\n }\n },\n {\n \"name\": \"YTS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(YTS(.(MX|LT|AG))?)$\"\n }\n },\n {\n \"name\": \"Zeus\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Zeus)$\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e204b80c87be9497a8a6eaff48f72905\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"LQ (Release Title)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"1XBET\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(1XBET)\\\\b\"\n }\n },\n {\n \"name\": \"BiTOR (2160p)\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"(?=.*?(\\\\b2160p\\\\b))(?=.*?(\\\\bBiTOR\\\\b))\"\n }\n },\n {\n \"name\": \"jennaortega\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"(?<!-)\\\\b(jennaortega(UHD)?)\\\\b\"\n }\n },\n {\n \"name\": \"TeeWee\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(TeeWee)\\\\b\"\n }\n },\n {\n \"name\": \"Will1869\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Will1869)\\\\b\"\n }\n }\n ]\n}\n
Settings
=> Indexers
=> Restrictions
) what ever you prefer.{\n \"trash_id\": \"b8cd450cbfa689c0259a01d9e29ba3d6\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/hpjKw9/1\",\n \"name\": \"3D\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"3D\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(3d|sbs|half[ .-]ou|half[ .-]sbs)\\\\b\"\n }\n },\n {\n \"name\": \"BluRay3D\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(BluRay3D)\\\\b\"\n }\n },\n {\n \"name\": \"BD3D\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(BD3D)\\\\b\"\n }\n }\n ]\n}\n
-10000
{\n \"trash_id\": \"dc98083864ea246d05a42df0d05f81cc\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"x265 (HD)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"x265/HEVC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[xh][ ._-]?265|\\\\bHEVC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not 2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n }\n ]\n}\n
"},{"location":"Radarr/Radarr-collection-of-custom-formats/#upscaled","title":"Upscaled","text":"Upscaled - [Click to show/hide] {\n \"trash_id\": \"bfd8eb01832d646a0a89c4deb46f8564\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/zOaqyg/1\",\n \"name\": \"Upscaled\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"AI Upscales\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(HEVC)\\\\b)(?=.*\\\\b(AI)\\\\b)\"\n }\n },\n {\n \"name\": \"Regrade\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Re-?grade)\\\\b\"\n }\n },\n {\n \"name\": \"TheUpscaler\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(The[ ._-]Upscaler)\\\\b\"\n }\n },\n {\n \"name\": \"Upscaled\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Up(s(caled?|UHD)|(Rez)))\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"0a3f082873eb454bde444150b70253cc\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/nzK5TQ/1\",\n \"name\": \"Extras\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Extras\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<=\\\\b[12]\\\\d{3}\\\\b).*\\\\b(Extras|Bonus|Extended[ ._-]Clip)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"b6832f586342ef70d9c128d40c07b872\",\n \"trash_scores\": {\n \"default\": -10000,\n \"french-multi\": 0\n },\n \"name\": \"Bad Dual Groups\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"alfaHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(alfaHD.*)$\"\n }\n },\n {\n \"name\": \"BAT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BAT)$\"\n }\n },\n {\n \"name\": \"BlackBit\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BlackBit)$\"\n }\n },\n {\n \"name\": \"BNd\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BNd)$\"\n }\n },\n {\n \"name\": \"C.A.A\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(C\\\\.A\\\\.A)$\"\n }\n },\n {\n \"name\": \"Cory\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Cory)$\"\n }\n },\n {\n \"name\": \"EXTREME\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(EXTREME)$\"\n }\n },\n {\n \"name\": \"FF\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FF)$\"\n }\n },\n {\n \"name\": \"FOXX\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FOXX)$\"\n }\n },\n {\n \"name\": \"G4RiS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(G4RiS)$\"\n }\n },\n {\n \"name\": \"GUEIRA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(GUEIRA)$\"\n }\n },\n {\n \"name\": \"LCD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(LCD)$\"\n }\n },\n {\n \"name\": \"N3G4N\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(N3G4N)$\"\n }\n },\n {\n \"name\": \"ONLYMOViE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(ONLYMOViE)$\"\n }\n },\n {\n \"name\": \"PD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PD)$\"\n }\n },\n {\n \"name\": \"PTHome\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PTHome)$\"\n }\n },\n {\n \"name\": \"RiPER\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(RiPER)$\"\n }\n },\n {\n \"name\": \"RK\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(RK)$\"\n }\n },\n {\n \"name\": \"SiGLA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SiGLA)$\"\n }\n },\n {\n \"name\": \"Tars\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Tars)$\"\n }\n },\n {\n \"name\": \"TvR\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TvR)$\"\n }\n },\n {\n \"name\": \"vnlls\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(vnlls)$\"\n }\n },\n {\n \"name\": \"WTV\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(WTV)$\"\n }\n },\n {\n \"name\": \"Yatogam1\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Yatogam1)$\"\n }\n },\n {\n \"name\": \"YusukeFLA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(YusukeFLA)$\"\n }\n },\n {\n \"name\": \"ZigZag\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(ZigZag)$\"\n }\n },\n {\n \"name\": \"ZNM\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(ZNM)$\"\n }\n }\n ]\n}\n
Setting
=> Profiles
) and then set the score to -10000
.{\n \"trash_id\": \"923b6abef9b17f937fab56cfcf89e1f1\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"DV (WEBDL)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Dolby Vision\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?V(ision)?)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"Not RlsGrp\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(Flights)\\\\b\"\n }\n },\n {\n \"name\": \"Not HDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Hulu\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(hulu)\\\\b\"\n }\n }\n ]\n}\n
Setting
=> Profiles
) and then set the score to -10000
.{\n \"trash_id\": \"90cedc1fea7ea5d11298bebd3d1d3223\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"EVO (no WEBDL)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"EVO\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(EVO(TGX)?)$\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"b17886cb4158d9fea189859409975758\",\n \"trash_scores\": {\n \"default\": 901\n },\n \"trash_regex\": \"https://regex101.com/r/hCAQEO/4\",\n \"name\": \"HDR10+ Boost\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bHDR10(\\\\+|P(lus)?\\\\b)\"\n }\n },\n {\n \"name\": \"Not DV HDR10\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b(HDR(10)?(P(lus)?)?)\\\\b)\"\n }\n },\n {\n \"name\": \"Not PQ\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(PQ)\\\\b\"\n }\n },\n {\n \"name\": \"Not HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bSDR(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"55a5b50cb416dea5a50c4955896217ab\",\n \"trash_scores\": {\n \"default\": 100\n },\n \"trash_regex\": \"https://regex101.com/r/60gMpz/1\",\n \"name\": \"DV HDR10+ Boost\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"DV HDR10+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*\\\\b(DV|DoVi|Dolby[ .]?V(ision)?)\\\\b)(?=.*\\\\b((HDR10(?=(P(lus)?)\\\\b|\\\\+))))\"\n }\n },\n {\n \"name\": \"Not DV HLG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]HLG)\\\\b\"\n }\n },\n {\n \"name\": \"Not DV SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(DV[ .]SDR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"ae9b7c9ebde1f3bd336a8cbd1ec4c5e5\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"No-RlsGroup\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"No Parsed Group\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": true,\n \"required\": false,\n \"fields\": {\n \"value\": \".\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"7357cf5161efbf8c4d5d0c30b4815ee2\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"Obfuscated\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"4P\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-4P\\\\b\"\n }\n },\n {\n \"name\": \"4Planet\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-4Planet\\\\b\"\n }\n },\n {\n \"name\": \"AsRequested\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-AsRequested\\\\b\"\n }\n },\n {\n \"name\": \"BUYMORE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-BUYMORE\\\\b\"\n }\n },\n {\n \"name\": \"Chamele0n\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-Chamele0n\\\\b\"\n }\n },\n {\n \"name\": \"GEROV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-GEROV\\\\b\"\n }\n },\n {\n \"name\": \"iNC0GNiTO\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-iNC0GNiTO\\\\b\"\n }\n },\n {\n \"name\": \"NZBGeek\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-NZBGeek\\\\b\"\n }\n },\n {\n \"name\": \"Obfuscated\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-Obfuscated\\\\b\"\n }\n },\n {\n \"name\": \"postbot\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-postbot\\\\b\"\n }\n },\n {\n \"name\": \"Rakuv\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-Rakuv\\\\b\"\n }\n },\n {\n \"name\": \"Scrambled\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"Scrambled\\\\b\"\n }\n },\n {\n \"name\": \"WhiteRev\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-WhiteRev\\\\b\"\n }\n },\n {\n \"name\": \"xpost\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-xpost\\\\b\"\n }\n },\n {\n \"name\": \"WRTEAM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-WRTEAM\\\\b\"\n }\n },\n {\n \"name\": \"CAPTCHA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"-CAPTCHA\\\\b\"\n }\n },\n {\n \"name\": \"_nzb\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"_nzb\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"5c44f52a8714fdd79bb4d98e2673be1f\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"Retags\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"[rartv]\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[rartv\\\\]\"\n }\n },\n {\n \"name\": \"[rarbg]\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[rarbg\\\\]\"\n }\n },\n {\n \"name\": \"[eztv]\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[eztv([ ._-]re)?\\\\]\"\n }\n },\n {\n \"name\": \"[TGx]\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[TGx\\\\]\"\n }\n },\n {\n \"name\": \".VAV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"[.]VAV\\\\b\"\n }\n },\n {\n \"name\": \".heb\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"[.]heb\\\\b\"\n }\n },\n {\n \"name\": \"ORARBG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ORARBG)\\\\b\"\n }\n }\n ]\n}\n
-10000
or a positive score or just don't add it all.{\n \"trash_id\": \"f537cf427b64c38c8e36298f657e4828\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/BoIGFA/1\",\n \"name\": \"Scene\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Scene Groups + Naming\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(?=.*(\\\\b\\\\d{3,4}p\\\\b).*([_. ]WEB[_. ])(?!DL)\\\\b)|\\\\b(-CAKES|-GGEZ|-GGWP|-GLHF|-GOSSIP|-NAISU|-KOGI|-PECULATE|-SLOT|-EDITH|-ETHEL|-ELEANOR|-B2B|-SPAMnEGGS|-FTP|-DiRT|-SYNCOPY|-BAE|-SuccessfulCrab|-NHTFS|-SURCODE|-B0MBARDIERS)\"\n }\n },\n {\n \"name\": \"Not INFLATE/DEFLATE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(INFLATE|DEFLATE)\\\\b\"\n }\n }\n ]\n}\n
-10000
{\n \"trash_id\": \"839bea857ed2c0a8e084f3cbdbd65ecb\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/yFwxoN/10\",\n \"name\": \"x265 (no HDR/DV)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"x265/HEVC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[xh][ ._-]?265|\\\\bHEVC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not HDR/DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?|hdr(10(P(lus)?)?)?|pq)\\\\b\"\n }\n },\n {\n \"name\": \"Not 2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"cae4ca30163749b891686f95532519bd\",\n \"trash_scores\": {\n \"sqp-1-2160p\": -10000\n },\n \"name\": \"AV1\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"AV1\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bAV1\\\\b\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"ae4cfaa9283a4f2150ac3da08e388723\",\n \"name\": \"VP9\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"VP9\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bVP9\\\\b\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"182fa1c42a2468f8488e6dcf75a81b81\",\n \"trash_scores\": {\n \"default\": 10\n },\n \"trash_regex\": \"https://regex101.com/r/T7vznB/1\",\n \"name\": \"INTERNAL\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"INTERNAL\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(INTERNAL)\\\\b\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"9c38ebb7384dada637be8899efa68e6f\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"SDR\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"HDR Formats\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\bHDR(\\\\b|\\\\d)|\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b|\\\\b(FraMeSToR|HQMUX|SICFoI)\\\\b|\\\\b(PQ)\\\\b|\\\\bHLG(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\bSDR\\\\b\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"25c12f78430a3a23413652cbd1d48d77\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"name\": \"SDR (no WEBDL)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"HDR Formats\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\bHDR(\\\\b|\\\\d)|\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b|\\\\b(FraMeSToR|HQMUX|SICFoI)\\\\b|\\\\b(PQ)\\\\b|\\\\bHLG(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"SDR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\bSDR\\\\b\"\n }\n },\n {\n \"name\": \"Not WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"Not WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"f700d29429c023a5734505e77daeaea7\",\n \"trash_scores\": {\n \"default\": 101\n },\n \"name\": \"DV (Disk)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"FraMeSToR\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(FraMeSToR)\\\\b\"\n }\n },\n {\n \"name\": \"DV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dv|dovi|dolby[ .]?v(ision)?)\\\\b\"\n }\n },\n {\n \"name\": \"No FANRES\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(FANRES)\\\\b\"\n }\n },\n {\n \"name\": \"Not Hybrid\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\bhybrid(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Not Hybrid Release Group\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"-HYBRID\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"c465ccc73923871b3eb1802042331306\",\n \"trash_scores\": {\n \"default\": -10000\n },\n \"trash_regex\": \"https://regex101.com/r/6vHBAD/1\",\n \"name\": \"Line/Mic Dubbed\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Line Dubbed\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(LD|AC3LD|Line[ .-]?Dubbed)\\\\b\"\n }\n },\n {\n \"name\": \"Mic Dubbed\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MD|AC3MD|Mic[ .-]?Dubbed)\\\\b\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"73613461ac2cea99d52c4cd6e177ab82\",\n \"name\": \"HFR\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"HFR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(HFR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e7718d7a3ce595f289bfee26adc178f5\",\n \"trash_scores\": {\n \"default\": 5\n },\n \"trash_regex\": \"https://regex101.com/r/S91wR8/2\",\n \"name\": \"Repack/Proper\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Repack\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Repack)\\\\b\"\n }\n },\n {\n \"name\": \"Proper\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Proper)\\\\b\"\n }\n },\n {\n \"name\": \"Rerip\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Rerip)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"ae43b294509409a6a13919dedd4764c4\",\n \"trash_scores\": {\n \"default\": 6\n },\n \"trash_regex\": \"https://regex101.com/r/kQ4oeP/1\",\n \"name\": \"Repack2\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Repack2\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Repack2)\\\\b\"\n }\n },\n {\n \"name\": \"Proper2\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Proper2)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"2899d84dc9372de3408e6d8cc18e9666\",\n \"trash_scores\": {\n \"sqp-2\": -10000,\n \"sqp-3\": -10000,\n \"sqp-4\": -10000,\n \"sqp-5\": -10000\n },\n \"name\": \"x264\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"x|h264\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[xh][ ._-]?264|\\\\bAVC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Remux\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n }\n ]\n}\n
{\n \"trash_id\": \"9170d55c319f4fe40da8711ba9d8050d\",\n \"name\": \"x265\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"x|h265\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"[xh][ ._-]?265|\\\\bHEVC(\\\\b|\\\\d)\"\n }\n },\n {\n \"name\": \"Remux\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n }\n ]\n}\n
{\n \"trash_id\": \"0d91270a7255a1e388fa85e959f359d8\",\n \"trash_scores\": {\n \"default\": 1\n },\n \"name\": \"FreeLeech\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"FreeLeech\",\n \"implementation\": \"IndexerFlagSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 1\n }\n }]\n}\n
{\n \"trash_id\": \"9de657fd3d327ecf144ec73dfe3a3e9a\",\n \"name\": \"Dutch Groups\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Dutch Groups\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"-CyTSuNee|-SHiTSoNy|-QoQ\"\n }\n }]\n}\n
{\n \"trash_id\": \"ff86c4326018682f817830ced463332b\",\n \"name\": \"MPEG2\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"MPEG2\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"MPEG[-.]?2\"\n }\n }]\n}\n
{\n \"trash_id\": \"4b900e171accbfb172729b63323ea8ca\",\n \"name\": \"Multi\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [{\n \"name\": \"Multi\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(Multi)(?![ ._-]?sub(s)?)(\\\\b|\\\\d)\"\n }\n }]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"3a3ff47579026e76d6504ebea39390de\",\n \"trash_scores\": {\n \"default\": 1950,\n \"anime-radarr\": 1050\n },\n \"name\": \"Remux Tier 01\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Remux\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"3L\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(3L)$\"\n }\n },\n {\n \"name\": \"BiZKiT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BiZKiT)$\"\n }\n },\n {\n \"name\": \"BLURANiUM\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BLURANiUM)$\"\n }\n },\n {\n \"name\": \"BMF\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BMF)$\"\n }\n },\n {\n \"name\": \"FraMeSToR\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FraMeSToR)$\"\n }\n },\n {\n \"name\": \"PmP\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PmP)$\"\n }\n },\n {\n \"name\": \"SiCFoI\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SiCFoI)$\"\n }\n },\n {\n \"name\": \"WiLDCAT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(WiLDCAT)$\"\n }\n },\n {\n \"name\": \"ZQ\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(ZQ)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"9f98181fe5a3fbeb0cc29340da2a468a\",\n \"trash_scores\": {\n \"default\": 1900,\n \"anime-radarr\": 1000\n },\n \"name\": \"Remux Tier 02\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Remux\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"CiNEPHiLES\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CiNEPHiLES)$\"\n }\n },\n {\n \"name\": \"Flights\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Flights)$\"\n }\n },\n {\n \"name\": \"KRaLiMaRKo\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(KRaLiMaRKo)$\"\n }\n },\n {\n \"name\": \"NCmt\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NCmt)$\"\n }\n },\n {\n \"name\": \"playBD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(playBD)$\"\n }\n },\n {\n \"name\": \"SURFINBIRD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SURFINBIRD)$\"\n }\n },\n {\n \"name\": \"TEPES\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TEPES)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"8baaf0b3142bf4d94c42a724f034e27a\",\n \"trash_scores\": {\n \"default\": 1850,\n \"anime-radarr\": 950\n },\n \"name\": \"Remux Tier 03\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Remux\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"decibeL\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(decibeL)$\"\n }\n },\n {\n \"name\": \"EPSiLON\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(EPSiLON)$\"\n }\n },\n {\n \"name\": \"HiFi\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HiFi)$\"\n }\n },\n {\n \"name\": \"iFT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(iFT)$\"\n }\n },\n {\n \"name\": \"NTb\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NTb)$\"\n }\n },\n {\n \"name\": \"PTP\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PTP)$\"\n }\n },\n {\n \"name\": \"SumVision\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SumVision)$\"\n }\n },\n {\n \"name\": \"TOA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TOA)$\"\n }\n },\n {\n \"name\": \"TRiToN\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TRiToN)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"4d74ac4c4db0b64bff6ce0cffef99bf0\",\n \"trash_scores\": {\n \"default\": 1800,\n \"sqp-1-2160p\": 1100,\n \"sqp-2\": 2300,\n \"sqp-5\": 2300\n },\n \"name\": \"UHD Bluray Tier 01\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Not REMUX\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Not WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"Not WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"CtrlHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CtrlHD)$\"\n }\n },\n {\n \"name\": \"DON\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(DON)$\"\n }\n },\n {\n \"name\": \"W4NK3R\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(W4NK3R)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"a58f517a70193f8e578056642178419d\",\n \"trash_scores\": {\n \"default\": 1750,\n \"sqp-1-2160p\": 1050,\n \"sqp-2\": 2200,\n \"sqp-5\": 2200\n },\n \"name\": \"UHD Bluray Tier 02\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Not REMUX\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Not WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"Not WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"HQMUX\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HQMUX)$\"\n }\n },\n {\n \"name\": \"MainFrame\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(MainFrame)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"e71939fae578037e7aed3ee219bbe7c1\",\n \"trash_scores\": {\n \"default\": 1700,\n \"sqp-1-2160p\": 1000,\n \"sqp-2\": 2100,\n \"sqp-5\": 2100\n },\n \"name\": \"UHD Bluray Tier 03\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Not REMUX\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Not WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"Not WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"BHDStudio\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BHDStudio)$\"\n }\n },\n {\n \"name\": \"HONE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HONE)$\"\n }\n },\n {\n \"name\": \"SPHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SPHD)$\"\n }\n },\n {\n \"name\": \"WEBDV\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(WEBDV)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"ed27ebfef2f323e964fb1f61391bcb35\",\n \"trash_scores\": {\n \"default\": 1800,\n \"sqp-1-1080p\": 1100,\n \"sqp-1-2160p\": 1100\n },\n \"name\": \"HD Bluray Tier 01\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"BLURAY\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"Not REMUX\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Not 2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"BBQ\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BBQ)$\"\n }\n },\n {\n \"name\": \"BMF\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BMF)$\"\n }\n },\n {\n \"name\": \"c0kE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(c0kE)$\"\n }\n },\n {\n \"name\": \"Chotab\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Chotab)$\"\n }\n },\n {\n \"name\": \"CRiSC\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CRiSC)$\"\n }\n },\n {\n \"name\": \"CtrlHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CtrlHD)$\"\n }\n },\n {\n \"name\": \"D-Z0N3\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(D-Z0N3)$\"\n }\n },\n {\n \"name\": \"Dariush\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Dariush)$\"\n }\n },\n {\n \"name\": \"decibeL\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(decibeL)$\"\n }\n },\n {\n \"name\": \"DON\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(DON)$\"\n }\n },\n {\n \"name\": \"EbP\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(EbP)$\"\n }\n },\n {\n \"name\": \"EDPH\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(EDPH)$\"\n }\n },\n {\n \"name\": \"Geek\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Geek)$\"\n }\n },\n {\n \"name\": \"LolHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(LolHD)$\"\n }\n },\n {\n \"name\": \"NCmt\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NCmt)$\"\n }\n },\n {\n \"name\": \"PTer\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PTer)$\"\n }\n },\n {\n \"name\": \"TayTO\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TayTO)$\"\n }\n },\n {\n \"name\": \"TDD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TDD)$\"\n }\n },\n {\n \"name\": \"TnP\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TnP)$\"\n }\n },\n {\n \"name\": \"VietHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(VietHD)$\"\n }\n },\n {\n \"name\": \"ZQ\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(ZQ)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"c20c8647f2746a1f4c4262b0fbbeeeae\",\n \"trash_scores\": {\n \"default\": 1750,\n \"sqp-1-1080p\": 1050,\n \"sqp-1-2160p\": 1050\n },\n \"name\": \"HD Bluray Tier 02\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"BLURAY\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"Not REMUX\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Not 2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"EA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(EA)$\"\n }\n },\n {\n \"name\": \"HiDt\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HiDt)$\"\n }\n },\n {\n \"name\": \"HiSD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HiSD)$\"\n }\n },\n {\n \"name\": \"iFT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(iFT)$\"\n }\n },\n {\n \"name\": \"NTb\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NTb)$\"\n }\n },\n {\n \"name\": \"QOQ\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(QOQ)$\"\n }\n },\n {\n \"name\": \"SA89\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SA89)$\"\n }\n },\n {\n \"name\": \"sbR\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(sbR)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"5608c71bcebba0a5e666223bae8c9227\",\n \"trash_scores\": {\n \"default\": 1700,\n \"sqp-1-1080p\": 1000,\n \"sqp-1-2160p\": 1000\n },\n \"name\": \"HD Bluray Tier 03\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"BLURAY\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"Not REMUX\",\n \"implementation\": \"QualityModifierSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Not 2160p\",\n \"implementation\": \"ResolutionSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": 2160\n }\n },\n {\n \"name\": \"BHDStudio\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BHDStudio)$\"\n }\n },\n {\n \"name\": \"HONE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HONE)$\"\n }\n },\n {\n \"name\": \"LoRD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(LoRD)$\"\n }\n },\n {\n \"name\": \"playHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(playHD)$\"\n }\n },\n {\n \"name\": \"SPHD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SPHD)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"c20f169ef63c5f40c2def54abaf4438e\",\n \"trash_scores\": {\n \"default\": 1700,\n \"anime-radarr\": 350\n },\n \"name\": \"WEB Tier 01\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"ABBIE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(ABBIE)$\"\n }\n },\n {\n \"name\": \"AJP69\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(AJP69)$\"\n }\n },\n {\n \"name\": \"APEX\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(APEX|PAXA|PEXA|XEPA)$\"\n }\n },\n {\n \"name\": \"BLUTONiUM\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(BLUTONiUM)$\"\n }\n },\n {\n \"name\": \"CMRG\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CMRG)$\"\n }\n },\n {\n \"name\": \"CRFW\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CRFW)$\"\n }\n },\n {\n \"name\": \"CRUD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(CRUD)$\"\n }\n },\n {\n \"name\": \"FLUX\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(FLUX)$\"\n }\n },\n {\n \"name\": \"GNOME\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(GNOME)$\"\n }\n },\n {\n \"name\": \"HONE\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(HONE)$\"\n }\n },\n {\n \"name\": \"KiNGS\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(KiNGS)$\"\n }\n },\n {\n \"name\": \"NOSiViD\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NOSiViD)$\"\n }\n },\n {\n \"name\": \"NTb\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NTb)$\"\n }\n },\n {\n \"name\": \"NTG\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NTG)$\"\n }\n },\n {\n \"name\": \"SiC\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SiC)$\"\n }\n },\n {\n \"name\": \"TEPES\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TEPES)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"403816d65392c79236dcb6dd591aeda4\",\n \"trash_scores\": {\n \"default\": 1650,\n \"anime-radarr\": 250\n },\n \"name\": \"WEB Tier 02\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"dB\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(dB)$\"\n }\n },\n {\n \"name\": \"Flights\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Flights)$\"\n }\n },\n {\n \"name\": \"Kitsune\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(Kitsune)$\"\n }\n },\n {\n \"name\": \"MiU\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(MiU)$\"\n }\n },\n {\n \"name\": \"monkee\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(monkee)$\"\n }\n },\n {\n \"name\": \"MZABI\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(MZABI)$\"\n }\n },\n {\n \"name\": \"PHOENiX\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(PHOENiX)$\"\n }\n },\n {\n \"name\": \"playWEB\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(playWEB)$\"\n }\n },\n {\n \"name\": \"SbR\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SbR)$\"\n }\n },\n {\n \"name\": \"SMURF\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SMURF)$\"\n }\n },\n {\n \"name\": \"TOMMY\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(TOMMY)$\"\n }\n },\n {\n \"name\": \"XEBEC\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(XEBEC|4KBEC|CEBEX)$\"\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"af94e0fe497124d1f9ce732069ec8c3b\",\n \"trash_scores\": {\n \"default\": 1600,\n \"anime-radarr\": 150\n },\n \"name\": \"WEB Tier 03\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"GNOMiSSiON\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(GNOMiSSiON)$\"\n }\n },\n {\n \"name\": \"NINJACENTRAL\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(NINJACENTRAL)$\"\n }\n },\n {\n \"name\": \"ROCCaT\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(ROCCaT)$\"\n }\n },\n {\n \"name\": \"SiGMA\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SiGMA)$\"\n }\n },\n {\n \"name\": \"SLiGNOME\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SLiGNOME)$\"\n }\n },\n {\n \"name\": \"SwAgLaNdEr\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"^(SwAgLaNdEr)$\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"b3b3a6ac74ecbd56bcdbefa4799fb9df\",\n \"name\": \"AMZN\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Amazon\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(amzn|amazon)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"40e9380490e748672c2522eaaeb692f7\",\n \"name\": \"ATVP\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Apple TV+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(atvp|aptv|Apple TV\\\\+)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"16622a6911d1ab5d5b8b713d5b0036d4\",\n \"trash_scores\": {\n \"default\": 20\n },\n \"name\": \"CRiT\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"CRiT\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(CRiT)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"Not Criterion RlsGrp\",\n \"implementation\": \"ReleaseGroupSpecification\",\n \"negate\": true,\n \"required\": true,\n \"fields\": {\n \"value\": \"^(Criterion)$\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"84272245b2988854bfb76a16e60baea5\",\n \"name\": \"DSNP\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Disney+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(dsnp|dsny|disney|Disney\\\\+)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"509e5f41146e278f9eab1ddaceb34515\",\n \"name\": \"HBO\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"HBO\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(hbo)(?![ ._-]max)\\\\b(?=[ ._-]web[ ._-]?(dl|rip)\\\\b)\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"5763d1b0ce84aff3b21038eea8e9b8ad\",\n \"name\": \"HMAX\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"HBO Max\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(hmax|hbom|hbo[ ._-]max)\\\\b(?=[ ._-]web[ ._-]?(dl|rip)\\\\b)\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"6a061313d22e51e0f25b7cd4dc065233\",\n \"trash_regex\": \"https://regex101.com/r/fa649l/1\",\n \"name\": \"MAX\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Max\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b((?<!hbo[ ._-])max)\\\\b(?=[ ._-]web[ ._-]?(dl|rip)\\\\b)\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"526d445d4c16214309f0fd2b3be18a89\",\n \"name\": \"Hulu\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Hulu\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(hulu)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"6185878161f1e2eef9cd0641a0d09eae\",\n \"name\": \"IP\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"BBC iPlayer\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(ip|iplayer)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"170b1d363bd8516fbf3a3eb05d4faff6\",\n \"name\": \"NF\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Netflix\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(nf|netflix)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"c9fd353f8f5f1baf56dc601c4cb29920\",\n \"name\": \"PCOK\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Peacock TV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(pcok|peacock)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"e36a0ba1bc902b26ee40818a1d59b8bd\",\n \"name\": \"PMTP\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Paramount+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(pmtp|Paramount Plus)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"2a6039655313bf5dab1e43523b62c374\",\n \"trash_scores\": {\n \"default\": 20\n },\n \"name\": \"MA\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Movies Anywhere\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"(?<!dts[ .-]?hd[ .-]?)ma\\\\b(?=.*\\\\bweb[ ._-]?(dl|rip)\\\\b)\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"bf7e73dd1d85b12cc527dc619761c840\",\n \"name\": \"Pathe\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Path\u00e9\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(Pathe)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"cc5e51a9e85a6296ceefe097a77f12f4\",\n \"trash_scores\": {\n \"default\": 15,\n \"sqp-1-1080p\": -10000,\n \"sqp-1-2160p\": -10000\n },\n \"name\": \"BCORE\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Bravia Core\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(BCORE)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"c2863d2a50c9acad1fb50e53ece60817\",\n \"trash_regex\": \"https://regex101.com/r/IMS7Or/1\",\n \"name\": \"STAN\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Stan\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(stan)\\\\b[ ._-]web[ ._-]?(dl|rip)?\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"f6ff65b3f4b464a79dcc75950fe20382\",\n \"trash_regex\": \"https://regex101.com/r/eymcie/1\",\n \"name\": \"CRAV\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"Crave\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(crav(e)?)\\\\b[ ._-]web[ ._-]?(dl|rip)?\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"fbca986396c5e695ef7b2def3c755d01\",\n \"trash_regex\": \"https://regex101.com/r/hWHpjV/1\",\n \"name\": \"OViD\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"OViD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(ovid)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"917d1f2c845b2b466036b0cc2d7c72a3\",\n \"trash_regex\": \"https://regex101.com/r/kgngPG/1\",\n \"name\": \"FOD\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"FOD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(fod)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"f1b0bae9bc222dab32c1b38b5a7a1088\",\n \"trash_regex\": \"https://regex101.com/r/ZdWC9D/1\",\n \"name\": \"TVer\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"TVer\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(tver)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
JSON - [Click to show/hide] {\n \"trash_id\": \"279bda7434fd9075786de274e6c3c202\",\n \"trash_regex\": \"https://regex101.com/r/04ZSLm/1\",\n \"name\": \"U-NEXT\",\n \"includeCustomFormatWhenRenaming\": true,\n \"specifications\": [\n {\n \"name\": \"U-NEXT\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": true,\n \"fields\": {\n \"value\": \"\\\\b(u-next)\\\\b\"\n }\n },\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n }\n ]\n}\n
{\n \"trash_id\": \"fb3ccc5d5cc8f77c9055d4cb4561dded\",\n \"trash_scores\": {\n \"default\": 1400\n },\n \"name\": \"Anime BD Tier 01 (Top SeaDex Muxers)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Aergia\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Aergia\\\\]|-Aergia(?!-raws)\\\\b\"\n }\n },\n {\n \"name\": \"Legion\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Legion\\\\]|-Legion\\\\b\"\n }\n },\n {\n \"name\": \"LYS1TH3A\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(LYS1TH3A)\\\\b\"\n }\n },\n {\n \"name\": \"OZR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(OZR)\\\\b\"\n }\n },\n {\n \"name\": \"sam\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[sam\\\\]|-sam\\\\b\"\n }\n },\n {\n \"name\": \"SCY\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SCY)\\\\b\"\n }\n },\n {\n \"name\": \"smol\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[smol\\\\]|-smol\\\\b\"\n }\n },\n {\n \"name\": \"Vanilla\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Vanilla\\\\]|-Vanilla\\\\b\"\n }\n },\n {\n \"name\": \"Vodes\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Vodes)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"66926c8fa9312bc74ab71bf69aae4f4a\",\n \"trash_scores\": {\n \"default\": 1300\n },\n \"name\": \"Anime BD Tier 02 (SeaDex Muxers)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"0x539\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(0x539)\\\\b\"\n }\n },\n {\n \"name\": \"Alt\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Alt\\\\]|-Alt\\\\b\"\n }\n },\n {\n \"name\": \"ARC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[ARC\\\\]|-ARC\\\\b\"\n }\n },\n {\n \"name\": \"Arid\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Arid\\\\]|-Arid\\\\b\"\n }\n },\n {\n \"name\": \"aro\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(aro)\\\\b\"\n }\n },\n {\n \"name\": \"Baws\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Baws)\\\\b\"\n }\n },\n {\n \"name\": \"BKC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(BKC)\\\\b\"\n }\n },\n {\n \"name\": \"Brrrrrrr\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Brrrrrrr)\\\\b\"\n }\n },\n {\n \"name\": \"Chotab\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Chotab)\\\\b\"\n }\n },\n {\n \"name\": \"Crow\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Crow\\\\]|-Crow\\\\b\"\n }\n },\n {\n \"name\": \"CUNNY\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CUNNY)\\\\b\"\n }\n },\n {\n \"name\": \"CsS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CsS)\\\\b\"\n }\n },\n {\n \"name\": \"D-Z0N3\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(D-Z0N3)\\\\b\"\n }\n },\n {\n \"name\": \"Dae\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Dae)\\\\b\"\n }\n },\n {\n \"name\": \"Datte13\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Datte13)\\\\b\"\n }\n },\n {\n \"name\": \"Drag\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Drag\\\\]|-Drag\\\\b\"\n }\n },\n {\n \"name\": \"FLFL\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(FLFL)\\\\b\"\n }\n },\n {\n \"name\": \"hydes\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(hydes)\\\\b\"\n }\n },\n {\n \"name\": \"iKaos\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(iKaos)\\\\b\"\n }\n },\n {\n \"name\": \"JySzE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(JySzE)\\\\b\"\n }\n },\n {\n \"name\": \"LostYears\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(LostYears)\\\\b\"\n }\n },\n {\n \"name\": \"Lulu\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Lulu\\\\]|-Lulu\\\\b\"\n }\n },\n {\n \"name\": \"Matsya\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Matsya)\\\\b\"\n }\n },\n {\n \"name\": \"MC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MC)\\\\b\"\n }\n },\n {\n \"name\": \"Metal\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Metal\\\\]|-Metal\\\\b\"\n }\n },\n {\n \"name\": \"MTBB\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MTBB)\\\\b\"\n }\n },\n {\n \"name\": \"Noyr\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Noyr)\\\\b\"\n }\n },\n {\n \"name\": \"NSDAB\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(NSDAB)\\\\b\"\n }\n },\n {\n \"name\": \"pog42\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(pog42)\\\\b\"\n }\n },\n {\n \"name\": \"pyroneko\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(pyroneko)\\\\b\"\n }\n },\n {\n \"name\": \"RAI\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(RAI)\\\\b\"\n }\n },\n {\n \"name\": \"Reza\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Reza)\\\\b\"\n }\n },\n {\n \"name\": \"Shimatta\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Shimatta)\\\\b\"\n }\n },\n {\n \"name\": \"Smoke\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Smoke\\\\]|-Smoke\\\\b\"\n }\n },\n {\n \"name\": \"Spirale\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Spirale)\\\\b\"\n }\n },\n {\n \"name\": \"Thighs\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Thighs\\\\]|-Thighs\\\\b\"\n }\n },\n {\n \"name\": \"UDF\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(UDF)\\\\b\"\n }\n },\n {\n \"name\": \"Yuki\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Yuki\\\\]|-Yuki\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"fa857662bad28d5ff21a6e611869a0ff\",\n \"trash_scores\": {\n \"default\": 1200\n },\n \"name\": \"Anime BD Tier 03 (SeaDex Muxers)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"AC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[AC\\\\]|-AC\\\\b\"\n }\n },\n {\n \"name\": \"ASC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ASC)\\\\b\"\n }\n },\n {\n \"name\": \"AssMix\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(AssMix)\\\\b\"\n }\n },\n {\n \"name\": \"Ayashii\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Ayashii)\\\\b\"\n }\n },\n {\n \"name\": \"CBT\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CBT)\\\\b\"\n }\n },\n {\n \"name\": \"CTR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CTR)\\\\b\"\n }\n },\n {\n \"name\": \"CyC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CyC)\\\\b\"\n }\n },\n {\n \"name\": \"Dekinai\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Dekinai\\\\]|-Dekinai\\\\b\"\n }\n },\n {\n \"name\": \"EXP\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[EXP\\\\]|-EXP\\\\b\"\n }\n },\n {\n \"name\": \"Galator\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Galator)\\\\b\"\n }\n },\n {\n \"name\": \"GSK_kun\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(GSK[._-]kun)\\\\b\"\n }\n },\n {\n \"name\": \"Holomux\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Holomux)\\\\b\"\n }\n },\n {\n \"name\": \"IK\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(IK)\\\\b\"\n }\n },\n {\n \"name\": \"Kaizoku\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(AnimeKaizoku)\\\\b|\\\\[Kaizoku\\\\]|-Kaizoku\\\\b\"\n }\n },\n {\n \"name\": \"Kametsu\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Kametsu)\\\\b\"\n }\n },\n {\n \"name\": \"KH\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(KH)\\\\b\"\n }\n },\n {\n \"name\": \"kuchikirukia\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(kuchikirukia)\\\\b\"\n }\n },\n {\n \"name\": \"LazyRemux\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(LazyRemux)\\\\b\"\n }\n },\n {\n \"name\": \"MK\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MK)\\\\b\"\n }\n },\n {\n \"name\": \"Mysteria\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Mysteria\\\\]|-Mysteria\\\\b\"\n }\n },\n {\n \"name\": \"Netaro\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Netaro)\\\\b\"\n }\n },\n {\n \"name\": \"Pn8\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Pn8)\\\\b\"\n }\n },\n {\n \"name\": \"Pookie\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Pookie)\\\\b\"\n }\n },\n {\n \"name\": \"Quetzal\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Quetzal)\\\\b\"\n }\n },\n {\n \"name\": \"Rasetsu\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Rasetsu)\\\\b\"\n }\n },\n {\n \"name\": \"Senjou\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Senjou\\\\]|-Senjou\\\\b\"\n }\n },\n {\n \"name\": \"ShowY\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ShowY)\\\\b\"\n }\n },\n {\n \"name\": \"WBDP\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(WBDP)\\\\b\"\n }\n },\n {\n \"name\": \"WSE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(WSE)\\\\b\"\n }\n },\n {\n \"name\": \"Yoghurt\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Yoghurt)\\\\b\"\n }\n },\n {\n \"name\": \"YURI\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[YURI\\\\]|-YURI\\\\b\"\n }\n },\n {\n \"name\": \"ZOIO\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ZOIO)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"f262f1299d99b1a2263375e8fa2ddbb3\",\n \"trash_scores\": {\n \"default\": 1100\n },\n \"name\": \"Anime BD Tier 04 (SeaDex Muxers)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"deanzel\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(deanzel)\\\\b\"\n }\n },\n {\n \"name\": \"ShadyCrab\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ShadyCrab)\\\\b\"\n }\n },\n {\n \"name\": \"hchcsen\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(hchcsen)\\\\b\"\n }\n },\n {\n \"name\": \"NH\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(NH)\\\\b\"\n }\n },\n {\n \"name\": \"Chimera\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Chimera\\\\]|-Chimera\\\\b\"\n }\n },\n {\n \"name\": \"Bulldog\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Bulldog\\\\]|-Bulldog\\\\b\"\n }\n },\n {\n \"name\": \"Foxtrot\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Foxtrot\\\\]|-Foxtrot\\\\b\"\n }\n },\n {\n \"name\": \"Koten_Gars\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Koten[ ._-]Gars)\\\\b\"\n }\n },\n {\n \"name\": \"Kulot\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Kulot)\\\\b\"\n }\n },\n {\n \"name\": \"Asakura\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Asakura\\\\]|-Asakura\\\\b\"\n }\n },\n {\n \"name\": \"HaiveMind\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(HaiveMind)\\\\b\"\n }\n },\n {\n \"name\": \"mottoj\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(mottoj)\\\\b\"\n }\n },\n {\n \"name\": \"Bolshevik\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Bolshevik\\\\]|-Bolshevik\\\\b\"\n }\n },\n {\n \"name\": \"Scriptum\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Scriptum)\\\\b\"\n }\n },\n {\n \"name\": \"SOLA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[SOLA\\\\]|-SOLA\\\\b\"\n }\n },\n {\n \"name\": \"NTRM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(NTRM)\\\\b\"\n }\n },\n {\n \"name\": \"ASO\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ASO)\\\\b\"\n }\n },\n {\n \"name\": \"MCLR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MCLR)\\\\b\"\n }\n },\n {\n \"name\": \"D3\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(D3)\\\\b\"\n }\n },\n {\n \"name\": \"AOmundson\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(AOmundson)\\\\b\"\n }\n },\n {\n \"name\": \"RMX\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(RMX)\\\\b\"\n }\n },\n {\n \"name\": \"karios\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(karios)\\\\b\"\n }\n },\n {\n \"name\": \"xPearse\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(xPearse)\\\\b\"\n }\n },\n {\n \"name\": \"kBaraka\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(kBaraka)\\\\b\"\n }\n },\n {\n \"name\": \"SNSbu\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SNSbu)\\\\b\"\n }\n },\n {\n \"name\": \"Orphan\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Orphan\\\\]|-Orphan\\\\b\"\n }\n },\n {\n \"name\": \"Cait-Sidhe\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Cait-Sidhe)\\\\b\"\n }\n },\n {\n \"name\": \"THORA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(THORA)\\\\b\"\n }\n },\n {\n \"name\": \"Davinci\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Davinci\\\\]|-Davinci\\\\b\"\n }\n },\n {\n \"name\": \"GHS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(GHS)\\\\b\"\n }\n },\n {\n \"name\": \"Iznjie Biznjie\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Iznjie[ .-]Biznjie)\\\\b\"\n }\n },\n {\n \"name\": \"9volt\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(9volt)\\\\b\"\n }\n },\n {\n \"name\": \"Lia\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Lia\\\\]|-Lia\\\\b\"\n }\n },\n {\n \"name\": \"kmplx\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(kmplx)\\\\b\"\n }\n },\n {\n \"name\": \"UWU\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(UWU)\\\\b\"\n }\n },\n {\n \"name\": \"Koitern\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Koitern)\\\\b\"\n }\n },\n {\n \"name\": \"Commie\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Commie)\\\\b\"\n }\n },\n {\n \"name\": \"Kaleido\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Kaleido)\\\\b\"\n }\n },\n {\n \"name\": \"Doki\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Doki\\\\]|-Doki\\\\b\"\n }\n },\n {\n \"name\": \"Tsundere\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Tsundere\\\\]|-Tsundere(?!-)\\\\b\"\n }\n },\n {\n \"name\": \"Chihiro\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Chihiro\\\\]|-Chihiro\\\\b\"\n }\n },\n {\n \"name\": \"SallySubs\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SallySubs)\\\\b\"\n }\n },\n {\n \"name\": \"CoalGirls\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CoalGirls)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"ca864ed93c7b431150cc6748dc34875d\",\n \"trash_scores\": {\n \"default\": 1000\n },\n \"name\": \"Anime BD Tier 05 (Remuxes)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"ANThELIa\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ANThELIa)\\\\b\"\n }\n },\n {\n \"name\": \"AP\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(AP)\\\\b\"\n }\n },\n {\n \"name\": \"BluDragon\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(BluDragon)\\\\b\"\n }\n },\n {\n \"name\": \"D4C\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(D4C)\\\\b\"\n }\n },\n {\n \"name\": \"Dragon-Releases\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Dragon-Releases)\\\\b\"\n }\n },\n {\n \"name\": \"E.N.D\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(E[.-]N[.-]D)\\\\b\"\n }\n },\n {\n \"name\": \"KAWAiREMUX\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(KAWAiREMUX)\\\\b\"\n }\n },\n {\n \"name\": \"MKVULTRA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MKVULTRA)\\\\b\"\n }\n },\n {\n \"name\": \"Raizel\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Raizel)\\\\b\"\n }\n },\n {\n \"name\": \"REVO\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(REVO)\\\\b\"\n }\n },\n {\n \"name\": \"Spark\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Spark\\\\]|-Spark\\\\b\"\n }\n },\n {\n \"name\": \"SRLS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SRLS)\\\\b\"\n }\n },\n {\n \"name\": \"TTGA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(TTGA)\\\\b\"\n }\n },\n {\n \"name\": \"ZR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ZR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"9dce189b960fddf47891b7484ee886ca\",\n \"trash_scores\": {\n \"default\": 900\n },\n \"name\": \"Anime BD Tier 06 (FanSubs)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"Afro\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Afro\\\\]|-Afro\\\\b\"\n }\n },\n {\n \"name\": \"Akai\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Akai\\\\]|-Akai\\\\b\"\n }\n },\n {\n \"name\": \"Almighty\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Almighty\\\\]|-Almighty\\\\b\"\n }\n },\n {\n \"name\": \"ANE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ANE)\\\\b\"\n }\n },\n {\n \"name\": \"Asenshi\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Asenshi)\\\\b\"\n }\n },\n {\n \"name\": \"BlurayDesuYo\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(BlurayDesuYo)\\\\b\"\n }\n },\n {\n \"name\": \"Bunny-Apocalypse\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Bunny-Apocalypse)\\\\b\"\n }\n },\n {\n \"name\": \"CH\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[CH\\\\]|-CH\\\\b\"\n }\n },\n {\n \"name\": \"EJF\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(EJF)\\\\b\"\n }\n },\n {\n \"name\": \"Exiled-Destiny\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Exiled-Destiny|E-D)\\\\b\"\n }\n },\n {\n \"name\": \"FFF\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(FFF)\\\\b\"\n }\n },\n {\n \"name\": \"Final8\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Final8)\\\\b\"\n }\n },\n {\n \"name\": \"GS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(GS)\\\\b\"\n }\n },\n {\n \"name\": \"Harunatsu\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Harunatsu\\\\]|-Harunatsu\\\\b\"\n }\n },\n {\n \"name\": \"Impatience\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Impatience\\\\]|-Impatience\\\\b\"\n }\n },\n {\n \"name\": \"Inka-Subs\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Inka-Subs)\\\\b\"\n }\n },\n {\n \"name\": \"Judgement\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Judgment\\\\]|-Judgment\\\\b\"\n }\n },\n {\n \"name\": \"Kantai\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Kantai\\\\]|-Kantai\\\\b\"\n }\n },\n {\n \"name\": \"LCE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(LCE)\\\\b\"\n }\n },\n {\n \"name\": \"Licca\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Licca)\\\\b\"\n }\n },\n {\n \"name\": \"Nii-sama\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Nii-sama\\\\]|-Nii-sama\\\\b\"\n }\n },\n {\n \"name\": \"niizk\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(niizk)\\\\b\"\n }\n },\n {\n \"name\": \"Nishi-Taku\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Nishi-Taku)\\\\b\"\n }\n },\n {\n \"name\": \"OnDeed\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(OnDeed)\\\\b\"\n }\n },\n {\n \"name\": \"orz\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(orz)\\\\b\"\n }\n },\n {\n \"name\": \"PAS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(PAS)\\\\b\"\n }\n },\n {\n \"name\": \"peachflavored\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(peachflavored)\\\\b\"\n }\n },\n {\n \"name\": \"Saizen\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Saizen)\\\\b\"\n }\n },\n {\n \"name\": \"SCP-2223\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SCP-2223)\\\\b\"\n }\n },\n {\n \"name\": \"SHiN-gx\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SHiN-gx)\\\\b\"\n }\n },\n {\n \"name\": \"SmugCat\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SmugCat)\\\\b\"\n }\n },\n {\n \"name\": \"Soldado\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Soldado\\\\]|-Soldado\\\\b\"\n }\n },\n {\n \"name\": \"Sushi\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Sushi\\\\]|-Sushi\\\\b\"\n }\n },\n {\n \"name\": \"Vivid\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Vivid\\\\]|-Vivid\\\\b\"\n }\n },\n {\n \"name\": \"Watashi\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Watashi\\\\]|-Watashi\\\\b\"\n }\n },\n {\n \"name\": \"Yabai\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Yabai\\\\]|-Yabai\\\\b\"\n }\n },\n {\n \"name\": \"Zurako\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Zurako)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"1ef101b3a82646b40e0cab7fc92cd896\",\n \"trash_scores\": {\n \"default\": 800\n },\n \"name\": \"Anime BD Tier 07 (P2P/Scene)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"A-L\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(A-L)\\\\b\"\n }\n },\n {\n \"name\": \"ANiHLS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ANiHLS)\\\\b\"\n }\n },\n {\n \"name\": \"CBM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(CBM)\\\\b\"\n }\n },\n {\n \"name\": \"DHD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(DHD)\\\\b\"\n }\n },\n {\n \"name\": \"DragsterPS\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(DragsterPS)\\\\b\"\n }\n },\n {\n \"name\": \"HAiKU\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(HAiKU)\\\\b\"\n }\n },\n {\n \"name\": \"Hark0N\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Hark0N)\\\\b\"\n }\n },\n {\n \"name\": \"iAHD\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(iAHD)\\\\b\"\n }\n },\n {\n \"name\": \"inid4c\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(inid4c)\\\\b\"\n }\n },\n {\n \"name\": \"KiyoshiStar\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(KS|KiyoshiStar)\\\\b\"\n }\n },\n {\n \"name\": \"MCR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MCR)\\\\b\"\n }\n },\n {\n \"name\": \"NPC\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[NPC\\\\]|-NPC\\\\b\"\n }\n },\n {\n \"name\": \"RedBlade\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(RedBlade)\\\\b\"\n }\n },\n {\n \"name\": \"RH\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(RH)\\\\b\"\n }\n },\n {\n \"name\": \"SEV\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SEV)\\\\b\"\n }\n },\n {\n \"name\": \"STRiFE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[STRiFE\\\\]|-STRiFE\\\\b\"\n }\n },\n {\n \"name\": \"TENEIGHTY\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(TENEIGHTY)\\\\b\"\n }\n },\n {\n \"name\": \"WaLMaRT\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(WaLMaRT)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"6115ccd6640b978234cc47f2c1f2cadc\",\n \"trash_scores\": {\n \"default\": 700\n },\n \"name\": \"Anime BD Tier 08 (Mini Encodes)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"Bluray\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 9\n }\n },\n {\n \"name\": \"DVD\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 5\n }\n },\n {\n \"name\": \"AkihitoSubs\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(AkihitoSubs)\\\\b\"\n }\n },\n {\n \"name\": \"Arukoru\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Arukoru)\\\\b\"\n }\n },\n {\n \"name\": \"EDGE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[EDGE\\\\]|-EDGE\\\\b\"\n }\n },\n {\n \"name\": \"EMBER\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[EMBER\\\\]|-EMBER\\\\b\"\n }\n },\n {\n \"name\": \"GHOST\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[GHOST\\\\]|-GHOST\\\\b\"\n }\n },\n {\n \"name\": \"Judas\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Judas\\\\]|-Judas\"\n }\n },\n {\n \"name\": \"naiyas\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[naiyas\\\\]|-naiyas\\\\b\"\n }\n },\n {\n \"name\": \"Nep_Blanc\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Nep[ ._-]Blanc)\\\\b\"\n }\n },\n {\n \"name\": \"Prof\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Prof\\\\]|-Prof\\\\b\"\n }\n },\n {\n \"name\": \"Shir\u03c3\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Shir\u03c3)\\\\b\"\n }\n },\n {\n \"name\": \"YURASAKA\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[YURASUKA\\\\]|-YURASUKA\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"8167cffba4febfb9a6988ef24f274e7e\",\n \"trash_scores\": {\n \"default\": 600\n },\n \"name\": \"Anime Web Tier 01 (Muxers)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"Arg0\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Arg0)\\\\b\"\n }\n },\n {\n \"name\": \"Arid\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Arid\\\\]|-Arid\\\\b\"\n }\n },\n {\n \"name\": \"Baws\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Baws)\\\\b\"\n }\n },\n {\n \"name\": \"LostYears\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(LostYears)\\\\b\"\n }\n },\n {\n \"name\": \"LYS1TH3A\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(LYS1TH3A)\\\\b\"\n }\n },\n {\n \"name\": \"sam\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[sam\\\\]|-sam\\\\b\"\n }\n },\n {\n \"name\": \"SCY\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SCY)\\\\b\"\n }\n },\n {\n \"name\": \"Setsugen\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Setsugen)\\\\b\"\n }\n },\n {\n \"name\": \"smol\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[smol\\\\]|-smol\\\\b\"\n }\n },\n {\n \"name\": \"Vodes\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Vodes)\\\\b\"\n }\n },\n {\n \"name\": \"Z4ST1N\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Z4ST1N)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"8526c54e36b4962d340fce52ef030e76\",\n \"trash_scores\": {\n \"default\": 500\n },\n \"name\": \"Anime Web Tier 02 (Top FanSubs)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"0x539\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(0x539)\\\\b\"\n }\n },\n {\n \"name\": \"Asakura\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Asakura\\\\]|-Asakura\\\\b\"\n }\n },\n {\n \"name\": \"Cyan\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Cyan\\\\]|-Cyan\\\\b\"\n }\n },\n {\n \"name\": \"Dae\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Dae\\\\]|-Dae\\\\b\"\n }\n },\n {\n \"name\": \"Foxtrot\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Foxtrot\\\\]|-Foxtrot\\\\b\"\n }\n },\n {\n \"name\": \"Gao\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Gao\\\\]|-Gao\\\\b\"\n }\n },\n {\n \"name\": \"GSK_kun\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(GSK[._-]kun)\\\\b\"\n }\n },\n {\n \"name\": \"HatSubs\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(HatSubs)\\\\b\"\n }\n },\n {\n \"name\": \"MTBB\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(MTBB)\\\\b\"\n }\n },\n {\n \"name\": \"Okay-Subs\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Okay-Subs)\\\\b\"\n }\n },\n {\n \"name\": \"Pizza\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Pizza\\\\]|-Pizza\\\\b\"\n }\n },\n {\n \"name\": \"Reza\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Reza)\\\\b\"\n }\n },\n {\n \"name\": \"Slyfox\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Slyfox)\\\\b\"\n }\n },\n {\n \"name\": \"SoLCE\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SoLCE)\\\\b\"\n }\n },\n {\n \"name\": \"Tenshi\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[tenshi\\\\]|-tenshi\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"de41e72708d2c856fa261094c85e965d\",\n \"trash_scores\": {\n \"default\": 400\n },\n \"name\": \"Anime Web Tier 03 (Official Subs)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"SubsPlease\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SubsPlease)\\\\b\"\n }\n },\n {\n \"name\": \"SubsPlus+\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(SubsPlus\\\\+?)\\\\b\"\n }\n },\n {\n \"name\": \"ZR\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(ZR)\\\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"9edaeee9ea3bcd585da9b7c0ac3fc54f\",\n \"trash_scores\": {\n \"default\": 300\n },\n \"name\": \"Anime Web Tier 04 (Official Subs)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"BlueLobster\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(BlueLobster)\\\\b\"\n }\n },\n {\n \"name\": \"Erai-Raws\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Erai-raws)\\\\b\"\n }\n },\n {\n \"name\": \"GST\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(GST)\\\\b\"\n }\n },\n {\n \"name\": \"HorribleRips\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(HorribleRips)\\\\b\"\n }\n },\n {\n \"name\": \"HorribleSubs\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(HorribleSubs)\\\\b\"\n }\n },\n {\n \"name\": \"KAN3D2M\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(KAN3D2M)\\\\b\"\n }\n },\n {\n \"name\": \"KiyoshiStar\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(KS|KiyoshiStar)\\\\b\"\n }\n },\n {\n \"name\": \"Lia\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Lia\\\\]|-Lia\\\\b\"\n }\n },\n {\n \"name\": \"NanDesuKa\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(NanDesuKa)\\\\b\"\n }\n },\n {\n \"name\": \"URANIME\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(URANIME)\\\\b\"\n }\n },\n {\n \"name\": \"VARYG\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(VARYG)\\\\b\"\n }\n },\n {\n \"name\": \"ZigZag\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[ZigZag\\\\]|-ZigZab\\b\"\n }\n }\n ]\n}\n
{\n \"trash_id\": \"22d953bbe897857b517928f3652b8dd3\",\n \"trash_scores\": {\n \"default\": 200\n },\n \"name\": \"Anime Web Tier 05 (FanSubs)\",\n \"includeCustomFormatWhenRenaming\": false,\n \"specifications\": [\n {\n \"name\": \"WEBDL\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 7\n }\n },\n {\n \"name\": \"WEBRIP\",\n \"implementation\": \"SourceSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": 8\n }\n },\n {\n \"name\": \"9volt\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(9volt)\\\\b\"\n }\n },\n {\n \"name\": \"GJM\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(GJM)\\\\b\"\n }\n },\n {\n \"name\": \"Kaleido\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\b(Kaleido)\\\\b\"\n }\n },\n {\n \"name\": \"Kantai\",\n \"implementation\": \"ReleaseTitleSpecification\",\n \"negate\": false,\n \"required\": false,\n \"fields\": {\n \"value\": \"\\\\[Kantai\\\\]|-Kantai\\\\b\"\n }\n }\n ]\n}\n