Eric Nemchik 2 weeks ago committed by GitHub
commit 3ca424b137
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -3,9 +3,55 @@
# top-most EditorConfig file
root = true
[*.json]
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.{css}]
indent_style = space
indent_size = 2
end_of_line = lf
[*.{htm,html}]
indent_style = space
indent_size = 2
end_of_line = lf
[*.js]
indent_style = space
indent_size = 2
end_of_line = lf
[*.{json,jsonc,webmanifest}]
indent_style = space
indent_size = 2
end_of_line = lf
[*.md]
indent_style = space
indent_size = 4
end_of_line = lf
[*.py]
indent_style = space
indent_size = 4
end_of_line = lf
[*.sh]
indent_style = space
indent_size = 4
end_of_line = lf
[*.xml]
indent_style = space
indent_size = 2
end_of_line = lf
[*.{yaml,yml}]
indent_style = space
indent_size = 2
end_of_line = lf

@ -14,22 +14,19 @@ appearance, race, religion, or sexual identity and orientation.
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities

@ -1,39 +1,70 @@
"Area: Bazarr":
- changed-files:
- any-glob-to-any-file: ['docs/Bazarr/**']
- any-glob-to-any-file: ["docs/Bazarr/**"]
"Area: Dependencies":
- changed-files:
- any-glob-to-any-file: ['package.json', 'package-lock.json']
- any-glob-to-any-file: ["package.json", "package-lock.json"]
"Area: Downloaders":
- changed-files:
- any-glob-to-any-file: ['docs/Downloaders/**']
- any-glob-to-any-file: ["docs/Downloaders/**"]
"Area: Plex":
- changed-files:
- any-glob-to-any-file: ['docs/Plex/**']
- any-glob-to-any-file: ["docs/Plex/**"]
"Area: Prowlarr":
- changed-files:
- any-glob-to-any-file: ['docs/Prowlarr/**']
- any-glob-to-any-file: ["docs/Prowlarr/**"]
"Area: Radarr":
- changed-files:
- any-glob-to-any-file: ['docs/json/radarr/cf/**', 'docs/json/radarr/quality-size/**', 'docs/json/radarr/naming/**', 'docs/Radarr/**']
- any-glob-to-any-file:
[
"docs/json/radarr/cf/**",
"docs/json/radarr/quality-size/**",
"docs/json/radarr/naming/**",
"docs/Radarr/**",
]
"Area: Recyclarr":
- changed-files:
- any-glob-to-any-file: ['docs/recyclarr-configs/**']
- any-glob-to-any-file: ["docs/recyclarr-configs/**"]
"Area: Sonarr":
- changed-files:
- any-glob-to-any-file: ['docs/json/sonarr/rp/**', 'docs/json/sonarr/cf/**', 'docs/json/sonarr/quality-size/**', 'docs/json/sonarr/naming/**', 'docs/Sonarr/**']
- any-glob-to-any-file:
[
"docs/json/sonarr/rp/**",
"docs/json/sonarr/cf/**",
"docs/json/sonarr/quality-size/**",
"docs/json/sonarr/naming/**",
"docs/Sonarr/**",
]
"Area: Starr Custom Formats":
- changed-files:
- any-glob-to-any-file: ['docs/json/radarr/cf/**', 'docs/json/sonarr/cf/**']
- any-glob-to-any-file:
["docs/json/radarr/cf/**", "docs/json/sonarr/cf/**"]
"Area: Starr Naming":
- changed-files:
- any-glob-to-any-file: ['docs/json/radarr/naming/**', 'docs/json/sonarr/naming/**']
- any-glob-to-any-file:
["docs/json/radarr/naming/**", "docs/json/sonarr/naming/**"]
"Area: github_actions":
- changed-files:
- any-glob-to-any-file: ['.github/workflows/**', '.github/dependabot.yml', '.github/labeler.yml', '.github/stale.yml']
- any-glob-to-any-file:
[
".github/workflows/**",
".github/dependabot.yml",
".github/labeler.yml",
".github/stale.yml",
]
"Area: python":
- changed-files:
- any-glob-to-any-file: ['**/*.py']
- any-glob-to-any-file: ["**/*.py"]
"Area: Backend":
- changed-files:
- any-glob-to-any-file: ['docs/**/*.md', '!docs/Bazarr/**', '!docs/Downloaders/**', '!docs/Plex/**', '!docs/Prowlarr/**', '!docs/Radarr/**', '!docs/recyclarr-configs/**', '!docs/Sonarr/**']
- any-glob-to-any-file:
[
"docs/**/*.md",
"!docs/Bazarr/**",
"!docs/Downloaders/**",
"!docs/Plex/**",
"!docs/Prowlarr/**",
"!docs/Radarr/**",
"!docs/recyclarr-configs/**",
"!docs/Sonarr/**",
]

@ -6,7 +6,6 @@ on:
- master
pull_request:
jobs:
triage:
runs-on: ubuntu-latest

@ -6,9 +6,7 @@ on:
- master
pull_request:
jobs:
build:
name: Build docs
runs-on: ubuntu-latest

@ -14,7 +14,7 @@ jobs:
- name: markdownlint
run: |
docker run --rm \
-v "${GITHUB_WORKSPACE}":/data \
markdownlint/markdownlint \
-r ~MD013,~MD033,~MD034,~MD046,~MD002,~MD041 \
-v "${GITHUB_WORKSPACE}":/workdir \
ghcr.io/igorshubovych/markdownlint-cli \
-c "/workdir/.markdownlint.yaml" \
.

14
.gitignore vendored

@ -1,7 +1,7 @@
.cache
venv/
mkdocs-dev-server.bat
site/
/docs/Notifiarr/preview.bat
/docs/Notifiarr/Integrations/_TEMPLATE.md
/includes/flowcharts/.$radarr-flowchart.drawio.bkp
.cache
venv/
mkdocs-dev-server.bat
site/
/docs/Notifiarr/preview.bat
/docs/Notifiarr/Integrations/_TEMPLATE.md
/includes/flowcharts/.$radarr-flowchart.drawio.bkp

@ -0,0 +1,34 @@
# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml
# Default state for all rules
default: true
# MD002/first-header-h1 : First header should be a top level header :
MD002: false
# MD007/ul-indent : Unordered list indentation : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md007.md
MD007: false
# MD013/line-length : Line length : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md013.md
MD013: false
# MD033/no-inline-html : Inline HTML : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md033.md
MD033: false
# MD034/no-bare-urls : Bare URL used : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md034.md
MD034: false
# MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md041.md
MD041: false
# MD046/code-block-style : Code block style : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md046.md
MD046: false
# MD051/link-fragments : Link fragments should be valid : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md051.md
MD051: false
# MD052/reference-links-images : Reference links and images should use a label that is defined : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md052.md
MD052: false
# MD053/link-image-reference-definitions : Link and image reference definitions should be needed : https://github.com/DavidAnson/markdownlint/blob/v0.34.0/doc/md053.md
MD053: false

