As of December 30th 2023, Sonarr v4 has been officially released. Sonarr v3 is therefore in End of Life status. As v4 has now been released, there will be no further updates to the Sonarr v3 guide. We recommend that all users upgrade to Sonarr v4. This Sonarr v3 guide will be removed in a future guides update.
Before updating to Sonarr v4 it is recommended that you delete any existing Release Profiles
It's recommended to run two Sonarr instances. One for Anime and one for normal tv shows, or you can make use of tags.
-
Being that release profiles are global without the use of a tag.
-
-
Dual-Audio Regex
-
Having tested most of these settings, they work pretty well, but Anime is a fickle beast to toy with so be warned.
-
-
Anime Delete
-
-If you have issues with extra files being downloaded like NCED or NCOP
-
If you have issues with Sonarr picking up a bunch of:
-
-
NCED
-
NCOP
-
Music Videos
-
OP's
-
-
Then this script (linux based only) will delete these files and get rid of them and you don't have to worry about them cluttering up your Auto or Manual import process.
-
#!/usr/bin/env bash
-
-# Set the following location to your completed download location for Anime.
-# Usually one of the following paths:
-# Dockers => /data/{usenet|torrents}/anime
-# Cloudbox => /mnt/local/downloads/nzbs/nzbget/completed/sonarranime
-location="/your/download/path/here"
-
-find$location-typef\(-iname"*op[0-9]*"-o-iname"*nced*"-o-iname"*ncop*"-o-iname"*music video*"\)-execrm-rf{}\;
-
-
This script will be called through a custom connection in Sonarr.
-
-
Copy the contents of the script into whatever filepath Sonarr has access to (/config/app/ or /appdata/sonarr/scripts)
-
Edit the location="/your/download/path/here" and make sure it's in quotes.
-
Then save it and chmod +x the script.
-
In Sonarr go to Settings => Connect => Click on the + Symbol => and select Custom Script
-
Change Name to whatever you like.
-
Select On Grab and On Import.
-
Click the Folder icon or type in the path to the script you chose earlier.
-
-
-
Now when you download or import any files the script will run and clear out those files that you most likely won't use and if you want them well this script isn't for you.
-
-
-
Media Management
-
-
Note
-
There are a few settings which make life a lot easier when tracking down and keeping certain information for your Anime and with tweaks to make it work better with HamaAgent for Plex.
-
-
Suggested naming scheme
-
For this I used the Sonarr Recommended naming scheme with only a small change for a formatting error to be fixed and the Series Folder Format for easier matching.
-
Anime Episode Format
-
Has all necessary information and a little extra if you needed to rebuild.
The Series Title! (2010) - S01E01 - 001 - Episode Title 1 [AMZN WEBDL-1080p v2][HDR][10bit][x264][DTS 5.1][FLAC][JA]-RlsGrp
-
Multi Episode:
-
The Series Title! (2010) - S01E01-E02-E03 - 001-002-003 - Episode Title [AMZN WEBDL-1080p v2][HDR][10bit][x264][DTS 5.1][FLAC][JA]-RlsGrp
-
-
Series Folder Format
-
Adding year back in with tvdb id allows matching to be correct. Thanks salty.
-
{SeriesTitleYear}[tvdb-{TvdbId}]
-
-
RESULT:
-
The Series Title! (2010) [tvdb-12345]
-
Season Folder Format
-
The only one real option to use in my opinion.
-
Season{season:00}
-
-
RESULT:
-
Season 01
-
Multi-Episode Style
-
PrefixedRange
-
-
RESULTS:
-
-
-Example
-
-
-
-
Quality Profile
-
We need to add HDTV-1080p and Bluray-1080p into the same group as WEBDL-1080p and WEBRip-1080p so that it will download correctly and not upgrade past HDTV-1080P if Preferred Words does not allow it.
-
-
-
Indexers
-
We need to add the Anime Categories to our indexers otherwise this all won't work very well.
-
-Example
-
-
We need to open Settings -> Indexers
-
Select the Indexer(s) you would like to use for Anime
-
Select the dropdown for Anime Categories.
-
-
Select the Anime category.
-
-
Click outside the pop-up modal but inside the Add Indexer modal.
-
-
-
-
-
-
Note
-
Check mark Include Preferred when Renaming where applicable and add {Preferred Words} to your renaming scheme else you could get a download loop issues!!!
-
-
Release Profiles
-
-
Note
-
We're going to make use of 2 separate release profiles.
-
-
First Release Profile
-
-
-
Tip
-
DO Check mark Include Preferred when Renaming on this release profile.
-
-
-
Multi-Audio
-
Add this to your Preferred with a score of [500]
-
/(multi[._-]?audio)/i
-
-
Dual-Audio
-
Add this to your Preferred with a score of [0]. This is for renames only and that's why it is at 0. It is also added in the second profile. This one is to ensure that the preferred words get added.
-
/(dual[._-]?audio)/i
-
-
Optional (uncut|unrated|uncensored)
-
Add this to your Preferred with a score of [100]/[-10000]
-
If you would like it to be priority then set to 100. If you do not want uncensored set it to -10000. If you don't care either way just leave it out. The reasoning behind only 100 is so that it doesn't trump other release further up in the chain, this way it will trump maybe a couple releases, but not more. And -10000 to hopefully put it at the bottom of any tier list if you don't want it.
-
/(uncut|unrated|uncensored|\b(AT[-_.]?X)\b)/i
-
-
-
Note
-
When done it should look something like this:
-
-
-
-
Second Release Profile
-
-
-
Warning
-
DO NOT Check mark Include Preferred when Renaming
-
-
-
Must Not Contain
-
The reason most of these are added is due to their shitty quality or just in general are not as good as other stuff that is out there. This can be tweaked as needed. Let me know if you run into any issues here. You should be able to just copy paste these in one go. If there is a reason something shouldn't be here let me know and your logic and I will be open to adjusting.
-
-
Tip
-
If you would like dub releases then remove the last 2 lines and do not add them.
Two lines in one grouping is just there for readability purposes but achieves the same result and score.
-
-
-
Add this to your Preferred with a score of [501]
-
-
Note
-
This is set to 501 so that it may jump one tier if need be, but not more.
-
-
/dual[._-]?audio|EN\+JA|JA\+EN/i
-
-
-
-
Tip
-
These next few are optional, but they are here to move releases up over lower tiers of 1080/720p or WEB-DL/Blu-Ray. Will add another note like this to end the optional section.
-
-
-
Add this to your Preferred with a score of [100]
-
-
Note
-
We are adding this as 100 so that any unknown Blu-Ray can jump tiers inside the Subs categories but not interfere with any tiers above.
These are extra parameters that can help and are not needed but are nice to have. They are set low mainly to supercede themselves and not interfere with other releases.
-
-
Add this to your Preferred with a score of [1]
-
Adds Hi10|Hi10p into a match. Prefers this over some erroneous matches.
-
/(10.?bit|hi10p)/i
-
-
-
Add this to your Preferred with a score of [1]
-
Adds version due to anime groups sometimes fixing issues with their releases.
-
/\b(v2)\b/i
-
-
-
Add this to your Preferred with a score of [2]
-
/\b(v3)\b/i
-
-
-
Add this to your Preferred with a score of [3]
-
/\b(v4)\b/i
-
-
-
-
Note
-
This section can be controversial but most of these releases are micro/mini encodes or crappy quality. I personally add them into the do not want section but I will leave them here with negative values so you can still grab them if all else fails.
-
-
Add this to your Preferred with a score of [-10000]
-
Sub-Par Releases 1st Tier (Re-encoded to crap or really small filesizes) (Little less worse than the rest)
-
/(\[Judas\]|-Judas|\[Cleo\]|-Cleo)/i
-
-
/(AnimeRG|bonkai77|URANiME)/i
-
-
-
Add this to your Preferred with a score of [-15000]
-
Sub-Par Releases 2nd Tier (Re-encoded to crap or really small filesizes) (Seperated onto separate lines for readability)
When completed your Release Profiles should look like this:
-
-
Acknowledgements
-
Most of my information and knowledge came from:
-
-
-
Kaiser (Guidance on anime groups)
-
-
-
rg9400 (Guidance on regex fixes, anime groups and general knowledge share.)
-
-
-
Drazzilb (Guidance on regex fixes, anime groups and general knowledge share.)
-
-
-
TRaSH (For allowing me to utilize his website for my guide and general knowledge share.)
-
-
-
Thanks a bunch!!
-
-
-
-
-
Questions or Suggestions?
-
If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
As of December 30th 2023, Sonarr v4 has been officially released. Sonarr v3 is therefore in End of Life status. As v4 has now been released, there will be no further updates to the Sonarr v3 guide. We recommend that all users upgrade to Sonarr v4. This Sonarr v3 guide will be removed in a future guides update.
Before updating to Sonarr v4 it is recommended that you delete any existing Release Profiles
-
-
-
-
Release Profile RegEx (WEB-DL)
-
Sonarr V3 has a great feature called Release Profile.
-With this option you can fine tune your preference.
-
The Release profile that we're going to use for this example is mainly to prefer P2P releases over Scene releases. (Scene releases are still being downloaded, but replaced once an upgrade is found.)
-
-
If you don't care about quality then stop reading and see if the other tutorials are helpful for you.
-
-
-FAQ - [Click to show/hide]
-
FAQ
-
Q: Why do you only have a release profile for WEB-DL?
-
A: I only do WEB-DL my self for TV shows because in my opinion WEB-DL is the sweet spot between quality and size and you often don't see big differences anyway for TV shows. (Except for shows like GOT, Vikings, etc)
-
Q: Why do you prefer P2P groups over scene groups?
-
A: Scene groups always release in a rush to bring it out as fast as possible.
-
So I noticed often that I got Repacks/Proper releases from them or from different groups and quality.
-P2P releases are a bit smarter and work sort of together by not doing the same release.
-Also, I noticed that with some scene releases the 5.1 audio was stripped out or converted to AAC audio.
-
In my opinion the P2P releases are of better quality.
-There's one scene group that does bring out quality releases -deflate/-inflate.
-
Q: Why do I see so many repacks/propers of Amazon WEB-DLs lately?
-
A: A large portion of Amazon WEB-DLs in the last week have only had 192Kbps DD+5.1, because that's all Amazon made available initially.
-The proper 640Kbps DD+5.1 audio might appear a few hours later or a few months, but when they get updated, the episodes will be REPACKED.
-
Q: Why did you remove all the scene groups?
-
A: I decided to redo the Release Profile to make it easier for me and the end user to update/manage the Release Profile. I decided not to add the scene groups anymore (and also removing the current ones). Why? Lately I noticed a lot of popup scene releases meaning we need to update often.
-
With this it also means all scene and (yet) unknown groups will be getting a score of 0 and not -50.
-
I will still keep a eye on them and add the Low Quality Groups to the -100 score and when I find a new P2P group I will add them, resulting in less updates and a more accurate upgrade.
-
-
-
Basics
-
This guide is based on WEBDL (Read the FAQ why) that's why we're going to create a quality profile based on WEBDL.
-
Settings => Profiles
-
-
Select the profile that you want to use/prefer.
-
-
-
-
Tip
-
Starting from 2010 you will be able to find almost anything as WEBDL,
-
2000-2010 you will only find a few shows as WEBDL in that case you might want to enable HDTV and or 720p.
-
If you want 2160p WEBDL then choose 2160p WEBDL and add the HDR and/or DV regex, 2160p without HDR/DV has no real benefits !!!
-
-
-
-
Sonarr current logic
-
-Sonarr current logic - [Click to show/hide]
-
As of 2021-11-06 the logic is as follows:
-
The Current logic on how downloads are compared is Quality Trumps All
REPACKS and PROPERs are v2 of Qualities and thus rank above a non-repack of the same quality.
-
Settings => Media Management => File Management => Proper & Repacks Change to Do Not Prefer and use a preferred word regex of /\b(repack|proper)\b/i
-
-
-
-
-
-
Propers and Repacks
-
First we're need to make sure a P2P release isn't being replaced by a Scene Repack/Proper release!
-
-
Go to Settings => Media Management
-We´re going to set it to Do not Prefer.
-
Then we navigate to Settings => Profiles and click the plus sign.
-
-
You will get a popup screen that will look like this:
-
-
-
-
Must Contain => add words that the release name MUST HAVE!
-
-
-
Must Not Contain => add words that the release name MUST NOT HAVE OR IT WILL BE REJECTED!
-
-
-
Preferred => add words you prefer with a certain score. The release will be preferred based on each term's score.
-
-
-
Include Preferred when Renaming => When you add {Preferred Words} to your renaming scheme it will add this info.
-
-
-
Indexers => Specify what indexer the profile applies to.
-
-
-
Tags => create a tag so this is only used by shows that you give this tag to or else it's global.
-
-
-
-
-
Info
-
The Number between the [brackets] in the following release profiles are the scores the release name will get during an automatic and manual search and with the use of the scores some releases will be preferred over others and even upgraded.
-
The Number between (brackets) in the following release profiles are referring to the location where you should add this regex in the release profile corresponding the screenshot above.
-
-
-
We're going to make use of four separate release profiles.
-
-
-
Profile 1
-
-
-
Release Sources (Streaming Service)
-
-
Note
-
Check mark Include Preferred when Renaming and add {Preferred Words} to your renaming scheme or else you could get download loop issues!!!
-
What it does:
-
When enabled, the block with the Release Source (Streaming Service) in it are then added to the file name which fixes any loops due to Sonarr seeing a new NF rip when an AMZN rip is found.
-Probably doesn’t happen if cutoff is met, but for anything that is unmet or any forced searches it results in a loop because NF is not in Sonarr’s copy so it upgrades, and loops.
-
Enabling the include in preferred words for AMZN and adding that to the file name fixes that.
Don't forget to click on SAVE after you've added everything you want to the release profile
-
-
-example - [Click to show/hide]
-
-
Warning
-
These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
-
-
Always follow the data described in the guide (with the copy paste/option at the end).
-
If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly.
-
-
-
-
-
-
-
Profile 2
-
-
-
P2P Groups + Repack/Proper
-
-
DO NOT Check mark Include Preferred when Renaming
-
-
Add this to your Preferred (3) with a score of [1700]
Add this to your Preferred (3) with a score of [1600] 1
-
/(-deflate|-inflate)\b/i
-
-
Add this to your Preferred (3) with a score of [7]
-
/(repack3)/i
-
-
Add this to your Preferred (3) with a score of [6]
-
/(repack2)/i
-
-
Add this to your Preferred (3) with a score of [5]
-
/\b(repack|proper)\b/i
-
-
-
Caution
-
Don't forget to click on SAVE after you've added everything you want to the release profile
-
-
-example - [Click to show/hide]
-
-
Warning
-
These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
-
-
Always follow the data described in the guide (with the copy paste/option at the end).
-
If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly.
-
-
-
-
-
-
-
Profile 3
-
-
-
Low Quality Groups
-
-
DO NOT Check mark Include Preferred when Renaming
-
-
Add this to your Preferred (3) with a score of [-10000]
Don't forget to click on SAVE after you've added everything you want to the release profile
-
-
-example - [Click to show/hide]
-
-
Warning
-
These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
-
-
Always follow the data described in the guide (with the copy paste/option at the end).
-
If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly.
-
-
-
-
-
-
-
Profile 4
-
Optionals
-
-
DO NOT Check mark Include Preferred when Renaming
-
-
-
Caution
-
These optionals are optional because they should only be added/used if you got a certain use case for it, if you don't understand what the optional is for then you probably don't need it
-
Except the Golden Rule this one is actually a must even that it's added in the optional section
-
If you see certain optional with a positive score and you actually don't want them just add them with a negative score !!!
-
-
Golden rule
-
-
This one is actually a must even that it's added in the optional section
-
-
-Why the Must Not Contain entry - [Click to show/hide]
-
This one blocks/ignores 720/1080p releases that are (re-)encoded in x265.
-
So why did I put /^(?=.*(1080|720))(?=.*((x|h)[ ._-]?265|hevc)).*/i as Must Not Contain and what does it do ?
-
Why ?
-
-
Quote
-
x265 is good for for 4k stuff or 1080p if they used the the remuxes as source.
-If the media isn't source quality/remux, then there will be a loss of quality every time.
-Also, once you go x265, typically that file is done.
-It can't be changed to something else without a huge loss of quality.
-
Something like 95% of video files are x264 and have much better direct play support.
-If you have more than a couple users,
-you will notice much more transcoding.
-Just depends on your priorities.
-
So basically if you are storage poor and just need to save space, use x265.
-The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes.
-If you want maximum compatibility and the option to change your files to something else later,
-then x264.
-It's all really dependent on specific situations for different people
-
-
It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it.
Add this to your Preferred (3) with a score of [500]
-
/\bHDR(\b|\d)/i
-
-
-
Optional - Prefer Dolby Vision
-
Add this to your Preferred (3) with a score of [1500]
-
/\b(dv|dovi|dolby[.]?v(ision)?)\b/i
-
-
-
Optional - Dislike retags
-
-Explanation - [Click to show/hide]
-
Use this only if you dislike renamed and retagged releases, some indexers/trackers are known to rename or add their own tags to the release name which could mess up your results or naming.
-
-
Add this to your Preferred (3) with a score of [-10000]
Use this only if you dislike Obfuscated releases, some indexers are known to rename or add their own tags/obfuscated name to the release name which could mess up your results or naming.
-
-
Add this to your Preferred (3) with a score of [-10000]
Add this to your Preferred (3) with a score of [-10000]
-
-Explanation - [Click to show/hide]
-
Some indexers are known to add extra useless info to the release name which could mess up your results or naming.
-
-
/\s?\ben\b$/i
-
-
-
Optional - Dislike release containing: 1-
-
-Explanation - [Click to show/hide]
-
Some indexers are known to add extra useless info to the release name which could mess up your results or naming.
-
Matches any release that contains '1-' as prefix for Release Groups
-
-
Add this to your Preferred (3) with a score of [-10000]
-
/(?<!\d\.)(1-.+)$/i
-
-
-
Optional - Dislike Extras
-
Add this to your Preferred (3) with a score of [-10000]
-
/(?<=\bS\d+\b).*\b(Extras|Bonus)\b/i
-
-
-
Optional - Prefer Season Packs
-
-Explanation - [Click to show/hide]
-
Use this if you prefer Season packs
-
-
-
-
This will upgrade also your already downloaded single episodes
-
/\bS\d+\b(?!E\d+\b)/i season packs are preferred: however, given the folder name is ignored the error/warning/issue occurs as the file names would not be a season pack of course.
-
keep in mind this is the only way to prefer season packs if you have preferred words due to the long standing bug => Preferred Words overrule season pack preference Sonarr/Sonarr#3562
-
-
-
Add this to your Preferred (3) with a score of [15]
-
/\bS\d+\b(?!E\d+\b)/i
-
-
-
.su season pack issue
-
-.su season pack issue - [Click to show/hide]
-
When you see a error in Sonarr that looks somehow like the follow screenshot
-
-
Then there is only one way real way that always solves this issue.
-create a new release profile specific for .su that uses the Season regex as Must not contain (2)
-
-
-
Note
-
There is a script for NZBGet that sometimes could help but it seems it doesn't always work. It also seems there is a work around for SABnzbd but i can't confirm being i'm not using Sab.
-
-
-
-
Optional - Ignore Dolby Vision without HDR10 fallback
-
-Explanation - [Click to show/hide]
-
This is a RegEx that ignores DV that don't have the fallback to HDR10, What can results in playback issues like weird colors if you want to play it on a not Dolby Vision compatible setup.
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.
If you're getting often a error message like Has the same filesize as existing file, you might need to consider to remove the [-10000]
-
-
-
-
Scores [-10000] Groups that mess with the audio or add another preferred language.
-
-
-
Optional => We've tested it and it worked for what we've tested it on, if it will work in your situation we don't know.
-
If you notice something wrong just contact me and we will try to fix it or remove it.
-
Final Results
-
When you've done it correctly it will look something like this.
-
-example - [Click to show/hide]
-
-
Warning
-
These screenshots are just examples to show you how it should look and where you need to place the data that you need to add, they aren't a 100% reflection of the actual data and not always 100% up to date with the actual data you need to add.
-
-
Always follow the data described in the guide (with the copy paste/option at the end).
-
If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly.
-
-
-
-
-
-
-
This list is made by collecting information from Sonarr Discord Channel, and personal testing and a few others that helped.
-
So I want to thank everyone who helped to make this list possible, for privacy reasons I decided not to add the names/nick of the persons.
-
If you want to be mentioned please message me on discord, including a link for proof to what part you want to be credited.
-
-
Info
-
Keep in mind this list will be a constant work in progress because I will be updating it when it's needed.
-
So best to set a notification for updates for this page.
-
Or use one of the 3rd Party Sync options that you can find 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.
-
-
-
-
-
-
-
-
-
-
The reason why this one gets positively scored is because it's the only quality scene group that exists (up until now). Scene groups don't add a streaming service to their release names, so the score is adjusted to take this into account. ↩
As of December 30th 2023, Sonarr v4 has been officially released. Sonarr v3 is therefore in End of Life status. As v4 is now the only supported version of Sonarr, we have removed the Sonarr v3 guide. We recommend that all users upgrade to Sonarr v4.
Before updating to Sonarr v4 it is recommended that you delete any existing Release Profiles
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 (I'm a bit picky about which releases and what quality I prefer). I decided to fine-tune my quality profile settings to try and get the releases and qualities I preferred. While on Discord, I noticed that others ran into the same issue, so I explained how I managed to solve this. Once I started having to explain more often, I decided to write it down and make it public so I could easily link to it when needed. After a while I also decided to create guides for frequently asked questions and started to collect all kinds of information gathered from various sources. I try to make my guides as easy as possible for everyone to understand and, in my opinion, pictures often explain more than just some text.
If you have questions, suggestions, or requests, or want to contribute, click the chat badge to join the Discord Channel. There you can ask your questions directly, or you can use the following link to open an issue on GitHub. Feel free to create a PR if you want to.
The information provided in the guides has been gathered from different sources such as support forums, Reddit, Discord, or the development teams themselves, and has been developed based on user input. I have tested and tuned most things with the ultimate goal being to have them in line with my, and sometimes others', needs.
All of the information provided in these guides, as well as in Discord or any guides-related mediums, is to be used at your own risk. I am not responsible if something happens to your setup or collection!
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
Select all.
Select your Language Profile you created earlier.
Click on 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.
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.
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.
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
Here you enter the path that Sonarr uses to access your shows.
Here you enter the path that Bazarr uses to access your shows.
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
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.
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
Here you enter the path that Radarr uses to access your movies.
Here you enter the path that Bazarr uses to access your movies.
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
**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
Click on Add to add the languages you enabled earlier in Subtitle Language.
Select the languages you want to enable for your profile (Including the optional settings).
Forced => FAQ - What are Forced Subtitles
HI => Hearing Impaired
Exclude Audio => Exclude if matching audio
Optional select the cutoff where you want Bazarr to stop downloading other languages.
Save your settings.
Cutoff
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.
Here we're going to select which subtitle providers you want to use.
Settings => Providers
Click on the Plus sign box.
Select the subtitle providers you would like to enable. It is best to select multiple providers and create/use an account with them especially when you got a lot of wanted subtitles. Some subtitle providers requires an extra paid Anti-Captcha Service.
Your enabled providers.
Tip
If possible don't forget to support them for their free service
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.
Setting it to low could result in bad subs or completely out of sync and un-syncable.
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.
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.
Enable Automatic Subtitles Synchronization at step 3.
Enable Series Score Threshold at step 4 and set the score to 96.1
Enable Movies Score Threshold at step 5 and set the score to 86.1
This 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.
it use the embedded subtitles track as reference, if not present.
it needs to extract the audio track and analyze it to define start of sentence markers.
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
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.
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.
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:
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.
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
You set your download location in your download client
Your download client ONLY downloads to your download folder/location.
And you tell Radarr where you want your clean media library
Starr Apps import from your download location (copy/move/hardlink) to your media folder/library
Plex, Emby, JellyFin, or Kodi should ONLY have access to your media folder/library
Your Download and Media Library should be **NEVER the same locations**
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.
Your ISP speed.
Your hardware.
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.
I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced) to remove completed downloads. These sections are then not necessary.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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
Pause torrents in a specified age range that reside on your cache drive.
Run the unRAID mover.
Resume the torrents after the mover has completed.
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.
Always follow the recommendations described in the guide.
If you have any questions, or aren't sure, just click the chat badge to join the Discord Channel where you can ask your questions directly.
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.
User scriptsPython venvGo File
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:
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.
If you do not use Mover Tuning, you DO NOT have to make any changes.
If you use Mover Tuning but DON'T want to use it for the script, change this to True
If you use 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.
"},{"location":"Downloaders/Deluge/Tips/Unraid-Mover/#copy-the-script-to-your-preferred-location","title":"Copy the script to your preferred location","text":"
Place the script you just edited somewhere easy to access/remember.
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.
Python (Native)Python (venv)
#!/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.
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:
"},{"location":"Downloaders/NZBGet/Basic-Setup/#some-basics","title":"Some Basics","text":"Name Description ${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 Description MainDir/data/usenetDestDir${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.
WriteBuffer: If you're low on memory don't set this to high.
"},{"location":"Downloaders/NZBGet/Basic-Setup/#logging","title":"LOGGING","text":""},{"location":"Downloaders/NZBGet/Basic-Setup/#check-and-repair","title":"CHECK AND REPAIR","text":""},{"location":"Downloaders/NZBGet/Basic-Setup/#unpack","title":"UNPACK","text":"
Info
DirectUnpack: This might lower your download speed but the overall time could be faster. (disable on low powered devices)
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.
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
You set your download location in your download client
Your download client ONLY downloads to your download folder/location.
And you tell Radarr where you want your clean media library
Starr Apps import from your download location (copy/move/hardlink) to your media folder/library
Plex, Emby, JellyFin, or Kodi should ONLY have access to your media folder/library
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.
NZBGet development has been officially abandoned by the developer
"},{"location":"Downloaders/NZBGet/scripts/#clean","title":"Clean","text":"Clean NZB name
Title: Clean.py
Author(s): ???
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
Title: HashRenamer.py
Author(s): l3uddz
URL: github.com/cloudbox/cloudbox
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
Title: replace_for.py
Author: miker
Replaces underscores with dots in downloaded filename to prevent download loops with poorly named releases on some indexers (often HONE releases).
Install Instructions:
Copy script to NZBGet's script folder
Run: sudo chmod +x replace_for.py
In NZBGet go to Settings => Extension Scripts
Enable replace_for.py in the Extensions setting.
Script
#!/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
Title: WtFnZb-Renamer.py
Author(s): WtFnZb
URL: ??
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
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:
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.
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.
When during download it becomes clear that too much data is missing, abort the job. and makes sure Sonarr/Radarr will get a notification and can look for another release.
Since we have the .nzb history folder, you can decide what you want to do here w/ duplicate downloads. Mine is set to Tag job, but Pause or Fail job may make sense too.
In case of \"Pause\", you'll need to set a password and resume the job. or you set it to \"Abort\" and Sonarr/Radarr can look for another release.
Suggest this sort so that the most likely to still be there stuff is downloaded first.
If your hardware isn't up to snuff, including cpu and/or io performance, disabling Direct Unpack and/or enabling Pause Downloading During Post-Processing can help. Defaults are fine for most hardware though.
If your hardware isn't up to snuff, including cpu and/or io performance, disabling Direct Unpack and/or enabling Pause Downloading During Post-Processing can help. Defaults are fine for most hardware though.
Only unpack and run scripts on jobs that passed the verification stage. If turned off, all jobs will be marked as Completed even if they are incomplete.
Unpack archives (rar, zip, 7z) within archives.
This can help with subs that are in folders in the rar because sonarr/radarr don't look in sub-folders.
Some servers provide an alternative NZB when a download fails. I have it enabled no guarantee that it works.
Helps with de-obfuscation especially invalid file extensions
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.
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.
"},{"location":"Downloaders/SABnzbd/Basic-Setup/#radarr","title":"Radarr","text":"Radarr - [Click to show/hide]
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
You set your download location in your download client
Your download client ONLY downloads to your download folder/location.
And you tell Radarr where you want your clean media library
Starr Apps import from your download location (copy/move/hardlink) to your media folder/library
Plex, Emby, JellyFin, or Kodi should ONLY have access to your media folder/library
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 name
Title: Clean.py
Author(s): ???
Made compatible for SABnzbd: AlexK
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:
Copy script to sabnzbd's script folder
run: sudo chmod +x Clean.py
in SABnzbd go to Settings => Switches
Change Pre-queue user script and select: Clean.py
Script
#!/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\n# normalize argv to scriptname and just first 8 arguments to maintain compatibility\nsys.argv = sys.argv[:9]\ntry:\n # Parse the input variables for SABnzbd version >= 4.2.0\n (scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist) = 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
Title: replace_for.py
Author: miker
Replaces underscores with dots in downloaded filename to prevent download loops with poorly named releases on some indexers (often HONE releases).
Install Instructions:
Copy script to sabnzbd's script folder
run: sudo chmod +x replace_for.py
in SABnzbd go to Settings => Categories
Change script for required categories and select: replace_for.py
Script
#!/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.
This is a program used to manage your qBittorrent instance such as:
Tag torrents based on tracker URL and set seed goals/limit upload speed by tag (only tag torrents that have no tags)
Update categories based on save directory
Remove unregistered torrents (delete data & torrent if it is not being cross-seeded, otherwise it will just remove the torrent)
Automatically add cross-seed torrents in paused state. Note: cross-seed now allows for torrent injections directly to qBit, making this feature obsolete.
Recheck paused torrents sorted by lowest size and resume if completed
Remove orphaned files from your root directory that are not referenced by qBittorrent
Tag any torrents that have no hard links and allows optional cleanup to delete these torrents and contents based on maximum ratio and/or time seeded
RecycleBin function to move files into a RecycleBin folder instead of deleting the data directly when deleting a torrent
Built-in scheduler to run the script every x minutes. (Can use --run command to run without the scheduler)
Webhook notifications with Notifiarr and Apprise API integration.
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)
It's dark, but not black
It has different colors for ratio-values (see screenshot)
Search for cross-seeds as soon as new torrents are finished downloading
Race starting at 100% before the uploader even joins.
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.
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:
Tools => Options => Downloads (Or click on the cogwheel to access the options)
"},{"location":"Downloaders/qBittorrent/Basic-Setup/#when-adding-a-torrent","title":"When adding a torrent","text":"
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.
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.
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.
Your ISP speed.
Your hardware used.
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.
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.
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":"
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
"},{"location":"Downloaders/qBittorrent/How-to-add-categories/","title":"qBittorrent - How to add 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
Click on the left under categories with your left mouse button.
Click on Add category
Enter your category.
Enter your save path subfolder (keep it simple and recognizable)
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:.
"},{"location":"Downloaders/qBittorrent/How-to-add-categories/#paths-and-categories-breakdown","title":"Paths and Categories Breakdown","text":""},{"location":"Downloaders/qBittorrent/How-to-add-categories/#downloads-do-not-go-into-the-category-folder","title":"Downloads do not go into the category folder","text":"
Downloads do not go into the category folder
When your downloads ends up in /data/torrents/ and not in /data/torrents/{tv|movies|music} then you probably forgot to change Default Torrent Management Mode: to Automatic
Questions or Suggestions?
If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
This basic example is based on the use of docker images
Keep in mind the path are setup so it works with hardlinks and instant moves.
More info HERE
Info
Pick one path layout and use it for all of them.
It doesn't matter if you prefer to use /data, /shared, /storage or whatever.
The screenshots in the examples are using the following root path /data
Options => Downloads
"},{"location":"Downloaders/qBittorrent/Port-forwarding/","title":"qBittorrent - Port forwarding","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.
Tools => Options => Connection
Tools or cog wheel.
Options (skip if you choose the cog wheel).
Select the Connection Tab.
Change TCP and uTP to TCP, if you get speed issues try one of the others.
Add here the port you've forwarded.
"},{"location":"Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/","title":"unRAID Mover and qBittorrent","text":"
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
Pause torrents in a specified age range that reside on your cache drive.
Run the unRAID mover.
Resume the torrents after the mover has completed.
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.
Always follow the recommendations described in the guide.
If you have any questions, or aren't sure, just click the chat badge to join the Discord Channel where you can ask your questions directly.
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.
User scriptsPython venvGo File
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:
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":""},{"location":"Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/#copy-the-script-to-your-preferred-location","title":"Copy the script to your preferred location","text":"
Place the script you just edited somewhere easy to access/remember.
Replace /mnt/user/data/scripts/ in the script with the path you have chosen for the Python script.
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.
host => The URL you use to access qBittorrent locally.
user => Your used qBittorrent User Name if you have authentication enabled.
password => Your used qBittorrent Password if you have authentication enabled.
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.
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.5
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.
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:
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.
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.
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.
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
"},{"location":"Hardlinks/Examples/#sonarr","title":"Sonarr","text":"Sonarr Examples - [Click to show/hide]
Settings => Media Management => Importing
Settings => Media Management => Root Folders
Series => Add New
"},{"location":"Hardlinks/Examples/#radarr","title":"Radarr","text":"Radarr Examples - [Click to show/hide]
Settings => Media Management => Importing
Settings => Media Management => Root Folders
Movies => Add New
"},{"location":"Hardlinks/Examples/#sabnzbd","title":"SABnzbd","text":"SABnzbd Examples - [Click to show/hide]
SABnzbd config => Folders
SABnzbd config => Categories
Don't forget to look at the full SABnzbd Guides
SABnzbd - Basic Setup
SABnzbd - Paths and Categories
"},{"location":"Hardlinks/Examples/#nzbget","title":"NZBGet","text":"NZBGet Examples - [Click to show/hide]
NZBGet development has been officially abandoned by the developer
Settings => PATHS
Settings => CATEGORIES
Don't forget to look at the full NZBGet Guides
NZBGet - Basic Setup
NZBGet - Paths and Categories
"},{"location":"Hardlinks/Examples/#qbittorrent","title":"qBittorrent","text":"qBittorrent Examples - [Click to show/hide]
Options => Downloads
Don't forget to look at the full qBittorrent Guides
qBittorrent - Basic Setup
qBittorrent - Paths
qBittorrent - How to add categories
"},{"location":"Hardlinks/Examples/#deluge","title":"Deluge","text":"Deluge Example - [Click to show/hide]
Preferences => Downloads
Don't forget to look at the full Deluge Guides
Deluge - Basic Setup
Deluge - Using Labels
"},{"location":"Hardlinks/Examples/#rutorrent","title":"ruTorrent","text":"ruTorrent Examples - [Click to show/hide]
../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
This page with a short description.
How to setup for your installation method.
Examples what you should use for your path settings in your used applications.
Check if hardlinks are working
So you want one of the following ?
Instant moves (Atomic-Moves) during import of the Starr Apps (useful when using Usenet)?
You don't want to use twice the storage when using torrents. (hardlinks)?
You want to perma seed?
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]
[Short answer] Having a file in multiple locations without using double your storage space.
[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
"},{"location":"Hardlinks/Hardlinks-and-Instant-Moves/#what-are-instant-moves-atomic-moves","title":"What are Instant Moves (Atomic Moves)","text":"What are Instant Moves (Atomic Moves)? - [Click to show/hide]
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 the Starr 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.
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.
That's why I suggest to do it based on categories (Movies, TV, Music etc).
I don't suggest to use this on a cloud based setup.
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:
Docker
TrueNAS Scale users can follow the same concepts as the Docker method
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.
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.
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.
"},{"location":"Hardlinks/How-to-setup-for/Docker/#breakdown-of-the-folder-structure","title":"Breakdown of the Folder Structure","text":""},{"location":"Hardlinks/How-to-setup-for/Docker/#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}.
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}.
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.
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.
"},{"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.
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.
"},{"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:
The screenshots in the examples are using the following root path /storage
Sonarr
Radarr
SABnzbd
NZBGet
qBittorrent
Deluge
ruTorrent
Sonarr Examples - [Click to show/hide] Radarr Examples - [Click to show/hide] SABnzbd Examples - [Click to show/hide] NZBGet Examples - [Click to show/hide] qBittorrent Examples - [Click to show/hide] Deluge Example - [Click to show/hide] ruTorrent Examples - [Click to show/hide]
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.
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.
"},{"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}.
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}.
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.
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.
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.
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.
This page will provide you with guidance on how to install several Docker images related to the Servarr apps to your Synology. 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.
We will create one share that will hold all your data. This ensures hardlinking and/or instant moves are possible.
Create one user which will be assigned to the docker images as the user they run as out of security reasons.
Create a folder structure on the data and docker share with a few commands (or manually).
Download and edit the docker-compose.yml and .env files to your system settings.
Set permissions to all folders related in the shares.
Run and execute docker commands to start the containers.
"},{"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.
You need to install Docker / Container Manager from the Package Center. This should also create a share named docker, check File Station if it is present.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#create-the-main-share","title":"Create the main share","text":"
We will create and use a new share named data (lowercase) for all your library media and downloads.
Name this shared folder data. You can disable the trash can, up to you. Click next until you are done.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#create-a-user","title":"Create a user","text":"
We are going to create a new user that only has access to the share(s) that we use for the containers to run as. You rather not have the containers run as an admin/root user.
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 the name 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 the group users. Click Next.
You are mostly going to use the terminal. Some parts will need the Synology web GUI. To enable terminal access, 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 message asking if you want to trust the key, just press OK or ACCEPT.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#puid-and-pgid","title":"PUID and PGID","text":"
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.
Once logged in to the terminal type id docker. If you used a different username, change docker to the one you used.
This will show you the UID (aka PUID). Which in the screenshot above is 1035 for the docker user and the GID (aka PGID) which is 100 for the users group. Save these values for later use.
Let's create a good folder structure on the shares we use (docker and data). This will be done with a few commands.
The structure will look like this. You can of course edit this, but do this when you know what you are doing. We are using lowercases on all folders on purpose, being Linux is case sensitive.
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.
To create the folder structure for your media library and also for your preferred download client, run one or both of the following commands:
"},{"location":"Hardlinks/How-to-setup-for/Synology/#if-you-use-usenet","title":"If you use usenet","text":"
Your application data will be stored in the docker share in the folder called appdata (/volume1/docker/appdata) Create these folders with command below, or create them in File Station manually.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#whats-included-in-the-compose-and-what-is-not-included","title":"What's included in the compose and what is not included","text":"
This docker-compose file will have the following docker containers included.
What's not included (and where are the download clients?).
We didn't add a download client to it, because it depends on what you prefer (usenet/torrent) and which client you prefer. We have a repository Repository on Github where we 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 template file into to the main docker-compose.yml on the bottom, the templates also have a command what you need to use to create the appdata folder that we explained earlier. Without the appdata folder for the application, the creation of the container will fail because of the missing folder.
Second we will download the .env file
Download this .env to your /volume1/docker/appdata location next to the docker-compose.yml. Or use this command:
MAKE SURE THE FILE KEEPS THE ORIGINAL NAME .env WITH THE DOT BEFORE IT
"},{"location":"Hardlinks/How-to-setup-for/Synology/#changes-and-preparations","title":"Changes and preparations","text":"
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.
DOCKERCONFDIR (only change this if you know what you're doing and decide to use another path than this guide used)
DOCKERDATADIR (only change this if you know what you're doing and decide to use another path than this guide used)
PUID/PGID (this info you got earlier from HERE)
TZ (Change to your timezone, can be found HERE)
Install and Create a task scheduler for Pullio, so your containers stay up to date.
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.
"},{"location":"Hardlinks/How-to-setup-for/Synology/#pullio-auto-update-docker-compose-the-correct-way","title":"Pullio - Auto update docker-compose the correct way","text":"
Pullio allows you to automatically update your containers. And send you a notification through various means. We use a Discord Webhook.
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.
Now we need to make sure that the newly created files and folders have the correct permissions.
If you have an existing library, it is advised to move these to the new data share prior to running the commands below.
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 command below!!!
If you move files from a different library into the newly created library afterwards, 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 or backup through the webui of the app.
If you have followed all the steps and your compose file is ready, 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 read what error says and try to fix it (missing folders, permissions errors, etc). If you can't figure out the solution to your errors, join the guides-discord here and create a support ticket.
If you need help setting up the applications, 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 commands from here) again.
Any changes you do/did in the GUI will be reverted when you run the docker-compose command.
Just don't use the GUI, only for information purposes !!!
"},{"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
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.
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/#create-a-shared-group","title":"Create a shared group","text":"
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.
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/#create-your-users","title":"Create your user(s)","text":"
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.
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.
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/#create-your-nfs-shares","title":"Create your NFS share(s)","text":"
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.
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/#configure-and-enable-nfs-service","title":"Configure and enable NFS service","text":"
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.
"},{"location":"Hardlinks/How-to-setup-for/TrueNAS-Core/#mount-your-shares","title":"Mount your shares","text":"
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.
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.
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.
Make sure Tunable (support Hard Links) is enabled in your Settings => Global Share Settings.
unRAID 6.12unRAID 6.11 "},{"location":"Hardlinks/How-to-setup-for/Unraid/#create-the-main-share","title":"Create the main share","text":"
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.
unRAID 6.12 (No Cache)unRAID 6.12 (Cache)unRAID 6.11
Use data
Set up your share with the applicable settings.
unRAID 6.12 (No Cache)unRAID 6.12 (Cache)unRAID 6.11
Select the Primary storage as Array (shown in the No Cache tab above).
Select the Primary storage as Cache (shown in the Cache tab above).
Select the Secondary storage as Array
Make sure 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
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":"
"},{"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.
"},{"location":"Hardlinks/How-to-setup-for/Unraid/#setting-up-the-containers","title":"Setting up the containers","text":"
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).
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}.
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}.
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.
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).
"},{"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.
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
Example - [Click to show/hide]
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
Example - [Click to show/hide] "},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#global-vpn-network","title":"Global VPN Network","text":"
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.
Then click on Manage and select Port Forward Request.
Services > My Services > Manage > Port Forward Request
Example - [Click to show/hide] "},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#vpn-tunnel-type","title":"VPN Tunnel Type","text":"
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 Forward
That's the IP we found earlier.
Select UDP.
Select a Port/Auth I personally use 995|SHA1.
Select the ProtocolTCP.
I suggest to use a high 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).
Click on the + sign and do the same with the UDPProtocol.
Then click on 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.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#wireguard-request-port-forward","title":"WireGuard Request Port Forward","text":"WireGuard Request Port Forward - [Click to show/hide]
That's the IP we found earlier.
Select UDP. ( KEEP THIS ON UDP FOR WireGuard )
Select a Port/Auth and select WireGuard.
Select the ProtocolTCP.
I suggest to use a high 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).
Click on the + sign and do the same with the UDPProtocol.
Then click on 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.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#how-to-create-the-config-file","title":"How to create the config file","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.
From your Client Area go to your Config Generator.
Tools > Config Generator
Example Select Tools > Config Generator - [Click to show/hide] "},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#config-generator","title":"Config Generator","text":"
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]
Keep this on Default.
Choose OpenVPN.
Choose the IP we got earlier and used for the port forwarding.
Choose UDP.
Choose 995|SHA1 or what you selected during the port forwarding.
Choose AES-128-GCM.
Choose 2.4 and above.
Check Require TLS 1.2
Click on 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.
"},{"location":"Misc/How-to-setup-Torguard-for-port-forwarding/#wireguard-config-generator","title":"WireGuard Config Generator","text":"WireGuard Config Generator - [Click to show/hide]
Choose WireGuard.
Choose the IP we got earlier and used for the port forwarding.
Add your VPN Username.
Only Change this if you know what you're doing
Click on 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 commands in the terminal of your choice (e.g. puTTY) to generate the docker compose, with or without the use of sudo. Note that you can pass in multiple container names.
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose CONTAINER_NAME CONTAINER_NAME2\n
x265 is good for 4k stuff or 1080p if they used the remuxes as source. If the media isn't source quality/remux, then there will be a loss of quality every time. Also, once you go x265, typically that file is done. It can't be changed to something else without a huge loss of quality.
Something like 95% of video files are x264 and have much better direct play support. If you have more than a couple users, you will notice much more transcoding. Just depends on your priorities.
So basically if you are storage poor and just need to save space, use x265. The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes. If you want maximum compatibility and the option to change your files to something else later, then x264. It's all really dependent on specific situations for different people
It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it.
"},{"location":"Misc/x265-4k/#how-to-accomplish-the-golden-rule","title":"How to accomplish the Golden Rule","text":"
For Sonarr check HERE
For Radarr check HERE
"},{"location":"Misc/x265-4k/#some-extra-info-about-4kx265","title":"Some extra info about 4K/X265","text":"
4k, transcoding, and you - aka the rules of 4k - a FAQ - Plex.tv
Don\u2019t bother transcoding 4k
If you cannot direct play 4k, then perhaps you should not even be collecting 4k.
If you don\u2019t have the storage space for a copy of both 4k and 1080/720, then perhaps you should not even be collecting 4k.
To avoid transcoding for remote and non-4k clients, keep your 4k content in separate plex libraries.
This may of course mean that you keep a 4k copy and a 1080/720 copy, but if you are collecting 4k content then you should not be worried about storage space, should you?
"},{"location":"Plex/","title":"Plex","text":"
Here I will start adding Tips and Info for plex
"},{"location":"Plex/what-does-my-media-player-support/","title":"What does my Media Player Support","text":"
We've created an Excel sheet with several tested Media Player devices with info that our community has provided.
We hope this Excel sheet will be helpful for everyone looking for a reliable Media Player device.
Do you see a missing Player/Product? Are you able to provide the needed info? Please join TRaSH Guides Discord
How can I provide info on a missing player? What do I need to provide? - [Click to show/hide]
Currently, it's only possible to provide info if the playback is seen in Tautulli.
Player or Product that can run the Plex client directly or indirectly (Infuse, Plex Kodi Connect, Plex2Zidoo, etc)
Preferably a TV that can do Dolby Vision, but we also need HDR10+ results.
Player and Product info can be seen in Tautulli.
When doing a playback test for HDR formats provide screenshots of what Tautulli and your TV show, along with whatever other devices you have that show what formats are being used.
When doing an audio format test provide screenshots from Tautulli and your AVR.
Provide this info in TRaSH Guides Discord in #request-suggestions with a title starting with: Test Media Player <your tested device>
"},{"location":"Plex/what-does-my-media-player-support/#what-does-the-spreadsheet-cover","title":"What does the spreadsheet cover","text":"
This sheet will only cover Players/Products that can run the Plex client directly or indirectly (Jellyfin/Emby isn't covered yet due to the lack of a proper Tautulli app and feedback/info from users).
Jellyfin/Emby
While these principles are based on Plex and the capabilities of certain devices, the capabilities of these devices also apply to JellyFin and Emby. Assuming that it's possible to do the equivalent streaming method (direct or indirect play) with your media server, the hardware should act the same as if Plex was used.
The following aspects are covered
"},{"location":"Plex/what-does-my-media-player-support/#does-it-support-the-most-common-hdr-formats","title":"Does it support the most common HDR formats","text":"
The sheet also has notes added for extra info
Dolby Vision Profile 5 (does not have a HDR10 baselayer, so cannot fallback to HDR10)
Dolby Vision Profile 7 (DV + HDR10 baselayer, so it can fallback to HDR10)
Dolby Vision Profile 8 (DV + HDR10 baselayer, so it can fallback to HDR10)
HDR10
HDR10+ (HDR10+ has also a HDR10 baselayer, so it can fallback to HDR10)
"},{"location":"Plex/what-does-my-media-player-support/#which-profile-is-used-by-what","title":"Which Profile is used by what","text":"
Profile 5 => WEBDL (Streaming Services)
Profile 7 => Untouched Remuxes and BR-DISK
Profile 8 => Encodes, Hybrid Remuxes, Hybrid WEBDL, and in some cases standard WEBDL like from Hulu
"},{"location":"Plex/what-does-my-media-player-support/#does-it-support-audio-passthrough-in-the-most-common-formats","title":"Does it support audio passthrough in the most common formats","text":"
This allows for the best audio quality as the audio signal is not altered or compressed in any way before reaching the AV receiver or soundbar. This is especially important for high-quality audio formats such as Dolby TrueHD or DTS-HD Master Audio.
By using audio passthrough, you can ensure that you are getting the best audio experience possible when watching movies or listening to music through your home theater system. It allows you to take full advantage of the capabilities of your AVR/Soundbar and ensures that you are hearing the audio as it was intended to be heard by the content creators.
Overall, audio passthrough is the ideal way to send audio from your media server to your AV receiver or soundbar for the highest quality audio experience.
TrueHD Atmos
DTS X
DD+ Atmos
TrueHD
DTS-HD MA
FLAC/PCM
DD+ (E-AC3)
DTS
AAC
DD (AC3)
"},{"location":"Plex/what-does-my-media-player-support/#link-to-tested-media-player-devices","title":"Link to tested Media Player Devices","text":"
Tested Media Players
A lot of results have a note added that provides extra information, such as fallback HDR or audio formats, as well as other information that we've gathered from several sources.
"},{"location":"Plex/what-does-my-media-player-support/#what-should-i-do-next-with-this-info","title":"What should I do next with this info","text":"
The next thing to do is to setup a proper quality profile with the info you gathered from this sheet. To make this easier we made a How to setup a quality profile for Radarr/Sonarr that has a flowchart to help you even more to decide what to choose.
How to set up Quality Profiles - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences.
"},{"location":"Plex/what-does-my-media-player-support/#how-to-make-use-of-hdr-formats-for-radarr","title":"How to make use of HDR Formats for Radarr","text":"
How to set up Quality Profiles - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use
All HDR Formats - [Click to show/hide]
Why would I choose All HDR formats?
You have a 4K/2160p TV and a hardware media player device (such as Roku, AppleTV, Shield, SmartTV App, etc.) that supports several HDR formats (such as Dolby Vision, HDR10, HDR10+, etc.).
Plex for Apple TV and Plex with Infuse is only capable of playing Dolby Vision profiles 5 and 8 correctly if CMv2.9 is being used.This is something that cannot be determined beforehand.So whether you are using an Apple TV, with or without Infuse, it will always be hit or miss whether the content is compatible.Additionally, it is uncertain whether the Dolby Vision layer will play, fall back to HDR10, or encounter a black screen.
You've chosen a profile that includes 4K/2160p releases. You must use all the HDR formats with 4k/2160p profiles.
You must add ALL the HDR formats - don't leave any of them out!
Why am I getting purple or green colors? - [Click to show/hide]
Why am I getting purple or green colors?
There are several possible reasons why your TV would show purple or green colors when playing Dolby Vision content.
Unsupported Hardware: Your TV or hardware media player device (Roku, AppleTV, etc) doesn't support Dolby Vision or your hardware media player device doesn't support all the Dolby Vision Profiles. As a result, the device might struggle to produce accurate colors, leading to a purple or green tint.
Incorrect Display Settings: Dolby Vision content often requires specific settings to be enabled on your TV or display device in order to deliver the intended visual experience. If these settings are not configured properly, it can result in the device showing distorted colors (including purple or green hues).
HDMI Compatibility Issues: Sometimes, HDMI cables or ports may not be fully compatible with Dolby Vision. If the media player device is not recognizing the Dolby Vision signal properly, it may fail to process the content correctly, resulting in abnormal color rendering.
To resolve the purple or green color issues when playing Dolby Vision content, you can try the following troubleshooting steps:
Ensure your TV or hardware media player device is Dolby Vision compatible and up-to-date with the latest firmware.
Verify that your TV or display device is set up correctly and has the necessary Dolby Vision settings enabled.
Check the HDMI cables and ensure they are capable of transmitting Dolby Vision signals.
Dolby Vision Profiles - [Click to show/hide]
Dolby Vision Profiles
Profile 5 (1) - This is what comes with WEB-DL Dolby Vision releases without HDR10 fallback.(Incompatible devices will playback with blown out pinks and greens)
Profile 7 (2) - This is what comes with UHD Bluray Remuxes and UHD BluRay releases.These files will play on an Nvidia Shield Pro (2019), but on most other players will revert to the HDR10 fallback.
Profile 8 (3) - This is what comes with (Hybrid) WEB-DL (HULU), Hybrid UHD Remux, and UHD BluRay releases (all of which have HDR10 fallback).This works with several mainstream media players.
Plex for Apple TV and Plex with Infuse is only capable of playing Dolby Vision profiles 5 and 8 correctly if CMv2.9 is being used.This is something that cannot be determined beforehand.So whether you are using an Apple TV, with or without Infuse, it will always be hit or miss whether the content is compatible.Additionally, it is uncertain whether the Dolby Vision layer will play, fall back to HDR10, or encounter a black screen.
(1) PLEX for AppleTV and Plex with Infuse will only play profile 5 correctly if CMv2.9 is used
(2) Neither Infuse nor PLEX for AppleTV will deliver real Dolby Vision with Profile 7.
(3) On PLEX for AppleTV it won't deliver real Dolby Vision with Profile 8, and will only play the HDR10 fallback if CM2.9 is used, otherwise you will end up with a black screen\u201calthough your TV will incorrectly say that it is playing DV\u201d.With infuse it will convert it on the fly to Profile 5, and deliver real Dolby Vision if CMv2.9 is used, otherwise you will end up with a black screen\u201cMake sure you set the Extended Dolby Vision settings to Limited (prefer accuracy), Convert P8 to P5 (when possible), and play other P8 as HDR (output will switch to either DoVi or HDR depending on the video)\u201d
Dolby Vision Versions - CMv2.9 and CMv4.0 - [Click to show/hide]
It is too technical to explain in detail, so I'll keep it short with tested facts: PLEX for AppleTV and Plex with Infuse only support CMv2.9.
There are two versions of Dolby Vision, namely CMv2.9 and CMv4.0. CMv4.0 uses an improved algorithm and a superior tone curve that allows for better mapping and more controls during the Dolby Vision trim pass process.
More info about the different Dolby Vision Versions: Dolby Vision Versions - CMv2.9 vs. CMv4.0
Which HDR Format should I choose? - [Click to show/hide] Custom Format Score Trash ID DV HDR10+ 1500 c53085ddbd027d9624b320627748612f DV HDR10 1500 e23edd2482476e595fb990b12e7c609c DV 1500 58d6a88f13e2db7f5059c41047876f00 DV HLG 1500 55d53828b9d81cbe20b02efd00aa0efd DV SDR 1500 a3e19f8f627608af0211acd02bf89735 HDR10+ 600 b974a6cd08c1066250f1f177d7aa1225 HDR10 500 dfb86d5941bc9075d6af23b09c2aeecd HDR 500 e61e28db95d22bedcadf030b8f156d96 HDR (undefined) 500 2a4d9069cc1fe3242ff9bdaebed239bb PQ 500 08d6d8834ad9ec87b1dc7ec8148e7a1f HLG 500 9364dd386c9b4a1100dde8264690add7 Add Custom Format DV (WEBDL) with a score of -10000 - [Click to show/hide]
Why would I add this Custom Format?
Not all devices in your chain support Dolby Vision.
You share your media library with other family members that don't have Dolby Vision compatible devices.
According the flowchart I should add this Custom Format
Custom Format Score Trash ID DV (WEBDL) -10000 923b6abef9b17f937fab56cfcf89e1f1 Add the Custom Formats DV HDR10+ Boost and HDR10+ Boost - [Click to show/hide]
Why would I add this Custom Format?
You have a (Samsung) TV that supports HDR10+.
According the flowchart I should add this Custom Format
If you use this Custom Format then 99% of the time you also need to add the following Custom Format DV (WEBDL) with a score of -10000
Custom Format Score Trash ID HDR10+ Boost 901 b17886cb4158d9fea189859409975758 DV HDR10+ Boost 100 55a5b50cb416dea5a50c4955896217ab"},{"location":"Plex/what-does-my-media-player-support/#how-to-make-use-of-audio-formats-for-radarr","title":"How to make use of Audio Formats for Radarr","text":"
How to set up Quality Profiles - Explains how to make the most use of Custom Formats and shows some specifics of my configuration. You can use
Audio - [Click to show/hide]
Why should I choose All Audio formats?
You have a hardware media player device and an audio setup that supports ALL HD Audio (TrueHD, DTS-X, DTS-HD, etc).
AppleTV doesn't passthrough HD-audio, If you use infuse it's still limited!please check I've a AppleTV
You've chosen a profile that includes Audio Formats. You should use all the Audio formats with Remuxes/UHD Encodes.
You should add ALL the Audio formats - don't leave any of them out!
Audio transcoding has a low impact on your server. If your server can't handle audio transcoding, consider choosing another quality profile.
I've a AppleTV - [Click to show/hide]
Passthrough: The preferred method if you have an audio setup (AVR/Soundbar). This mode will send the audio signals without any alteration or processing.
Direct Play: The client supports the container, video stream, and audio stream natively. The Plex server simply sends the media file as-is to the client. This uses very little CPU power.
Transcode: The client does not support the video stream and/or the audio stream. The Plex server re-encodes the video, audio, or both into a compatible format. Transcoding video uses a lot of CPU power, but transcoding audio uses little to moderate CPU power.
Decodes: Decompresses the audio before sending it to your AVR/Soundbar.
partial used source: Infuse FAQ
Am I losing any quality by using LPCM? - [Click to show/hide]
No. Since LPCM is a lossless format, using it will result in no loss of quality. What your ears hear will be exactly the same. The only difference is your receiver will recognize the audio stream as PCM instead of Dolby/DTS.
LPCM will discard object and spatial metadata. (TrueHD Atmos, DTS-X)
source: Infuse FAQ
Should I block certain audio formats because something in my setup doesn't support it? - [Click to show/hide]
If you have chosen a profile that includes Audio Formats, it's somewhat pointless to lower the scores or block certain audio formats since 95% of the Remuxes and UHD Encodes provide HD audio formats such as TrueHD Atmos, TrueHD, and DTS-X.
So you have 2 options.
Choose another quality profile that doesn't include audio formats such as HD Bluray + WEB or 2160p WEB-DL.
Accept the limitations of your audio setup (AVR/Soundbar) and/or your hardware media player device.
Which Audio Format should I choose? - [Click to show/hide] Custom Format Score Trash ID TrueHD ATMOS 5000 496f355514737f7d83bf7aa4d24f8169 DTS X 4500 2f22d89048b01681dde8afe203bf2e95 ATMOS (undefined) 3000 417804f7f2c4308c1f4c5d380d4c4475 DD+ ATMOS 3000 1af239278386be2919e1bcee0bde047e TrueHD 2750 3cafb66171b47f226146a0770576870f DTS-HD MA 2500 dcf3ec6938fa32445f590a4da84256cd FLAC 2250 a570d4a0e56a2874b64e5bfa55202a1b PCM 2250 e7c2fcae07cbada050a0af3357491d7b DTS-HD HRA 2000 8e109e50e0a0b83a5098b056e13bf6db DD+ 1750 185f1dd7264c4562b9022d963ac37424 DTS-ES 1500 f9f847ac70a0af62ea4a08280b859636 DTS 1250 1c1a4c5e823891c75bc50380a6866f73 AAC 1000 240770601cc226190c367ef59aba7463 DD 750 c2998bd0d90ed5621d8df281e839436e"},{"location":"Plex/what-does-my-media-player-support/#sonarr","title":"Sonarr","text":"
How to setup Quality Profiles - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences.
"},{"location":"Plex/what-does-my-media-player-support/#how-to-make-use-of-hdr-formats-for-sonarr","title":"How to make use of HDR Formats for Sonarr","text":"
How to setup Quality Profiles - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences.
All HDR Formats - [Click to show/hide]
Why would I choose All HDR formats ?
You have a 4K/2160p TV and a hardware media player device (such as Roku, AppleTV, Shield, SmartTV App, etc.) that supports several HDR formats (such as Dolby Vision, HDR10, HDR10+, etc.).
Plex for Apple TV and Plex with Infuse is only capable of playing Dolby Vision profiles 5 and 8 correctly if CMv2.9 is being used.This is something that cannot be determined beforehand.So whether you are using an Apple TV, with or without Infuse, it will always be hit or miss whether the content is compatible.Additionally, it is uncertain whether the Dolby Vision layer will play, fall back to HDR10, or encounter a black screen.
You've chosen a profile that includes 4K/2160p releases. You must use all the HDR formats with 4k/2160p profiles.
You must add ALL the HDR formats - don't leave any of them out!
Why am I getting purple or green colors? - [Click to show/hide]
Why am I getting purple or green colors?
There are several possible reasons why your TV would show purple or green colors when playing Dolby Vision content.
Unsupported Hardware: Your TV or hardware media player device (Roku, AppleTV, etc) doesn't support Dolby Vision or your hardware media player device doesn't support all the Dolby Vision Profiles. As a result, the device might struggle to produce accurate colors, leading to a purple or green tint.
Incorrect Display Settings: Dolby Vision content often requires specific settings to be enabled on your TV or display device in order to deliver the intended visual experience. If these settings are not configured properly, it can result in the device showing distorted colors (including purple or green hues).
HDMI Compatibility Issues: Sometimes, HDMI cables or ports may not be fully compatible with Dolby Vision. If the media player device is not recognizing the Dolby Vision signal properly, it may fail to process the content correctly, resulting in abnormal color rendering.
To resolve the purple or green color issues when playing Dolby Vision content, you can try the following troubleshooting steps:
Ensure your TV or hardware media player device is Dolby Vision compatible and up-to-date with the latest firmware.
Verify that your TV or display device is set up correctly and has the necessary Dolby Vision settings enabled.
Check the HDMI cables and ensure they are capable of transmitting Dolby Vision signals.
Dolby Vision Profiles - [Click to show/hide]
Dolby Vision Profiles
Profile 5 (1) - This is what comes with WEB-DL Dolby Vision releases without HDR10 fallback.(Incompatible devices will playback with blown out pinks and greens)
Profile 7 (2) - This is what comes with UHD Bluray Remuxes and UHD BluRay releases.These files will play on an Nvidia Shield Pro (2019), but on most other players will revert to the HDR10 fallback.
Profile 8 (3) - This is what comes with (Hybrid) WEB-DL (HULU), Hybrid UHD Remux, and UHD BluRay releases (all of which have HDR10 fallback).This works with several mainstream media players.
Plex for Apple TV and Plex with Infuse is only capable of playing Dolby Vision profiles 5 and 8 correctly if CMv2.9 is being used.This is something that cannot be determined beforehand.So whether you are using an Apple TV, with or without Infuse, it will always be hit or miss whether the content is compatible.Additionally, it is uncertain whether the Dolby Vision layer will play, fall back to HDR10, or encounter a black screen.
(1) PLEX for AppleTV and Plex with Infuse will only play profile 5 correctly if CMv2.9 is used
(2) Neither Infuse nor PLEX for AppleTV will deliver real Dolby Vision with Profile 7.
(3) On PLEX for AppleTV it won't deliver real Dolby Vision with Profile 8, and will only play the HDR10 fallback if CM2.9 is used, otherwise you will end up with a black screen\u201calthough your TV will incorrectly say that it is playing DV\u201d.With infuse it will convert it on the fly to Profile 5, and deliver real Dolby Vision if CMv2.9 is used, otherwise you will end up with a black screen\u201cMake sure you set the Extended Dolby Vision settings to Limited (prefer accuracy), Convert P8 to P5 (when possible), and play other P8 as HDR (output will switch to either DoVi or HDR depending on the video)\u201d
Dolby Vision Versions - CMv2.9 and CMv4.0 - [Click to show/hide]
It is too technical to explain in detail, so I'll keep it short with tested facts: PLEX for AppleTV and Plex with Infuse only support CMv2.9.
There are two versions of Dolby Vision, namely CMv2.9 and CMv4.0. CMv4.0 uses an improved algorithm and a superior tone curve that allows for better mapping and more controls during the Dolby Vision trim pass process.
More info about the different Dolby Vision Versions: Dolby Vision Versions - CMv2.9 vs. CMv4.0
Which HDR Format should I choose? - [Click to show/hide] Custom Format Score Trash ID DV HDR10+ 1500 2b239ed870daba8126a53bd5dc8dc1c8 DV HDR10 1500 7878c33f1963fefb3d6c8657d46c2f0a DV 1500 6d0d8de7b57e35518ac0308b0ddf404e DV HLG 1500 1f733af03141f068a540eec352589a89 DV SDR 1500 27954b0a80aab882522a88a4d9eae1cd HDR10+ 600 a3d82cbef5039f8d295478d28a887159 HDR10 500 3497799d29a085e2ac2df9d468413c94 HDR 500 3e2c4e748b64a1a1118e0ea3f4cf6875 HDR (undefined) 500 bb019e1cd00f304f80971c965de064dc PQ 500 2a7e3be05d3861d6df7171ec74cad727 HLG 500 17e889ce13117940092308f48b48b45b Add Custom Format DV (WEBDL) with a score of -10000 - [Click to show/hide]
Why would I add this Custom Format?
Not all devices in your chain support Dolby Vision.
You share your media library with other family members that don't have Dolby Vision compatible devices.
According the flowchart I should add this Custom Format
Custom Format Score Trash ID DV (WEBDL) -10000 9b27ab6498ec0f31a3353992e19434ca Add the Custom Formats DV HDR10+ Boost and HDR10+ Boost - [Click to show/hide]
Why would I add this Custom Format?
You have a (Samsung) TV that supports HDR10+.
According the flowchart I should add this Custom Format
If you use this Custom Format then 99% of the time you also need to add the following Custom Format DV (WEBDL) with a score of -10000
Custom Format Score Trash ID HDR10+ Boost 901 0dad0a507451acddd754fe6dc3a7f5e7 DV HDR10+ Boost 100 385e9e8581d33133c3961bdcdeffb7b4"},{"location":"Plex/what-does-my-media-player-support/#how-to-make-use-of-audio-formats-for-sonarr","title":"How to make use of Audio Formats for Sonarr","text":"
At the moment I decided not to add Audio Advanced Custom Formats to the WEB profile. You will hardly find HD audio with WEB-DL (Most newer WEBDL will have Atmos). If you also want HD audio formats, I would suggest going for Remuxes.
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/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.
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.
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.
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
Make sure you have enabled advanced settings (This will be needed for all the settings)
Enable/Disable Remote access (if you disable it ignore the rest of these settings)
LAN/container IP
Public IP If you need to provide a screenshot always mask this IP
Manually specify public port if you run Docker or want a fixed port.
Enter the Plex port you want to use. (default: 32400)
Click on 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.
Enter your internet upload speed here and Plex can ensure it operates within this boundary.
Set the maximum bitrate of a remote stream from this server.
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
TIP - Autoscan - [Click to show/hide]
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
"},{"location":"Plex/Tips/Plex-media-server/#include-music-libraries-in-automatic-updates","title":"Include music libraries in automatic updates","text":"
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
"},{"location":"Plex/Tips/Plex-media-server/#allow-media-deletion","title":"Allow media deletion","text":"
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
Take a considerable amount of time
Use a lot of CPU resources
Increase the storage space used
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
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
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.
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
"},{"location":"Plex/Tips/Plex-media-server/#enable-local-network-discovery-gdm","title":"Enable local network discovery (GDM)","text":"
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
"},{"location":"Plex/Tips/Plex-media-server/#remote-streams-allowed-per-user","title":"Remote streams allowed per user","text":"
You can set the maximum number of simultaneous streams each remote user is allowed to have.
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.
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.
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
"},{"location":"Plex/Tips/Plex-media-server/#use-hardware-accelerated-video-encoding","title":"Use hardware-accelerated video encoding","text":"
To use Hardware-Accelerated Encoding in Plex Media Server.
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.
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.
How episodes are named on disk. If your naming follows The MovieDB or TheTVDB choose that here.
Use season titles when available.
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
Information I gathered from Several Discord servers
Plex Support Articles
Extra Information gathered from a Plex employee
Own experience
Questions or Suggestions?
If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
Here you will find a collection of profiles you 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
LSIO container: /appdata/plex/database/Library/Application Support/Plex Media Server/Profiles or /appdata/plex/Library/Application Support/Plex Media Server/Profiles
If you have questions or suggestions click the chat badge to join the Discord Support Channel where you can ask your questions directly and get live support.
Here you will find a collection of 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
(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.
(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.
"},{"location":"Prowlarr/#how-do-i-update-prowlarr","title":"How do I update Prowlarr","text":"
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
A FlareSolverr Proxy will only be used for requests if and only if Cloudflare is detected by Prowlarr
A FlareSolverr Proxy will only be used for requests if and only if the Proxy and the Indexer have matching tags
A Flaresolverr Proxy configured without any tags or has no indexers with matching tags it will be disabled.
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
Name of the Proxy in Prowlarr.
The tags for this proxy.
The full host path (include http and the port) to your FlareSolverr instance.
The FlareSolver Request maxTimeout value Prowlarr should use for FlareSolverr requests. Must be between 1 second and 180 seconds (Default: 60 seconds).
Test if your connection works.
If it works click on Save.
"},{"location":"Prowlarr/prowlarr-setup-flaresolverr/#add-flaresolverr-to-your-indexer","title":"Add FlareSolverr to your indexer","text":"
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.
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.
RSS = The so called search interval.
Automatic search = 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.
Interactive search = When you select interactive search you get a unsorted/unfiltered list of everything your indexer(s) reports back where you can choose what you want to grab.
"},{"location":"Prowlarr/prowlarr-setup-limited-api/#adding-a-sync-profile","title":"Adding a Sync Profile","text":"
For this we're going to create 2 new Sync Profiles
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.
Name it Automatic Search
Disable Enable RSS
Enable Interactive Search
Enable Automatic Search
If you're using usenet ignore this, if you use public torrent trackers set this somewhere between 20-70, being they often lie about their seeders amount.
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.
Name it Interactive Search
Disable Enable RSS
Enable Interactive Search
Disable Enable Automatic Search
If you're using usenet ignore this, if you use public torrent trackers set this somewhere between 20-70, being they often lie about their seeders amount.
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.
"},{"location":"Prowlarr/prowlarr-setup-limited-api/#setup-api-limits","title":"Setup API Limits","text":"
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.
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
Name of the Proxy in Prowlarr.
The tags for this proxy. Proxies apply to all matching (same tag) indexers. If blank this proxy applies to all indexers.
Host name to your torrent client.
Used port for privoxy (default for privoxy: 8118).
User name for your torrent client. (Not needed if using the default privoxy settings)
Password for your torrent client. (Not needed if using the default privoxy settings)
Test if your connection works.
If it works click on Save.
"},{"location":"Prowlarr/prowlarr-setup-proxy/#add-privoxy-to-your-indexer","title":"Add privoxy to your indexer","text":"
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.
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
(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.
"},{"location":"Radarr/#how-do-i-update-radarr","title":"How do I update Radarr","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).
I will only accept changes that are international releases. No multi, or dubbed language releases.
I won't accept mislabeled source releases like from MeGusta etc. (They should learn to name their stuff properly first)
I won't accept changes for micro sized releases.
Documentaries and cartoons are often much smaller so I probably won't edit those either.
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":"
Below is a collection of what we've come to regard as the most needed and commonly used Custom Formats. These CFs have been collected from discussions on Discord or created with help from others.
Special thanks to everyone that has helped in the creation and testing of these Custom Formats, my team at TRaSH guides, Team Radarr, and the community.
With Radarr V3, Custom Formats are much more advanced/powerful than with V2, although this also means a Custom Format can require more knowledge to set up or create.
After requesting with Team Radarr, we now have the option to import/export the Custom Formats in a JSON format. This provides everyone with an easy way to share and use Custom Formats.
We've made 3 guides related to this.
How to import Custom Formats - Explains how to import the Custom Formats.
How to upgrade Custom Formats - Explains how to upgrade your existing Custom Formats.
How to set up Quality Profiles - Explains how to make the most use of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences.
Tip
It also is recommended to change the Propers and Repacks settings in Radarr's Settings.
Media Management => File Management to Do Not Prefer and use the Repack/Proper Custom Format.
This way you make sure the Custom Format scoring and preferences will be fully utilized.
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 4K Remaster 3D Remux Tier 01 Criterion Collection BR-DISK Remux Tier 02 Hybrid Extras Remux Tier 03 IMAX Enhanced LQ UHD Bluray Tier 01 IMAX LQ (Release Title) UHD Bluray Tier 02 Masters of Cinema Upscaled UHD Bluray Tier 03 Open Matte x265 (HD) HD Bluray Tier 01 Remaster HD Bluray Tier 02 Special Edition HD Bluray Tier 03 Theatrical Cut WEB Tier 01 Vinegar Syndrome WEB Tier 02 WEB Tier 03 General Streaming Services Asian Streaming Services Dutch Streaming Services Amazon FOD Pathe Thuis Apple TV+ Disney+ Hotstar Videoland Bravia Core TVer Criterion Channel TVING Disney+ U-NEXT HBO VIU HBO Max Hulu Max Movies Anywhere Netflix Peacock TV Paramount+ Stan UK Streaming Services Misc Streaming Services Anime Streaming Services BBC iPlayer Crave VRV ITVX OViD NOW Star+ 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 x266 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) 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]
TrueHD Atmos
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.
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dts-x","title":"DTS X","text":"DTS:X - [Click to show/hide]
DTS-X
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 similar to Dolby Atmos, and you\u2019d be right, but where DTS:X's differences lie in the required speaker configuration. While Dolby Atmos requires adding additional 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 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/#truehd","title":"TrueHD","text":"TrueHD - [Click to show/hide]
TrueHD
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 Discs 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]
DTS-HD MA
From Wikipedia, the free encyclopedia
DTS-HD Master Audio is a multi-channel lossless audio codec developed by DTS that extends the lossy DTS Coherent Acoustics codec (DTS CA; usually referred to as simply \"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
FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3 - but lossless, meaning that the audio compressed with FLAC does not receive 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.
Dolby Digital Plus, also known as Enhanced AC-3 (commonly abbreviated as DD+ or E-AC-3, or EC-3), is the successor to Dolby Digital (AC-3). It is a digital audio compression scheme developed by Dolby Labs for the transport and storage of multi-channel digital audio.
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dts-es","title":"DTS-ES","text":"DTS-ES - [Click to show/hide]
DTS-ES
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.
Digital Theater Sound (DTS) is a digital audio technology developed by DTS, Inc, which focuses on digital surround sound formats for consumer and commercial applications as well as theatrical purposes. Compared to the Dolby Digital standard, DTS uses four times less compression and digitizes audio sounds at 20 bits instead of 16 bits. This makes DTS-based audio richer in sound and more detailed than Dolby Digital-based ones.
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#aac","title":"AAC","text":"AAC - [Click to show/hide]
AAC
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/#opus","title":"Opus","text":"Opus - [Click to show/hide]
OPUS
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.
Dolby Vision is a dynamic HDR format. It can offer better visual experiences relative to HDR10. The most significant difference is that it uses dynamic metadata which allows varying brightness levels within HDR content which enables filmmakers to have more precise control over the overall image appearance. HDR10 relies on static metadata which limits the HDR effect to a per-movie or per-episode basis.
HDR10+
HDR10+ improves upon HDR10 by making its metadata dynamic, allowing for it to change for each frame of video. This means every frame is adjusted to its own set of colors, brightness, and contrast parameters, making for a much more vibrant and realistic-looking image. Areas of the screen that might have been over-saturated with HDR10 will display their full contrast and detail with HDR10+.
\ud83d\udca1 Any form of HDR will look significantly better than SDR on supporting equipment. The overall result will ultimately end up varying, though, based on your hardware and how the studio and filmmaker implemented HDR.
This format provides Dolby Vision with HDR10 fallback. You will find this mainly with:
Remuxes
Bluray encodes
Hybrid WEB-DL (Hybrid isn't always mentioned)
Dolby Vision
Dolby Vision is a dynamic HDR format. It can offer better visual experiences relative to HDR10. The most significant difference is that it uses dynamic metadata which allows varying brightness levels within HDR content which enables filmmakers to have more precise control over the overall image appearance. HDR10 relies on static metadata which limits the HDR effect to a per-movie or per-episode basis.
HDR10
HDR10 is the most basic HDR format used in consumer media and is supported by all HDR-supported devices.
HDR10 relies on static metadata which limits its effect to a per-movie or per-episode basis. Because of this, it lacks the information for how the content should be adjusted for your specific display. The interaction between display capabilities, video metadata, and the ultimate output (i.e., the presentation of the video) is controlled by the display, which may result in quality that is ultimately not how was originally intended.
\ud83d\udca1 Any form of HDR will look significantly better than SDR on supporting equipment. The overall result will ultimately end up varying, though, based on your hardware and how the studio and filmmaker implemented HDR.
This Custom Format will only match on DV NOT on DV HDR10 etc.
Depending on the source (WEB-DL, Bluray, or Remux) this format will match the following:
With Remuxes, it means that it will have DV HDR10.
With Bluray encodes, it means it will have DV HDR10.
With WEB-DL, it means 99% it will only support Dolby Vision without HDR10 fallback (Incompatible devices will playback with blown out pinks and greens, if you have this issue always make sure you also add the following Custom Format with a score of -10000)
DV HLG This is a very rare HDR Format that was created by NHK (JP) and the BBC for cable, satellite, and over-the-air TV broadcasts.
Dolby Vision
Dolby Vision is a dynamic HDR format. It can offer better visual experiences relative to HDR10. The most significant difference is that it uses dynamic metadata which allows varying brightness levels within HDR content which enables filmmakers to have more precise control over the overall image appearance. HDR10 relies on static metadata which limits the HDR effect to a per-movie or per-episode basis.
This Custom Format will only match on DV HLG
HLG
HLG or HLG10 is an HDR format created by NHK (JP) and the BBC that can be used for both video and still images. This format is backward compatible with SDR UHD TV, but not with older SDR displays that do not implement the Rec. 2020 color standards.
You will find this mainly with cable, satellite, and over-the-air TV broadcast series and movies from the likes of BBC and National Geographic.
HDR10+ improves upon HDR10 by making its metadata dynamic, allowing for it to change for each frame of video. This means every frame is adjusted to its own set of colors, brightness, and contrast parameters, making for a much more vibrant and realistic-looking image. Areas of the screen that might have been over-saturated with HDR10 will display their full contrast and detail with HDR10+.
HDR10 is the most basic HDR format used in consumer media and is supported by all HDR-supported devices.
HDR10 relies on static metadata which limits its effect to a per-movie or per-episode basis. Because of this, it lacks the information for how the content should be adjusted for your specific display. The interaction between display capabilities, video metadata, and the ultimate output (i.e., the presentation of the video) is controlled by the display, which may result in quality that is ultimately not how was originally intended.
This Custom Format will only match on HDR NOT on HDR10, HDR10+ etc
This Custom Format is a sort of \"catch-all\" for the HDR scene naming scheme where we don't know, based on name alone, which HDR formats are included - it could be HDR10, HDR10+ or even PQ.
PQ (perceptual quantizer) or PQ10 is the most basic HDR format that can be used for both video and still images. It is the same as the HDR10 format without any metadata.
HLG or HLG10 is an HDR format created by NHK (JP) and the BBC that can be used for both video and still images. This format is backward compatible with SDR UHD TV, but not with older SDR displays that do not implement the Rec. 2020 color standards.
You will find this mainly with cable, satellite, and over-the-air TV broadcast series and movies from the likes of BBC and National Geographic.
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/#imax","title":"IMAX","text":"IMAX - [Click to show/hide]
From In Depth Cine
IMAX films are shot in tall aspect ratios, typically 1.9:1 or sometimes 1.43:1. Most IMAX film releases also have scenes shot at wider aspect ratios and, as a result, the aspect ratio will change throughout. Because they are shot on large format cameras, there is often less film grain present. This results in a clearer picture.
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#imax-enhanced","title":"IMAX Enhanced","text":"IMAX Enhanced - [Click to show/hide]
Get more picture and less black bars (letterboxing).
From Wired
IMAX Enhanced is a standard for digital releases. It features scenes shot on IMAX cameras and produced in HDR10 DV. IMAX Enhanced releases are often higher bitrate than other WEB options and are encoded into various formats, including SDR conversions.
As a result of the higher bitrate and implied picture quality improvement, it is recommended to enable the IMAX Enhanced custom format on WEB profiles, especially for those seeking 'The IMAX Experience' - including less \"black bars\" or letterboxing.
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 (Setting => Profiles) and then set the score to -10000.
Note
Depending on your renaming scheme it could happen that Radarr will match renamed files after they are downloaded and imported as BR-DISK, This is a cosmetic annoyance until we 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:
Blame the often wrongly used naming of x265 encodes.
A collection of known low quality groups (often banned from the top trackers due to their lack of quality), banned or dishonest release groups, or rips/encodes from scene and quick-to-release P2P groups that, while adequate, are usually not considered high quality.
Release Groups that break the Starr apps automation because their bad naming could potentially cause download loops, even if their overall quality is perfect.
This blocks all 720/1080p (HD) releases that are encoded in x265.
In your quality profile use the following score for this Custom Format: -10000
Quote
x265 is good for 4k stuff or 1080p if they used the remuxes as source. If the media isn't source quality/remux, then there will be a loss of quality every time. Also, once you go x265, typically that file is done. It can't be changed to something else without a huge loss of quality.
Something like 95% of video files are x264 and have much better direct play support. If you have more than a couple users, you will notice much more transcoding. Just depends on your priorities.
So basically if you are storage poor and just need to save space, use x265. The catch is if you want best quality x265, you need source quality files, so you still have huge file sizes. If you want maximum compatibility and the option to change your files to something else later, then x264. It's all really dependent on specific situations for different people
It's a shame that most x265 groups microsize the releases or use the x264 as source what results in low quality releases. And the few groups that do use the correct source suffer from it.
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 and add their own language (ex. Portuguese) as the main audio track (AAC 2.0), What results after renaming and FFprobe is that the media file will be recognized as Portuguese AAC audio. It's a common rule that you add the best audio as the first track. Also they often even translate/rename the release name to Portuguese.
This is a special Custom Format that blocks WEBDLs with Dolby Vision but without HDR10 fallback.
You will need to add the following as a new Custom Format, and when created adjust the scoring in your Quality Profile (Setting => Profiles) to -10000.
This Custom Format works together with the normal DV Custom Format that you would use to prefer Dolby Vision.
Most WEBDL from Streaming Services don't have the fallback to HDR10. What can result during playback is issues with weird colors (typically a green hue) when you attempt to play it on a non Dolby Vision compatible setup.
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 as a new Custom Format, and when created adjust the scoring in your Quality Profile (Setting => Profiles) to -10000.
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 stripped of 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]
Obfuscated
Obfuscated are used on usenet, mostly with non-tier-1 indexers, to do re-posts of common/popular releases. Use this only if you've access to tier 1 usenet indexers.
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#retags","title":"Retags","text":"Retags - [Click to show/hide]
Retags
Retags are something you often see on public trackers where the tracker or uploader adds their name to the torrent. It is also possible that it could show up on some usenet indexers.
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 -10000, a positive score, or just skip adding it altogether.
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: -10000
Don't use this together with x265 (HD), Only ever include one of them
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#sdr-no-webdl","title":"SDR (no WEBDL)","text":"SDR (no WEBDL) - [Click to show/hide]
This will prevent grabbing UHD/4k Remux and Bluray encode releases without HDR Formats. - i.e., SDR WEB releases will still be allowed since 4K SDR WEB releases can often look better than the 1080p version due to the improved bitrate.
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#dv-disk","title":"DV (Disk)","text":"DV (Disk) - [Click to show/hide]
This will boost the score for Dolby Vision Releases using the original full quality Dolby Vision layer from the disc release to replace the old WEBDL HYBRID release.
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#hfr","title":"HFR","text":"HFR - [Click to show/hide]
This will boost the score for HFR releases. HFR stands for High Frame Rate and refers to a video format that uses a higher number of frames per second than traditional video, resulting in smoother and more detailed motion.
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/#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 x265/HEVC releases that are not Remux.
Please don't forget to read the following Microsized & Wrong Source
TOP"},{"location":"Radarr/Radarr-collection-of-custom-formats/#x266","title":"x266","text":"x266 - [Click to show/hide]
Versatile Video Coding (VVC), also known as H.266, ISO/IEC 23090-3, and MPEG-I Part 3, is a video compression standard finalized on 6 July 2020. Wikipedia.
This applies to all x266/VVC releases that are not Remux.
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.
Amazon Prime Video, or simply Prime Video, is an American subscription video on-demand over-the-top streaming and rental service of Amazon offered as a standalone service or as part of Amazon's Prime subscription. The service primarily distributes films and television series produced by Amazon MGM Studios or licensed to Amazon, as Amazon Originals, with the service also hosting content from other providers, content add-ons, live sporting events, and video rental and purchasing services.
Apple TV+ is an American subscription streaming service owned and operated by Apple Inc. Launched on November 1, 2019, it offers a selection of original production film and television series called Apple Originals.
Sony Pictures Core (formerly known as Bravia Core) is a video on demand service from Sony for its televisions and smartphones, launched in April 2021. The service offers the streaming of movies at up to 4K resolution provided by Sony Pictures Entertainment. CORE stands for Centre of Real Entertainment. Sony claims that Bravia Core has one of the largest libraries of IMAX Enhanced format film content. Streaming, which is marketed as Pure Stream, is claimed to be at speeds of up to 80 Mbit/s.
Disney+ is an American subscription video on-demand over-the-top streaming media service owned and operated by Disney Streaming, the streaming division of Disney Entertainment, a major business segment of the Walt Disney Company.The service primarily distributes films and television shows produced by Walt Disney Studios and Disney Television Studios, with dedicated content hubs for Disney's flagship brands; Disney, Pixar, Marvel, Star Wars, National Geographic, and Hulu as well as showcasing original and exclusive films and television shows.
Home Box Office (HBO) is an American pay television network, which is the flagship property of namesake parent-subsidiary Home Box Office, Inc., itself a unit owned by Warner Bros. Discovery. The overall Home Box Office business unit is based at Warner Bros. Programming featured on the network consists primarily of theatrically released motion pictures and original television programs as well as made-for-cable movies, documentaries, occasional comedy, and concert specials, and periodic interstitial programs (consisting of short films and making-of documentaries).
Max (streaming service) aka HBO Max - [Click to show/hide]
Max (streaming service) aka HBO Max
From Wikipedia, the free encyclopedia
Max, formerly and in some markets still HBO Max, is an American subscription video on-demand over-the-top streaming service. It is a proprietary unit of Warner Bros. Discovery Global Streaming & Interactive Entertainment, which is itself a division of Warner Bros. Discovery (WBD). First launched (as HBO Max) in the United States on May 27, 2020, the service offers content from the libraries of Warner Bros., Discovery Channel, HBO, CNN, Cartoon Network, Adult Swim, Animal Planet, Eurosport, and their related brands.
Max, formerly and in some markets still HBO Max, is an American subscription video on-demand over-the-top streaming service. It is a proprietary unit of Warner Bros. Discovery Global Streaming & Interactive Entertainment, which is itself a division of Warner Bros. Discovery (WBD). First launched (as HBO Max) in the United States on May 27, 2020, the service offers content from the libraries of Warner Bros., Discovery Channel, HBO, CNN, Cartoon Network, Adult Swim, Animal Planet, Eurosport, and their related brands.
Movies Anywhere (MA) is a cloud-based digital rights locker and over-the-top streaming platform that allows users to stream and download purchased films, including digital copies redeemed from codes found in home video releases as well as digital purchases from participating services. Movies Anywhere is operated by The Walt Disney Company. The platform provides content from Walt Disney Studios, Sony Pictures, Universal Pictures, and Warner Bros. The system utilizes an internal platform known as KeyChest, which synchronizes content licenses from digital distribution platforms linked to a central user account.
Netflix is an American subscription video on-demand over-the-top streaming service. The service primarily distributes original and acquired films and television shows from various genres, and it is available internationally in multiple languages.
Peacock is an American over-the-top video streaming service owned and operated by Peacock TV LLC, a subsidiary of NBCUniversal Media Group. Named after the NBC logo, the service launched on July 15, 2020. The service primarily features series and film content from NBCUniversal studios and other third-party content providers, including television series, films, news, and sports programming. The service is available in a grandfathered free ad-supported version with limited content, while premium tiers include a larger content library and access to additional NBC Sports, Hallmark Channel, and WWE content.
Paramount+ is an American subscription video on-demand over-the-top streaming service owned by Paramount Global. The service's content is drawn primarily from the libraries of CBS Media Ventures, CBS Studios, Paramount Media Networks (formerly Viacom Media Networks and ViacomCBS Domestic Media Networks), and Paramount Pictures, while also including original series and films, live streaming sports coverage, and in the United States, live streaming of local CBS broadcast stations.
Stan is an Australian over-the-top streaming service. The service offers a broad range of film and television content from both local and foreign productions, particularly from the United States and United Kingdom. Stan also includes a growing library of their own original film and television content. With over 2.6 million subscribers, as of June 2023 Stan is the fourth largest streaming service in Australia, behind Disney+, Amazon Prime Video and Netflix.
Disney+ Hotstar is an Indian subscription video-on-demand over-the-top streaming service owned by Disney Star, a subsidiary of the Disney Entertainment business segment of The Walt Disney Company, featuring domestic Indian film, television and sports content for India itself and its worldwide diaspora. It also includes imported content from and serves Southeast Asia as well.
TVING (Korean: \ud2f0\ube59) is a South Korean subscription video on-demand over-the-top streaming service operated by TVING Corporation, It is a platform that streams dramas, entertainment shows, animations, exclusive television films, specials and documentaries.
Viu (pronounced as view) is a Hong Kong-based over-the-top (OTT) video streaming provider, Viu delivers content in different genres from Asia's top content providers with local language subtitles, as well as original production series under the Viu Original initiative (similar to original programming from other services like Disney+, Amazon Prime Video and Netflix).
Videoland is a Dutch OTT online service provider owned by RTL Nederland. Originally it was a retail chain of video rental stores. Its main competitor is Netflix.
ITVX (formerly ITV Hub) is a British ad-supported video-on-demand streaming service operated by ITV. The service offers original content from the broadcaster, as well as some exclusive and licensed programming.
Now (formerly Now TV and often stylised as NOW) is a subscription over-the-top streaming television service operated by British satellite television provider Sky Group.
Crave (originally CraveTV) is a Canadian subscription video on demand service. The service competes directly with other subscription-based over-the-top streaming services operating in Canada, primarily against American-based services. The service features Bell Media original programming, exclusive Canadian access to programming acquired from several U.S. television and streaming services, and various theatrically-released films. Crave's major programming supplier is Warner Bros. Discovery (HBO / Max and Warner Bros. films). Starz, offered in partnership with Lionsgate.
Star+ (Star Plus; stylized as ST\u2605R+) is a subscription video on-demand over-the-top streaming service available in almost all Ibero-American states. The service is owned by The Walt Disney Company through the Disney Entertainment division and business segment.
In December 2023, it was confirmed that Star+ will be merged into Disney+ in the second quarter of 2024 with all of its content, including live sports from ESPN, migrating to Disney+ and its standalone app being discontinued.