@ -17,13 +17,13 @@ These are mostly guidelines, not rules. Use your best judgment, and feel free to
We're trying to be as consistent as possible for automation of the changelog.
- **feat/xxx** Commits, that adds a new feature
- **fix/xxx** Commits, that fixes a bug/issue
- **fix/xxx** Commits, that fixes a bug/issue
- **style/xxx** Commits, that do not affect the meaning (white-space, formatting, missing semi-colons, etc)
- **chore/xxx** Miscellaneous commits (administrative / cleanup / backend)
Where 'xxx' can stand for Starr/Sonarr/Radarr/Guide etc
*Examples:*
_Examples:_
- `feat/Starr-ELEANOR-to-Scene-CF`
- `feat/Radarr-CiNEPHiLES-to-Remux-Tier-02`
@ -37,13 +37,13 @@ Where 'xxx' can stand for Starr/Sonarr/Radarr/Guide etc
We're trying to be as consistent as possible for automation of the changelog.
- **feat(xxx):** Commits, that adds a new feature
- **fix(xxx):** Commits, that fixes a bug/issue
- **fix(xxx):** Commits, that fixes a bug/issue
- **style(xxx):** Commits, that do not affect the meaning (white-space, formatting, missing semi-colons, etc)
- **chore(xxx):** Miscellaneous commits (administrative / cleanup / backend)
Where 'xxx' can stand for Starr/Sonarr/Radarr/Guide etc
*Examples:*
_Examples:_
- `feat(starr): add ELEANOR to Scene CF`
- `feat(radarr): add CiNEPHiLES to Remux Tier 02`
@ -72,12 +72,12 @@ When doing a PR that is in-progress and not yet complete / ready for review or n
```json
{
"trash_id": "HASHCODE",
"trash_scores": {
"default": 50,
"some_other_profile": 100
},
"trash_regex": "https://regex101.com/r/pADWJD/5",
"trash_id": "HASHCODE",
"trash_scores": {
"default": 50,
"some_other_profile": 100
},
"trash_regex": "https://regex101.com/r/pADWJD/5",
STARRJSONEXPORT
}
```
@ -86,11 +86,9 @@ General Structure
- json file name - name of the [json file](#file-naming)
- `trash_id` - Generated [HashCode](#hashcode) for the Custom Format
- `trash_scores` - Json object of [score(s) for the Custom Format](#scoring). Note that Custom
Formats with Default Scores of 0 should NOT have a `trash_scores.default`
- `trash_scores` - Json object of [score(s) for the Custom Format](#scoring). Note that Custom Formats with Default Scores of 0 should NOT have a `trash_scores.default`
- `trash_regex` - Link to [regex test cases](#regex-test-cases) for regex
- STARRJSONEXPORT - The exported custom format created within Starr. Note that this will have a
leading `{` that will need to have the `trash` specific regex added after
- STARRJSONEXPORT - The exported custom format created within Starr. Note that this will have a leading `{` that will need to have the `trash` specific regex added after
### File Naming
@ -98,10 +96,10 @@ General Structure
### Hashcode
- When adding the hashcode for **Radarr** use the following naming `CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`BR-DISK`](https://md5.gromweb.com/?string=BR-DISK)
- When adding the hashcode for **Radarr Anime** use the following naming `Radarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Radarr Anime BR-DISK`](https://md5.gromweb.com/?string=Radarr+Anime+BR-DISK).
- When adding the hashcode for **Radarr** use the following naming `CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`BR-DISK`](https://md5.gromweb.com/?string=BR-DISK)
- When adding the hashcode for **Radarr Anime** use the following naming `Radarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Radarr Anime BR-DISK`](https://md5.gromweb.com/?string=Radarr+Anime+BR-DISK).
- When adding the hashcode for **Sonarr** use the following naming `Sonarr CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Sonarr BR-DISK`](https://md5.gromweb.com/?string=Sonarr+BR-DISK).
- When adding the hashcode for **Sonarr Anime** use the following naming `Sonarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Sonarr Anime BR-DISK`](https://md5.gromweb.com/?string=Sonarr+Anime+BR-DISK).
- When adding the hashcode for **Sonarr Anime** use the following naming `Sonarr Anime CF_name` e.g. the Custom Format `BR-DISK` would be the hash of [`Sonarr Anime BR-DISK`](https://md5.gromweb.com/?string=Sonarr+Anime+BR-DISK).
### Regex Test Cases
@ -117,7 +115,7 @@ When updating or adding a new CF the test case url (`trash_regex`) needs to be p
```json
{
"trash_regex": "https://regex101.com/r/pADWJD/5",
"trash_regex": "https://regex101.com/r/pADWJD/5"
}
```
@ -127,10 +125,10 @@ When updating or adding a new CF the test case url (`trash_regex`) needs to be p
```json
{
"trash_scores": {
"default": 50,
"some_other_profile": 100
},
"trash_scores": {
"default": 50,
"some_other_profile": 100
}
}
```
@ -155,8 +153,7 @@ based on the `.vscode/extensions.json` file; you should install all of them.
These prerequisites are taken from the [mkdocs installation instructions][mkdocinstall].
- Install a recent version of [Python 3](https://www.python.org/).
- `pip` is also required, but should come with Python. Run `pip --version` to check if its available
and working. See the [installation instructions](https://pip.pypa.io/en/stable/installation/).
- `pip` is also required, but should come with Python. Run `pip --version` to check if its available and working. See the [installation instructions](https://pip.pypa.io/en/stable/installation/).
[mkdocinstall]: https://www.mkdocs.org/user-guide/installation/

@ -1,12 +1,12 @@
nav:
- Home: index.md
- Radarr
- Sonarr
- Prowlarr
- Bazarr
- Downloaders
- Plex
- Guide-Sync
- Misc
- Hardlinks
- How-to-setup-for: Hardlinks/How-to-setup-for
- Home: index.md
- Radarr
- Sonarr
- Prowlarr
- Bazarr
- Downloaders
- Plex
- Guide-Sync
- Misc
- Hardlinks
- How-to-setup-for: Hardlinks/How-to-setup-for

@ -1,6 +1,6 @@
nav:
- Home: index.md
- Basic-Guide: Setup-Guide.md
- After Install Configuration: After-install-configuration.md
- Scripts: /Bazarr/scripts/
- Tips
- Home: index.md
- Basic-Guide: Setup-Guide.md
- After Install Configuration: After-install-configuration.md
- Scripts: /Bazarr/scripts/
- Tips

@ -1,9 +1,9 @@
# After Install Configuration
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.

@ -33,7 +33,7 @@ Click on `Enabled`
**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.**
1. Enter the TCP port of your Sonarr instance. Default is 8989.
1. 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).
1. 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
@ -125,7 +125,7 @@ Click on `Enabled`
**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.**
1. Enter the TCP port of your Radarr instance. Default is 7878.
1. 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).
1. 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
@ -224,7 +224,7 @@ Select `Add New Profile`
1. How you want to name your language profile.
1. Click on `Add` to add the languages you enabled earlier in [Subtitle Language](#subtitles-language).
1. Select the languages you want to enable for your profile (Including the optional settings).
- Forced => [FAQ - What are Forced Subtitles](https://wiki.bazarr.media/Troubleshooting/FAQ/#what-are-forced-subtitles){:target="_blank" rel="noopener noreferrer"}
- Forced => [FAQ - What are Forced Subtitles](https://wiki.bazarr.media/Troubleshooting/FAQ/#what-are-forced-subtitles){:target="\_blank" rel="noopener noreferrer"}
- HI => Hearing Impaired
- Exclude Audio => Exclude if matching audio
1. Optional select the cutoff where you want Bazarr to stop downloading other languages.
@ -297,7 +297,7 @@ Here we will configure some extra settings for your subtitles
Here you can select which Anti-Captcha provider you want to use.
[Why (or) do I need the Anti-Captcha ?](https://wiki.bazarr.media/Troubleshooting/FAQ/#why-or-do-i-need-the-anti-captcha){:target="_blank" rel="noopener noreferrer"}
[Why (or) do I need the Anti-Captcha ?](https://wiki.bazarr.media/Troubleshooting/FAQ/#why-or-do-i-need-the-anti-captcha){:target="\_blank" rel="noopener noreferrer"}
!!! tip
@ -309,7 +309,7 @@ Here you can select which Anti-Captcha provider you want to use.
1. When searching for subtitles, Bazarr will search less frequently to limit calls to providers.
1. Search multiple providers at once (Don't choose this on low powered devices).
1. If you want to use the embedded subtitles in the media files [More Info](https://wiki.bazarr.media/Additional-Configuration/Settings/#use-embedded-subtitles){:target="_blank" rel="noopener noreferrer"}
1. If you want to use the embedded subtitles in the media files [More Info](https://wiki.bazarr.media/Additional-Configuration/Settings/#use-embedded-subtitles){:target="\_blank" rel="noopener noreferrer"}
### Automatic Subtitles Synchronization
@ -320,6 +320,7 @@ Enable this option for automatic subtitles synchronization.
!!! danger "Don't forget to save your settings!!!"
![Save](images/qs-save.png)
---
Now wait until Bazarr gets all the info needed from Sonarr/Radarr.
@ -332,5 +333,5 @@ Now wait until Bazarr gets all the info needed from Sonarr/Radarr.
---
If you still have questions please check the [Troubleshooting](https://wiki.bazarr.media/Troubleshooting/Asking-for-help-or-report-a-problem/){:target="_blank" rel="noopener noreferrer"} section in the wiki.
For more info about the other settings check the [Settings](https://wiki.bazarr.media/Additional-Configuration/Settings/){:target="_blank" rel="noopener noreferrer"} wiki.
If you still have questions please check the [Troubleshooting](https://wiki.bazarr.media/Troubleshooting/Asking-for-help-or-report-a-problem/){:target="\_blank" rel="noopener noreferrer"} section in the wiki.
For more info about the other settings check the [Settings](https://wiki.bazarr.media/Additional-Configuration/Settings/){:target="\_blank" rel="noopener noreferrer"} wiki.

@ -1,6 +1,6 @@
# Suggested Scoring
You just setup Bazarr and wonder which scoring you should use/setup for your subtitles and sync ?
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.
@ -40,6 +40,7 @@ This score is the minimal score that the subs should match to for your release,
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.
@ -52,4 +53,3 @@ This will set the Synchronization Score Threshold, meaning at which score bazarr
I personally noticed that when setting it to high 98-100 I would actually get subs that are like 1 second to slow/fast.
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -9,7 +9,7 @@ Here you will find several scripts you can use with Bazarr
- (stable)
- Builds Pushed after a testing period in development
- Github Branch: master
- Docker: [hotio/bazarr:latest](https://hotio.dev/containers/bazarr/){:target="_blank" rel="noopener noreferrer"}
- Docker: [hotio/bazarr:latest](https://hotio.dev/containers/bazarr/){:target="\_blank" rel="noopener noreferrer"}
```bash
hotio/bazarr:latest
@ -22,7 +22,7 @@ hotio/bazarr:latest
- (development)
- Builds pushed when complete
- Github Branch: development
- Docker: [hotio/bazarr:nightly](https://hotio.dev/containers/bazarr/){:target="_blank" rel="noopener noreferrer"}
- Docker: [hotio/bazarr:nightly](https://hotio.dev/containers/bazarr/){:target="\_blank" rel="noopener noreferrer"}
```bash
hotio/bazarr:nightly

@ -1,6 +1,7 @@
# Bazarr Scripts
!!! note ""
Here you will find a collection of Scripts you can use with Bazarr.
Most of them are provided by other users, if you got a script you want to share don't hesitate to create a [PR](https://github.com/TRaSH-Guides/Guides/blob/master/CONTRIBUTING.md) for it

@ -1,7 +1,7 @@
nav:
- Home: index.md
- NZBGet
- SABnzbd
- qBittorrent
- Deluge
- ruTorrent
- Home: index.md
- NZBGet
- SABnzbd
- qBittorrent
- Deluge
- ruTorrent

@ -1,13 +1,14 @@
# Basic-Setup
{! include-markdown "../../../includes/downloaders/basic-setup.md" !}
<!-- --8<-- "includes/downloaders/basic-setup.md" -->
------
---
!!! Note
Settings that aren't covered means you can change them to your liking or just leave them on default.
------
---
## Accessing your settings
@ -28,6 +29,7 @@ Once you are here, you can edit your download settings in the `Downloads` sectio
Copy (and delete upon removal) of the .torrent file upon completion.
!!! success ""
**Suggested: `Personal preference`**
### Pre-allocated Files
@ -35,20 +37,23 @@ Copy (and delete upon removal) of the .torrent file upon completion.
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.
!!! success ""
**Suggested: `Enabled`**
!!! warning
Do not set Pre-allocated disk space if you are using ZFS as your filesystem as ZFS [does not support fallocate](https://github.com/openzfs/zfs/issues/326){:target="_blank" rel="noopener noreferrer"}
Do not set Pre-allocated disk space if you are using ZFS as your filesystem as ZFS [does not support fallocate](https://github.com/openzfs/zfs/issues/326){:target="\_blank" rel="noopener noreferrer"}
{! include-markdown "../../../includes/downloaders/warning-path-location.md" !}
------
---
## Bandwidth
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".
![!Bandwidth Settings](images/Deluge-bandwidth-settings.png)
@ -60,6 +65,7 @@ The best settings depend on many factors.
- Bandwidth needed by other services in your home network.
!!! success ""
**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.`
## Global Bandwidth Limits
@ -84,13 +90,14 @@ In addition to global limits, you can set limits per torrent.
![!Per-Torrent Bandwidth Settings](images/Deluge-torrentbw-settings.png)
------
---
## Queue
These settings are intended to manage your number of active seeds, downloads, and uploads.
!!! info
In Deluge, the value of `-1` is used for "infinity" or "unlimited".
### Active Torrents
@ -105,7 +112,7 @@ Unless you have a specific reason, `Total` can be set to `-1`. These are torrent
I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced) to remove completed downloads. These sections are then not necessary.
------
---
## Network
@ -116,16 +123,19 @@ This is where you will bind Deluge to a specific interface/address, specify port
### Incoming Port
!!! info ""
You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded.
You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="\_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded.
`Incoming Port` should be set to a specific port that you have opened/forwarded (if you are behind any NAT/Firewall/VPN.)
!!! WARNING
Default ports of 6880-6890 are not recommended.
Make sure you click `Test Active Port` and get a ✓ before moving on.
!!! success ""
**Suggested: `Critical`**
### Encryption
@ -133,6 +143,7 @@ Make sure you click `Test Active Port` and get a ✓ before moving on.
Encryption should be enabled on both `Incoming` and `Outgoing`. The default `Level` of `Either` will accept both encrypted and standard connections.
!!! success ""
**Suggested: `Level = Full Stream`**
### Network Extras
@ -140,6 +151,7 @@ Encryption should be enabled on both `Incoming` and `Outgoing`. The default `Lev
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.
1. UPnP and NAT-PMP should be both disabled in your router, as well as in Deluge, as they can pose security risks.
@ -147,6 +159,7 @@ You can configure your network protocols in this section. Depending on which typ
![!Network UPNP](images/Deluge-network-extras-upnp.png)
!!! success ""
**Suggested: `Disabled`**
1. 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.**
@ -154,6 +167,7 @@ You can configure your network protocols in this section. Depending on which typ
![!Network Extras (Public)](images/Deluge-network-extras-public.png)
!!! success ""
**Suggested: `Recommended`**
1. 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.
@ -161,9 +175,10 @@ You can configure your network protocols in this section. Depending on which typ
![!Network Extras (Public)](images/Deluge-network-extras.png)
!!! success ""
**Suggested: `Disabled`**
------
---
## Plugins
@ -172,9 +187,11 @@ Finally, you will want to enable some plugins. There are plenty of plugins on th
![!Plugin Settings](images/Deluge-plugin-settings.png)
!!! tip
If you are familiar with the client and plugins you can find more information [here](./Tips/Plugins.md)
!!! 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.
### WebUI
@ -182,6 +199,7 @@ Finally, you will want to enable some plugins. There are plenty of plugins on th
Once you have enabled the `WebUI` plugin, it will appear in your `Preferences` menu list, and you will need to enable the web interface and set the port you want the WebUI to listen on.
!!! info
The default WebUI password is `deluge` and you can change that in preferences inside the WebUI once you access it through your browser.
Remember your password, we will need this later.
@ -193,4 +211,3 @@ The `Label` plugin will allow you to categorize/sort your torrents. You can assi
Labels are a valuable tool, if used properly, to keep your torrents managed and organized.
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -7,17 +7,19 @@ The `Network` section of `Preferences` is where you will bind Deluge to a specif
## Incoming Port
!!! info ""
You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've forwarded.
You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="\_blank" rel="noopener noreferrer"} 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 ✓ before moving on.
!!! success ""
**Suggested: `Critical`**
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -3,9 +3,11 @@
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.
---
@ -41,6 +43,7 @@ Use at your own discretion.
Execute will run a program or script upon reaching a specified event. It is recommended that after adding events, you restart Deluge.
!!! info
Checking or Rechecking a torrent will not trigger the "Torrent Completed" event, you will need to actually download the torrent to trigger this.
---
@ -92,11 +95,13 @@ Other forks, and the original plugin, can be found on the GitHub page.
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.
@ -106,5 +111,3 @@ See the forum thread for details below.
[ltConfig](https://forum.deluge-torrent.org/viewtopic.php?p=235653#p235653){:target="\_blank" rel="noopener noreferrer"}
{! include-markdown "../../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -5,6 +5,7 @@
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.
@ -12,11 +13,12 @@ You will need to have "Allow Remote Connections" enabled if you are not connecti
![!Daemon Settings](../images/Deluge-tc-daemon.png)
!!! 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.
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.
------
---
## Switching to Thin-Client
@ -29,7 +31,8 @@ Simply go to `Edit` => `Preferences` and switch from `Standalone` to `Thin Clien
Restart Deluge.
!!! info
You will still need to set the daemon to run at start-up.
You will still need to set the daemon to run at start-up.
### Connections Manager
@ -38,11 +41,13 @@ After switching to `Thin Client` you will need to connect to your daemon. Go to
![!Label Options](../images/Deluge-tc-connman.png)
!!! 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.
@ -50,5 +55,3 @@ After switching to `Thin Client` you will need to connect to your daemon. Go to
BE AWARE: These passwords are stored in PLAIN-TEXT in your `auth` file.
{! include-markdown "../../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -23,9 +23,9 @@ Using the following instructions will allow you to move the files with the use o
Download the following standalone Python script.
- [Script (deluge-mover.py)](https://raw.githubusercontent.com/zakkarry/deluge-mover/master/deluge-mover.py){:target="_blank" rel="noopener noreferrer"}
- [Script (deluge-mover.py)](https://raw.githubusercontent.com/zakkarry/deluge-mover/master/deluge-mover.py){:target="\_blank" rel="noopener noreferrer"}
Thanks to [zakary](https://github.com/zakkarry){:target="_blank" rel="noopener noreferrer"} (Developer on [cross-seed](https://github.com/cross-seed/cross-seed){:target="_blank" rel="noopener noreferrer"})
Thanks to [zakary](https://github.com/zakkarry){:target="\_blank" rel="noopener noreferrer"} (Developer on [cross-seed](https://github.com/cross-seed/cross-seed){:target="\_blank" rel="noopener noreferrer"})
### Plugins
@ -33,13 +33,13 @@ Install the following Plugins.
- User Scripts
- NerdTools
- python3 <sup>(*1*)</sup>
- python-setuptools <sup>(*1*)</sup>
- python-pip <sup>(*1*)</sup>
- python3 <sup>(_1_)</sup>
- python-setuptools <sup>(_1_)</sup>
- python-pip <sup>(_1_)</sup>
!!! info "<sup>(*1*)</sup> These need to be installed from NerdTools."
!!! info "<sup>(_1_)</sup> These need to be installed from NerdTools."
------
---
## Setup
@ -52,6 +52,7 @@ After you install the needed `Plugins` - it's time to configure everything.
You can choose one of the following 3 options (select a tab) to install `requests`.
=== "User scripts"
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.
@ -86,7 +87,9 @@ You can choose one of the following 3 options (select a tab) to install `request
Click on `Apply`.
Finally, you will need to choose `RUN IN BACKGROUND` or restart your unRAID server to install the `requests` module.
=== "Python venv"
With this option, we're going to create a [Python virtual environment](https://docs.python.org/3/library/venv.html) 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)*.
@ -94,6 +97,7 @@ You can choose one of the following 3 options (select a tab) to install `request
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](#copy-the-script-to-your-preferred-location), try to be consistent.
Suggestions:
@ -116,8 +120,11 @@ You can choose one of the following 3 options (select a tab) to install `request
```
!!! info
Replace `/mnt/user/data/scripts/.venv` with the path you have chosen.
=== "Go File"
With this option, we're going to install the `requests` module when the unRAID server is started.
On your USB stick/key go to `/boot/config` and open the `go` file with your text editor ([VSCode](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}).
@ -130,11 +137,11 @@ You can choose one of the following 3 options (select a tab) to install `request
Restart your unRAID Server or run the above command from the terminal.
------
---
### Script
Now, using your favorite text editor ([VSCode](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}) edit the script you downloaded at the beginning of the guide ([HERE](#deluge-mover-script)).
Now, using your favorite text editor ([VSCode](https://code.visualstudio.com/){:target="\_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="\_blank" rel="noopener noreferrer"}) edit the script you downloaded at the beginning of the guide ([HERE](#deluge-mover-script)).
You only need to change a few options at the top of the script.
@ -177,12 +184,13 @@ age_day_min = 3
age_day_max = 0
```
- `deluge_webui` => The URL you use to access Deluge locally. (*the* `"` *should remain*)
- `deluge_password` => Your Deluge WebUI `Password`. (*the* `"` *should remain*)
- `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.
!!! warning ""
- 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`.
@ -244,6 +252,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th
```
!!! info
Replace `/mnt/user/data/scripts/` in the script with the path you have chosen for the Python script.
![!Bash script](images/Unraid-settings-user-scripts-deluge-mover.png)

@ -3,6 +3,7 @@
## Labels
!!! info
Labels are the equivalent of categories for qBittorrent, and how you can manage and organize your torrents in groups. Starr apps can use labels in Deluge to keep track of downloads to monitor, rather than watching every torrent in your client.
### Managing Labels
@ -16,6 +17,7 @@ Once you have [enabled the `Label` plugin](./Basic-Setup.md#plugins), you simply
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.
@ -27,9 +29,9 @@ If you want torrents to be moved upon completion to a specific folder, you can s
![!Label Folders](images/Deluge-label-folders.png)
!!! 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.
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -4,7 +4,7 @@
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.
------
---
## Installation
@ -15,6 +15,7 @@ Information sourced mostly from [Deluge's Downloads Page](https://dev.deluge-tor
You can find the latest Windows installers [here](https://ftp.osuosl.org/pub/deluge/windows/?C=M;O=D)
!!! note
`lt2.0` in the filename means the installer includes libtorrent 2.0.x instead of the older 1.2.x
### Linux (Native)
@ -32,9 +33,11 @@ Using `pip3` to install (included in the Python package)
pip3 install deluge
!!! info
You can find this project's pip repo @ [pypi.org/project/deluge/](https://pypi.org/project/deluge/)
!!! Advanced
If you want to install deluged as a service, documentation can be found [here](https://deluge.readthedocs.io/en/latest/how-to/systemd-service.html)
### Docker Containers
@ -46,4 +49,3 @@ Using `pip3` to install (included in the Python package)
[BinHex VPN](https://hub.docker.com/r/binhex/arch-delugevpn)
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,4 +1,4 @@
nav:
- Basic-Setup: Basic-Setup.md
- Path and Categories: Paths-and-Categories.md
- Scripts: /Downloaders/NZBGet/scripts/
- Basic-Setup: Basic-Setup.md
- Path and Categories: Paths-and-Categories.md
- Scripts: /Downloaders/NZBGet/scripts/

@ -3,9 +3,8 @@
!!! danger "NZBGet development has been officially abandoned by the developer :bangbang:"
{! include-markdown "../../../includes/downloaders/basic-setup.md" !}
<!-- --8<-- "includes/downloaders/basic-setup.md" -->
------
---
## Some Basics
@ -63,6 +62,7 @@ I will only explain the so called most important paths.
![!incoming](images/incoming.png)
!!! info
`AppendCategoryDir`: Create subdirectory with category-name in destination-directory.
## DOWNLOAD QUEUE
@ -70,6 +70,7 @@ I will only explain the so called most important paths.
![!queue](images/queue.png)
!!! warning
`WriteBuffer`: If you're low on memory don't set this to high.
## LOGGING
@ -85,6 +86,7 @@ I will only explain the so called most important paths.
![!unpack](images/unpack.png)
!!! info
`DirectUnpack`: This might lower your download speed but the overall time could be faster. (disable on low powered devices)
## EXTENSION SCRIPTS
@ -93,7 +95,7 @@ I will only explain the so called most important paths.
Depending if you're using some NZBGet script here you can change the order or when it should be used
------
---
## Recommended Sonarr/Radarr Settings
@ -127,4 +129,3 @@ Being that Sonarr/Radarr only looks at the last xx amount in the queue/history.
and both boxes under `Failed Download Handling` at step 4.
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -3,7 +3,6 @@
!!! danger "NZBGet development has been officially abandoned by the developer :bangbang:"
{! include-markdown "../../../includes/downloaders/path.md" !}
<!-- --8<-- "includes/downloaders/path.md" -->
---
@ -16,7 +15,5 @@
![nzbget-settings-categories](/Hardlinks/images/nzbget-settings-categories.png)
{! include-markdown "../../../includes/downloaders/warning-path-location.md" !}
<!-- --8<-- "includes/downloaders/warning-path-location.md" -->
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -18,44 +18,44 @@ from __future__ import print_function
import os, re, sys
# Exit codes used by NZBGet
POSTPROCESS_SUCCESS=93
POSTPROCESS_ERROR=94
POSTPROCESS_SKIP=95
POSTPROCESS_SUCCESS = 93
POSTPROCESS_ERROR = 94
POSTPROCESS_SKIP = 95
# Check if the script is called from NZBGet 13.0 or later
if not 'NZBOP_SCRIPTDIR' in os.environ:
print('*** NZBGet post-processing script ***')
print('This script is supposed to be called from NZBGet (13.0 or later).')
sys.exit(POSTPROCESS_ERROR)
if not 'NZBNP_NZBNAME' in os.environ:
print('[WARN] Filename not found in environment')
sys.exit(POSTPROCESS_ERROR)
fwp = os.environ['NZBNP_NZBNAME']
fwp = re.sub('(?i)-4P\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-4Planet\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-AsRequested\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-AsRequested-xpost\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-BUYMORE\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-Chamele0n\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-GEROV\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-iNC0GNiTO\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-NZBGeek\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-Obfuscated\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-postbot\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-Rakuv\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-Scrambled\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-WhiteRev\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-xpost\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)\[eztv([ ._-]re)?\]\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)\[TGx\]\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)\[TGx\]-xpost\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)\[ettv\]\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-WRTEAM\.nzb$', '.nzb', fwp)
fwp = re.sub('(?i)-CAPTCHA\.nzb$', '.nzb', fwp)
fwp = re.sub(r'(\-[^-.\n]*)(\-.{4})?\.nzb$', r'\1.nzb', fwp)
if not "NZBOP_SCRIPTDIR" in os.environ:
print("*** NZBGet post-processing script ***")
print("This script is supposed to be called from NZBGet (13.0 or later).")
sys.exit(POSTPROCESS_ERROR)
if not "NZBNP_NZBNAME" in os.environ:
print("[WARN] Filename not found in environment")
sys.exit(POSTPROCESS_ERROR)
fwp = os.environ["NZBNP_NZBNAME"]
fwp = re.sub("(?i)-4P\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-4Planet\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-AsRequested\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-AsRequested-xpost\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-BUYMORE\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-Chamele0n\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-GEROV\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-iNC0GNiTO\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-NZBGeek\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-Obfuscated\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-postbot\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-Rakuv\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-Scrambled\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-WhiteRev\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-xpost\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)\[eztv([ ._-]re)?\]\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)\[TGx\]\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)\[TGx\]-xpost\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)\[ettv\]\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-WRTEAM\.nzb$", ".nzb", fwp)
fwp = re.sub("(?i)-CAPTCHA\.nzb$", ".nzb", fwp)
fwp = re.sub(r"(\-[^-.\n]*)(\-.{4})?\.nzb$", r"\1.nzb", fwp)
if fwp:
print('[NZB] NZBNAME=', fwp, sep='')
print("[NZB] NZBNAME=", fwp, sep="")
sys.exit(POSTPROCESS_SUCCESS)

@ -43,51 +43,73 @@ NZBGET_POSTPROCESS_NONE = 95
# EXTENSION STUFF
############################################################
def do_check():
if 'NZBOP_SCRIPTDIR' not in os.environ:
if "NZBOP_SCRIPTDIR" not in os.environ:
print("This script can only be called from NZBGet (11.0 or later).")
sys.exit(0)
if os.environ['NZBOP_VERSION'][0:5] < '11.0':
print("[ERROR] NZBGet Version %s is not supported. Please update NZBGet." % (str(os.environ['NZBOP_VERSION'])))
if os.environ["NZBOP_VERSION"][0:5] < "11.0":
print(
"[ERROR] NZBGet Version %s is not supported. Please update NZBGet."
% (str(os.environ["NZBOP_VERSION"]))
)
sys.exit(0)
print("Script triggered from NZBGet Version %s." % (str(os.environ['NZBOP_VERSION'])))
print(
"Script triggered from NZBGet Version %s." % (str(os.environ["NZBOP_VERSION"]))
)
status = 0
if 'NZBPP_TOTALSTATUS' in os.environ:
if not os.environ['NZBPP_TOTALSTATUS'] == 'SUCCESS':
print("[ERROR] Download failed with status %s." % (os.environ['NZBPP_STATUS']))
if "NZBPP_TOTALSTATUS" in os.environ:
if not os.environ["NZBPP_TOTALSTATUS"] == "SUCCESS":
print(
"[ERROR] Download failed with status %s." % (os.environ["NZBPP_STATUS"])
)
status = 1
else:
# Check par status
if os.environ['NZBPP_PARSTATUS'] == '1' or os.environ['NZBPP_PARSTATUS'] == '4':
print("[ERROR] Par-repair failed, setting status \"failed\".")
if os.environ["NZBPP_PARSTATUS"] == "1" or os.environ["NZBPP_PARSTATUS"] == "4":
print('[ERROR] Par-repair failed, setting status "failed".')
status = 1
# Check unpack status
if os.environ['NZBPP_UNPACKSTATUS'] == '1':
print("[ERROR] Unpack failed, setting status \"failed\".")
if os.environ["NZBPP_UNPACKSTATUS"] == "1":
print('[ERROR] Unpack failed, setting status "failed".')
status = 1
if os.environ['NZBPP_UNPACKSTATUS'] == '0' and os.environ['NZBPP_PARSTATUS'] == '0':
if (
os.environ["NZBPP_UNPACKSTATUS"] == "0"
and os.environ["NZBPP_PARSTATUS"] == "0"
):
# Unpack was skipped due to nzb-file properties or due to errors during par-check
if os.environ['NZBPP_HEALTH'] < 1000:
print("[ERROR] Download health is compromised and Par-check/repair disabled or no .par2 files found. " \
"Setting status \"failed\".")
print("[ERROR] Please check your Par-check/repair settings for future downloads.")
if os.environ["NZBPP_HEALTH"] < 1000:
print(
"[ERROR] Download health is compromised and Par-check/repair disabled or no .par2 files found. "
'Setting status "failed".'
)
print(
"[ERROR] Please check your Par-check/repair settings for future downloads."
)
status = 1
else:
print("[ERROR] Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is " \
"ok so handle as though download successful.")
print("[WARNING] Please check your Par-check/repair settings for future downloads.")
print(
"[ERROR] Par-check/repair disabled or no .par2 files found, and Unpack not required. Health is "
"ok so handle as though download successful."
)
print(
"[WARNING] Please check your Par-check/repair settings for future downloads."
)
# Check if destination directory exists (important for reprocessing of history items)
if not os.path.isdir(os.environ['NZBPP_DIRECTORY']):
print("[ERROR] Nothing to post-process: destination directory", os.environ[
'NZBPP_DIRECTORY'], "doesn't exist. Setting status \"failed\".")
if not os.path.isdir(os.environ["NZBPP_DIRECTORY"]):
print(
"[ERROR] Nothing to post-process: destination directory",
os.environ["NZBPP_DIRECTORY"],
'doesn\'t exist. Setting status "failed".',
)
status = 1
# All checks done, now launching the script.
@ -98,9 +120,9 @@ def do_check():
def get_file_name(path):
try:
file_name = os.path.basename(path)
extensions = re.findall(r'\.([^.]+)', file_name)
ext = '.'.join(extensions)
name = file_name.replace(".%s" % ext, '')
extensions = re.findall(r"\.([^.]+)", file_name)
ext = ".".join(extensions)
name = file_name.replace(".%s" % ext, "")
return name, ext
except Exception:
pass
@ -109,10 +131,10 @@ def get_file_name(path):
def is_file_hash(file_name):
hash_regexp = [
r'^[a-fA-F0-9]{40}$',
r'^[a-fA-F0-9]{32}$',
r'^[a-f0-9]{128}$',
r'^[a-zA-Z0-9]{42}$'
r"^[a-fA-F0-9]{40}$",
r"^[a-fA-F0-9]{32}$",
r"^[a-f0-9]{128}$",
r"^[a-zA-Z0-9]{42}$",
]
for hash in hash_regexp:
if re.match(hash, file_name):
@ -146,20 +168,20 @@ def find_files(folder, extension=None, depth=None):
do_check()
# retrieve required variables
directory = os.path.normpath(os.environ['NZBPP_DIRECTORY'])
nzb_name = os.environ['NZBPP_NZBFILENAME']
directory = os.path.normpath(os.environ["NZBPP_DIRECTORY"])
nzb_name = os.environ["NZBPP_NZBFILENAME"]
if nzb_name is None:
print("[ERROR] Unable to retrieve NZBPP_NZBFILENAME")
sys.exit(NZBGET_POSTPROCESS_ERROR)
nzb_name = nzb_name.replace('.nzb', '')
nzb_name = nzb_name.replace(".nzb", "")
print(("[INFO] Using \"%s\" for hashed filenames" % nzb_name))
print(("[INFO] Scanning \"%s\" for hashed filenames" % directory))
print(('[INFO] Using "%s" for hashed filenames' % nzb_name))
print(('[INFO] Scanning "%s" for hashed filenames' % directory))
# scan for files
found_files = find_files(directory)
if not found_files:
print(("[INFO] No files were found in \"%s\"" % directory))
print(('[INFO] No files were found in "%s"' % directory))
sys.exit(NZBGET_POSTPROCESS_NONE)
else:
print(("[INFO] Found %d files to check for hashed filenames" % len(found_files)))
@ -173,13 +195,20 @@ else:
# is this a file hash
if is_file_hash(file_name):
new_file_path = os.path.join(dir_name, "%s.%s" % (nzb_name, file_ext))
print(("[INFO] Moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)))
print(('[INFO] Moving "%s" to "%s"' % (found_file_path, new_file_path)))
try:
shutil.move(found_file_path, new_file_path)
moved_files += 1
except Exception:
print(("[ERROR] Failed moving \"%s\" to \"%s\"" % (found_file_path, new_file_path)))
print(("[INFO] Finished processing \"%s\", moved %d files" % (directory, moved_files)))
sys.exit(NZBGET_POSTPROCESS_SUCCESS)
print(
(
'[ERROR] Failed moving "%s" to "%s"'
% (found_file_path, new_file_path)
)
)
print(
('[INFO] Finished processing "%s", moved %d files' % (directory, moved_files))
)
sys.exit(NZBGET_POSTPROCESS_SUCCESS)

@ -30,47 +30,56 @@ POSTPROCESS_ERROR = 94
try:
from lxml import etree
except ImportError:
print(u'[ERROR] Python lxml required. Please install with "sudo apt install python-lxml" or "pip install lxml".')
print(
'[ERROR] Python lxml required. Please install with "sudo apt install python-lxml" or "pip install lxml".'
)
sys.exit(POSTPROCESS_ERROR)
patterns = (
re.compile(r'^(?P<prefix>.*\[PRiVATE\]-\[WtFnZb\]-)'
r'\[(?P<total>\d+)\]-\[(?P<segment>\d+)\/(?P<filename>.{3,}?)\]'
r'\s+-\s+""\s+yEnc\s+',
re.MULTILINE | re.UNICODE),
re.compile(r'^(?P<prefix>.*\[PRiVATE\]-\[WtFnZb\]-)'
r'\[(?P<filename>.{3,}?)\]-\[(?P<segment>\d+)/(?P<total>\d+)\]'
r'\s+-\s+""\s+yEnc\s+',
re.MULTILINE | re.UNICODE))
nzb_dir = os.getenv('NZBNP_DIRECTORY')
nzb_filename = os.getenv('NZBNP_FILENAME')
nzb_name = os.getenv('NZBNP_NZBNAME')
nzb_file_naming = os.getenv('NZBOP_FILENAMING')
re.compile(
r"^(?P<prefix>.*\[PRiVATE\]-\[WtFnZb\]-)"
r"\[(?P<total>\d+)\]-\[(?P<segment>\d+)\/(?P<filename>.{3,}?)\]"
r'\s+-\s+""\s+yEnc\s+',
re.MULTILINE | re.UNICODE,
),
re.compile(
r"^(?P<prefix>.*\[PRiVATE\]-\[WtFnZb\]-)"
r"\[(?P<filename>.{3,}?)\]-\[(?P<segment>\d+)/(?P<total>\d+)\]"
r'\s+-\s+""\s+yEnc\s+',
re.MULTILINE | re.UNICODE,
),
)
nzb_dir = os.getenv("NZBNP_DIRECTORY")
nzb_filename = os.getenv("NZBNP_FILENAME")
nzb_name = os.getenv("NZBNP_NZBNAME")
nzb_file_naming = os.getenv("NZBOP_FILENAMING")
if nzb_dir is None or nzb_filename is None or nzb_name is None:
print('Please run as NZBGet plugin')
print("Please run as NZBGet plugin")
sys.exit(POSTPROCESS_ERROR)
if nzb_file_naming is not None and nzb_file_naming.lower() != 'nzb':
print(u'[ERROR] NZBGet setting FileNaming (under Download Queue) '
u'must be set to "Nzb" for this extension to work correctly, exiting.')
if nzb_file_naming is not None and nzb_file_naming.lower() != "nzb":
print(
"[ERROR] NZBGet setting FileNaming (under Download Queue) "
'must be set to "Nzb" for this extension to work correctly, exiting.'
)
sys.exit(POSTPROCESS_ERROR)
if not os.path.exists(nzb_dir):
print('[ERROR] NZB directory doesn\'t exist, exiting')
print("[ERROR] NZB directory doesn't exist, exiting")
sys.exit(POSTPROCESS_ERROR)
if not nzb_filename.lower().endswith('.nzb'):
print(u'[ERROR] {} is not a .nzb file.'.format(nzb_filename))
if not nzb_filename.lower().endswith(".nzb"):
print("[ERROR] {} is not a .nzb file.".format(nzb_filename))
sys.exit(POSTPROCESS_ERROR)
nzb = os.path.join(nzb_dir, nzb_filename)
if not os.path.exists(nzb):
print('[ERROR] {nzb} doesn\'t exist, exiting'.format(nzb=nzb))
print("[ERROR] {nzb} doesn't exist, exiting".format(nzb=nzb))
sys.exit(POSTPROCESS_ERROR)
with open(nzb, mode='rb') as infile:
with open(nzb, mode="rb") as infile:
tree = etree.parse(infile)
changed = False
@ -78,74 +87,77 @@ file_count = 0
totals = set()
filenames = set()
for f in tree.getiterator('{http://www.newzbin.com/DTD/2003/nzb}file'):
subject = f.get('subject')
for f in tree.getiterator("{http://www.newzbin.com/DTD/2003/nzb}file"):
subject = f.get("subject")
if subject is None:
print(u'[DETAIL] No subject in <file>, skipping')
print("[DETAIL] No subject in <file>, skipping")
continue
file_count += 1
result = [re.match(pattern, subject) for pattern in patterns]
matched = [m for m in result if m is not None]
if len(matched) == 0:
print(u'[INFO] No pattern matching subject, exiting.')
print("[INFO] No pattern matching subject, exiting.")
sys.exit(POSTPROCESS_NONE)
elif len(matched) > 1:
print(u'[ERROR] Multiple patterns matched, exiting.')
print("[ERROR] Multiple patterns matched, exiting.")
sys.exit(POSTPROCESS_ERROR)
else:
match = matched[0].groupdict()
if match['filename'].lower().endswith('.par2'):
print(u'[INFO] par2 exists, exiting')
if match["filename"].lower().endswith(".par2"):
print("[INFO] par2 exists, exiting")
sys.exit(POSTPROCESS_NONE)
if int(match['segment']) > int(match['total']):
print(u'[DETAIL] Segment index is greater then total, skipping')
if int(match["segment"]) > int(match["total"]):
print("[DETAIL] Segment index is greater then total, skipping")
continue
# NZBGet subject parsing changes when duplicate filenames are present
# prefix duplicates to avoid that
if match['filename'] in filenames:
match['filename'] = u'{}.{}'.format(file_count, match['filename'])
if match["filename"] in filenames:
match["filename"] = "{}.{}".format(file_count, match["filename"])
filenames.add(match['filename'])
filenames.add(match["filename"])
s = u'WtFnZb "{filename}" yEnc ({segment}/{total})'.format(
filename = match['filename'],
segment = match['segment'],
total = match['total'])
s = 'WtFnZb "{filename}" yEnc ({segment}/{total})'.format(
filename=match["filename"], segment=match["segment"], total=match["total"]
)
print(u'[INFO] New subject {subject}'.format(subject=s.encode('ascii', 'ignore')))
f.set('subject', s)
print("[INFO] New subject {subject}".format(subject=s.encode("ascii", "ignore")))
f.set("subject", s)
changed = True
totals.add(int(match['total']))
totals.add(int(match["total"]))
if not changed:
print(u'[WARNING] No subject changed, exiting.')
print("[WARNING] No subject changed, exiting.")
sys.exit(POSTPROCESS_NONE)
if len(totals) != 1:
print(u'[WARNING] Mixed values for number of total segments, exiting.')
print("[WARNING] Mixed values for number of total segments, exiting.")
sys.exit(POSTPROCESS_NONE)
if totals.pop() != file_count:
print(u'[WARNING] Listed segment count does not match <file> count, exiting.')
print("[WARNING] Listed segment count does not match <file> count, exiting.")
sys.exit(POSTPROCESS_NONE)
org = u'{}.wtfnzb.original.processed'.format(nzb)
org = "{}.wtfnzb.original.processed".format(nzb)
exists_counter = 0
while os.path.exists(org):
exists_counter += 1
org = u'{}.{}.wtfnzb.original.processed'.format(nzb, exists_counter)
org = "{}.{}.wtfnzb.original.processed".format(nzb, exists_counter)
print(u'[INFO] Preserving original nzb as {}'.format(org))
print("[INFO] Preserving original nzb as {}".format(org))
os.rename(nzb, org)
print(u'[INFO] Writing {}'.format(nzb))
with open(nzb, mode='wb') as outfile:
outfile.write(etree.tostring(tree,
xml_declaration=True,
encoding=tree.docinfo.encoding,
doctype=tree.docinfo.doctype))
print("[INFO] Writing {}".format(nzb))
with open(nzb, mode="wb") as outfile:
outfile.write(
etree.tostring(
tree,
xml_declaration=True,
encoding=tree.docinfo.encoding,
doctype=tree.docinfo.doctype,
)
)
sys.exit(POSTPROCESS_SUCCESS)

@ -48,10 +48,10 @@
Install Instructions:
1. Copy script to NZBGet's script folder
1. Run: `sudo chmod +x replace_for.py`
1. In NZBGet go to `Settings` => `Extension Scripts`
1. Enable `replace_for.py` in the `Extensions` setting.
1. Copy script to NZBGet's script folder
1. Run: `sudo chmod +x replace_for.py`
1. In NZBGet go to `Settings` => `Extension Scripts`
1. Enable `replace_for.py` in the `Extensions` setting.
??? example "Script"
@ -80,6 +80,7 @@
```
!!! 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

@ -22,19 +22,19 @@ from __future__ import print_function
import os, re, sys
# Exit codes used by NZBGet
POSTPROCESS_SUCCESS=93
POSTPROCESS_ERROR=94
POSTPROCESS_SKIP=95
POSTPROCESS_SUCCESS = 93
POSTPROCESS_ERROR = 94
POSTPROCESS_SKIP = 95
directory = os.environ['NZBPP_DIRECTORY']
print('Directory used is: ',directory)
directory = os.environ["NZBPP_DIRECTORY"]
print("Directory used is: ", directory)
for path, currentDirectory, files in os.walk(directory):
for file in files:
if file.find("_") !=-1:
dst = file.replace('_', '.')
os.rename (os.path.join(path,file),os.path.join(path,dst) )
print('Result: ',file," renamed to ",dst)
if file.find("_") != -1:
dst = file.replace("_", ".")
os.rename(os.path.join(path, file), os.path.join(path, dst))
print("Result: ", file, " renamed to ", dst)
sys.exit(POSTPROCESS_SUCCESS)
sys.exit(POSTPROCESS_SUCCESS)

@ -1,4 +1,4 @@
nav:
- Basic-Setup: Basic-Setup.md
- Path and Categories: Paths-and-Categories.md
- Scripts: /Downloaders/SABnzbd/scripts/
- Basic-Setup: Basic-Setup.md
- Path and Categories: Paths-and-Categories.md
- Scripts: /Downloaders/SABnzbd/scripts/

@ -1,18 +1,18 @@
# SABnzbd - Basic Setup
{! include-markdown "../../../includes/downloaders/basic-setup.md" !}
<!-- --8<-- "includes/downloaders/basic-setup.md" -->
------
---
!!! Note
Settings that aren't covered means you can change them to your own liking or just leave them on default.
**I also recommend to enable the `Advanced Settings` on the top right.**
## General
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/general){:target="_blank" rel="noopener noreferrer"}
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/general){:target="\_blank" rel="noopener noreferrer"}
### Tuning
@ -21,11 +21,11 @@
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.
------
---
## Folders
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/folders){:target="_blank" rel="noopener noreferrer"}
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/folders){:target="\_blank" rel="noopener noreferrer"}
### User Folders
@ -35,7 +35,6 @@ I recommend setting a sane maximum speed and then limiting below that, to keep y
Here you setup your download path/location.
{! include-markdown "../../../includes/downloaders/warning-path-location.md" !}
<!-- --8<-- "includes/downloaders/warning-path-location.md" -->
### System Folders
@ -44,16 +43,17 @@ Here you setup your download path/location.
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.
------
---
## Servers
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/servers){:target="_blank" rel="noopener noreferrer"}
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/servers){:target="\_blank" rel="noopener noreferrer"}
`Settings` => `Servers` => `Add Server`
![!Servers](images/sabnzbd-servers.png)
!!! info ""
USP = Usenet Service Provider
1. Server description.
@ -66,21 +66,21 @@ I recommend the .nzb Backup Folder because sabnzbd doesn't have a hidden history
1. How long the articles are stored on the news server.
1. For unreliable servers, will be ignored longer in case of failures
------
---
## Categories
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/categories){:target="_blank" rel="noopener noreferrer"}
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/categories){:target="\_blank" rel="noopener noreferrer"}
`Settings`=> `Categories`
Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SABnzbd/Paths-and-Categories/){:target="_blank" rel="noopener noreferrer"}
Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SABnzbd/Paths-and-Categories/){:target="\_blank" rel="noopener noreferrer"}
------
---
## Switches
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/switches){:target="_blank" rel="noopener noreferrer"}
[Sabnzbd Documentation](https://sabnzbd.org/wiki/configuration/4.0/switches){:target="\_blank" rel="noopener noreferrer"}
### Queue
@ -105,7 +105,7 @@ Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SAB
1. Some servers provide an alternative NZB when a download fails. I have it enabled no guarantee that it works.
1. Helps with de-obfuscation especially invalid file extensions
------
---
## Sorting
@ -116,7 +116,7 @@ Covered and fully explained in [SABnzbd - Paths and Categories](/Downloaders/SAB
## Special
Rarely used options.
Don't change these without checking the [SABnzbd Wiki](https://sabnzbd.org/wiki/configuration/4.0/special){:target="_blank" rel="noopener noreferrer"} first, as some have serious side-effects.
Don't change these without checking the [SABnzbd Wiki](https://sabnzbd.org/wiki/configuration/4.0/special){:target="\_blank" rel="noopener noreferrer"} first, as some have serious side-effects.
The default values are between parentheses.
### Unable to connect to SABnzbd
@ -137,7 +137,7 @@ Example: `sabnzbd.domain.tld, <container name >`
![!SABnzbd: host_whitelist ( )](images/sabnzbd-special-host-whitelist.png)
------
---
## Recommended Sonarr/Radarr Settings
@ -174,9 +174,8 @@ Being that Sonarr/Radarr only looks at the last xx amount in the queue/history.
![!Radarr: Download Clients - SABnzbd](images/radarr-download-clients-sabnzbd.png)
------
---
<sub>Thanks to [fryfrog](https://github.com/fryfrog){:target="_blank" rel="noopener noreferrer"} for helping me with the settings and providing the info needed to create this Guide.</sub>
<sub>Thanks to [fryfrog](https://github.com/fryfrog){:target="\_blank" rel="noopener noreferrer"} for helping me with the settings and providing the info needed to create this Guide.</sub>
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,7 +1,6 @@
# SABnzbd - Paths and Categories
{! include-markdown "../../../includes/downloaders/path.md" !}
<!-- --8<-- "includes/downloaders/path.md" -->
---
@ -16,7 +15,6 @@
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`.
{! include-markdown "../../../includes/downloaders/warning-path-location.md" !}
<!-- --8<-- "includes/downloaders/warning-path-location.md" -->
---
@ -27,4 +25,3 @@ You don't need to add the full path under `Folder/Path`, it will use the `Relati
![!SABnzbd - Paths and Categories Breakdown](images/sabnzbd-category-breakdown.png)
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -24,46 +24,55 @@ import re
sys.argv = sys.argv[:9]
try:
# Parse the input variables for SABnzbd version >= 4.2.0
(scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist) = sys.argv
(
scriptname,
nzbname,
postprocflags,
category,
script,
prio,
downloadsize,
grouplist,
) = sys.argv
except:
sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script
sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script
fwp = nzbname
fwp = re.sub('(?i)-4P$', '', fwp)
fwp = re.sub('(?i)-4Planet$', '', fwp)
fwp = re.sub('(?i)-AlternativeToRequested$', '', fwp)
fwp = re.sub('(?i)-AlteZachen$', '', fwp)
fwp = re.sub('(?i)-AsRequested$', '', fwp)
fwp = re.sub('(?i)-AsRequested-xpost$', '', fwp)
fwp = re.sub('(?i)-BUYMORE$', '', fwp)
fwp = re.sub('(?i)-Chamele0n$', '', fwp)
fwp = re.sub('(?i)-GEROV$', '', fwp)
fwp = re.sub('(?i)-iNC0GNiTO$', '', fwp)
fwp = re.sub('(?i)-NZBGeek$', '', fwp)
fwp = re.sub('(?i)-Obfuscated$', '', fwp)
fwp = re.sub('(?i)-Obfuscation$', '', fwp)
fwp = re.sub('(?i)-postbot$', '', fwp)
fwp = re.sub('(?i)-Rakuv[a-z0-9]*$', '', fwp)
fwp = re.sub('(?i)-RePACKPOST$', '', fwp)
fwp = re.sub('(?i)-Scrambled$', '', fwp)
fwp = re.sub('(?i)-WhiteRev$', '', fwp)
fwp = re.sub('(?i)-WRTEAM$', '', fwp)
fwp = re.sub('(?i)-CAPTCHA$', '', fwp)
fwp = re.sub('(?i)-Z0iDS3N$', '', fwp)
fwp = re.sub('(?i)\[eztv([ ._-]re)?\]$', '', fwp)
fwp = re.sub('(?i)\[TGx\]$', '', fwp)
fwp = re.sub('(?i)\[ettv\]$', '', fwp)
fwp = re.sub('(?i)\[TGx\]-xpost$', '', fwp)
fwp = re.sub('(?i).mkv-xpost$', '', fwp)
fwp = re.sub('(?i)-xpost$', '', fwp)
fwp = re.sub(r'(?i)(-D-Z0N3|\-[^-.\n]*)(\-.{4})?$', r'\1', fwp)
fwp = re.sub("(?i)-4P$", "", fwp)
fwp = re.sub("(?i)-4Planet$", "", fwp)
fwp = re.sub("(?i)-AlternativeToRequested$", "", fwp)
fwp = re.sub("(?i)-AlteZachen$", "", fwp)
fwp = re.sub("(?i)-AsRequested$", "", fwp)
fwp = re.sub("(?i)-AsRequested-xpost$", "", fwp)
fwp = re.sub("(?i)-BUYMORE$", "", fwp)
fwp = re.sub("(?i)-Chamele0n$", "", fwp)
fwp = re.sub("(?i)-GEROV$", "", fwp)
fwp = re.sub("(?i)-iNC0GNiTO$", "", fwp)
fwp = re.sub("(?i)-NZBGeek$", "", fwp)
fwp = re.sub("(?i)-Obfuscated$", "", fwp)
fwp = re.sub("(?i)-Obfuscation$", "", fwp)
fwp = re.sub("(?i)-postbot$", "", fwp)
fwp = re.sub("(?i)-Rakuv[a-z0-9]*$", "", fwp)
fwp = re.sub("(?i)-RePACKPOST$", "", fwp)
fwp = re.sub("(?i)-Scrambled$", "", fwp)
fwp = re.sub("(?i)-WhiteRev$", "", fwp)
fwp = re.sub("(?i)-WRTEAM$", "", fwp)
fwp = re.sub("(?i)-CAPTCHA$", "", fwp)
fwp = re.sub("(?i)-Z0iDS3N$", "", fwp)
fwp = re.sub("(?i)\[eztv([ ._-]re)?\]$", "", fwp)
fwp = re.sub("(?i)\[TGx\]$", "", fwp)
fwp = re.sub("(?i)\[ettv\]$", "", fwp)
fwp = re.sub("(?i)\[TGx\]-xpost$", "", fwp)
fwp = re.sub("(?i).mkv-xpost$", "", fwp)
fwp = re.sub("(?i)-xpost$", "", fwp)
fwp = re.sub(r"(?i)(-D-Z0N3|\-[^-.\n]*)(\-.{4})?$", r"\1", fwp)
print("1") # Accept
print("1") # Accept
print(fwp)
print()
print()
print()
print()
print()
print()
# 0 means OK
sys.exit(0)

@ -14,10 +14,10 @@
Install Instructions:
1. Copy script to sabnzbd's script folder
1. run: `sudo chmod +x Clean.py`
1. in SABnzbd go to `Settings` => `Switches`
1. Change Pre-queue user script and select: `Clean.py`
1. Copy script to sabnzbd's script folder
1. run: `sudo chmod +x Clean.py`
1. in SABnzbd go to `Settings` => `Switches`
1. Change Pre-queue user script and select: `Clean.py`
![!Enable Clean.py](/Downloaders/SABnzbd/images/sabnzbd-switches-queue-clean.png)
@ -38,10 +38,10 @@
Install Instructions:
1. Copy script to sabnzbd's script folder
1. run: `sudo chmod +x replace_for.py`
1. in SABnzbd go to `Settings` => `Categories`
1. Change script for required categories and select: `replace_for.py`
1. Copy script to sabnzbd's script folder
1. run: `sudo chmod +x replace_for.py`
1. in SABnzbd go to `Settings` => `Categories`
1. Change script for required categories and select: `replace_for.py`
![!Enable replace_for.py](/Downloaders/SABnzbd/images/sabnzbd-categories-replace_for.png)

@ -20,23 +20,32 @@ import os
import os.path
try:
(scriptname, directory, orgnzbname, jobname, reportnumber, category, group, postprocstatus, url) = sys.argv
(
scriptname,
directory,
orgnzbname,
jobname,
reportnumber,
category,
group,
postprocstatus,
url,
) = sys.argv
except:
print("No commandline parameters found")
sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script
sys.exit(1) # exit with 1 causes SABnzbd to ignore the output of this script
files = os.listdir(directory)
for src in files:
if src.find("_") !=-1:
dst = src.replace('_', '.')
os.rename (os.path.join(directory,src),os.path.join(directory,dst) )
print(src, "renamed to ",dst)
if src.find("_") != -1:
dst = src.replace("_", ".")
os.rename(os.path.join(directory, src), os.path.join(directory, dst))
print(src, "renamed to ", dst)
print()
print()
print()
print()
print()
# 0 means OK
sys.exit(0)

@ -1,7 +1,7 @@
nav:
- Basic-Setup: Basic-Setup.md
- Paths: Paths.md
- How to add Categories: How-to-add-categories.md
- Port forwarding: Port-forwarding.md
- 3rd Party tools: 3rd-party-tools.md
- Tips
- Basic-Setup: Basic-Setup.md
- Paths: Paths.md
- How to add Categories: How-to-add-categories.md
- Port forwarding: Port-forwarding.md
- 3rd Party tools: 3rd-party-tools.md
- Tips

@ -9,7 +9,7 @@ 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.*
- 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
@ -17,9 +17,9 @@ This is a program used to manage your qBittorrent instance such as:
- 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.
[qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="_blank" rel="noopener noreferrer"}
[qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="\_blank" rel="noopener noreferrer"}
------
---
## qBitrr
@ -29,14 +29,14 @@ Features
- Monitor qBit for Stalled/bad entries and delete them then blacklist them on Arrs (Option to also trigger a re-search action).
- Monitor qBit for completed entries and tell the appropriate Arr instance to import it:
- `qbitrr DownloadedMoviesScan` for Radarr
- `qbitrr DownloadedEpisodesScan` for Sonarr
- `qbitrr DownloadedMoviesScan` for Radarr
- `qbitrr DownloadedEpisodesScan` for Sonarr
- Skip files in qBit entries by extension, folder or regex.
- Monitor completed folder and clean it up.
- Usage of [ffprobe](https://github.com/FFmpeg/FFmpeg){:target="_blank" rel="noopener noreferrer"} to ensure downloaded entries are valid media.
- Usage of [ffprobe](https://github.com/FFmpeg/FFmpeg){:target="\_blank" rel="noopener noreferrer"} to ensure downloaded entries are valid media.
- Trigger periodic Rss Syncs on the appropriate Arr instances.
- Trigger Queue update on appropriate Arr instances.
- Search requests from [Overseerr](https://github.com/sct/overseerr){:target="_blank" rel="noopener noreferrer"} or [Ombi](https://github.com/Ombi-app/Ombi){:target="_blank" rel="noopener noreferrer"}.
- Search requests from [Overseerr](https://github.com/sct/overseerr){:target="\_blank" rel="noopener noreferrer"} or [Ombi](https://github.com/Ombi-app/Ombi){:target="\_blank" rel="noopener noreferrer"}.
- Auto add/remove trackers
- Set per tracker values
- **Sonarr v4 support**
@ -47,9 +47,9 @@ Features
- Optionally searches year by year is ascending or descending order (config option available)
- Search for CF Score unmet and cancel torrents base on CF Score or Quality unmet search
[qBitrr](https://github.com/Feramance/qBitrr){:target="_blank" rel="noopener noreferrer"}
[qBitrr](https://github.com/Feramance/qBitrr){:target="\_blank" rel="noopener noreferrer"}
------
---
## qbittorrent-cli
@ -60,17 +60,17 @@ A cli to manage qBittorrent. Add torrents, reannounce and import from other clie
- Set limits on how many simultaneously active downloads are allowed
- Import torrents with state from Deluge and rTorrent
[qbittorrent-cli](https://github.com/ludviglundgren/qbittorrent-cli){:target="_blank" rel="noopener noreferrer"}
[qbittorrent-cli](https://github.com/ludviglundgren/qbittorrent-cli){:target="\_blank" rel="noopener noreferrer"}
------
---
## qbittools
qbittools is a feature rich CLI for the management of torrents in qBittorrent.
[qbittools](https://gitlab.com/AlexKM/qbittools){:target="_blank" rel="noopener noreferrer"}
[qbittools](https://gitlab.com/AlexKM/qbittools){:target="\_blank" rel="noopener noreferrer"}
------
---
## A Dark but not black qBittorrent WebUI
@ -82,9 +82,9 @@ A darker theme for qBittorrent WebUI (made with the help of the Walkerservers co
![!Example](https://raw.githubusercontent.com/brettpetch/nightwalker/main/preview.png)
[Nightwalker](https://github.com/brettpetch/nightwalker){:target="_blank" rel="noopener noreferrer"}
[Nightwalker](https://github.com/brettpetch/nightwalker){:target="\_blank" rel="noopener noreferrer"}
------
---
## cross-seed
@ -95,11 +95,10 @@ Run cross-seed 24/7 to:
- Search for cross-seeds as soon as new torrents are finished downloading
- Race starting at 100% before the uploader even joins.
[![Discord Support](https://img.shields.io/discord/880949701845872672?style=flat-square&color=4051B5&logo=discord)](https://discord.gg/jpbUFzS5Wb){:target="_blank" rel="noopener noreferrer"}
[![Github](https://img.shields.io/github/v/release/mmgoodnow/cross-seed?color=4051B5&display_name=tag&label=Version&logo=github)](https://github.com/mmgoodnow/cross-seed){:target="_blank" rel="noopener noreferrer"}
[![Website](https://img.shields.io/website?label=Website&url=https%3A%2F%2Fwww.cross-seed.org%2F)](https://www.cross-seed.org/){:target="_blank" rel="noopener noreferrer"}
[![Discord Support](https://img.shields.io/discord/880949701845872672?style=flat-square&color=4051B5&logo=discord)](https://discord.gg/jpbUFzS5Wb){:target="\_blank" rel="noopener noreferrer"}
[![Github](https://img.shields.io/github/v/release/mmgoodnow/cross-seed?color=4051B5&display_name=tag&label=Version&logo=github)](https://github.com/mmgoodnow/cross-seed){:target="\_blank" rel="noopener noreferrer"}
[![Website](https://img.shields.io/website?label=Website&url=https%3A%2F%2Fwww.cross-seed.org%2F)](https://www.cross-seed.org/){:target="\_blank" rel="noopener noreferrer"}
------
---
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,14 +1,14 @@
# qBittorrent - Basic Setup
{! include-markdown "../../../includes/downloaders/basic-setup.md" !}
<!-- --8<-- "includes/downloaders/basic-setup.md" -->
------
---
!!! Note
Settings that aren't covered means you can change them to your own liking or just leave them on default.
------
---
## Downloads
@ -21,16 +21,19 @@
1. For consistency with other torrents I recommend leaving this on `Original`.
!!! success ""
**Suggested: `Original`**
1. Delete the .torrent file after it has been added to qBittorrent.
!!! success ""
**Suggested: `Personal preference`**
1. 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.
!!! success ""
**Suggested: `Enabled`**
!!! warning
@ -44,34 +47,38 @@
1. Make sure this is set to `Automatic`. Your downloads will not go into the category folder otherwise.
!!! success ""
**Suggested: `Automatic`**
1. This helps you to manage your file location based on categories.
!!! success ""
**Suggested: `Enabled`**
1. Same as `Step 2`
!!! success ""
**Suggested: `Enabled`**
1. Your download root path (Download folder/location).
!!! success ""
**Read the `ATTENTION` block below**
1. 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 disk[^1], but this also results in extra unnecessary moves or in worse cases a slower and more I/O intensive copy + delete.
!!! success ""
**Suggested: `Personal preference`**
#### ATTENTION
{! include-markdown "../../../includes/downloaders/warning-path-location.md" !}
<!-- --8<-- "includes/downloaders/warning-path-location.md" -->
------
---
## Connection
@ -82,21 +89,25 @@
1. Set this to TCP for the best performance
!!! success ""
**Suggested: `TCP`**
1. 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.
!!! success ""
**Suggested: `The port you opened in your router/firewall or port forwarded at your VPN provider`**
1. This should be disabled in your router for several security reasons.
!!! success ""
**Suggested: `Disabled`**
1. Make sure this is disabled so you don't mess up the forwarded port.
!!! success ""
**Suggested: `Disabled`**
### Connections Limits
@ -106,6 +117,7 @@
The best settings for this depends on many factors so I won't be covering this.
!!! success ""
**Suggested: `personal preference based on your setup and connection.`**
### Proxy Server
@ -115,9 +127,10 @@ The best settings for this depends on many factors so I won't be covering this.
This is where you would add for example your SOCKS5 settings from your VPN provider.
!!! success ""
**Suggested: `I personally don't recommend this unsecure option being it's un-encrypted and only spoofs your IP.`**
------
---
## Speed
@ -134,6 +147,7 @@ The best settings depends on many factors.
- Bandwidth needed by other services in your home network.
!!! success ""
**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.`**
### Alternative Rate Limits
@ -148,6 +162,7 @@ Examples:
- If you have an internet connection that's limited during specific hours (unlimited bandwidth during the night, but limited during the day)
!!! success ""
**Suggested: `Personal preference`**
### Rate Limits Settings
@ -159,19 +174,22 @@ Not going to cover the technical part of what it does, but the following setting
1. Prevents you from being flooded if the uTP protocol is used for any reason.
!!! success ""
**Suggested: `Enabled`**
1. Apply rate limit to transport overhead
!!! success ""
**Suggested: `Disabled`**
1. Apply rate limit to peers on LAN
!!! success ""
**Suggested: `Enabled`**
------
---
## Bittorrent
@ -182,16 +200,19 @@ Not going to cover the technical part of what it does, but the following setting
1. 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.
!!! success ""
**Suggested: `Personal preference`**
1. 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.
!!! success ""
**Suggested: `Allow encryption`**
1. Anonymous mode hides clients (qBittorrent) fingerprint from the peer-ID, sets the User-Agent to Null and it doesnt 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.
!!! success ""
**Suggested: `Disabled`**
### Torrent Queueing
@ -201,6 +222,7 @@ Not going to cover the technical part of what it does, but the following setting
These options allow you to control the number of active torrents being downloaded and uploaded.
!!! success ""
**Suggested: `personal preference based on your setup and connection.`**
### Seeding Limits
@ -210,32 +232,38 @@ These options allow you to control the number of active torrents being downloade
1. Your maximum seeding ratio preference. (When both ratio and seeding time are enabled it will trigger the action on whatever happens first.)
!!! success ""
**Suggested: `Disabled`**
1. Your maximum seeding time preference (When both ratio and seeding time are enabled it will trigger the action on whatever happens first.)
!!! success ""
**Suggested: `Disabled`**
1. What to do when ratio or seeding time is reached.
!!! success ""
**Suggested: `Paused and Disabled`**
!!! tip
Personally, I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced), or use [qBit Manage](/Downloaders/qBittorrent/3rd-party-tools/#qbit-manage){:target="_blank" rel="noopener noreferrer"}
Personally, I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced), or use [qBit Manage](/Downloaders/qBittorrent/3rd-party-tools/#qbit-manage){:target="\_blank" rel="noopener noreferrer"}
### Automatically add these trackers to new downloads
![!Automatically add these trackers to new downloads](images/qb-options-bittorrent-automatically-add-these-trackers.png)
!!! success ""
**Recommendation: `Disabled`**
!!! WARNING
:bangbang: **NEVER USE THIS OPTION ON (Semi-)PRIVATE TRACKERS** :bangbang:
------
---
## Web UI
@ -254,10 +282,11 @@ These options allow you to control the number of active torrents being downloade
1. In some cases when this is enabled it could result in issues.
!!! success ""
**Suggested: `Disabled`**
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->
[^1]:
If you use unRaid then you don't need this since you can make use of the default cache drive option.

@ -3,6 +3,7 @@
This basic example is based on the use of docker images
!!! tip ""
Keep in mind the path are setup so it works with hardlinks and instant moves.
More info [HERE](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"}
@ -44,4 +45,3 @@ You don't need to add the full path under `Save Path`, it will use the root down
![!qBittorrent - Default Torrent Management Mode](images/qb-saving-management.png)
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,7 +1,6 @@
# qBittorrent - Paths
{! include-markdown "../../../includes/downloaders/path.md" !}
<!-- --8<-- "includes/downloaders/path.md" -->
---

@ -1,7 +1,8 @@
# qBittorrent - Port forwarding
!!! info ""
You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded.
You've followed the [Setup TorGuard for port forwarding](/Misc/How-to-setup-Torguard-for-port-forwarding/){:target="\_blank" rel="noopener noreferrer"} and want to know where in your download client you should add the port you've port forwarded.
`Tools` => `Options` => `Connection`

@ -23,23 +23,20 @@ Using the following instructions will allow you to move the files with the use o
Download the following standalone Python script.
- [Script (mover.py)](https://raw.githubusercontent.com/StuffAnThings/qbit_manage/master/scripts/mover.py){:target="_blank" rel="noopener noreferrer"}
- [Script (mover.py)](https://raw.githubusercontent.com/StuffAnThings/qbit_manage/master/scripts/mover.py){:target="\_blank" rel="noopener noreferrer"}
Big Thnx to [bobokun](https://github.com/bobokun){:target="_blank" rel="noopener noreferrer"} Developer of [qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="_blank" rel="noopener noreferrer"}
Big Thnx to [bobokun](https://github.com/bobokun){:target="\_blank" rel="noopener noreferrer"} Developer of [qBit Manage](https://github.com/StuffAnThings/qbit_manage){:target="\_blank" rel="noopener noreferrer"}
### Plugins
Install the following Plugins.
- User Scripts
- NerdTools
- python3 <sup>(*1*)</sup>
- python-setuptools <sup>(*1*)</sup>
- python-pip <sup>(*1*)</sup>
- NerdTools - python3 <sup>(_1_)</sup> - python-setuptools <sup>(_1_)</sup> - python-pip <sup>(_1_)</sup>
!!! info "<sup>(*1*)</sup> These need to be installed from NerdTools."
!!! info "<sup>(_1_)</sup> These need to be installed from NerdTools."
------
---
## Setup
@ -52,6 +49,7 @@ The script needs the qbittorrent-api module to work, so we need to make sure it'
You can choose one of the following 3 options (select a tab) to install `qbittorrent-api`.
=== "User scripts"
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.
@ -90,6 +88,7 @@ You can choose one of the following 3 options (select a tab) to install `qbittor
![!RUN IN BACKGROUND](images/Unraid-settings-user-scripts-qbit-api-run-background.png)
=== "Python venv"
With this option, we're going to create a [Python virtual environment](https://docs.python.org/3/library/venv.html) 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)*.
@ -97,6 +96,7 @@ You can choose one of the following 3 options (select a tab) to install `qbittor
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](#copy-the-script-to-your-preferred-location), try to be consistent.
Suggestions:
@ -119,8 +119,11 @@ You can choose one of the following 3 options (select a tab) to install `qbittor
```
!!! info
Replace `/mnt/user/data/scripts/.venv` with the path you have chosen.
=== "Go File"
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](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}).
@ -133,7 +136,7 @@ You can choose one of the following 3 options (select a tab) to install `qbittor
Restart your unRAID Server or run the above command from the terminal.
------
---
### Script
@ -194,6 +197,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th
```
!!! info
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.

@ -2,10 +2,10 @@
A list of known working qBittorrent themes.
| Theme | Style | Compatibility |
| ------------------------------------------------------------------------------------------------------------------------------ | ----- | --------------- |
| [Honeywell](https://github.com/stacksmash76/qbt-honeywell){:target="_blank" rel="noopener noreferrer"} | Dark | v4.3.1 - v4.4.5 |
| [Nightwalker Theme (CallMeBruce fork)](https://github.com/CallMeBruce/nightwalker){:target="_blank" rel="noopener noreferrer"} | Dark | v4.5 |
| [World of Quinoa](https://github.com/gl0ryus/woq){:target="_blank" rel="noopener noreferrer"} | Dark | v4.3.9, v4.4.5 |
| Theme | Style | Compatibility |
| ------------------------------------------------------------------------------------------------------------------------------- | ----- | --------------- |
| [Honeywell](https://github.com/stacksmash76/qbt-honeywell){:target="\_blank" rel="noopener noreferrer"} | Dark | v4.3.1 - v4.4.5 |
| [Nightwalker Theme (CallMeBruce fork)](https://github.com/CallMeBruce/nightwalker){:target="\_blank" rel="noopener noreferrer"} | Dark | v4.5 |
| [World of Quinoa](https://github.com/gl0ryus/woq){:target="\_blank" rel="noopener noreferrer"} | Dark | v4.3.9, v4.4.5 |
--8<-- "includes/support.md"

@ -1,13 +1,11 @@
# ruTorrent - Basic Setup
{! include-markdown "../../../includes/downloaders/basic-setup.md" !}
<!-- --8<-- "includes/downloaders/basic-setup.md" -->
------
---
## Soon
I've asked several people that used this download client for some help/feedback, but most of them just switched to qBittorrent.
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,2 +1,2 @@
nav:
- Home: index.md
- Home: index.md

@ -23,11 +23,11 @@ These are 3rd party applications to sync several sections of the guide with your
| Sonarr v3/v4 Naming Scheme | v | v |
| Sonarr v3/v4 Quality Profiles | | v |
------
---
## Notifiarr
It's possible with [Notifiarr](https://notifiarr.com){:target="_blank" rel="noopener noreferrer"} ([Patron feature](https://notifiarr.wiki/FAQ#patron){:target="_blank" rel="noopener noreferrer"})
It's possible with [Notifiarr](https://notifiarr.com){:target="\_blank" rel="noopener noreferrer"} ([Patron feature](https://notifiarr.wiki/FAQ#patron){:target="\_blank" rel="noopener noreferrer"})
Notifiarr is a service much bigger in scope than just custom format syncing.
@ -52,7 +52,7 @@ Just enable the Custom Formats/Release Profiles you want.
Sonarr Release Profile (Multiple Instances possible)
![!Notifiarr Sonarr](images/sync/notifiarr-sonarr.png)
[Instructions](https://notifiarr.wiki/en/Website/Integrations/Trash){:target="_blank" rel="noopener noreferrer"}
[Instructions](https://notifiarr.wiki/en/Website/Integrations/Trash){:target="\_blank" rel="noopener noreferrer"}
### Video Tutorial
@ -64,11 +64,11 @@ Just enable the Custom Formats/Release Profiles you want.
Also check out other videos from IBRACORP [HERE](https://www.youtube.com/c/IBRACORP/videos){:target="_blank" rel="noopener noreferrer"}
------
---
## Recyclarr
[Info](/Recyclarr/){:target="_blank" rel="noopener noreferrer"} // [Documentation](https://recyclarr.dev/wiki/){:target="_blank" rel="noopener noreferrer"}
[Info](/Recyclarr/){:target="\_blank" rel="noopener noreferrer"} // [Documentation](https://recyclarr.dev/wiki/){:target="\_blank" rel="noopener noreferrer"}
Recyclarr is a command line application utilizing configuration files to sync the guides to Radarr &
Sonarr.

@ -1,6 +1,6 @@
nav:
- Hardlinks - Atomic Moves: Hardlinks-and-Instant-Moves.md
- How-to-setup-for
- Examples: Examples.md
- Check if hardlinks are working: Check-if-hardlinks-are-working.md
- Replace copies with hardlinks: Replace-copies-with-hardlinks.md
- Hardlinks - Atomic Moves: Hardlinks-and-Instant-Moves.md
- How-to-setup-for
- Examples: Examples.md
- Check if hardlinks are working: Check-if-hardlinks-are-working.md
- Replace copies with hardlinks: Replace-copies-with-hardlinks.md

@ -4,9 +4,10 @@ You've followed the guide step by step but still want to check if hardlinks are
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.*
_All methods require you to login to your terminal with PuTTY or similar software._
!!! warning
You can't create hard links for directories :bangbang:
You can't cross file systems :bangbang:
@ -44,7 +45,6 @@ You will get a listing of all your files and on the left side you will see a cou
This way requires a bit more work.
- In the terminal type: `stat /path/to/your/download/location/file.mkv`
- In the terminal type: `stat /path/to/your/media/location/file.mkv`
You will get 2 results you can use to compare several things.
@ -65,6 +65,7 @@ This will reveal the inode of your file on the left side of the file.
- In your terminal type: `find /mnt/user/data/ -inum ###` or `find . -inum ###` if you're in your root folder.
!!! note ""
`###` = Your inode number on the left of the file you found.
![!hardlinks inode](images/hardlinks-inode.png)

@ -123,6 +123,6 @@
![rtorrent-settings-autotools](images/rtorrent-settings-autotools.png)
------
---
Big Thanks to [fryfrog](https://github.com/fryfrog){:target="_blank" rel="noopener noreferrer"} for his [Docker Guide](https://wiki.servarr.com/docker-guide){:target="_blank" rel="noopener noreferrer"} that I used as basis for this guide.
Big Thanks to [fryfrog](https://github.com/fryfrog){:target="\_blank" rel="noopener noreferrer"} for his [Docker Guide](https://wiki.servarr.com/docker-guide){:target="\_blank" rel="noopener noreferrer"} that I used as basis for this guide.

@ -36,19 +36,20 @@ Then Continue to [How to setup for](/Hardlinks/How-to-setup-for/) your installat
This means:
- You can delete any "copy" w/o impacting the others.
- 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".
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.
- Space is only regained when all "copies" are deleted.
- Modifying the file will impact all "copies".
- 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.
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](https://en.wikipedia.org/wiki/Hard_link){:target="_blank" rel="noopener noreferrer"}
!!! warning
You can't create hard links for directories :bangbang:
You can't cross file systems :bangbang:

@ -21,20 +21,17 @@
For example `/<path_to_data>/data`, or even `/data`.
{! include-markdown "../../../includes/hardlinks/folder-structure.md" !}
<!-- --8<-- "includes/hardlinks/folder-structure.md" -->
{! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !}
<!-- --8<-- "includes/hardlinks/bad-path-suggestion.md" -->
{! include-markdown "../../../includes/hardlinks/breakdown-folder-structure-docker.md" !}
<!-- --8<-- "includes/hardlinks/breakdown-folder-structure.md" -->
{! include-markdown "../../../includes/hardlinks/permissions.md" !}
<!-- --8<-- "includes/hardlinks/permissions.md" -->
## Docker-compose Example
!!! example ""
This is a docker-compose example based on a default Ubuntu install.
The storage location used for the host is actually the same as in the container to make it easier to understand in this case `/data`.
@ -48,7 +45,5 @@
```
{! include-markdown "../../../includes/hardlinks/docker-compose-commands.md" !}
<!-- --8<-- "includes/hardlinks/docker-compose-commands.md" -->
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -18,22 +18,22 @@ storage
│ │ ├── books
│ │ └── tv
│ └── usenet
├── movies
├── music
├── books
└── tv
│ ├── movies
│ ├── music
│ ├── books
│ └── tv
└── medialibrary
├── movies
├── music
├── books
└── tv
├── movies
├── music
├── books
└── tv
```
## Changes to the .env
To accomplish this we need to change first a few paths in your `.env` (Usually `~/.docker/compose/.env`)
``` yaml
```yaml
# Global Settings
COMPOSE_HTTP_TIMEOUT=60
DOCKERCONFDIR=~/.config/appdata
@ -57,7 +57,7 @@ When that's all set then you will need to change the paths you're going to use i
`/books` => `/storage/medialibrary/books`
`/comics` => `/storage/medialibrary/comics`
`/comics` => `/storage/medialibrary/comics`
`/movies` => `/storage/medialibrary/movies`
@ -172,4 +172,3 @@ When that's all set then you will need to change the paths you're going to use i
![ds-rtorrent-settings-autotools](images/ds-rtorrent-settings-autotools.png)
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -7,13 +7,9 @@
---
{! include-markdown "../../../includes/hardlinks/folder-structure.md" !}
<!-- --8<-- "includes/hardlinks/folder-structure.md" -->
{! include-markdown "../../../includes/hardlinks/breakdown-folder-structure.md" !}
<!-- --8<-- "includes/hardlinks/breakdown-folder-structure.md" -->
{! include-markdown "../../../includes/hardlinks/permissions.md" !}
<!-- --8<-- "includes/hardlinks/permissions.md" -->
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -16,7 +16,7 @@ This page will provide you with guidance on how to install several Docker images
## Summary
1. We will create ***one*** share that will hold all your data. This ensures hardlinking and/or instant moves are possible.
1. We will create **_one_** share that will hold all your data. This ensures hardlinking and/or instant moves are possible.
1. Create one user which will be assigned to the docker images as the user they run as out of security reasons.
1. Create a folder structure on the `data` and `docker` share with a few commands (or manually).
1. Download and edit the `docker-compose.yml` and `.env` files to your system settings.
@ -28,6 +28,7 @@ This page will provide you with guidance on how to install several Docker images
??? example "Automated script (**:bangbang:Use this script at your own risk:bangbang:**) - [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.
@ -111,7 +112,7 @@ To enable terminal access, you need to enable SSH in the Synology Settings.
![!synology-control-panel](images/synology-ssh.png)
Then use a program like [Putty](https://www.putty.org/){:target="_blank" rel="noopener noreferrer"} or Powershell/Terminal to SSH into your Synology.
Then use a program like [Putty](https://www.putty.org/){:target="\_blank" rel="noopener noreferrer"} 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.
@ -134,12 +135,11 @@ 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.*
_We are using lowercases on all folders on purpose, being Linux is case sensitive._
{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
{! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !}
<!-- --8<-- "includes/hardlinks/bad-path-suggestion.md" -->
To create the folder structure for your media library and also for your preferred download client, run one or both of the following commands:
@ -155,7 +155,7 @@ mkdir -p /volume1/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv
mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}}
```
------
---
### Appdata
@ -183,7 +183,7 @@ docker
└── (other applications)
```
------
---
## Needed files
@ -196,7 +196,7 @@ For this, we need two files:
We will start with downloading the `docker-compose.yml` file
Download this [docker-compose.yml](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml){:target="_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location so you got your important stuff together. Or use the command below:
Download this [docker-compose.yml](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml){:target="\_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location so you got your important stuff together. Or use the command below:
```bash
wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml -P /volume1/docker/appdata/
@ -216,40 +216,43 @@ 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](https://github.com/TRaSH-/Guides-Synology-Templates/tree/main/templates){:target="_blank" rel="noopener noreferrer"} on Github where we provide and maintain some templates that are ready to use with the main `docker-compose.yml`.
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](https://github.com/TRaSH-/Guides-Synology-Templates/tree/main/templates){:target="\_blank" rel="noopener noreferrer"} 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](#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](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env){:target="_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location next to the `docker-compose.yml`. Or use this command:
Download this [.env](https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env){:target="\_blank" rel="noopener noreferrer"} to your `/volume1/docker/appdata` location next to the `docker-compose.yml`. Or use this command:
```bash
wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env -P /volume1/docker/appdata/
```
!!! warning
:bangbang: MAKE SURE THE FILE KEEPS THE ORIGINAL NAME `.env` WITH THE DOT BEFORE IT :bangbang:
------
:bangbang: MAKE SURE THE FILE KEEPS THE ORIGINAL NAME `.env` WITH THE DOT BEFORE IT :bangbang:
---
### Changes and preparations
!!! tip
If you need to edit docker-compose.yml or the .env file we advise to use [Notepad++](https://notepad-plus-plus.org/){:target="_blank" rel="noopener noreferrer"} or [Visual Studio Code](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}
If you need to edit docker-compose.yml or the .env file we advise to use [Notepad++](https://notepad-plus-plus.org/){:target="\_blank" rel="noopener noreferrer"} or [Visual Studio Code](https://code.visualstudio.com/){:target="\_blank" rel="noopener noreferrer"}
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.
1. DOCKERCONFDIR (only change this if you know what you're doing and decide to use another path than this guide used)
1. DOCKERDATADIR (only change this if you know what you're doing and decide to use another path than this guide used)
1. PUID/PGID (this info you got earlier from [HERE](#puid-and-pgid))
1. TZ (Change to your timezone, can be found [HERE](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones){:target="_blank" rel="noopener noreferrer"})
1. TZ (Change to your timezone, can be found [HERE](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones){:target="\_blank" rel="noopener noreferrer"})
1. Install and Create a task scheduler for Pullio, so your containers stay up to date.
!!! info ""
The `.env` holds more variables/information for other containers you don't need to remove those variables and will be only used when you install the other containers.
------
---
#### Pullio - Auto update docker-compose the correct way
@ -258,11 +261,11 @@ Pullio allows you to automatically update your containers. And send you a notifi
First you need to download Pullio
```bash
sudo curl -fsSL "https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh" -o /usr/local/bin/pullio
sudo curl -fsSL "https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh" -o /usr/local/bin/pullio
```
```bash
sudo chmod +x /usr/local/bin/pullio
sudo chmod +x /usr/local/bin/pullio
```
For Pullio to do it's job, you will need to create a Scheduled Task in your Task Scheduler that runs for example at 4am at night with **root** privileges.
@ -281,9 +284,9 @@ At `Task Settings` tab, add the following line in the Run Command section:
It can be frustrating to test the script if no docker image updates are available, for that you can run command `sudo pullio --debug` and the script will behave as if an update is available. If you have set to receive notifications, you should receive them.
More info about Pullio [HERE](https://hotio.dev/scripts/pullio/){:target="_blank" rel="noopener noreferrer"}
More info about Pullio [HERE](https://hotio.dev/scripts/pullio/){:target="\_blank" rel="noopener noreferrer"}
------
---
### Permissions
@ -292,6 +295,7 @@ Now we need to make sure that the newly created files and folders have the corre
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!!!
```bash
@ -303,13 +307,15 @@ sudo chmod -R a=,a+rX,u+w,g+w /volume1/data /volume1/docker
```
!!! note
If you move files from a different library into the newly created library afterwards, you need to rerun these commands. !!!
------
---
## Run the Docker Compose
!!! 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.
@ -323,27 +329,25 @@ cd /volume1/docker/appdata
sudo docker-compose up -d
```
You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then 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](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} and create a support ticket.
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](https://trash-guides.info/discord){:target="\_blank" rel="noopener noreferrer"} and create a support ticket.
------
---
**If you need help setting up the applications, look at the [Examples](/Hardlinks/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](#run-the-docker-compose)) again.
If you need to do any changes, only edit the `docker-compose.yml` file. To activate the changes, [run the commands from here](#run-the-docker-compose) 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 !!!
{! include-markdown "../../../includes/hardlinks/docker-compose-commands.md" !}
<!-- --8<-- "includes/hardlinks/docker-compose-commands.md" -->
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->
------
---
## Additional Synology Info

@ -10,7 +10,7 @@
Additionally, since SMB does not support hardlinks we will only be covering the creation and use of NFS shares.
------
---
## Create the main dataset
@ -32,7 +32,7 @@ Click `Submit` (mine shows `Save` since this is an existing dataset) once comple
![truenas-dataset](images/truenas-dataset-options.png)
------
---
## Create a shared group
@ -44,7 +44,7 @@ You'll arrive at a simple configuration screen like the one shown below. Set you
![truenas-group](images/truenas-group-options.png)
------
---
## Create your user(s)
@ -62,7 +62,7 @@ You'll need to uncheck `New Primary Group` so you can manually populate `Primary
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.
------
---
## Dataset permissions
@ -76,7 +76,7 @@ Check the boxes for `Apply User`, `Apply Group`, and `Apply Permissions Recursiv
![truenas-dataset-permissions](images/truenas-dataset-permissions.png)
------
---
## Create your NFS share(s)
@ -96,7 +96,7 @@ Click `Submit` once complete.
![truenas-nfs-share-options](images/truenas-nfs-share-options.png)
------
---
## Configure and enable NFS service
@ -114,7 +114,7 @@ Make sure to check `Start Automatically` and click the slider under `Running` to
![truenas-nfs-service-options](images/truenas-nfs-service-options.png)
------
---
## Mount your shares
@ -122,7 +122,7 @@ Follow standard mounting procedures for your operating system/device. In Ubuntu
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.
------
---
## Folder Structure
@ -133,4 +133,3 @@ Now that you have a `data` folder, you can follow the normal folder structure re
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.
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,9 +1,10 @@
# unRAID
!!! warning "**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.<br><br>The main reason why he's probably using those paths is because they are predefined in the templates.
------
---
## Preparation
@ -11,6 +12,7 @@ Make sure `Tunable (support Hard Links)` is enabled in your `Settings` => `Globa
=== "unRAID 6.12"
![Enable Hardlink support (New)](images/unraid-enable-hardlinks_612.png)
=== "unRAID 6.11"
![Enable Hardlink support](images/unraid-enable-hardlinks.png)
@ -24,8 +26,10 @@ Go to your dashboard and select `Shares` on the navigation bar, then choose `Add
=== "unRAID 6.12 (No Cache)"
![!unraid-main-share-array-6-12](images/unraid_main_share_array_612.png)
=== "unRAID 6.12 (Cache)"
![!unraid-main-share-cache-6-12](images/unraid_main_share_cache_612.png)
=== "unRAID 6.11"
![!unraid-main-share](images/unraid-main-share.png)
@ -34,12 +38,15 @@ Go to your dashboard and select `Shares` on the navigation bar, then choose `Add
=== "unRAID 6.12 (No Cache)"
Select the `Primary storage` as `Array` (shown in the `No Cache` tab above).
=== "unRAID 6.12 (Cache)"
1. Select the `Primary storage` as `Cache` (shown in the `Cache` tab above).
1. Select the `Secondary storage` as `Array`
1. Make sure `Mover action` is set to `Cache -> Array`
=== "unRAID 6.11"
Choose `Yes` on step (2) (unRAID 6.11 tab above). If not using a cache drive, keep this option disabled.
!!! info "Hardlinks will stay intact if you're using a cache"
1. Click on `ADD SHARE`
@ -52,7 +59,7 @@ Go to your dashboard and select `Shares` on the navigation bar, then choose `Add
With Usenet, you won't have any issues.
------
---
## Folder Structure
@ -60,7 +67,7 @@ On the host (unRAID) you will need to add `/mnt/user` before it. **So `/mnt/user
{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
*I'm using lower-case on all folders on purpose, being Linux is case-sensitive.*
_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 youd pass to Plex, Emby or JellyFin.
@ -68,7 +75,7 @@ You will need to create these subfolders yourself. You can do this in any way yo
### Fastest way to create the needed subfolders
The fastest way to create all the necessary subfolders would be to use the terminal, use a program like [PuTTy](https://www.putty.org/){:target="_blank" rel="noopener noreferrer"} or use the terminal from the dashboard.
The fastest way to create all the necessary subfolders would be to use the terminal, use a program like [PuTTy](https://www.putty.org/){:target="\_blank" rel="noopener noreferrer"} 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.
@ -84,12 +91,11 @@ mkdir -p /mnt/user/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{t
mkdir -p /mnt/user/data/{torrents/{tv,movies,music},media/{tv,movies,music}}
```
------
---
### Breakdown of the Folder Structure
{! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !}
<!-- --8<-- "includes/hardlinks/bad-path-suggestion.md" -->
## Setting up the containers
@ -103,7 +109,7 @@ unRAID makes it pretty clear which is the Host Path and Container Path.
`Host Path:` => The actual/absolute path used on your unRAID Server (The Host).
------
---
### Torrent clients
@ -121,7 +127,7 @@ qBittorrent, Deluge, ruTorrent
{! include-markdown "../../../includes/hardlinks/docker-tree-torrents.md" !}
------
---
### Usenet clients
@ -139,7 +145,7 @@ NZBGet or SABnzbd
{! include-markdown "../../../includes/hardlinks/docker-tree-usenet.md" !}
------
---
### The Starr Apps
@ -157,7 +163,7 @@ Sonarr, Radarr and Lidarr
{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
------
---
### Media Server
@ -175,7 +181,7 @@ Plex, Emby, JellyFin and Bazarr
{! include-markdown "../../../includes/hardlinks/docker-tree-media.md" !}
------
---
## Final Result

@ -9,11 +9,13 @@ If your Operating System supports it you could make use of [Jdupes](https://code
## Usage
!!! info ""
I won't cover every command :bangbang:
If you want to know what else [Jdupes](https://codeberg.org/jbruchon/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).
@ -36,10 +38,11 @@ jdupes -rLX onlyext:mp4,mkv,avi "/data/torrents/movies/" "/data/media/movies"
```
!!! bug ""
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!
{! include-markdown "../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,5 +1,5 @@
nav:
- Home: index.md
- How to provide a docker compose: how-to-provide-a-docker-compose.md
- Setup TorGuard for port forwarding: How-to-setup-Torguard-for-port-forwarding.md
- x265-4k and Golden Rule: x265-4k.md
- Home: index.md
- How to provide a docker compose: how-to-provide-a-docker-compose.md
- Setup TorGuard for port forwarding: How-to-setup-Torguard-for-port-forwarding.md
- x265-4k and Golden Rule: x265-4k.md

@ -1,6 +1,7 @@
# Setup TorGuard for port forwarding
!!! 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](https://torguard.net/aff.php?aff=5575){:target="_blank" rel="noopener noreferrer"} and enter the following discount code:
@ -14,6 +15,7 @@
[![torguard-FreeTrial-270x90](images/torguard/torguard-FreeTrial-728x90.gif)](https://torguard.net/aff.php?aff=5575){:target="_blank" rel="noopener noreferrer"}
!!! bug ""
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. :bangbang:
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.
@ -24,23 +26,25 @@
[Source Torrentfreak](https://torrentfreak.com/torguard-settles-piracy-lawsuit-and-agrees-to-block-torrent-traffic-on-u-s-servers-220314/){:target="_blank" rel="noopener noreferrer"}.
------
---
## Login to your Client area
Login to your [Client Area](https://torguard.net/clientarea.php){:target="_blank" rel="noopener noreferrer"}.
Login to your [Client Area](https://torguard.net/clientarea.php){:target="\_blank" rel="noopener noreferrer"}.
??? success "Example - [Click to show/hide]"
![!Client Area Login](images/torguard/client-area-login.png)
### Create a user account
First we're going to create a [User Account](https://torguard.net/clientarea.php?action=changepw){:target="_blank" rel="noopener noreferrer"} 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.
First we're going to create a [User Account](https://torguard.net/clientarea.php?action=changepw){:target="\_blank" rel="noopener noreferrer"} 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`
??? success "Example - [Click to show/hide]"
![!Services > My Services](images/torguard/services-my-services.png)
![!Client Area Manage Credentials](images/torguard/client-area-manage-credentials.png)
@ -48,17 +52,19 @@ This account will be used for authentication with your VPN Torrent client.
Create a new username and choose a secure password or create a random username and password.
??? success "Example - [Click to show/hide]"
![!Create User Account](images/torguard/create_user_account.png)
------
---
## How to get the IP of your VPN server
Now it's time to get the IP of your VPN server you're going to use from the [Global VPN Network](https://torguard.net/network/){:target="_blank" rel="noopener noreferrer"}, From your Client Area.
Now it's time to get the IP of your VPN server you're going to use from the [Global VPN Network](https://torguard.net/network/){:target="\_blank" rel="noopener noreferrer"}, From your Client Area.
`Servers` > `Global VPN Network`
??? success "Example - [Click to show/hide]"
![!Servers > Global VPN Network](images/torguard/servers-globalvpnnetwork.png)
### Global VPN Network
@ -68,6 +74,7 @@ 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.
!!! tip ""
Sometimes you get better speeds if you use one of your neighboring countries.
!!! warning "If the US server doesn't work for you use another country"
@ -77,6 +84,7 @@ Let's use for this example: `USA Miami` and copy/paste the Hostname `us-fl.torgu
![!Torguard Global VPN Network](images/torguard/globalvpnnetwork-list.png)
!!! tip
Also check if your chosen server supports OpenVPN or Wireguard depending what you want to use.
### Get your VPN IP
@ -91,24 +99,27 @@ You will then get the IP of the server.
Remember that for later use.
??? success "Example - [Click to show/hide]"
![!ping](images/torguard/cmd-ping.png)
------
---
## How to setup Port forwarding
!!! 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.
### Port Forward Request
From your Client Area go to your [My Services](https://torguard.net/clientarea.php?action=products){:target="_blank" rel="noopener noreferrer"}.
From your Client Area go to your [My Services](https://torguard.net/clientarea.php?action=products){:target="\_blank" rel="noopener noreferrer"}.
Then click on `Manage` and select `Port Forward Request`.
`Services` > `My Services` > `Manage` > `Port Forward Request`
??? success "Example - [Click to show/hide]"
![!Port Forward Request](images/torguard/req_port_fwd.png)
### VPN Tunnel Type
@ -137,6 +148,7 @@ Choose your preferred VPN Tunnel type.
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.
#### WireGuard Request Port Forward
@ -155,6 +167,7 @@ Choose your preferred VPN Tunnel type.
1. Then click on `Submit Request`.
!!! warning "WARNING"
:bangbang: DON'T CHANGE OPTION 2 `UDP` to `TCP` :bangbang:
If everything went according to plan you will see something like this.
@ -164,20 +177,23 @@ Choose your preferred VPN Tunnel type.
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.
------
---
## How to create the config file
!!! 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](https://torguard.net/tgconf.php?action=vpn-openvpnconfig){:target="_blank" rel="noopener noreferrer"}.
From your Client Area go to your [Config Generator](https://torguard.net/tgconf.php?action=vpn-openvpnconfig){:target="\_blank" rel="noopener noreferrer"}.
`Tools` > `Config Generator`
??? success "Example Select Tools > Config Generator - [Click to show/hide]"
![!Tools - Config Generator](images/torguard/tools-config-generator.png)
### Config Generator
@ -220,11 +236,10 @@ Choose your preferred VPN Tunnel type.
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](https://github.com/mrhotio) for his excellent instructions on how to setup WireGuard for TorGuard.
{! include-markdown "../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -9,6 +9,7 @@ If you need to provide this info always remember to provide it from all your Sta
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.
@ -24,14 +25,15 @@ sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/
```
!!! warning
Please not share the output directly to Discord, reddit, forums, etc.
Copy and paste the results on one of the following sites.
- [Notifiarr.com Privatebin](https://logs.notifiarr.com/){:target="_blank" rel="noopener noreferrer"} (Recommended)
- [Github Gist](https://gist.github.com){:target="_blank" rel="noopener noreferrer"} (Alternative)
- [hastebin.com](https://hastebin.com){:target="_blank" rel="noopener noreferrer"}
- [privatebin.net](https://privatebin.net/){:target="_blank" rel="noopener noreferrer"}
- [bpaste](https://bpa.st/){:target="_blank" rel="noopener noreferrer"}
- [Notifiarr.com Privatebin](https://logs.notifiarr.com/){:target="\_blank" rel="noopener noreferrer"} (Recommended)
- [Github Gist](https://gist.github.com){:target="\_blank" rel="noopener noreferrer"} (Alternative)
- [hastebin.com](https://hastebin.com){:target="\_blank" rel="noopener noreferrer"}
- [privatebin.net](https://privatebin.net/){:target="\_blank" rel="noopener noreferrer"}
- [bpaste](https://bpa.st/){:target="\_blank" rel="noopener noreferrer"}
If you use docker run command to create your docker containers, paste your run command in to [composerize](https://www.composerize.com/){:target="_blank" rel="noopener noreferrer"}
If you use docker run command to create your docker containers, paste your run command in to [composerize](https://www.composerize.com/){:target="\_blank" rel="noopener noreferrer"}

@ -3,16 +3,15 @@
## x265
{! include-markdown "../../includes/docker/x265.md" !}
<!-- --8<-- "includes/docker/x265.md" -->
### How to accomplish the Golden Rule
- For Sonarr check [HERE](/Sonarr/sonarr-collection-of-custom-formats/#golden-rule){:target="_blank" rel="noopener noreferrer"}
- For Radarr check [HERE](/Radarr/Radarr-collection-of-custom-formats/#x265-hd){:target="_blank" rel="noopener noreferrer"}
- For Sonarr check [HERE](/Sonarr/sonarr-collection-of-custom-formats/#golden-rule){:target="\_blank" rel="noopener noreferrer"}
- For Radarr check [HERE](/Radarr/Radarr-collection-of-custom-formats/#x265-hd){:target="\_blank" rel="noopener noreferrer"}
## Some extra info about 4K/X265
[4k, transcoding, and you - aka the rules of 4k - a FAQ](https://forums.plex.tv/t/plex-4k-transcoding-and-you-aka-the-rules-of-4k-a-faq/378203){:target="_blank" rel="noopener noreferrer"} - Plex.tv
[4k, transcoding, and you - aka the rules of 4k - a FAQ](https://forums.plex.tv/t/plex-4k-transcoding-and-you-aka-the-rules-of-4k-a-faq/378203){:target="\_blank" rel="noopener noreferrer"} - Plex.tv
1. Dont bother transcoding 4k
1. If you cannot direct play 4k, then perhaps you should not even be collecting 4k.

@ -1,7 +1,7 @@
nav:
- Home: index.md
- Suggested Plex Media Server Settings: /Plex/Tips/Plex-media-server/
- Optimal Plex Client Settings: /Plex/Tips/Optimal-plex-client-settings/
- What does my media player support: what-does-my-media-player-support.md
- Stop 4k Video Transcoding: /Plex/Tips/4k-transcoding/
- Profiles: /Plex/profiles/
- Home: index.md
- Suggested Plex Media Server Settings: /Plex/Tips/Plex-media-server/
- Optimal Plex Client Settings: /Plex/Tips/Optimal-plex-client-settings/
- What does my media player support: what-does-my-media-player-support.md
- Stop 4k Video Transcoding: /Plex/Tips/4k-transcoding/
- Profiles: /Plex/profiles/

@ -2,7 +2,7 @@
## Introduction
The bane of Plex admins existence... 4K Transcodes. According to Plex's forum post [*The Rules of 4K*](https://forums.plex.tv/t/info-plex-4k-transcoding-and-you-aka-the-rules-of-4k/378203) the first three rules of collecting 4k content is dont bother transcoding 4k.
The bane of Plex admins existence... 4K Transcodes. According to Plex's forum post [_The Rules of 4K_](https://forums.plex.tv/t/info-plex-4k-transcoding-and-you-aka-the-rules-of-4k/378203) the first three rules of collecting 4k content is dont 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](https://www.plex.tv/plex-pass/) to work.

@ -5,11 +5,11 @@ So, what are the best Plex Client settings?
I was considering to start fresh on this, but then why reinvent the wheel when someone else already done the research on it?
!!! danger ""
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.
## External Links
[The Media Clients Wiki](https://mediaclients.wiki/Plex){:target="_blank" rel="noopener noreferrer"}
[The Media Clients Wiki](https://mediaclients.wiki/Plex){:target="\_blank" rel="noopener noreferrer"}
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -5,9 +5,11 @@ 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.
!!! danger ""
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 :bangbang:
!!! warning
Some settings are only visible for Plex Pass holders.
All changes need to be done on your Plex Media Server.
@ -15,7 +17,8 @@ All changes need to be done on your Plex Media Server.
![!Plex App](images/plex-settings-icon.png)
!!! info "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 [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord)](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"}
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 [![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord)](https://trash-guides.info/discord){:target="\_blank" rel="noopener noreferrer"}
## Settings
@ -31,11 +34,11 @@ All changes need to be done on your Plex Media Server.
1. Public IP **If you need to provide a screenshot always mask this IP :bangbang:**
1. Manually specify public port if you run Docker or want a fixed port.
1. Enter the Plex port you want to use. (default: `32400`)
1. 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](https://support.plex.tv/articles/200931138-troubleshooting-remote-access/){:target="_blank" rel="noopener noreferrer"}.
1. 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](https://support.plex.tv/articles/200931138-troubleshooting-remote-access/){:target="\_blank" rel="noopener noreferrer"}.
1. Enter your internet upload speed here and Plex can ensure it operates within this boundary.
1. Set the maximum bitrate of a remote stream from this server.
------
---
### Agents
@ -43,7 +46,7 @@ This can be ignored if you use the new Plex agents,
The new agent settings are now managed “per library”.
------
---
### Library
@ -54,6 +57,7 @@ The new agent settings are now managed “per library”.
When a change is detected in the source location for a librarys content, the appropriate library will be scanned. This function relies on the computers operating system providing the “something changed” trigger. Some operating systems dont provide this trigger and content mounted via a network will also typically not work. If your library doesnt automatically scan, you may have to set a periodical scan or do it manually.
!!! success ""
**Suggested: `Enabled`**
??? tip "TIP - Autoscan - [Click to show/hide]"
@ -71,6 +75,7 @@ When a change is detected in the source location for a librarys content, the
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).
!!! success ""
**Suggested: `Enabled`**
#### Include music libraries in automatic updates
@ -86,6 +91,7 @@ I don't do music, so this choice is up to you, and I won't be covering it.
Turning this on will cause your Plex Media Server to run scans on your libraries using the designated interval.
!!! success ""
**Suggested: `Disabled`**
*Do you need a extra scan for your library to recognize new media?*
@ -97,6 +103,7 @@ Turning this on will cause your Plex Media Server to run scans on your libraries
With this option enabled, when an items 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 items poster when the item is removed.
!!! success ""
**Suggested: `Enabled`**
#### Allow media deletion
@ -106,6 +113,7 @@ With this option enabled, when an items file is deleted from the drive, it wi
The owner of the server will be allowed to delete media files from disk.
!!! success ""
**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)*
@ -117,6 +125,7 @@ The owner of the server will be allowed to delete media files from disk.
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.
!!! success ""
**Suggested: `Enabled`**
*Makes sure it uses less resources and ensure they do not interfere with regular streaming.*
@ -128,11 +137,13 @@ On low-powered systems (e.g. ARM-based NAS devices), it can be beneficial to run
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. Theyll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video.
!!! success ""
**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.*
!!! danger "ATTENTION"
Creating these images can
- <u>Take a considerable amount of time</u>
@ -148,6 +159,7 @@ This option creates a series of preview thumbnails from a media item when it is
You can choose to have TV episodes analyzed to try and detect when the “intro” occurs during playback. When detected, apps will then offer a `Skip Intro` button, allowing you to quickly jump over the intro.
!!! success ""
**Suggested: `as a scheduled task`**
*or*
@ -161,13 +173,14 @@ You can choose to have TV episodes analyzed to try and detect when the “intro
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.
!!! success ""
**Suggested: `as a scheduled task`**
*or*
**Suggested: `as a scheduled task and when media is added`**
------
---
### Network
@ -178,6 +191,7 @@ Chapter thumbnails provide images in the chapter view on supported apps. They ca
Enable IPv6 support.
!!! success ""
**Suggested: `Disabled`**
*If you're not sure your network 100% works with ip6 <u>don't Enable it</u>.*
@ -189,6 +203,7 @@ Enable IPv6 support.
Choose how your Plex Media Server handles secure connections.
!!! success ""
**Suggested: `Preferred`**
*Accept and prefer secure connections when theyre available for a Plex app, but allow regular HTTP connections if the app doesnt support secure connections or if one cant be established*
@ -200,9 +215,11 @@ Choose how your Plex Media Server handles secure connections.
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, its possible that Remote Access connections could come through an interface other than the one specified here.
!!! success ""
**Suggested: `Whatever suits your setup`**
#### Strict TLS configuration
@ -212,15 +229,17 @@ For users with multiple network cards or systems such as NAS or Docker where the
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).
!!! success ""
**Suggested: `Disabled`**
#### Enable local network discovery (GDM)
![!Settings - Network - Enable local network discovery (GDM)](images/settings-network-enable-local-network-discovery-(gdm).png)
![!Settings - Network - Enable local network discovery (GDM)](<images/settings-network-enable-local-network-discovery-(gdm).png>)
Enable “GDay Mate” discovery. This is used to allows Plex apps and servers to find each other automatically on a local network.
!!! success ""
**Suggested: `Enabled`**
#### Remote streams allowed per user
@ -230,6 +249,7 @@ Enable “GDay Mate” discovery. This is used to allows Plex apps and server
You can set the maximum number of simultaneous streams each remote user is allowed to have.
!!! success ""
**Suggested: `Whatever suits your setup`**
#### LAN Networks
@ -239,6 +259,7 @@ You can set the maximum number of simultaneous streams each remote user is allow
It lets you specify which IP addresses or networks will be considered to be “local” to you.
!!! success ""
**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.)*
@ -250,6 +271,7 @@ It lets you specify which IP addresses or networks will be considered to be “l
Allows incoming requests from this networks 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.
!!! success ""
**Suggested: `Enabled`**
#### Enable Relay
@ -259,6 +281,7 @@ Allows incoming requests from this networks WAN IP address to be treated as L
The Relay allows connections to the server through a proxy relay when the server is not accessible otherwise. Relay connections are bandwidth limited.
!!! success ""
**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.*
@ -270,6 +293,7 @@ The Relay allows connections to the server through a proxy relay when the server
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 youre 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.
!!! success ""
**Suggested: `Depending on your setup`**
*Example: `https://plex.mycustomdomain.com:32400`*
@ -278,9 +302,9 @@ A comma-separated list of URLs (either HTTP or HTTPS), which will be published t
![!Settings - Network - Webhooks](images/settings-network-webhooks.png)
This feature can be enabled to allow your server to send events to external services. For example [Notifiarr](https://notifiarr.com/){:target="_blank" rel="noopener noreferrer"}
This feature can be enabled to allow your server to send events to external services. For example [Notifiarr](https://notifiarr.com/){:target="\_blank" rel="noopener noreferrer"}
------
---
### Transcoders
@ -291,6 +315,7 @@ This feature can be enabled to allow your server to send events to external serv
This will influence the quality used when transcoding media.
!!! success ""
**Suggested: `Automatic`**
*Most users should leave it set to Automatic. Hardware-Accelerated Streaming is not affected by this setting.*
@ -302,6 +327,7 @@ This will influence the quality used when transcoding media.
Directory to use when transcoding temporary files for streaming.
!!! success ""
**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.*
@ -311,6 +337,7 @@ Directory to use when transcoding temporary files for streaming.
*Default Linux only allocates a max of 50% of total system RAM to any ram directories (ie. /tmp, /dev/shm, etc.)*
!!! danger "WARNING"
:bangbang: **YOU SHOULD NOT SPECIFY A LOCATION THAT RESIDES ON A NETWORK SHARE/DISK.** :bangbang:
#### Enable HDR tone mapping
@ -320,11 +347,13 @@ Directory to use when transcoding temporary files for streaming.
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.
!!! success ""
**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 youre running on a very powerful system.*
!!! note
Plexs tone mapping support should generally be able to produce good color mapping and help avoid the “washed out” colors that occur when converting HDR content without tone mapping.
#### Use hardware acceleration when available
@ -334,6 +363,7 @@ This feature allows Plex Media Server to maintain high visual fidelity of conten
To use Hardware-Accelerated Streaming in Plex Media Server.
!!! success ""
**Suggested: `Enabled`**
#### Use hardware-accelerated video encoding
@ -343,9 +373,10 @@ To use Hardware-Accelerated Streaming in Plex Media Server.
To use Hardware-Accelerated Encoding in Plex Media Server.
!!! success ""
**Suggested: `Enabled`**
------
---
## Manage
@ -377,6 +408,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. The new version of the Plex Movie agent/scanner
!!! success ""
**Suggested: `Plex Movie`**
*Besides being much faster at scanning and getting metadata, one of the benefits of the new agent is that all agent settings are set at the library level, so that different libraries using the same agent can have different agent settings.*
@ -386,6 +418,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. When scanning this library, use local posters and artwork if present. (Local subtitles files will be used whether this is enabled or not)
!!! success ""
**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.
@ -394,6 +427,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. When scanning this library, prefer embedded tags and local files if present.
!!! success ""
**Suggested: `Disabled`**
*If enabled you could end up with weird movie naming you don't want, happens especially from releases from `RARBG`*
@ -403,6 +437,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. Automatically create collections when there are more than the selected number of items for an available collection.
!!! success ""
**Suggested: `2`**
*Only show collections when you have more than one item in your library*
@ -412,9 +447,11 @@ Here you will find your libraries you've added to your Plex Media Server.
1. 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. Theyll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video.
!!! danger "ATTENTION"
Creating these images can <u>take a considerable amount of time</u>, <u>CPU resources</u>, and <u>increase the storage space used</u>. The images are stored in your Plex database so <u>be careful you dont fill the drive :bangbang:</u>
!!! success ""
**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.*
@ -423,6 +460,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. If you want to show your Collection in your library
!!! success ""
**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.*
@ -434,6 +472,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. The new version of the Plex Movie agent/scanner
!!! success ""
**Suggested: `Plex TV Series`**
*Besides being much faster at scanning and getting metadata, one of the benefits of the new agent is that all agent settings are set at the library level, so that different libraries using the same agent can have different agent settings.*
@ -445,6 +484,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. When scanning this library, use local posters and artwork if present. (Local subtitles files will be used whether this is enabled or not)
!!! success ""
**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.
@ -455,6 +495,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. When scanning this library, prefer embedded tags and local files if present.
!!! success ""
**Suggested: `Disabled`**
*If enabled you could end up with weird movie naming you don't want, happens especially from releases from `RARBG`*
@ -464,9 +505,11 @@ Here you will find your libraries you've added to your Plex Media Server.
1. 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. Theyll also be displayed in Now Playing when someone is streaming from you so that you can see where they are in the video.
!!! danger "ATTENTION"
Creating these images can <u>take a considerable amount of time</u>, <u>CPU resources</u>, and <u>increase the storage space used</u>. The images are stored in your Plex database so <u>be careful you dont fill the drive :bangbang:</u>
!!! success ""
**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.*
@ -475,6 +518,7 @@ Here you will find your libraries you've added to your Plex Media Server.
1. If you want to show your Collection in your library
!!! success ""
**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.*
@ -482,18 +526,18 @@ Here you will find your libraries you've added to your Plex Media Server.
1. Generate intro detection for items in this library when enabled in server settings.
!!! success ""
**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](https://support.plex.tv/articles/){:target="_blank" rel="noopener noreferrer"}
- [Plex Support Articles](https://support.plex.tv/articles/){:target="\_blank" rel="noopener noreferrer"}
- Extra Information gathered from a Plex employee
- Own experience
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -9,21 +9,30 @@
<PhotoProfile container="jpeg" />
</TranscodeTargets>
<DirectPlayProfiles>
<VideoProfile container="mkv" codec="vp9,hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
<VideoProfile container="mp4" codec="hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
<VideoProfile container="asf" codec="wmv3,wmv3,vc1" audioCodec="wmav2,wmav2,wmapro,wmavoice,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
<VideoProfile container="avi" codec="h264,msmpeg4v3,mpeg4,mjpeg" audioCodec="mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
<VideoProfile container="mpeg" codec="h264,mpeg1video,mpeg2video" audioCodec="mp2,mp3,ac3,eac3,aac,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
<VideoProfile container="flv" codec="h264" audioCodec="aac,ac3,eac3,mp3,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
<VideoProfile container="mpegts" codec="h264,mpeg2video,vc1" audioCodec="mp2,mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs"/>
<VideoProfile container="wtv" codec="mpeg2video" audioCodec="ac3,eac3,aac,pcm"/>
<VideoProfile container="3gpp" codec="h264,mpeg4" audioCodec="aac,he-aac"/>
<VideoProfile container="mkv" codec="vp9,hevc,h265,mpeg1video,mpeg2video,h264,mpeg4"
audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca"
subtitleCodec="srt,ass,smi,ssa,subrip,pgs" />
<VideoProfile container="mp4" codec="hevc,h265,mpeg1video,mpeg2video,h264,mpeg4"
audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac,truehd,dca"
subtitleCodec="srt,ass,smi,ssa,subrip,pgs" />
<VideoProfile container="asf" codec="wmv3,wmv3,vc1" audioCodec="wmav2,wmav2,wmapro,wmavoice,pcm"
subtitleCodec="srt,ass,smi,ssa,subrip,pgs" />
<VideoProfile container="avi" codec="h264,msmpeg4v3,mpeg4,mjpeg"
audioCodec="mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs" />
<VideoProfile container="mpeg" codec="h264,mpeg1video,mpeg2video"
audioCodec="mp2,mp3,ac3,eac3,aac,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs" />
<VideoProfile container="flv" codec="h264" audioCodec="aac,ac3,eac3,mp3,pcm"
subtitleCodec="srt,ass,smi,ssa,subrip,pgs" />
<VideoProfile container="mpegts" codec="h264,mpeg2video,vc1"
audioCodec="mp2,mp3,ac3,eac3,dca,pcm" subtitleCodec="srt,ass,smi,ssa,subrip,pgs" />
<VideoProfile container="wtv" codec="mpeg2video" audioCodec="ac3,eac3,aac,pcm" />
<VideoProfile container="3gpp" codec="h264,mpeg4" audioCodec="aac,he-aac" />
<MusicProfile container="mp4" codec="aac" />
<MusicProfile container="mp3" codec="mp2,mp3" />
<MusicProfile container="flac" codec="flac" />
<MusicProfile container="ogg" codec="vorbis" />
<MusicProfile container="ac3" codec="ac3"/>
<MusicProfile container="wav" codec="pcm"/>
<MusicProfile container="ac3" codec="ac3" />
<MusicProfile container="wav" codec="pcm" />
<PhotoProfile container="jpeg,gif,bmp,png" />
</DirectPlayProfiles>
<ContainerProfiles>

@ -2,35 +2,38 @@
<Client name="Chromecast">
<!-- Author: xtrap225 -->
<TranscodeTargets>
<VideoProfile protocol="http" container="mkv" codec="h264" audioCodec="aac,mp3" context="streaming" />
<VideoProfile protocol="http" container="mkv" codec="h264" audioCodec="aac,mp3"
context="streaming" />
<MusicProfile container="mkv" codec="opus" />
<PhotoProfile container="jpeg" />
<SubtitleProfile container="ass" codec="ass" />
</TranscodeTargets>
<DirectPlayProfiles>
<VideoProfile container="mp4" codec="Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="aac,mp3,mp2"/>
<VideoProfile container="mkv" codec="vp9,Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="aac,mp3,mp2,pcm,flac,alac" subtitleCodec="srt,ass"/>
<VideoProfile container="mp4" codec="Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4"
audioCodec="aac,mp3,mp2" />
<VideoProfile container="mkv" codec="vp9,Hevc,h265,mpeg1video,mpeg2video,h264,mpeg4"
audioCodec="aac,mp3,mp2,pcm,flac,alac" subtitleCodec="srt,ass" />
<VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="aac" />
<MusicProfile container="mp3" codec="mp2,mp3"/>
<MusicProfile container="mp4" codec="aac"/>
<MusicProfile container="flac" codec="flac"/>
<MusicProfile container="wav" codec="pcm"/>
<PhotoProfile container="jpeg,png,gif"/>
<MusicProfile container="mp3" codec="mp2,mp3" />
<MusicProfile container="mp4" codec="aac" />
<MusicProfile container="flac" codec="flac" />
<MusicProfile container="wav" codec="pcm" />
<PhotoProfile container="jpeg,png,gif" />
</DirectPlayProfiles>
<CodecProfiles>
<CodecProfiles>
<VideoCodec name="h265,Hevc,vp9">
<Limitations>
<UpperBound name="video.width" value="3840"/>
<UpperBound name="video.height" value="2176"/>
<UpperBound name="video.bitrate" value="75000"/>
<UpperBound name="video.width" value="3840" />
<UpperBound name="video.height" value="2176" />
<UpperBound name="video.bitrate" value="75000" />
</Limitations>
</VideoCodec>
<VideoCodec name="h264,mpeg4">
<Limitations>
<UpperBound name="video.width" value="3840"/>
<UpperBound name="video.height" value="2176"/>
<UpperBound name="video.bitrate" value="75000"/>
<UpperBound name="video.bitDepth" value="10" />
<UpperBound name="video.width" value="3840" />
<UpperBound name="video.height" value="2176" />
<UpperBound name="video.bitrate" value="75000" />
<UpperBound name="video.bitDepth" value="10" />
<UpperBound name="video.level" value="42" />
</Limitations>
</VideoCodec>

@ -1,6 +1,7 @@
# Plex Profiles
!!! info
Here you will find a collection of profiles you only should use if Plex has issues direct playing your media on your devices, these profiles could help but results might vary.
!!! danger "The profiles aren't tested on the Shield 2019 or newer Chromecast models :warning:"
@ -13,12 +14,13 @@ To make use of the profiles you need to add it in your your plex folder
Example paths:
* Hotio's container: `/appdata/plex/Profiles`
* LSIO container: `/appdata/plex/database/Library/Application Support/Plex Media Server/Profiles` or `/appdata/plex/Library/Application Support/Plex Media Server/Profiles`
- Hotio's container: `/appdata/plex/Profiles`
- LSIO container: `/appdata/plex/database/Library/Application Support/Plex Media Server/Profiles` or `/appdata/plex/Library/Application Support/Plex Media Server/Profiles`
## Profiles
!!! tip
If you got some to share, pls make a PR so we can collect them at one place
### Android Shield
@ -50,4 +52,3 @@ Example paths:
```
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,5 +1,5 @@
nav:
- Home: index.md
- How to setup proxy for certain indexers: prowlarr-setup-proxy.md
- How to setup FlareSolverr: prowlarr-setup-flaresolverr.md
- How to setup indexers with limited API: prowlarr-setup-limited-api.md
- Home: index.md
- How to setup proxy for certain indexers: prowlarr-setup-proxy.md
- How to setup FlareSolverr: prowlarr-setup-flaresolverr.md
- How to setup indexers with limited API: prowlarr-setup-limited-api.md

@ -4,7 +4,7 @@ Here you will find a collection of tips for Prowlarr.
!!! info "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](https://wiki.servarr.com/en/prowlarr){:target="_blank" rel="noopener noreferrer"}
For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/prowlarr){:target="\_blank" rel="noopener noreferrer"}
## Master
@ -28,7 +28,7 @@ For Installation and Quick Start Guide please check the official [WikiArr](https
(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.***
**_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.
@ -36,4 +36,4 @@ This version is updated immediately.
### How do I update Prowlarr
External link to the official [WikiArr](https://wiki.servarr.com/en/prowlarr/faq#how-do-i-update-prowlarr){:target="_blank" rel="noopener noreferrer"}.
External link to the official [WikiArr](https://wiki.servarr.com/en/prowlarr/faq#how-do-i-update-prowlarr){:target="\_blank" rel="noopener noreferrer"}.

@ -1,6 +1,6 @@
# How to setup FlareSolverr
[FlareSolverr](https://github.com/FlareSolverr/FlareSolverr){:target="_blank" rel="noopener noreferrer"} is a proxy server to bypass Cloudflare and DDoS-GUARD protection.
[FlareSolverr](https://github.com/FlareSolverr/FlareSolverr){:target="\_blank" rel="noopener noreferrer"} is a proxy server to bypass Cloudflare and DDoS-GUARD protection.
!!! info
@ -10,7 +10,7 @@
## Install FlareSolverr
Please follow the installation instruction from [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr#installation){:target="_blank" rel="noopener noreferrer"}
Please follow the installation instruction from [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr#installation){:target="\_blank" rel="noopener noreferrer"}
## Add FlareSolverr to Prowlarr
@ -29,7 +29,7 @@ Add the following info
1. Name of the Proxy in Prowlarr.
1. The tags for this proxy.
1. The full host path (include http and the port) to your FlareSolverr instance.
1. The [FlareSolver Request maxTimeout value](https://github.com/FlareSolverr/FlareSolverr#-requestget){:target="_blank" rel="noopener noreferrer"} Prowlarr should use for FlareSolverr requests. Must be between `1` second and `180` seconds (Default: `60` seconds).
1. The [FlareSolver Request maxTimeout value](https://github.com/FlareSolverr/FlareSolverr#-requestget){:target="\_blank" rel="noopener noreferrer"} Prowlarr should use for FlareSolverr requests. Must be between `1` second and `180` seconds (Default: `60` seconds).
1. Test if your connection works.
1. If it works click on `Save`.

@ -68,7 +68,7 @@ For this example we're going to use `Automatic Search`.
#### Setup API Limits
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.
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.
!!! warning "We're adding this to prevent any abuse/hammering to the indexer<br>Ignoring this can sometimes result in a (potentially lifetime) ban."

@ -1,12 +1,13 @@
# Setup proxy for certain indexers
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.
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.
!!! danger "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.

@ -1,12 +1,12 @@
nav:
- Home: index.md
- Quality Settings (File Size): Radarr-Quality-Settings-File-Size.md
- Recommended naming scheme: Radarr-recommended-naming-scheme.md
- How to import Custom Formats: Radarr-import-custom-formats.md
- How to Update Custom Formats: Radarr-how-to-update-custom-formats.md
- How to setup Quality Profiles: radarr-setup-quality-profiles.md
- How to setup Quality Profiles (Anime): radarr-setup-quality-profiles-anime.md
- How to setup Quality Profiles (French): radarr-setup-quality-profiles-french-en.md
- Collection of Custom Formats: Radarr-collection-of-custom-formats.md
- Remote Path Mappings explained: Radarr-remote-path-mapping.md
- Tips
- Home: index.md
- Quality Settings (File Size): Radarr-Quality-Settings-File-Size.md
- Recommended naming scheme: Radarr-recommended-naming-scheme.md
- How to import Custom Formats: Radarr-import-custom-formats.md
- How to Update Custom Formats: Radarr-how-to-update-custom-formats.md
- How to setup Quality Profiles: radarr-setup-quality-profiles.md
- How to setup Quality Profiles (Anime): radarr-setup-quality-profiles-anime.md
- How to setup Quality Profiles (French): radarr-setup-quality-profiles-french-en.md
- Collection of Custom Formats: Radarr-collection-of-custom-formats.md
- Remote Path Mappings explained: Radarr-remote-path-mapping.md
- Tips

@ -6,6 +6,7 @@ Well, it's actually personal preference so I will show you my recommendations.
But before you continue to read, as with all my guides:
!!! danger ""
**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.
@ -35,7 +36,7 @@ These Quality Settings have been created and tested with info I got from others,
- I won't accept changes for micro sized releases.
- Documentaries and cartoons are often much smaller so I probably won't edit those either.
------
---
## Radarr Quality Definitions
@ -59,6 +60,7 @@ These Quality Settings have been created and tested with info I got from others,
| {{ radarr['quality-size']['movie']['qualities'][13]['quality'] }} | {{ radarr['quality-size']['movie']['qualities'][13]['min'] }} | {{ radarr['quality-size']['movie']['qualities'][13]['max'] }} |
!!! note
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.
@ -66,4 +68,3 @@ These Quality Settings have been created and tested with info I got from others,
Make sure you have enabled 'Show Advanced' in Radarr, if you don't see a provision to enter the scores, under the Quality settings.
{! include-markdown "../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

File diff suppressed because it is too large Load Diff

@ -6,7 +6,7 @@ Here I will try to explain how you can manually update Custom Formats for Radarr
## How to Copy/Paste the JSON
The manual way is almost the same as the Import Custom Format way found [HERE](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}
The manual way is almost the same as the Import Custom Format way found [HERE](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}
### In Radarr
@ -20,7 +20,7 @@ The manual way is almost the same as the Import Custom Format way found [HERE](/
### Paste the Custom Format
In the empty `Custom Format JSON` box (1) you just paste the `JSON` that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} or provided to you from other sources followed by the `Import` button (2).
In the empty `Custom Format JSON` box (1) you just paste the `JSON` that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} or provided to you from other sources followed by the `Import` button (2).
![cf-import-cf](images/cf-import-cf.png)
@ -36,6 +36,6 @@ After selecting the `Import` button you will get a screen that has all the Custo
This can be done also automatically with one of the TRaSH Sync Applications,
more info can be found [Here](/Guide-Sync/){:target="_blank" rel="noopener noreferrer"}
more info can be found [Here](/Guide-Sync/){:target="\_blank" rel="noopener noreferrer"}
--8<-- "includes/support.md"

@ -6,9 +6,9 @@ Here I will try to explain how you can manually import Custom Formats for Radarr
## How to Copy/Paste the JSON from the site
In this example I will use the [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="_blank" rel="noopener noreferrer"} Custom Format, the one most people don't want to download anyway. And if you do, then you probably don't use any of the Starr apps or Plex, being both don't support it.
In this example I will use the [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="\_blank" rel="noopener noreferrer"} Custom Format, the one most people don't want to download anyway. And if you do, then you probably don't use any of the Starr apps or Plex, being both don't support it.
Visit the [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} and select [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="_blank" rel="noopener noreferrer"} from the table.
Visit the [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} and select [{{ radarr['cf']['br-disk']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#br-disk){:target="\_blank" rel="noopener noreferrer"} from the table.
![cf-table-select-brdisk](images/cf-table-select-brdisk.png)
@ -40,7 +40,7 @@ Followed by the `Import` in the lower left.
### Paste the Custom Format
Paste the `JSON` in the empty `Custom Format JSON` box (1) that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"} followed by the `Import` button (2).
Paste the `JSON` in the empty `Custom Format JSON` box (1) that you got from the [Custom Format Collection](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"} followed by the `Import` button (2).
![cf-import-cf](images/cf-import-cf.png)
@ -54,9 +54,9 @@ all you need to do now is click on the `Save` button and you're done.
### Setup the scores in your Quality Profile
After you've added the Custom Formats, You will need to set it up in the Quality Profile you want to use/prefer to make use of the Custom Formats.
How this is done is explained [HERE](/Radarr/radarr-setup-quality-profiles/#basics){:target="_blank" rel="noopener noreferrer"}
How this is done is explained [HERE](/Radarr/radarr-setup-quality-profiles/#basics){:target="\_blank" rel="noopener noreferrer"}
------
---
## Start adding other Custom Formats wisely
@ -70,6 +70,6 @@ How this is done is explained [HERE](/Radarr/radarr-setup-quality-profiles/#basi
This can be done also automatically with one of the TRaSH Sync Applications,
more info can be found [Here](/Guide-Sync/){:target="_blank" rel="noopener noreferrer"}
more info can be found [Here](/Guide-Sync/){:target="\_blank" rel="noopener noreferrer"}
--8<-- "includes/support.md"

@ -1,6 +1,6 @@
# Recommended naming scheme
On the [Radarr Discord](https://radarr.video/discord){:target="_blank" rel="noopener noreferrer"} people often ask, "What's the recommended/best way to
On the [Radarr Discord](https://radarr.video/discord){:target="\_blank" rel="noopener noreferrer"} people often ask, "What's the recommended/best way to
name your files?" First off, it's personal preference, but it's often recommended to add non-recoverable info.
Why?
@ -11,7 +11,7 @@ it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc.
The Tokens not available in the release won't be used/shown.
------
---
## Preparation
@ -29,7 +29,7 @@ Finally, enable `Rename Movies` to reveal the movie renaming options.
## Standard Movie Format
This naming scheme is made to be compatible with the [New Plex Agent](https://forums.plex.tv/t/new-plex-media-server-movie-scanner-and-agent-preview/593269/517){:target="_blank" rel="noopener noreferrer"} that now supports IMDb and TMDb IDs in filenames, if you don't need it or want it just remove `{imdb-{ImdbId}}`
This naming scheme is made to be compatible with the [New Plex Agent](https://forums.plex.tv/t/new-plex-media-server-movie-scanner-and-agent-preview/593269/517){:target="\_blank" rel="noopener noreferrer"} that now supports IMDb and TMDb IDs in filenames, if you don't need it or want it just remove `{imdb-{ImdbId}}`
!!! warning "Starting from v4.2.2.6489, Radarr now supports Plex Multiple Edition tags in naming."
@ -99,9 +99,9 @@ This naming scheme is made to be compatible with the [New Plex Agent](https://fo
`The Movie Title (2010) [imdbid-tt0066921] - {edition-Ultimate Extended Edition} [Surround Sound x264][Bluray-1080p Proper][3D][DTS 5.1][DE][10bit][AVC]-EVOLVE`
------
---
## Original Title vs Original Filename
## Original Title vs Original Filename
### Original Title
@ -117,7 +117,7 @@ The filename can be Obscured where the Release naming isn't, especially when you
`{Original Filename}` => `group-karatekid-1080p` or `lchd-tkk1080p` or `t1i0p3s7i8yuti`
------
---
## Movie Folder Format
@ -137,9 +137,10 @@ The filename can be Obscured where the Release naming isn't, especially when you
<small>RESULT:</small> `The Movie Title (2010)`
------
---
!!! note
Keep in mind adding anything more after the release year could give issues during a fresh import in to Radarr, but it helps for movies that have the same release name and year.
**Radarr supports IMDb ID and TMDb ID in the folder name.**
@ -150,7 +151,7 @@ The filename can be Obscured where the Release naming isn't, especially when you
#### Optional Movies Folder Format
This naming scheme is made to be compatible with the new [Plex TV Series Scanner](https://forums.plex.tv/t/beta-new-plex-tv-series-scanner/696242){:target="_blank" rel="noopener noreferrer"} that now support IMDB and TVDB IDs in file names.
This naming scheme is made to be compatible with the new [Plex TV Series Scanner](https://forums.plex.tv/t/beta-new-plex-tv-series-scanner/696242){:target="\_blank" rel="noopener noreferrer"} that now support IMDB and TVDB IDs in file names.
##### Optional Plex
@ -177,9 +178,10 @@ This naming scheme is made to be compatible with the new [Plex TV Series Scanner
<small>RESULT:</small> `The Movie Title (2010) [imdbid-tt1520211]`
!!! tip
IMDb IDs are going to be very accurate and rarely change, TVDB/TMDB IDs, on the other hand, do change or are removed more frequently.
------
---
Thanks:

@ -11,13 +11,14 @@ Remote Path Mapping acts as a dumb find `Remote Path` and replace with `Local Pa
- You run dockers and **DON'T** have consistent and well planned paths.
!!! note
If you run dockers it would be smarter to fix the problem at the source of what's causing the actual issue.
- [Radarr Wiki Servarr - Docker Guide](https://wiki.servarr.com/docker-guide#consistent-and-well-planned-paths){:target="_blank" rel="noopener noreferrer"}
- [TRaSH Guides](/Hardlinks/Hardlinks-and-Instant-Moves/){:target="_blank" rel="noopener noreferrer"}
------
---
## How do I recognize that I need remote path mappings
@ -41,7 +42,7 @@ The following error could also mean that you need remote path mappings:
So looking at these screenshot it seems you need to make use of remote path mappings.
------
---
## How do I setup remote path mappings
@ -105,4 +106,3 @@ The final result will look something like this:
After these changes the file should be able to be imported by Radarr.
{! include-markdown "../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -10,7 +10,7 @@ Import the JSON in to your Custom Formats.
How ?
Follow the [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}.
Follow the [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}.
---

@ -11,10 +11,8 @@ To accomplish this you will need to merge the qualities with each other.
Here you will see the current logic so you understand how the possible downloads are compared.
{! include-markdown "../../../includes/merge-quality/radarr-current-logic.md" !}
<!-- --8<-- "includes/merge-quality/radarr-current-logic.md" -->
{! include-markdown "../../../includes/merge-quality/sonarr-current-logic.md" !}
<!-- --8<-- "includes/merge-quality/sonarr-current-logic.md" -->
## Merge the Qualities
@ -35,4 +33,3 @@ To merge them you need to click on Edit Groups.
When done Sonarr/Radarr upgrades will be handled via Preferred Words / Custom Formats.
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -16,7 +16,7 @@ Once you are in "edit" mode, you can select the movie(s) whose folders you want
![!radarr-movie-editor-select](images/radarr-movie-editor-select.png)
1. If you want all your movie's folders to be renamed with the new naming scheme you set [HERE](/Radarr/Radarr-recommended-naming-scheme){:target="_blank" rel="noopener noreferrer"}.
1. If you want all your movie's folders to be renamed with the new naming scheme you set [HERE](/Radarr/Radarr-recommended-naming-scheme){:target="\_blank" rel="noopener noreferrer"}.
1. Select the movie(s) that you want to have the folder(s) renamed.
1. At the bottom select `Edit`
@ -31,6 +31,7 @@ Choose the same (current) root folder for your selected movies, and choose `Appl
You will get a warning popup where you will need to choose `Yes, Move the files`
!!! warning
If you have a large library, use remote or cloud storage, or your path structure isn't well planned (or doesn't support instant moves) this could take a while.
**Make sure you don't interrupt this process.** If it stops before it has been completed, it could result in quite a mess.

@ -13,4 +13,3 @@ Then on the top right click on `Options` and a new window will popup and enable
![!Enable Show Unknown Movie Items](images/Radarr-show-unknown-movie-item.png)
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -8,14 +8,15 @@ I'm going to show two different options on how you can setup your sync with two
- Option 2: This option is best used if you only want to cherry pick which Movies/TV Shows you want as 4K/2160p (UHD).
!!! bug ""
I'm not going to explain how to set up two Radarr/Sonarr instances for your system, being it depends on how you have it installed/running. [Radarr Multiple Instance Information](https://wiki.servarr.com/radarr/installation#multiple-instances) and [Sonarr Multiple Instance Information](https://wiki.servarr.com/sonarr/installation#multiple-instances)
I'm not going to explain how to set up two Radarr/Sonarr instances for your system, being it depends on how you have it installed/running. [Radarr Multiple Instance Information](https://wiki.servarr.com/radarr/installation#multiple-instances) and [Sonarr Multiple Instance Information](https://wiki.servarr.com/sonarr/installation#multiple-instances)
## Preparation
For this you need to have prepared the following:
- Two Radarr/Sonarr instances fully setup (Indexers, Custom Formats, Downloaders, etc).
- One download client (*Two if you prefer Usenet and Torrents*).
- One download client (_Two if you prefer Usenet and Torrents_).
- Your download client has two separate categories (movies-hd, movies-uhd, tv-hd, tv-uhd, etc)
!!! warning
@ -24,11 +25,12 @@ For this you need to have prepared the following:
Make sure you use two separate root folders in Radarr/Sonarr (movies-hd, movies-uhd, tv-hd, tv-uhd, etc)
------
---
### Option 1
!!! info ""
In this example I'm going to use two Radarr instances (The basics is the same for Sonarr).
- `Radarr 1` = My main 4K/2160p (UHD) Radarr.
@ -66,7 +68,7 @@ Then you get a screen with the following options:
#### Radarr Download client setup
You don't need a separate download client for your two Radarr instances, this all can be done with one download client (*Two if you prefer Usenet and Torrents*).
You don't need a separate download client for your two Radarr instances, this all can be done with one download client (_Two if you prefer Usenet and Torrents_).
`Settings` => `Download Clients`
@ -86,11 +88,12 @@ The only thing you need to change/create is a separate `Category` that you're go
You now only need to make use of `Radarr 1`. All movies you add to `Radarr 1` will be synced to `Radarr 2` at a scheduled time.
------
---
### Option 2
!!! info ""
In this example I'm going to use two Sonarr instances (The basics is the same for Radarr).
- `Sonarr 1` = My main 1080p WEB-DL Sonarr.
@ -137,7 +140,7 @@ Then you get a screen with the following options:
#### Sonarr Download client setup
You don't need a separate download client for your two Sonarr/Radarr instances, this can all be done with one download client (*Two if you prefer Usenet and Torrents*).
You don't need a separate download client for your two Sonarr/Radarr instances, this can all be done with one download client (_Two if you prefer Usenet and Torrents_).
`Settings` => `Download Clients`
@ -157,7 +160,7 @@ Only thing you need to change/create is a separate `Category` that you're going
You now only need to make use of `Sonarr 1`. When you got a TV show (or a movie if you use this option with Radarr) that you also want as 4K/2160p (UHD) then you make sure you make use of the Cloned Quality Profile. And it will sync at a scheduled time.
------
---
[^1]:

@ -4,7 +4,7 @@ Here you will find a collection of Radarr Guides I made.
!!! info "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](https://wiki.servarr.com/en/radarr){:target="_blank" rel="noopener noreferrer"}
For Installation and Quick Start Guide please check the official [WikiArr](https://wiki.servarr.com/en/radarr){:target="\_blank" rel="noopener noreferrer"}
## Master
@ -26,7 +26,7 @@ For Installation and Quick Start Guide please check the official [WikiArr](https
(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.***
**_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.
@ -34,4 +34,4 @@ This version is updated immediately.
### How do I update Radarr
External link to the official [WikiArr](https://wiki.servarr.com/en/radarr/faq#how-do-i-update-radarr){:target="_blank" rel="noopener noreferrer"}.
External link to the official [WikiArr](https://wiki.servarr.com/en/radarr/faq#how-do-i-update-radarr){:target="\_blank" rel="noopener noreferrer"}.

@ -1,16 +1,18 @@
# How to setup Quality Profiles Anime
*aka How to setup Custom Formats (Anime)*<br><br>
_aka How to setup Custom Formats (Anime)_<br><br>
!!! note
This guide is created and maintained by [FonduemangVI](https://github.com/FonduemangVI) and [rg9400](https://github.com/rg9400)
It's recommended to run two Radarr instances. One for Anime Movies and one for Normal Movies, or you can make use of Quality Profiles and score different Custom Formats (CFs) as required.
The aim of this guide is to grab the best release overall (as per [SeaDex](https://releases.moe/){:target="_blank" rel="noopener noreferrer"}) and not necessarily just dual audio.
The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target="_blank" rel="noopener noreferrer"} or [AB](https://animebytes.tv/){:target="_blank" rel="noopener noreferrer"}
The aim of this guide is to grab the best release overall (as per [SeaDex](https://releases.moe/){:target="\_blank" rel="noopener noreferrer"}) and not necessarily just dual audio.
The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target="\_blank" rel="noopener noreferrer"} or [AB](https://animebytes.tv/){:target="\_blank" rel="noopener noreferrer"}
!!! info ""
Nyaa is a public tracker while AB is an invite only tracker.
---
@ -19,19 +21,19 @@ The vast majority of releases can be found on [Nyaa](https://nyaa.si/){:target="
### Recommended naming scheme
For naming please refer to [Recommended naming scheme](/Radarr/Radarr-recommended-naming-scheme/){:target="_blank" rel="noopener noreferrer"}
For naming please refer to [Recommended naming scheme](/Radarr/Radarr-recommended-naming-scheme/){:target="\_blank" rel="noopener noreferrer"}
---
## Quality Settings
For quality settings please refer to [Radarr Quality Definitions](/Radarr/Radarr-Quality-Settings-File-Size/#radarr-quality-definitions){:target="_blank" rel="noopener noreferrer"}
For quality settings please refer to [Radarr Quality Definitions](/Radarr/Radarr-Quality-Settings-File-Size/#radarr-quality-definitions){:target="\_blank" rel="noopener noreferrer"}
---
## Quality Profile
We need to create a new profile called `Remux-1080p - Anime` due to the way anime can be named we will need to merge a few qualities together see [here](/Radarr/Tips/Merge-quality/){:target="_blank" rel="noopener noreferrer"} for an example.
We need to create a new profile called `Remux-1080p - Anime` due to the way anime can be named we will need to merge a few qualities together see [here](/Radarr/Tips/Merge-quality/){:target="\_blank" rel="noopener noreferrer"} for an example.
We need to add `Bluray-1080p Remux` and `Bluray-1080p` into a group together, `HDTV-1080p` into the same group as `WEBDL-1080p` and `WEBRip-1080p`, and lastly `HDTV-720p` into the same group as `WEBDL-720p` and `WEBRip-720p` so that the scoring will work correctly.
@ -50,10 +52,10 @@ We then need to select and organise the qualities like below.
## Anime CF/Scoring
!!! note
We're going to make use of the below custom formats. See [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"} for how to import them.
We're going to make use of the below custom formats. See [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"} for how to import them.
{! include-markdown "../../includes/cf/radarr-anime.md" !}
<!-- --8<-- "includes/cf/radarr-anime.md" -->
### Default Scoring
@ -89,6 +91,7 @@ Below is an example of the scoring set to prefer `Dual Audio` over any tier.
### Uncensored Scoring
!!! note
Most BDs are uncensored by default, so most groups do not include that in the name.
If you prefer `Uncensored` releases you have a few options depending on your preference.
@ -124,4 +127,3 @@ Most of my information and knowledge came from:
- [TRaSH](https://trash-guides.info/) (For allowing me to utilize his website for our guide and general knowledge share.)
{! include-markdown "../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -1,10 +1,10 @@
# How to setup Quality Profiles French
*aka How to setup Custom Formats (French)*<br><br>
_aka How to setup Custom Formats (French)_<br><br>
!!! note "This guide is created and maintained by [Someone said "Nice"?](https://github.com/NiceTSY)"
!!! tip "Cette page est aussi disponible en Français: [Guide en Français](/Radarr/radarr-setup-quality-profiles-french-fr/){:target="_blank" rel="noopener noreferrer"}."
!!! tip "Cette page est aussi disponible en Français: [Guide en Français](/Radarr/radarr-setup-quality-profiles-french-fr/){:target="\_blank" rel="noopener noreferrer"}."
So what is the best way to set up the Custom Formats and which one to use with which scores to get French and English Audio?
@ -14,30 +14,32 @@ Regarding quality there isn't a best setup, it depends on your setup (hardware d
Some prefer high quality audio (HD Audio), others high quality video. Many prefer both.
TRaSH created a [flowchart](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"} to make your decision/choices easier. Remember that this chart does not include any of the following Custom Formats and you will still need to read this guide to get MULTi releases.
TRaSH created a [flowchart](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"} to make your decision/choices easier. Remember that this chart does not include any of the following Custom Formats and you will still need to read this guide to get MULTi releases.
------
---
## Basics
It is quite important that you follow and understand what is envisioned by Trash's guide:
- Adding Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}.
- Setting up a quality Profile to make use of the Custom Formats, as explained in [How to setup Quality Profiles | Basics section](/Radarr/radarr-setup-quality-profiles/#basics){:target="_blank" rel="noopener noreferrer"}.
- Adding Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}.
- Setting up a quality Profile to make use of the Custom Formats, as explained in [How to setup Quality Profiles | Basics section](/Radarr/radarr-setup-quality-profiles/#basics){:target="\_blank" rel="noopener noreferrer"}.
------
---
!!! warning "Mandatory"
The only change that is needed and **mandatory** for French Custom Formats to work is to set the preferred language profile for your releases to `Any`.
??? success "Screenshot example - [Click to show/hide]"
![!cf-quality-profile-cf](images/french-cf-profile-language.png)
!!! info
We do choose `Any` for the language profile, as otherwise an English movie identified with French audio in Radarr will not be grabbed and vice-versa.
------
---
## I am only interested in French subs (VOSTFR)
@ -58,24 +60,25 @@ There is two options:
- Ignore any mention of **MULTi Custom Formats**.
- Add the [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) Custom Format with a score of `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`.
------
---
## Usages
There is two ways of using those French Custom Formats, with and without the Guide's original Group tiers (which can be found there: [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"}).
There is two ways of using those French Custom Formats, with and without the Guide's original Group tiers (which can be found there: [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"}).
To illustrate this, you will see an **"Original mix (optional)"** section in each of the examples below. You need to understand that if you add the Custom Formats from this optional section if Radarr do not find a MULTi you will still have a good scoring for single audio.
!!! warning "Attention"
If you use the **"Original mix (optional)"**. You need to understand that even if in the beginning the main focus of those French Custom Formats is to work alongside the original ones.
You could end up with a single audio release when a MULTi release exists. This is because it was not scored high enough to trump the other scoring.
------
---
## Examples of Quality Profile
--8<-- "includes/cf/score-attention.md"
------
---
### French Audio Versions
@ -85,11 +88,12 @@ Those are all optional and only there to rename your release or to avoid a certa
- You only want VOSTFR, in this case you will ignore any mention of **MULTi Custom Formats** and give the [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) Custom Format a score of `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`.
!!! warning "Attention"
It is not really recommended to put any of the VF Custom Formats (VFF, VFQ, VQ, VFB, VFI, VF2) to a negative score. Instead increase the score of your preferred audio.
{! include-markdown "../../includes/french-guide/radarr-french-audio-version-en.md" !}
------
---
### Releases you should avoid
@ -97,23 +101,24 @@ This is a must-have for every Quality Profile you use. All these Custom Formats
{! include-markdown "../../includes/french-guide/radarr-french-unwanted-en.md" !}
------
---
### TRaSH recommendations
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
!!! tip "Getting the movie name in French in the file and/or folder name"
Following the recommended naming scheme for your library, whether it's Plex, Jellyfin, or Emby, you can add the ISO-2 language code at the end of the movie name tag to display the movie name in the desired language.
The tag should look like the following: `{Movie CleanTitle:fr}`. This work in both Folder and File name.
------
---
#### HD Bluray + WEB
If you prefer High Quality HD Encodes (Bluray-720/1080p)
- *Size: 6-15 GB for a Bluray-1080p depending on the running time.*
- _Size: 6-15 GB for a Bluray-1080p depending on the running time._
{! include-markdown "../../includes/french-guide/radarr-french-multi-audio-en.md" !}
@ -145,13 +150,13 @@ The reason why WEB-DL 720p is not selected is because you will hardly find any r
- When the Bluray-1080p is released it will upgrade to the Bluray-1080p.
- The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`.
------
---
#### UHD Bluray + WEB
If you prefer High Quality UHD Encodes (Bluray-2160p)
- *Size: 20-60 GB for a Bluray-2160p depending on the running time.*
- _Size: 20-60 GB for a Bluray-2160p depending on the running time._
{! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-en.md" !}
@ -187,13 +192,13 @@ Use the following main settings in your profile.
- When the Bluray-2160p is released it will upgrade to the Bluray-2160p.
- The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`.
------
---
#### Remux + WEB 1080p
If you prefer 1080p Remuxes (Remux-1080p)
- *Size: 20-40 GB for a Remux-1080p depending on the running time.*
- _Size: 20-40 GB for a Remux-1080p depending on the running time._
{! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-en.md" !}
@ -227,13 +232,13 @@ The reason why I didn't select the WEB-DL 720p is because you will hardly find a
- When the REMUX-1080p is released it will upgrade to the REMUX-1080p.
- The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`.
------
---
#### Remux + WEB 2160p
If you prefer 2160p Remuxes (Remux-2160p)
- *Size: 40-100 GB for a Remux-2160p depending on the running time.*
- _Size: 40-100 GB for a Remux-2160p depending on the running time._
{! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-en.md" !}
@ -267,16 +272,16 @@ Use the following main settings in your profile.
- When the REMUX-2160p is released it will upgrade to the REMUX-2160p.
- The downloaded media will be upgraded to any of the added Custom Formats until a score of `10000`.
------
---
### Advanced Audio and HDR Formats
TRaSH provides great guides and explanations about them at the following links:
- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="_blank" rel="noopener noreferrer"}
- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"}
- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="\_blank" rel="noopener noreferrer"}
- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="\_blank" rel="noopener noreferrer"}
------
---
## Acknowledgements

@ -10,30 +10,32 @@ Pour ce qui est de la qualité, il n'y a pas de recette miracle, cela dépend de
Certains préfèrent une qualité audio élevée (HD Audio), d'autres une meilleure qualité vidéo. Nombreux sont ceux qui préfèrent les deux.
TRaSH a créé un [schéma](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="_blank" rel="noopener noreferrer"} pour faciliter votre décision/choix. Notez que ce graphique n'inclut aucun des Formats Personnalisés de ce guide et que vous devrez quand même le lire pour obtenir des releases en MULTi.
TRaSH a créé un [schéma](/Radarr/Radarr-setup-custom-formats/#which-quality-profile-should-you-choose){:target="\_blank" rel="noopener noreferrer"} pour faciliter votre décision/choix. Notez que ce graphique n'inclut aucun des Formats Personnalisés de ce guide et que vous devrez quand même le lire pour obtenir des releases en MULTi.
------
---
## Notions de base
Il est impératif que vous respectiez et compreniez ce qui est proposé par le guide de TRaSH (*en anglais uniquement*) :
Il est impératif que vous respectiez et compreniez ce qui est proposé par le guide de TRaSH (_en anglais uniquement_) :
- L'ajout de Formats Personnalisés, comme expliqué dans [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}.
- La configuration d'un profil de qualité pour utiliser les formats personnalisés, comme expliqué dans la section [How to setup Quality Profiles | Basics section](/Radarr/Radarr-setup-custom-formats/#basics){:target="_blank" rel="noopener noreferrer"}.
- L'ajout de Formats Personnalisés, comme expliqué dans [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}.
- La configuration d'un profil de qualité pour utiliser les formats personnalisés, comme expliqué dans la section [How to setup Quality Profiles | Basics section](/Radarr/Radarr-setup-custom-formats/#basics){:target="\_blank" rel="noopener noreferrer"}.
------
---
!!! warning "Impératif"
La seule modification nécessaire et **indispensable** pour que les formats personnalisés français fonctionnent est de définir le profil de langue sur `Any`.
??? success "Exemple - [Cliquer pour afficher/masquer]"
![!cf-quality-profile-cf](images/french-cf-profile-language.png)
!!! info
`Any` est choisit sinon un film anglais identifié avec un audio français dans Radarr ne sera pas récupéré et vice-versa.
------
---
## Je ne suis intéressé que par des films sous-titrés en français (VOSTFR)
@ -43,8 +45,8 @@ Deux options s'offre à vous :
!!! tip "Il s'agit de la méthode à privilégier."
- Configurez Radarr en utilisant : [How to setup Quality Profiles | Which Quality Profile should you choose](/Radarr/radarr-setup-quality-profiles/#which-quality-profile-should-you-choose) (*en anglais*).
- Configurez [Bazarr](../Bazarr/Setup-Guide.md) (*en anglais*). Il permet d'obtenir des sous-titres pour tous les films.
- Configurez Radarr en utilisant : [How to setup Quality Profiles | Which Quality Profile should you choose](/Radarr/radarr-setup-quality-profiles/#which-quality-profile-should-you-choose) (_en anglais_).
- Configurez [Bazarr](../Bazarr/Setup-Guide.md) (_en anglais_). Il permet d'obtenir des sous-titres pour tous les films.
- Profitez de vos films avec les sous-titres.
- (Facultatif) Ajoutez le Format Personnalisé [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) avec un score de `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`.
@ -54,23 +56,24 @@ Deux options s'offre à vous :
- Ignorez toute mention des **Formats Personnalisés MULTi**.
- Ajoutez le Format Personnalisé [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr) avec un score de `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}`.
------
---
## Usages
Il y a deux façons d'aborder les exemples ci-dessous. En utilisant ou non les Formats Personnalisés de Groupes P2P du Guide original (qui peuvent être trouvés ici : [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="_blank" rel="noopener noreferrer"}).
Il y a deux façons d'aborder les exemples ci-dessous. En utilisant ou non les Formats Personnalisés de Groupes P2P du Guide original (qui peuvent être trouvés ici : [Collection of Custom Formats](/Radarr/Radarr-collection-of-custom-formats/){:target="\_blank" rel="noopener noreferrer"}).
Afin d'illustrer ce principe, vous verrez une section **"Mix original (optionnel)"** dans chacun des exemples ci-dessous. Vous devez comprendre que si vous ajoutez les Formats Personnalisés de cette section optionnelle, si Radarr ne trouve pas de MULTi, vous aurez toujours un bon score pour l'audio anglais.
!!! warning "Attention"
Si vous utilisez le **"Mix original (optionnel)"**. Vous devez comprendre que même si l'objectif principal de ces Formats Personnalisés est de travailler en parallèle avec les formats du guide original. Vous pouvez vous retrouver avec un seul audio alors qu'il existe une version MULTi. La raison est que la release n'a pas été notée assez haut pour l'emporter sur les autres scores.
------
---
## Exemples de Profil
--8<-- "includes/cf/score-attention.md"
------
---
### Type de versions françaises
@ -80,11 +83,12 @@ Ces Formats sont optionnels et ne sont là que pour renommer votre fichier ou po
- Vous souhaitez seulement du VOSTFR, dans ce ce cas, ignorez toute mention des **Formats Personnalisés MULTi** et donnez un score de `{{ radarr['cf']['french-vostfr']['trash_scores']['french-vostfr'] }}` au Format Personnalisé [{{ radarr['cf']['french-vostfr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#vostfr).
!!! warning "Attention"
Il n'est pas vraiment recommandé d'attribuer un score négatif à l'un des Formats Personnalisés de VF (VFF, VFQ, VQ, VFB, VFI, VF2). Augmentez plutôt le score de votre format audio préféré.
{! include-markdown "../../includes/french-guide/radarr-french-audio-version-fr.md" !}
------
---
### Les releases à éviter
@ -92,23 +96,24 @@ Ces Formats sont reconnus comme étant indispensables pour tous les Profils de Q
{! include-markdown "../../includes/french-guide/radarr-french-unwanted-fr.md" !}
------
---
### TRaSH recommandations (*en anglais*)
### TRaSH recommandations (_en anglais_)
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
!!! tip "Obtenir le nom du film en français dans le nom du fichier et/ou du dossier"
En suivant le schéma de dénomination recommandé pour votre bibliothèque, qu'il s'agisse de Plex, Jellyfin ou Emby. Vous pouvez ajouter le code de langue ISO-2 à la fin de la balise du nom du film pour afficher le nom du film dans la langue souhaitée.
La balise se présentera comme suit : `{Movie CleanTitle:fr}`. Cela fonctionne aussi bien pour les noms de dossiers que pour les noms de fichiers.
------
---
#### HD Bluray + WEB
Si vous préférez les encodages HD de haute qualité (Bluray-720/1080p)
- *Poids : 6 à 15 Go pour un Bluray-1080p selon la durée du média.*
- _Poids : 6 à 15 Go pour un Bluray-1080p selon la durée du média._
{! include-markdown "../../includes/french-guide/radarr-french-multi-audio-fr.md" !}
@ -142,13 +147,13 @@ La raison pour laquelle le WEB-DL 720p n'est pas sélectionné est que vous ne t
- Lorsque le Bluray-1080p sortira, il sera mis à niveau vers le Bluray-1080p.
- Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`.
------
---
#### UHD Bluray + WEB
Si vous préférez les encodages UHD de haute qualité (Bluray-2160p)
- *Poids : 20 à 60 Go pour un Bluray-2160p selon la durée du média.*
- _Poids : 20 à 60 Go pour un Bluray-2160p selon la durée du média._
{! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-fr.md" !}
@ -184,13 +189,13 @@ Utilisez les paramètres suivants dans votre profil.
- Lorsque le Bluray-2160p sortira, il sera mis à niveau vers le Bluray-2160p.
- Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`.
------
---
#### Remux + WEB 1080p
Si vous préférez les Remuxes en 1080p (Remux-1080p)
- *Poids : 20 à 40 Go pour un Remux-1080p selon la durée du média.*
- _Poids : 20 à 40 Go pour un Remux-1080p selon la durée du média._
{! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-fr.md" !}
@ -226,13 +231,13 @@ La raison pour laquelle le WEB-DL 720p n'est pas sélectionné est que vous ne t
- Lorsque le REMUX-1080p sortira, il sera mis à niveau vers le REMUX-2160p.
- Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`.
------
---
#### Remux + WEB 2160p
Si vous préférez les Remuxes en 2160p (Remux-2160p)
- *Poids : 40 à 100 Go pour un Remux-2160p selon la durée du média.*
- _Poids : 40 à 100 Go pour un Remux-2160p selon la durée du média._
{! include-markdown "../../includes/french-guide/radarr-french-advanced-audio-information-fr.md" !}
@ -266,16 +271,16 @@ Utilisez les paramètres suivants dans votre profil.
- Lorsque le REMUX-2160p sortira, il sera mis à niveau vers le REMUX-2160p.
- Le média sera mis à niveau en fonction des formats personnalisés ajoutés jusqu'à l'obtention d'un score de `10000`.
------
---
### Formats audio avancés et HDR
TRaSH fournit d'excellents guides et explications à leur sujet dans les liens suivants (*en anglais uniquement*) :
TRaSH fournit d'excellents guides et explications à leur sujet dans les liens suivants (_en anglais uniquement_) :
- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="_blank" rel="noopener noreferrer"}
- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"}
- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){:target="\_blank" rel="noopener noreferrer"}
- [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="\_blank" rel="noopener noreferrer"}
------
---
## Remerciements

@ -1,6 +1,6 @@
# How to set up Quality Profiles
*aka How to set up Custom Formats*<br><br>
_aka How to set up Custom Formats_<br><br>
So what's the best way to set up the Custom Formats and which ones to use with which scores to set up your quality profiles?
There isn't a "best" setup, it depends on your media setup (hardware devices) and your personal preferences.
@ -12,11 +12,11 @@ Here we will try to explain how to make the most of Custom Formats to help you s
- We've created a [flowchart](#which-quality-profile-should-you-choose) to make your decisions/choices easier.
- We've also created an Excel sheet with several tested [media player devices](/Plex/what-does-my-media-player-support){:target="_blank" rel="noopener noreferrer"} to display what formats and capabilities they support, sourced from information provided by our community. We hope this Excel sheet will be a helpful resource for those looking for a reliable media player device and will help you choose the appropriate quality profile.
------
---
## Basics
After you've added the Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="_blank" rel="noopener noreferrer"}.
After you've added the Custom Formats, as explained in [How to import Custom Formats](/Radarr/Radarr-import-custom-formats/){:target="\_blank" rel="noopener noreferrer"}.
You will need to set it up in the quality Profile you want to use/prefer to make use of the Custom Formats.
`Settings` => `Profiles`
@ -24,6 +24,7 @@ You will need to set it up in the quality Profile you want to use/prefer to make
![!cf-settings-profiles](images/cf-settings-profiles.png)
!!! info "Radarr Custom Formats can be set per profile and isn't global"
Select the profile that you want to use/prefer.
![!cf-quality-profiles](images/cf-quality-profiles.png)
@ -40,9 +41,11 @@ Select the profile that you want to use/prefer.
At the bottom, in your chosen profile, you will see the added Custom Formats where you can start setting up the scores.
??? success "Screenshot example - [Click to show/hide]"
![!cf-quality-profile-cf](images/cf-quality-profile-cf.png)
!!! 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 always 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.
@ -58,11 +61,11 @@ At the bottom, in your chosen profile, you will see the added Custom Formats whe
- Custom formats that match with undesirable attributes should be given a negative score to lower their appeal.
- Outright rejections should be given a negative score low enough that even if all of the other formats with positive scores were added, the score would still fall below the minimum.
------
---
{! include-markdown "../../includes/merge-quality/radarr-current-logic.md" !}
------
---
## Which Quality Profile should you choose
@ -78,7 +81,7 @@ At the bottom, in your chosen profile, you will see the added Custom Formats whe
[![Discord chat](https://img.shields.io/discord/492590071455940612?style=for-the-badge&color=4051B5&logo=discord){ .off-glb }](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"}
------
---
## TRaSH Quality Profiles
@ -88,7 +91,7 @@ The following Quality Profiles can be combined into a single Quality Profile if
If you prefer High-Quality HD Encodes (Bluray-720p/1080p)
- *Size: 6-15 GB for a Bluray-1080p depending on the running time.*
- _Size: 6-15 GB for a Bluray-1080p depending on the running time._
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
@ -126,13 +129,13 @@ The reason why I didn't select the WEB-DL 720p is that you will hardly find any
Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway.
------
---
### UHD Bluray + WEB
If you prefer High-Quality UHD Encodes (Bluray-2160p)
- *Size: 20-60 GB for a Bluray-2160p depending on the running time.*
- _Size: 20-60 GB for a Bluray-2160p depending on the running time._
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
@ -174,13 +177,13 @@ Use the following main settings in your profile.
Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway.
------
---
### Remux + WEB 1080p
If you prefer 1080p Remuxes (Remux-1080p)
- *Size: 20-40 GB for a Remux-1080p depending on the running time.*
- _Size: 20-40 GB for a Remux-1080p depending on the running time._
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
@ -218,13 +221,13 @@ The reason why I didn't select the WEB-DL 720p is that you will hardly find any
Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to upgrade to the highest possible score anyway.
------
---
### Remux + WEB 2160p
If you prefer 2160p Remuxes (Remux-2160p)
- *Size: 40-100 GB for a Remux-2160p depending on the running time.*
- _Size: 40-100 GB for a Remux-2160p depending on the running time._
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
@ -264,7 +267,7 @@ Use the following main settings in your profile.
Because I'm too lazy to calculate the maximum for every Quality Profile I use, and I want it to be upgraded to the highest possible score anyway.
------
---
## Custom Format Groups
@ -280,11 +283,11 @@ The following custom format groups should be combined with the Quality Profiles
- 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.
*The reason that I score lossy Atmos higher than lossless DTS-HD MA is that I prefer having the object metadata (Atmos) over lossless audio.*
_The reason that I score lossy Atmos higher than lossless DTS-HD MA is that I prefer having the object metadata (Atmos) over lossless audio._
{! include-markdown "../../includes/cf/radarr-audio.md" !}
------
---
### HDR Formats
@ -292,7 +295,7 @@ The following custom format groups should be combined with the Quality Profiles
{! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
------
---
## FAQ & INFO

@ -1,3 +1,3 @@
nav:
- Home: index.md
- Collection of configs: recyclarr-configs.md
- Home: index.md
- Collection of configs: recyclarr-configs.md

@ -4,7 +4,7 @@ Recyclarr is a command-line application that will automatically synchronize reco
!!! info "Automatically mirror TRaSH guides to your Sonarr/Radarr instance based on your setup scheduler."
For Installation and setup Guide please check the official [Recyclarr Wiki](https://recyclarr.dev/wiki/getting-started){:target="_blank" rel="noopener noreferrer"}
For Installation and setup Guide please check the official [Recyclarr Wiki](https://recyclarr.dev/wiki/getting-started){:target="\_blank" rel="noopener noreferrer"}
For any questions or support questions please join the discord support channel.
@ -14,4 +14,4 @@ For any questions or support questions please join the discord support channel.
### Collection of configs
- [Recyclarr - collection of configs](/Recyclarr/recyclarr-configs){:target="_blank" rel="noopener noreferrer"}
- [Recyclarr - collection of configs](/Recyclarr/recyclarr-configs){:target="\_blank" rel="noopener noreferrer"}

@ -1,6 +1,6 @@
---
search:
exclude: true
exclude: true
---
# SQP-1 (2160p) Streaming Optimized

@ -1,6 +1,6 @@
---
search:
exclude: true
exclude: true
---
# SQP-1 (1080p) Streaming Optimized

@ -1,6 +1,6 @@
---
search:
exclude: true
exclude: true
---
# UHD Remux|Bluray|IMAX-E (SQP-2)

@ -1,6 +1,6 @@
---
search:
exclude: true
exclude: true
---
# UHD Remux|IMAX-E (SQP-3)

@ -1,6 +1,6 @@
---
search:
exclude: true
exclude: true
---
# UHD WEBDL|IMAX-E (SQP-4)

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save