Merge branch 'master' into fix/radarr-removed-CiNEPHiLES-from-Remux-Tier-to-prevent-download-loop

pull/1523/head
FonduemangVI 8 months ago committed by GitHub
commit 05c07edf9e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1,5 +1,5 @@
name: Request a Guide name: Request a Guide
description: Request a Guide here description: Request a Guide here (This is only for new Guide requests, not for changes to existing guides, custom formats etc, if you are unsure please check out the Discord server first.)
title: "[Request]" title: "[Request]"
labels: ["Type: Guide Request", "Status: Triage Needed"] labels: ["Type: Guide Request", "Status: Triage Needed"]
body: body:

@ -10,7 +10,7 @@
## Open Questions and Pre-Merge TODOs ## Open Questions and Pre-Merge TODOs
<!-- - [ ] Use GitHub checklists. When solved, check the box and explain the answer. <!-- - [ ] Use GitHub checklists. When solved, check the box and explain the answer. -->
<!-- ## Learning <!-- ## Learning

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

@ -1,6 +1,11 @@
name: Label Conflicts name: Label Conflicts
on: [push, pull_request] on:
push:
branches:
- master
pull_request:
jobs: jobs:
triage: triage:

@ -1,27 +1,50 @@
name: Build and Deploy Docs name: Build and Deploy Docs
on: [push, pull_request] on:
push:
branches:
- master
pull_request:
jobs: jobs:
build: build:
name: Build docs name: Build docs
runs-on: ubuntu-latest runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3.5.3 uses: actions/checkout@v4.1.2
- name: Set up Python with:
uses: actions/setup-python@v4.7.0 fetch-depth: 0
sparse-checkout: |
docs
images
includes
overrides
- name: Setup python
uses: actions/setup-python@v5.1.0
with: with:
python-version: 3.x python-version: 3.x
- name: Get pip cache directory
id: pip-cache
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v3.3.1 uses: actions/cache@v4.0.2
with: with:
path: .cache path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-build-${{ hashFiles('docs/requirements.txt') }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies - name: Install dependencies
run: pip install -r docs/requirements.txt run: pip install -r docs/requirements.txt
- name: Build documentation - name: Build documentation
run: mkdocs build run: mkdocs build
deploy: deploy:
if: github.event_name == 'push' && contains(fromJson('["refs/heads/master", "refs/heads/main"]'), github.ref) if: github.event_name == 'push' && contains(fromJson('["refs/heads/master", "refs/heads/main"]'), github.ref)
needs: build needs: build
@ -29,20 +52,34 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: write contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3.5.3 uses: actions/checkout@v4.1.2
with: with:
fetch-depth: '0' fetch-depth: 0
- name: Set up Python sparse-checkout: |
uses: actions/setup-python@v4.7.0 docs
images
includes
overrides
- name: Setup python
uses: actions/setup-python@v5.1.0
with: with:
python-version: 3.x python-version: 3.x
- name: Get pip cache directory
id: pip-cache
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v3.3.1 uses: actions/cache@v4.0.2
with: with:
path: .cache path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-build-${{ hashFiles('docs/requirements.txt') }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies - name: Install dependencies
run: pip install -r docs/requirements.txt run: pip install -r docs/requirements.txt
- name: Deploy to GitHub Pages - name: Deploy to GitHub Pages

@ -1,6 +1,10 @@
name: Label Pull Requests name: Label Pull Requests
on: [pull_request_target, push] on:
push:
branches:
- master
pull_request_target:
jobs: jobs:
triage: triage:
@ -9,6 +13,6 @@ jobs:
pull-requests: write pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/labeler@v4 - uses: actions/labeler@v5
with: with:
sync-labels: true sync-labels: true

@ -1,12 +1,16 @@
name: Lint - EditorConfig name: Lint - EditorConfig
on: [push, pull_request] on:
push:
branches:
- master
pull_request:
jobs: jobs:
editorconfig-checker: editorconfig-checker:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.5.3 - uses: actions/checkout@v4.1.2
- name: editorconfig-checker - name: editorconfig-checker
run: | run: |
docker run --rm \ docker run --rm \

@ -1,12 +1,16 @@
name: Lint - Markdown name: Lint - Markdown
on: [push, pull_request] on:
push:
branches:
- master
pull_request:
jobs: jobs:
markdownlint: markdownlint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.5.3 - uses: actions/checkout@v4.1.2
- name: markdownlint - name: markdownlint
run: | run: |
docker run --rm \ docker run --rm \

@ -1,13 +1,17 @@
name: Lint - YAML name: Lint - YAML
on: [push, pull_request] on:
push:
branches:
- master
pull_request:
jobs: jobs:
yamllint: yamllint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3.5.3 - uses: actions/checkout@v4.1.2
- name: Run yamllint - name: Run yamllint
run: | run: |

@ -2,6 +2,8 @@ name: Validate Metadata JSON
on: on:
push: push:
branches:
- master
paths: paths:
- metadata.json - metadata.json
- metadata.schema.json - metadata.schema.json
@ -17,8 +19,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Validate metadata.json name: Validate metadata.json
steps: steps:
- uses: actions/checkout@v3.5.3 - uses: actions/checkout@v4.1.2
- uses: actions/setup-python@v4.7.0 - uses: actions/setup-python@v5.1.0
with: with:
python-version: 3.x python-version: 3.x
- run: pip install jsonschema - run: pip install jsonschema

@ -0,0 +1,38 @@
name: Pull Request Title Validation
on:
pull_request:
types: [opened, reopened, edited, synchronize]
permissions:
issues: write
pull-requests: write
jobs:
pull-request-title-validation:
runs-on: ubuntu-latest
steps:
- name: Validate Pull Request Title
id: check_title
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const titleRegex = /^(Revert \")?(feat|fix|docs|style|refactor|perf|test|update|build|ci|chore)(\([\w\/-]+\))?:\s.+$/g;
const title = context.payload.pull_request.title;
const isValid = titleRegex.test(title);
if (!isValid) {
if ((context.payload.action === 'opened') || (context.payload.action === 'reopened')) {
const prNumber = context.payload.pull_request.number;
const author = context.payload.pull_request.user.login;
const message = `@${author} your pull request title "${context.payload.pull_request.title}" does not conform to our [naming conventions](https://www.conventionalcommits.org/en/v1.0.0/).\n\nPlease update the title to match the pattern: "feat|build|chore|style|fix|update|ci(\\<area\\>): \\<description\\>\n\nYou can check your title at this [regex101 link](https://regex101.com/r/jOZ6kU/1)."`;
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body: message
});
}
core.setFailed(`PR title "${title}" doesn't match the required format.`)
}

1
.gitignore vendored

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

@ -1,5 +1,8 @@
{ {
"files.associations": { "files.associations": {
".pages": "yaml" ".pages": "yaml"
},
"yaml.schemas": {
"https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json": "untitled:Untitled-1"
} }
} }

@ -66,14 +66,13 @@ When doing a PR that is in-progress and not yet complete / ready for review or n
- Custom Format name needs to match json name :bangbang: - Custom Format name needs to match json name :bangbang:
- No hashcode can exists multiple times :bangbang: - No hashcode can exists multiple times :bangbang:
- Tiers only hold release groups that have atleast done several dozen objectively high quality releases. - Tiers only hold release groups that have atleast done several dozen objectively high quality releases or are added for a specific reason. (If they do mainly niche stuff and/or foreign stuff they won't be added)
- All Tier Groups must use retail sources. Fanrest and upscaled groups are forbidden. This is due to the high effort required and near impossibility to guarantee quality systematically without manual check every single movie. - All Tier Groups must use retail sources. Fanrest and upscaled groups are forbidden. This is due to the high effort required and near impossibility to guarantee quality systematically without manual check every single movie.
- JSON file format shall consist of the following TRaSH specific data appended to the json exported from Starr - JSON file format shall consist of the following TRaSH specific data appended to the json exported from Starr
```json ```json
{ {
"trash_id": "HASHCODE", "trash_id": "HASHCODE",
"trash_score": 50,
"trash_scores": { "trash_scores": {
"default": 50, "default": 50,
"some_other_profile": 100 "some_other_profile": 100
@ -87,10 +86,11 @@ General Structure
- json file name - name of the [json file](#file-naming) - json file name - name of the [json file](#file-naming)
- `trash_id` - Generated [HashCode](#hashcode) for the Custom Format - `trash_id` - Generated [HashCode](#hashcode) for the Custom Format
- `trash_score` - (Legacy) [Default Score for the Custom Format](#scoring). Note that Custom Formats with Default Scores of 0 should NOT have a `trash_score` - `trash_scores` - Json object of [score(s) for the Custom Format](#scoring). Note that Custom
- `trash_scores` - (New) 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` 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 - `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 ### File Naming
@ -123,11 +123,10 @@ When updating or adding a new CF the test case url (`trash_regex`) needs to be p
### Scoring ### Scoring
- Scores must be added both as a single value under (legacy) `trash_score` and as JSON objects under `trash_scores`, for example: - Scores must be added as JSON objects under `trash_scores`, for example:
```json ```json
{ {
"trash_score": 50,
"trash_scores": { "trash_scores": {
"default": 50, "default": 50,
"some_other_profile": 100 "some_other_profile": 100
@ -136,9 +135,7 @@ When updating or adding a new CF the test case url (`trash_regex`) needs to be p
``` ```
- This allows for Custom Formats to be assigned different scores for different profiles - This allows for Custom Formats to be assigned different scores for different profiles
- The `trash_score` value MUST be the same as the `trash_scores.default` value - Default Scores of 0 (e.g. as in `trash_scores.default`) are FORBIDDEN
- The legacy `trash_score` value is currently retained for compatibility reasons, but will eventually be removed
- Default Scores of 0 (`trash_score` or `trash_scores.default` are FORBIDDEN
## YAML file naming ## YAML file naming

@ -3,4 +3,4 @@ nav:
- Basic-Setup: Basic-Setup.md - Basic-Setup: Basic-Setup.md
- Using Labels: Using-Labels.md - Using Labels: Using-Labels.md
- Port forwarding: Port-Forwarding.md - Port forwarding: Port-Forwarding.md
- Tips: Tips.md - Tips

@ -5,7 +5,7 @@
------ ------
!!! Note !!! Note
Settings that aren't covered means you can change them to your own liking or just leave them on default. Settings that aren't covered means you can change them to your liking or just leave them on default.
------ ------
@ -21,7 +21,7 @@ Once you are here, you can edit your download settings in the `Downloads` sectio
### Download Path ### Download Path
`Download to` is where you want you want to download your media to, if you want to move your files upon completion - check the box and enter a path for that option as well. `Download to` is where you want you want Deluge to download your media. If you want to move your files upon completion - check the box and enter a path for that option as well.
### Saving .torrent Copies ### Saving .torrent Copies
@ -32,7 +32,7 @@ Copy (and delete upon removal) of the .torrent file upon completion.
### Pre-allocated Files ### Pre-allocated Files
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. 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 "" !!! success ""
**Suggested: `Enabled`** **Suggested: `Enabled`**
@ -46,17 +46,17 @@ Pre-allocated disk space for the added torrents, this limits fragmentation and a
## Bandwidth ## Bandwidth
Here you can set your rate limits, meaning your maximum download/upload/connection speeds. Here you can set your rate limits, meaning your maximum download/upload/connections.
!!! info !!! info
In Deluge, the value of `-1` is used for "infinity" or "unlimited". In Deluge, the value of `-1` is used for "infinity" or "unlimited".
![!Bandwidth Settings](images/Deluge-bandwidth-settings.png) ![!Bandwidth Settings](images/Deluge-bandwidth-settings.png)
The best settings depends on many factors. The best settings depend on many factors.
- Your ISP speed. - Your ISP speed.
- Your hardware used. - Your hardware.
- Bandwidth needed by other services in your home network. - Bandwidth needed by other services in your home network.
!!! success "" !!! success ""
@ -70,9 +70,9 @@ These are the client-wide settings, they will apply to the total traffic of all
!!! tip !!! tip
The only thing you NEED to place a limit on is half-open connections and connections per-second. The only thing you NEED to place a limit on is half-open connections and connections per second.
For most high speed broadband connections ~100-150 seems ideal. If you experience lag when initiating a download, try lowering these values. For most high-speed broadband connections ~100-150 seems ideal. If you experience lag when initiating a download, try lowering these values.
### Per-Torrent Limits ### Per-Torrent Limits
@ -99,17 +99,17 @@ These settings are intended to manage your number of active seeds, downloads, an
Unless you have a specific reason, `Total` can be set to `-1`. These are torrents seen as seeding by the tracker. Unless you have a specific reason, `Total` can be set to `-1`. These are torrents seen as seeding by the tracker.
`Seeding` is the number of active torrents uploading, and `Downloading` is the number of downloading torrents. `Seeding` is the number of active torrents uploading, and `Downloading` is the number of concurrently downloading torrents.
### Seeding Rotation & Share Ratio ### Seeding Rotation & Share Ratio
I recommend using the seeding goals in your Starr Apps indexer settings (enable advanced) and to remove completed downloads. These sections are then not necessary. 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 ## Network
This is where you will bind Deluge to specific interface/address, specify port usage, and disable network protocols. This is where you will bind Deluge to a specific interface/address, specify port usage, and disable network protocols.
![!Network Settings](images/Deluge-network-settings.png) ![!Network Settings](images/Deluge-network-settings.png)
@ -118,7 +118,7 @@ This is where you will bind Deluge to specific interface/address, specify port u
!!! info "" !!! 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 open or forwarded (if you are behind any NAT/Firewall/VPN.) `Incoming Port` should be set to a specific port that you have opened/forwarded (if you are behind any NAT/Firewall/VPN.)
!!! WARNING !!! WARNING
Default ports of 6880-6890 are not recommended. Default ports of 6880-6890 are not recommended.
@ -167,15 +167,15 @@ You can configure your network protocols in this section. Depending on which typ
## Plugins ## Plugins
Finally, you will want to enable some plugins. There are plenty of plugins on the Deluge community forums to browse once you are familiar with the client, but for the time being we will only be covering the `WebUI` and `Label` plugins to get started. Finally, you will want to enable some plugins. There are plenty of plugins on the Deluge community forums to browse once you are familiar with the client, but for the time being, we will only be covering the `WebUI` and `Label` plugins to get started.
![!Plugin Settings](images/Deluge-plugin-settings.png) ![!Plugin Settings](images/Deluge-plugin-settings.png)
!!! tip !!! tip
If you are familiar with the client and plugins you can find more information [here](./Tips.md#plugins) If you are familiar with the client and plugins you can find more information [here](./Tips/Plugins.md)
!!! info !!! 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. 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 ### WebUI

@ -1,15 +1,15 @@
# Port Forwarding # Port Forwarding
The `Network` section of `Preferences` is where you will bind Deluge to specific interface/address, specify port usage. The `Network` section of `Preferences` is where you will bind Deluge to a specific interface/address, and specify port usage.
![!Network Settings](images/Deluge-port-forwarding.png) ![!Network Settings](images/Deluge-port-forwarding.png)
## Incoming Port ## Incoming Port
!!! info "" !!! 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 forwarded.
`Incoming Port` should be set to a specific port that you have open or forwarded (if you are behind any NAT/Firewall/VPN.) `Incoming Port` should be set to a specific port that you have opened/forwarded (if you are behind any NAT/Firewall/VPN.)
!!! WARNING !!! WARNING
Default ports of 6880-6890 are not recommended. Default ports of 6880-6890 are not recommended.

@ -1,52 +1,6 @@
# Tips # Plugins
## Thin Client 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.
### Daemon
If you are already running Deluge in `daemon` or `console` mode, or in docker, this is enabled by default. You will need to check your compose or core.conf for the "daemon_port" if you do not know it already.
!!! 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.
![!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.
------
### Switching to Thin-Client
Once your daemon is setup and running, it's time to setup the client you'll be using to manage your daemon. This will usually be on a remote computer, but if you wish to run this way locally to always seed in the background, that works as well.
Simply go to `Edit` => `Preferences` and switch from `Standalone` to `Thin Client`
![!Thin-Client Toggle](images/Deluge-tc-settings.png)
Restart Deluge.
#### Connections Manager
After switching to `Thin Client` you will need to connect to your daemon. Go to `Edit` => `Connections Manager` and click on `Add` to add the daemon.
![!Label Options](images/Deluge-tc-connman.png)
!!! ATTENTION
If you mistype your password, it will prompt you to enter it. There is a bug that does not accept the correct password unless it is entered through the `Add`/`Edit` Menu. If you do not enter the correct password when adding, go to `Edit` on the connection and retype the password into the password blank.
!!! WARNING
You can find your users and passwords for logging into the daemon in the `auth` file inside your data/config folder for Deluge. You can add users in the `Daemon` settings in preferences as well.
BE AWARE: These password are stored in PLAIN-TEXT in your `auth` file.
## Plugins
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 !!! 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. 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.
@ -54,52 +8,52 @@ Here you will find a list of included and available plugins that may be useful.
!!! tip !!! 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. 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.
------ ---
### AutoAdd ## AutoAdd
Use this plugin as a "Watch" directory for .torrent files, you can customize the settings using the `Edit` button for that specific directory (download directory, label, etc). Use this plugin as a "Watch" directory for .torrent files, you can customize the settings using the `Edit` button for that specific directory (download directory, label, etc).
Place a .torrent file in a watched folder, and Deluge will add the torrent to your client. Make sure your directory is marked with a checkmark under `Active` if you wish it to be monitored. Place a .torrent file in a watched folder, and Deluge will add the torrent to your client. Make sure your directory is marked with a checkmark under `Active` if you wish it to be monitored.
------ ---
### AddTorrentCheck ## AddTorrentCheck
This plugin is used to continuously update the tracker when adding torrents from IRC (think autodl-irssi or autobrr) before they are registered. This plugin is used to continuously update the tracker when adding torrents from IRC (think autodl-irssi or autobrr) before they are registered.
See the forum thread for details below. See the forum thread for details below.
[AddTorrentCheck](https://forum.deluge-torrent.org/viewtopic.php?p=236070#p236070){:target="_blank" rel="noopener noreferrer"} [AddTorrentCheck](https://forum.deluge-torrent.org/viewtopic.php?p=236070#p236070){:target="\_blank" rel="noopener noreferrer"}
------ ---
### Blocklist ## Blocklist
This plugin has mixed reception, depending on the use case. For private trackers, it is generally recommended to keep it disabled. There is an argument that some benefits, in privacy/security, could be made for public trackers - however, reports of many false positives and actual TRACKERS being flagged/blocked have been reported. This plugin has mixed reception, depending on the use case. For private trackers, it is generally recommended to keep it disabled. There is an argument that some benefits, in privacy/security, could be made for public trackers - however, reports of many false positives and actual TRACKERS being flagged/blocked have been reported.
Use at your own discretion. Use at your own discretion.
------ ---
### Execute ## Execute
Execute will run a program or script upon reaching a specified event. It is recommended that after adding events, you restart Deluge. Execute will run a program or script upon reaching a specified event. It is recommended that after adding events, you restart Deluge.
!!! info !!! info
Checking or Rechecking a torrent will not trigger the "Torrent Completed" event, you will need to actually download the torrent to trigger this. Checking or Rechecking a torrent will not trigger the "Torrent Completed" event, you will need to actually download the torrent to trigger this.
------ ---
### Stats ## Stats
Stats plugin does exactly what it sounds like, provides you statistics on traffic for torrents. You can find the latest version on the forums, but depending on which version of Deluge you install an older version may be included. Stats does exactly what it sounds like; provides you with statistics on torrent traffic. You can find the latest version on the forums, but depending on which version of Deluge you install an older version may be included.
[Stats](https://forum.deluge-torrent.org/viewtopic.php?p=236443#p236443){:target="_blank" rel="noopener noreferrer"} [Stats](https://forum.deluge-torrent.org/viewtopic.php?p=236443#p236443){:target="\_blank" rel="noopener noreferrer"}
------ ---
### YaRSS2 ## YaRSS2
YaRSS2 should be considered unsupported/abandoned at this point. This plugin will crash your client after a random amount of time. YaRSS2 should be considered unsupported/abandoned at this point. This plugin will crash your client after a random amount of time.
@ -107,33 +61,33 @@ There is not currently any active development on the project, as far as I'm awar
There is currently no viable RSS support natively in Deluge. There is currently no viable RSS support natively in Deluge.
------ ---
### AutoRemovePlus ## AutoRemovePlus
This is one of the forks of the original AutoRemovePlus (also referred to as ARP) which will automatically remove torrents from your client: This is one of the forks of the original AutoRemovePlus (also referred to as ARP) which will automatically remove torrents from your client:
- Select how many torrents are allowed at the same time. - Select how many torrents are allowed at the same time.
- Choose to remove or pause them based on multiple criteria age, seeders, seed time or ratio. - Choose to remove or pause them based on multiple criteria age, seeders, seed time or ratio.
- Set specific removal rules depending on tracker or LabelPlus label. - Set specific removal rules depending on the tracker or LabelPlus label.
- Remove only torrents from specific trackers or LabelPlus labels. - Remove only torrents from specific trackers or LabelPlus labels.
- Only remove torrents if under a certain HDD space threshold. - Only remove torrents if under a certain HDD space threshold.
- Select if torrents have to fulfill both or either criteria. - Select if torrents have to fulfill both or either criteria.
- Delete torrents in order (e.g. delete torrents with highest ratio first). - Delete torrents in order (e.g. delete torrents with the highest ratio first).
- Don't remove torrents if they don't reach a minimum time (in days) or ratio. - Don't remove torrents if they don't reach a minimum time (in days) or ratio.
- Choose the removal interval. - Choose the removal interval.
- Right click and select torrents that you don't want automatically removed. - Right-click and select torrents that you don't want automatically removed.
- Remove torrent data option. - Remove the torrent data option.
- Create an exempted tracker or LabelPlus label list, so that torrents that belong to those trackers or labels are not removed. - Create an exempted tracker or LabelPlus label list, so that torrents that belong to those trackers or labels are not removed.
- Fully functional WebUI. - Fully functional WebUI.
Other forks, and the original plugin, can be found on the GitHub page. Other forks, and the original plugin, can be found on the GitHub page.
[AutoRemovePlus](https://github.com/laur89/deluge-autoremoveplus){:target="_blank" rel="noopener noreferrer"} [AutoRemovePlus](https://github.com/laur89/deluge-autoremoveplus){:target="\_blank" rel="noopener noreferrer"}
------ ---
### ltConfig ## ltConfig
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. 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.
@ -141,6 +95,7 @@ If you need to set libtorrent settings to anything other than their defaults, th
There is a known bug when trying to enable settings in ltConfig, double-clicking will sometimes not "check" the option. 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. Simply click the option, then use the space bar to enable that checkbox.
!!! tips !!! tips
If you want to seed over 1600 torrents, you will need this plugin. You will need to increase the active_tracker_limit. If you want to seed over 1600 torrents, you will need this plugin. You will need to increase the active_tracker_limit.
@ -148,7 +103,8 @@ If you need to set libtorrent settings to anything other than their defaults, th
See the forum thread for details below. See the forum thread for details below.
[ltConfig](https://forum.deluge-torrent.org/viewtopic.php?p=235653#p235653){:target="_blank" rel="noopener noreferrer"} [ltConfig](https://forum.deluge-torrent.org/viewtopic.php?p=235653#p235653){:target="\_blank" rel="noopener noreferrer"}
{! include-markdown "../../../../includes/support.md" !}
{! include-markdown "../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" --> <!-- --8<-- "includes/support.md" -->

@ -0,0 +1,54 @@
# Thin Client
## Daemon
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.
![!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.
------
## Switching to Thin-Client
Once your daemon is up and running, it's time to set up the client you'll be using to manage your daemon. This will usually be on a second computer, but if you wish to use Deluge with Thin-Client locally (to always seed in the background) that works as well.
Simply go to `Edit` => `Preferences` and switch from `Standalone` to `Thin Client`
![!Thin-Client Toggle](../images/Deluge-tc-settings.png)
Restart Deluge.
!!! info
You will still need to set the daemon to run at start-up.
### Connections Manager
After switching to `Thin Client` you will need to connect to your daemon. Go to `Edit` => `Connections Manager` and click on `Add` to add the daemon.
![!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.
BE AWARE: These passwords are stored in PLAIN-TEXT in your `auth` file.
{! include-markdown "../../../../includes/support.md" !}
<!-- --8<-- "includes/support.md" -->

@ -0,0 +1,265 @@
# unRAID Mover and Deluge
When you make use of the unRAID cache drive for your `/data/torrents` share, and the torrents in Deluge are still seeding, the mover can't move files since they are still in use.
Using the following instructions will allow you to move the files with the use of the Deluge JSON-RPC.
!!! abstract "Workflow Rules"
1. Pause torrents in a specified age range that reside on your cache drive.
1. Run the unRAID mover.
1. Resume the torrents after the mover has completed.
!!! warning
The screenshots below are only **EXAMPLES** to show you how it should look and where you need to place the data that you need to add. They are **NOT** always a 100% reflection of the actual data, and not always the actual values you need to add.
- Always follow the recommendations described in the guide.
- If you have any questions, or aren't sure, just click the chat badge to join the Discord Channel where you can ask your questions directly.
## Needed
### `deluge-mover` script
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"}
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
Install the following Plugins.
- User Scripts
- 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."
------
## Setup
After you install the needed `Plugins` - it's time to configure everything.
### `requests` module
`deluge-mover.py` needs the requests Python module, so we need to make sure it's installed when your unRAID server starts, or when the Array is started the first time.
You can choose one of the following 3 options (select a tab) to install `requests`.
=== "User 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.
![!User Scripts](images/Unraid-settings-user-scripts-icon.png)
At the bottom of the `User Scripts` page select the `ADD NEW SCRIPT` button.
![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png)
A popup will appear asking you to name the script. For this example, we're going to use `Install requests (deluge-mover)` and then click on `OK`.
![!Install requests module](images/Unraid-user-scripts-add-new-script-enter-name.png)
Click on the cogwheel of the new script in the list, and select `Edit Script`.
![!Select user script](images/Unraid-settings-user-scripts-edit-requests.png)
Copy/Paste the following in the new window that opens, then click `SAVE CHANGES`.
```bash
#!/bin/bash
pip3 install requests
```
![!Bash script](images/Unraid-settings-user-scripts-requests.png)
Select in the schedule list when the script should run, and choose `At First Array Start Only`.
![!Set Run Time](images/Unraid-settings-user-scripts-requests-schedule.png)
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)*.
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-script-to-your-preferred-location), try to be consistent.
Suggestions:
- `/mnt/user/appdata/deluge/scripts/.venv`
- `/mnt/user/data/scripts/.venv`
Run the following command in unRAID's terminal in the directory you chose:
```bash
python3 -m venv --clear /mnt/user/data/scripts/.venv
```
We now need to enter this new environment and install our dependency (`requests`) in it, run:
```bash
source /mnt/user/data/scripts/.venv/bin/activate
pip3 install requests
deactivate # to leave the environment
```
!!! 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"}).
Copy/paste the following command
```bash
pip3 install requests
```
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)).
You only need to change a few options at the top of the script.
```python
### CONFIGURATION VARIABLES ###
# this webui will need to be the JSON-RPC endpoint
# this ends with '/json'
deluge_webui = "http://localhost:8112/json"
deluge_password = "deluged"
# this changes whether the actual cache drive is checked for
# applicable files to pause/move before pausing.
#
# if this is false, it will pause all torrents in the age-range
# instead of only torrents in that range that exist on the cache
check_fs = False
# if you are using the mover tuner and don't want to use it for
# this script, set this to true
#
# if you do not use mover tuner, leave this as false
use_mover_old = False
# this is the absolute host path to your cache drive's downloads
# you only need this to be changed/set if using 'check_fs = True'
cache_download_path = "/mnt/cache/torrents/completed"
# the age range of days to look for relevant torrents to move
# i dont recommend setting age_day_max to less than the schedule
# you run the script on...
#
# if you run every 7 days, this should be at least 7 to prevent
# files from being stuck on your cache forever
#
# 0 disables age_day_max
# set both age vars to 0 to move everything on your cache drive
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*)
- `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`.
- `cache_download_path` => The location (host path) for your cache folder (if check_fs is True)
- `age_day_min` => Set the minimum age (days) of the torrents that you wish to move.
- `age_day_max` => Set the maximum age (days) of the torrents that you wish to move.
#### Copy the script to your preferred location
Place the script you just edited somewhere easy to access/remember.
Suggestions:
- `/mnt/user/appdata/deluge/scripts/deluge-mover.py`
- `/mnt/user/data/scripts/deluge-mover.py`
#### Final steps
Set up the scheduler for when the mover should run.
In your unRAID Dashboard, go to your `Settings` tab and select `User Scripts` in the `User Utilities` section at the bottom.
![!User Scripts](images/Unraid-settings-user-scripts-icon.png)
At the bottom of the `User Scripts` page select the `ADD NEW SCRIPT` button.
![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png)
A popup will appear asking you to name the script. For this example, we're going to use `deluge-mover` and then click on `OK`.
![!Deluge Mover](images/Unraid-user-scripts-add-new-script-enter-name-deluge.png)
Click on the cogwheel of the new script in the list.
![!Select user script](images/Unraid-settings-user-scripts-edit-deluge-mover.png)
Choose your method (select a tab) and copy/paste the script in the new window that opens, then click `SAVE CHANGES`.
=== "Python (Native)"
``` bash
#!/bin/bash
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge Mover starting @ `date +%H:%M:%S`."
echo "executing script to pause torrents and run mover."
python3 /mnt/user/data/scripts/deluge-mover.py
echo "deluge-mover completed and resumed all paused torrents."
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge Mover completed @ `date +%H:%M:%S`."
```
=== "Python (venv)"
``` bash
#!/bin/bash
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge Mover starting @ `date +%H:%M:%S`."
echo "executing script to pause torrents and run mover."
/mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/deluge-mover.py
echo "deluge-mover completed and resumed all paused torrents."
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "Deluge Mover" -d "Deluge Mover completed @ `date +%H:%M:%S`."
```
!!! 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)
Click the schedule dropdown to choose when the script should run. We want to select `Custom`.
![!Set Run Time](images/Unraid-settings-user-scripts-deluge-mover-schedule.png)
After changing to `Custom` you will get an extra text field on the right where you can set your schedule (cron).
For this example, we're going to tell the script to run every day at 4 AM.
`0 4 * * *`
You can generate your scheduling [HERE](https://crontab.guru/)
![!Set Run Time](images/Unraid-settings-user-scripts-deluge-mover-cron.png)
{! include-markdown "../../../../includes/support.md" !}

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@ -7,7 +7,7 @@
### Managing Labels ### Managing Labels
Once you have [enabled the `Label` plugin](./Basic-Setup.md#plugins), you simply right-click anywhere in the area occupied by the label index on the pane on the left and you will be presented with a menu to add/remove/etc a label. Once you have [enabled the `Label` plugin](./Basic-Setup.md#plugins), you simply right-click anywhere in the area occupied by the label index on the pane on the left and you will be presented with a menu to add/remove/edit a label or its options.
![!Label Menu](images/Deluge-label-add.png) ![!Label Menu](images/Deluge-label-add.png)

@ -27,7 +27,7 @@ Using `apt-get` to install
sudo apt-get update sudo apt-get update
sudo apt-get install deluge sudo apt-get install deluge
Using `pip3` to install (included in the python package) Using `pip3` to install (included in the Python package)
pip3 install deluge pip3 install deluge

@ -20,13 +20,11 @@
import sys import sys
import re import re
# normalize argv to scriptname and just first 8 arguments to maintain compatibility
sys.argv = sys.argv[:9]
try: try:
# Parse the 18 input variables for SABnzbd version >= 4.0.0 # Parse the input variables for SABnzbd version >= 4.2.0
(scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist, showname, season, episodenumber, episodename, is_proper, resolution, decade, year, month, day, job_type) = sys.argv (scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist) = sys.argv
downloadsize = int(downloadsize)
except ValueError:
# ...or 11 variables for earlier versions
(scriptname, nzbname, postprocflags, category, script, prio, downloadsize, grouplist, showname, season, episodenumber, episodename) = sys.argv
except: 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

@ -21,30 +21,33 @@ This is a program used to manage your qBittorrent instance such as:
------ ------
## Qbitrr ## qBitrr
This is a program used to manage your qBittorrent instance and Arr instances This is a program used to manage your qBittorrent instance and Arr instances
Features 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 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 ( 'DownloadedMoviesScan' or 'DownloadedEpisodesScan' commands). - Monitor qBit for completed entries and tell the appropriate Arr instance to import it:
- `qbitrr DownloadedMoviesScan` for Radarr
- `qbitrr DownloadedEpisodesScan` for Sonarr
- Skip files in qBit entries by extension, folder or regex. - Skip files in qBit entries by extension, folder or regex.
- Monitor completed folder and cleans it up. - Monitor completed folder and clean it up.
- Uses ffprobe 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 periodic Rss Syncs on the appropriate Arr instances.
- Trigger Queue update on appropriate Arr instances. - Trigger Queue update on appropriate Arr instances.
- Search requests from Overseerr or Ombi. - 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 - Auto add/remove trackers
- Set per tracker values - Set per tracker values
- Also supports Sonarr v4 - **Sonarr v4 support**
- **Radarr v4 and v5 support**
This section requires the Arr databases to be locally available.
- Monitor Arr's databases to trigger missing episode searches. - Monitor Arr's databases to trigger missing episode searches.
- Customizable year range to search for (at a later point will add more option here, for example search whole series/season instead of individual episodes, search by name, category etc). - Searches Radarr missing movies based on Minimum Availability
- Customizable searching by series or singular episodes
- 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"}
------ ------

@ -1,28 +1,29 @@
# How to run the unRaid mover for qBittorent seeding torrents # unRAID Mover and qBittorrent
When you make use of the unRaid cache drive for your `/data/torrents` share and the torrents in qBittorent are still seeding then the mover can't move files, because they are still in use. When you make use of the unRAID cache drive for your `/data/torrents` share, and the torrents in qBittorrent are still seeding, the mover can't move files since they are still in use.
Using the following instructions you will be able to move the files with the use of the qBittorrent API. Using the following instructions will allow you to move the files with the use of the qBittorrent API.
!!! abstract "Workflow Rules - [Click to show/hide]" !!! abstract "Workflow Rules"
1. Pause torrents older than last x days. 1. Pause torrents in a specified age range that reside on your cache drive.
1. Run the mover. 1. Run the unRAID mover.
1. Resume the torrents once the mover is completed. 1. Resume the torrents after the mover has completed.
!!! warning !!! warning
The 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. The screenshots below are only **EXAMPLES** to show you how it should look and where you need to place the data that you need to add. They are **NOT** always a 100% reflection of the actual data, and not always the actual values you need to add.
- If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly.
- Always follow the recommendations described in the guide.
- If you have any questions, or aren't sure, just click the chat badge to join the Discord Channel where you can ask your questions directly.
## Needed ## Needed
### The Script ### qBit-Mover script
Download the following standalone script. Download the following standalone Python script.
- [Script](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"}
@ -36,44 +37,40 @@ Install the following Plugins.
- python-setuptools <sup>(*1*)</sup> - python-setuptools <sup>(*1*)</sup>
- python-pip <sup>(*1*)</sup> - python-pip <sup>(*1*)</sup>
!!! info "<sup>(*1*)</sup> These needs to be installed from the Nerd Tools" !!! info "<sup>(*1*)</sup> These need to be installed from NerdTools."
------ ------
## Setup ## Setup
After you installed the needed Plugins it's time to configure everything. After you install the needed `Plugins` - it's time to configure everything.
### qBit API
The script needs the qBit API to work, so we need to make sure it's installed when your unRaid server is booted or when the Array is started the first time.
You can choose from the following 2 options how you want to install it, depending what you preference. ### `qbittorrent-api` module
- [User scripts](#user-scripts) The script needs the qbittorrent-api module to work, so we need to make sure it's installed when your unRAID server starts, or when the Array is started the first time.
- [Go File](#go-file)
#### User scripts You can choose one of the following 3 options (select a tab) to install `qbittorrent-api`.
With this option we're going to install the qBit API when the Array is started the first time. === "User scripts"
With this option, we're going to install the `qbittorrent-api` module when the Array is started the first time.
Go to your unRaid Dashboard to your settings tab and select in the `User Utilities` at the bottom the new plugin you installed `User Scripts`. In your unRAID Dashboard, go to your `Settings` tab and select `User Scripts` in the `User Utilities` section at the bottom.
![!User Scripts](images/Unraid-settings-user-scripts-icon.png) ![!User Scripts](images/Unraid-settings-user-scripts-icon.png)
Select at the bottom `ADD NEW SCRIPT`. At the bottom of the `User Scripts` page select the `ADD NEW SCRIPT` button.
![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png) ![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png)
A popup will appear where you can give it a name, for this example we're going to use `Install qBittorrent API` and then click on `OK`. A popup will appear asking you to name the script. For this example, we're going to use `Install qBittorent-API` and then click on `OK`.
![!Install qBittorrent API](images/Unraid-user-scripts-add-new-script-enter-name.png) ![!Install qBittorrent API](images/Unraid-user-scripts-add-new-script-enter-name.png)
Click in the list on the cogwheel of the new user scrip you made. Click on the cogwheel of the new script in the list, and select `Edit Script`.
![!Select user script](images/Unraid-settings-user-scripts-list-select-qbit-api.png) ![!Select user script](images/Unraid-settings-user-scripts-list-select-qbit-api.png)
Copy/Paste in the new windows that opens the following bash command followed by `SAVE CHANGES`. Copy/Paste the following in the new window that opens, then click `SAVE CHANGES`.
```bash ```bash
#!/bin/bash #!/bin/bash
@ -86,115 +83,143 @@ Select in the schedule list when the script should run, and choose `At First Arr
![!Set Run Time](images/Unraid-settings-user-scripts-qbit-api-schedule.png) ![!Set Run Time](images/Unraid-settings-user-scripts-qbit-api-schedule.png)
Click on `RUN IN BACKGROUND` or restart your unRaid server so the qBit API is installed. Click on `Apply`.
Finally, you will need to choose `RUN IN BACKGROUND` or restart your unRAID server to install the `qbittorrent-api` module.
![!RUN IN BACKGROUND](images/Unraid-settings-user-scripts-qbit-api-run-background.png) ![!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)*.
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-script-to-your-preferred-location), try to be consistent.
#### Go File Suggestions:
- `/mnt/user/appdata/qbittorrent/scripts/.venv`
- `/mnt/user/data/scripts/.venv`
Run the following command in unRAID's terminal in the directory you chose:
With this option we're going to install the qBit API when the unRaid server is started. ```bash
python3 -m venv --clear /mnt/user/data/scripts/.venv
```
On your USB stick/key go to `/boot/config` and open the `go` file with your favorite editor ([VSCode](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}) and copy/paste the following command. We now need to enter this new environment and install our dependency (`qbittorrent-api`) in it, run:
```bash ```bash
source /mnt/user/data/scripts/.venv/bin/activate
pip3 install qbittorrent-api pip3 install qbittorrent-api
deactivate # to leave the environment
``` ```
Restart your unRaid Server, or run the above command from the terminal. !!! 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"}).
### Script Copy/paste the following command
Edit the script with your favorite editor ([VSCode](https://code.visualstudio.com/){:target="_blank" rel="noopener noreferrer"}/[Notepad++](https://notepad-plus-plus.org/downloads/){:target="_blank" rel="noopener noreferrer"}) you downloaded at the beginning of the guide [HERE](#the-script). ```bash
pip3 install qbittorrent-api
You only need to edit a few options in the script
```python
# --DEFINE VARIABLES--#
# Set Number of Days to stop torrents between two offsets
# days_from set to 0 will pause any torrents from todays date
# days_to will be the upper limit of how far you want to pause torrents to
days_from = 0
days_to = 2
qbt_host = "192.168.2.200:8080"
qbt_user = None
qbt_pass = None
# --DEFINE VARIABLES--#
``` ```
- `days_from` => Set Number of Days to stop torrents **from** for the move. Restart your unRAID Server or run the above command from the terminal.
- `days_to` => Set Number of Days to stop torrents **to** for the move.
- `qbt_host` => The URL you use to access qBittorrent locally. (*the* `"` *should remain*)
- `qbt_user` => Your used qBittorrent `User Name` if you have authentication enabled. Add `'` either side.
- `qbt_pass` => Your used qBittorrent `Password` if you have authentication enabled. Add `'` either side.
!!! danger "If you have authentication enabled. Add `'` either side of your User/Password." ------
### Script
!!! warning "" !!! warning ""
Depending on whether you use the unRaid `Mover Tuning` app, You might need to change **line 68**: Depending on whether you use the unRaid `Mover Tuning` app, You might need to change **line 94**:
- If you do not use `Mover Tuning`, change **line 68** from `os.system('/usr/local/sbin/mover.old start')` to `os.system('/usr/local/sbin/mover start')` - If you do not use `Mover Tuning`, change **line 94** from `os.system('/usr/local/sbin/mover.old start')` to `os.system('/usr/local/sbin/mover start')`
- If you use `Mover Tuning` but **don't** want to use it for the script, do not change **line 68** - If you use `Mover Tuning` but **don't** want to use it for the script, do not change **line 94**
- If you use `Mover Tuning` and **do** want to use it for the script, change **line 68** from `os.system('/usr/local/sbin/mover.old start')` to `os.system('/usr/local/sbin/mover start')`. For this option, inside the `Mover Tuner` options you will also need to set `Move Now button follows plugin filters` to `Yes` and `Disable Mover running on a schedule` to `No`. - If you use `Mover Tuning` and **do** want to use it for the script, change **line 94** from `os.system('/usr/local/sbin/mover.old start')` to `os.system('/usr/local/sbin/mover start')`. For this option, inside the `Mover Tuner` options you will also need to set `Move Now button follows plugin filters` to `Yes` and `Disable Mover running on a schedule` to `No`.
#### Copy script to your preferred location #### Copy the script to your preferred location
Now it's time to place the script you just edited somewhere easy to access/remember. Place the script you just edited somewhere easy to access/remember.
Suggestions: Suggestions:
- `/mnt/user/appdata/qbittorrent/scripts` (yes you need to create this folder your self) - `/mnt/user/appdata/qbittorrent/scripts/mover.py`
- `/mnt/user/data/scripts` (yes you need to create this folder your self) - `/mnt/user/data/scripts/mover.py`
#### Final steps #### Final steps
Now it's time to setup the scheduler when the mover should run. Set up the scheduler for when the mover should run.
Go to your unRaid Dashboard to your settings tab and select in the `User Utilities` at the bottom the new plugin you installed `User Scripts`. In your unRAID Dashboard, go to your `Settings` tab and select `User Scripts` in the `User Utilities` section at the bottom.
![!User Scripts](images/Unraid-settings-user-scripts-icon.png) ![!User Scripts](images/Unraid-settings-user-scripts-icon.png)
Select at the bottom `ADD NEW SCRIPT`. At the bottom of the `User Scripts` page select the `ADD NEW SCRIPT` button.
![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png) ![!Add New Script](images/Unraid-user-scripts-add-new-script-icon.png)
A popup will appear where you can give it a name, for this example we're going to use `qBittorrent Mover` and then click on `OK`. A popup will appear asking you to name the script. For this example, we're going to use `qBittorrent Mover` and then click on `OK`.
![!qBittorrent Mover](images/Unraid-user-scripts-add-new-script-enter-name-qbt.png) ![!qBittorrent Mover](images/Unraid-user-scripts-add-new-script-enter-name-qbt.png)
Click in the list on the cogwheel of the new user scrip you made. Click on the cogwheel of the new script in the list.
![!Select user script](images/Unraid-settings-user-scripts-list-select-qbit-mover.png) ![!Select user script](images/Unraid-settings-user-scripts-list-select-qbit-mover.png)
Copy/Paste in the new windows that opens the following bash command followed by `SAVE CHANGES`. Choose your method (select a tab) and copy/paste the script in the new window that opens, then click `SAVE CHANGES`.
=== "Python (Native)"
``` bash
#!/bin/bash
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover starting @ `date +%H:%M:%S`."
echo "executing script to pause torrents and run mover."
python3 /mnt/user/data/scripts/mover.py --host "localhost:8080" --user "your_user" --password "your_password" --days_from 0 --days_to 2
echo "qbittorrent-mover completed and resumed all paused torrents."
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover completed @ `date +%H:%M:%S`."
```
=== "Python (venv)"
``` bash ``` bash
#!/bin/bash #!/bin/bash
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover starting @ `date +%H:%M:%S`." /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover starting @ `date +%H:%M:%S`."
echo executing script to pause torrents and run mover. echo "executing script to pause torrents and run mover."
/usr/bin/python3 /mnt/user/data/scripts/mover.py /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/mover.py --host "localhost:8080" --user "your_user" --password "your_password" --days_from 0 --days_to 2
echo qbittorrent-mover completed and resumed all paused torrents. echo "qbittorrent-mover completed and resumed all paused torrents."
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover completed @ `date +%H:%M:%S`." /usr/local/emhttp/plugins/dynamix/scripts/notify -s "qBittorrent Mover" -d "qBittorrent Mover completed @ `date +%H:%M:%S`."
``` ```
!!! info !!! info
Replace the `/mnt/user/data/scripts/mover.py` path to the path where you placed your python script. Replace `/mnt/user/data/scripts/` in the script with the path you have chosen for the Python script.
- `days_from` => Set Number of Days to stop torrents **from** for the move.
- `days_to` => Set Number of Days to stop torrents **to** for the move.
- `host` => The URL you use to access qBittorrent locally.
- `user` => Your used qBittorrent `User Name` if you have authentication enabled.
- `password` => Your used qBittorrent `Password` if you have authentication enabled.
![!Bash script](images/Unraid-settings-user-scripts-qbit-mover.png) ![!Bash script](images/Unraid-settings-user-scripts-qbit-mover.png)
Select in the schedule list when the script should run, and choose `Custom` Click the schedule dropdown to choose when the script should run. We want to select `Custom`.
![!Set Run Time](images/Unraid-settings-user-scripts-qbit-mover-schedule.png) ![!Set Run Time](images/Unraid-settings-user-scripts-qbit-mover-schedule.png)
After changing to `Custom` you get on the right a extra option where you can setup your cron schedule when it should be run. After changing to `Custom` you will get an extra text field on the right where you can set your schedule (cron).
For this example, we're going to tell the script to run every day at 4 AM.
For this example we're going to let the script run a 4am at night. `0 4 * * *` `0 4 * * *`
Setup your own schedule [HERE](https://crontab.guru/) You can generate your scheduling [HERE](https://crontab.guru/)
![!Set Run Time](images/Unraid-settings-user-scripts-qbit-mover-cron.png) ![!Set Run Time](images/Unraid-settings-user-scripts-qbit-mover-cron.png)
--8<-- "includes/support.md" {! include-markdown "../../../../includes/support.md" !}

@ -0,0 +1,11 @@
# Themes
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 |
--8<-- "includes/support.md"

@ -8,18 +8,19 @@ These are 3rd party applications to sync several sections of the guide with your
| Radarr Custom Formats | v | v | | Radarr Custom Formats | v | v |
| Radarr Use Flowchart to choose the correct Custom Formats for your Quality Profile | v | | | Radarr Use Flowchart to choose the correct Custom Formats for your Quality Profile | v | |
| Radarr predefined config files available | | v | | Radarr predefined config files available | | v |
| Radarr Clear all Custom Formats | v | | | Radarr Clear all Custom Formats | v | v |
| Radarr Scores | v | v | | Radarr Scores | v | v |
| Radarr Quality Settings (File Size) | v | v | | Radarr Quality Settings (File Size) | v | v |
| Radarr Naming Scheme | v | | | Radarr Naming Scheme | v | v |
| Radarr Quality Profiles | | v | | Radarr Quality Profiles | | v |
| Sonarr v3 Release Profile RegEx | v | v | | Sonarr v3 Release Profile RegEx | v | v |
| Sonarr v4 Custom Formats | v | v | | Sonarr v4 Custom Formats | v | v |
| Sonarr v4 predefined config files available | | v | | Sonarr v4 predefined config files available | | v |
| Sonarr v3/v4 Clear all Release Profiles/Custom Formats | v | | | Sonarr v3/v4 Clear all Release Profiles | v | |
| Sonarr v3/v4 Clear all Custom Formats | v | v |
| Sonarr v3/v4 Scores | v | v | | Sonarr v3/v4 Scores | v | v |
| Sonarr v3/v4 Quality Settings (File Size) | v | v | | Sonarr v3/v4 Quality Settings (File Size) | v | v |
| Sonarr v3/v4 Naming Scheme | v | | | Sonarr v3/v4 Naming Scheme | v | v |
| Sonarr v3/v4 Quality Profiles | | v | | Sonarr v3/v4 Quality Profiles | | v |
------ ------

@ -56,10 +56,17 @@
![sabnzbd-categories](/Downloaders/SABnzbd/images/sabnzbd-categories.png) ![sabnzbd-categories](/Downloaders/SABnzbd/images/sabnzbd-categories.png)
Don't forget to look at the full SABnzbd Guides
- [SABnzbd - Basic Setup](/Downloaders/SABnzbd/Basic-Setup/)
- [SABnzbd - Paths and Categories](/Downloaders/SABnzbd/Paths-and-Categories/)
## NZBGet ## NZBGet
??? example "NZBGet Examples - [Click to show/hide]" ??? example "NZBGet Examples - [Click to show/hide]"
!!! danger "NZBGet development has been officially abandoned by the developer :bangbang:"
`Settings` => `PATHS` `Settings` => `PATHS`
![nzbget-settings-paths](images/nzbget-settings-paths.png) ![nzbget-settings-paths](images/nzbget-settings-paths.png)
@ -68,6 +75,11 @@
![nzbget-settings-categories](images/nzbget-settings-categories.png) ![nzbget-settings-categories](images/nzbget-settings-categories.png)
Don't forget to look at the full NZBGet Guides
- [NZBGet - Basic Setup](/Downloaders/NZBGet/Basic-Setup/)
- [NZBGet - Paths and Categories](/Downloaders/NZBGet/Paths-and-Categories/)
## qBittorrent ## qBittorrent
??? example "qBittorrent Examples - [Click to show/hide]" ??? example "qBittorrent Examples - [Click to show/hide]"
@ -76,6 +88,12 @@
![qbt-options-downloads](images/qbt-options-downloads.png) ![qbt-options-downloads](images/qbt-options-downloads.png)
Don't forget to look at the full qBittorrent Guides
- [qBittorrent - Basic Setup](/Downloaders/qBittorrent/Basic-Setup/)
- [qBittorrent - Paths](/Downloaders/qBittorrent/Paths/)
- [qBittorrent - How to add categories](/Downloaders/qBittorrent/How-to-add-categories/)
## Deluge ## Deluge
??? example "Deluge Example - [Click to show/hide]" ??? example "Deluge Example - [Click to show/hide]"
@ -84,6 +102,11 @@
![deluge-preferences-downloads](images/deluge-preferences-downloads.png) ![deluge-preferences-downloads](images/deluge-preferences-downloads.png)
Don't forget to look at the full Deluge Guides
- [Deluge - Basic Setup](/Downloaders/Deluge/Basic-Setup/)
- [Deluge - Using Labels](/Downloaders/Deluge/Using-Labels/)
## ruTorrent ## ruTorrent
??? example "ruTorrent Examples - [Click to show/hide]" ??? example "ruTorrent Examples - [Click to show/hide]"

@ -12,7 +12,16 @@
## Introduction ## Introduction
This page will provide you with guidance on how to install several Docker images to your Synology system. We highly recommend to read the full guide, that way you have a better understanding of what you do, in case you later decide to make changes. This page will provide you with guidance on how to install several Docker images related to the Servarr apps to your Synology. We highly recommend to read the full guide, that way you have a better understanding of what you do, in case you later decide to make changes.
## Summary
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.
1. Set permissions to all folders related in the shares.
1. Run and execute docker commands to start the containers.
### Automated Script ### Automated Script
@ -47,17 +56,11 @@ This page will provide you with guidance on how to install several Docker images
## Install Docker ## Install Docker
You need to install Docker from the `Package Center`. This should also create a share named `docker`, check File Station if it is present. You need to install Docker / Container Manager from the `Package Center`. This should also create a share named `docker`, check File Station if it is present.
## Create the main share ## Create the main share
!!! warning We will create and use a new share named `data` (lowercase) for all your library media and downloads.
To get Hardlinks and Atomic-Moves working with your Synology you will need to make use of **ONE** share with subfolders.
We will use a new share named `data` (lowercase) for all your library media.
Later in this guide, we will fill this share with subfolders.
To create a new share: To create a new share:
@ -65,27 +68,27 @@ To create a new share:
![!create_share](images/create_share.png) ![!create_share](images/create_share.png)
Name this shared folder `data`. You can disable the trash can. Click next until you are done. Name this shared folder `data`. You can disable the trash can, up to you. Click next until you are done.
## Create a user ## Create a user
For this, we are going to create a new user that only has access to the share(s) that we use for this guide. We are going to create a new user that only has access to the share(s) that we use for the containers to run as. You rather not have the containers run as an admin/root user.
Go to `Control Panel` > `User & Group` Go to `Control Panel` > `User & Group`
In the `User` section, create a new user. Name it whatever you like, but for this guide we will use `docker`. In the `User` section, create a new user. Name it whatever you like, but for this guide we will use the name `docker`.
![!adduser](images/adduser.PNG) ![!adduser](images/adduser.PNG)
Fill out the rest of the information, generate a password or type your own. Fill out the rest of the information, generate a password or type your own.
Click next, you will now be able to select which group this user will belong to, it should only be `users`. Click `Next`. Click next, you will now be able to select which group this user will belong to, it should only be the group `users`. Click `Next`.
### Assign shared folder permissions ### Assign shared folder permissions
In this screen you will be able to select which Shares this user will have access to, click `No Access` on the top, this will deny all access. In the next screen you will be able to select which Shares this user will have access to, click `No Access` on the top, this will deny all access.
Now only select `Read/Write` on the shares `docker` and `data`. Now **only** select `Read/Write` on the shares `docker` and `data` (the share we created earlier).
![!Assign shared folders permissions](images/adduser_2.PNG) ![!Assign shared folders permissions](images/adduser_2.PNG)
@ -93,7 +96,7 @@ Click `Next` until you reach `Assign application permissions`
### Assign application permissions ### Assign application permissions
In this screen you will be able to select which application this user will have access to, Check `Deny` for all applications. In this screen you will be able to select which application this user will have access to. Check `Deny` for all applications.
![!Assign application permissions](images/adduser_3.PNG) ![!Assign application permissions](images/adduser_3.PNG)
@ -102,7 +105,7 @@ Continue to click `Next` until you are finished.
## SSH ## SSH
You are mostly going to use the terminal. Some parts will need the Synology web GUI. You are mostly going to use the terminal. Some parts will need the Synology web GUI.
To enable terminal, you need to enable SSH in the Synology Settings. To enable terminal access, you need to enable SSH in the Synology Settings.
`Control Panel` > `Terminal & SNMP` > `Enable SSH service` `Control Panel` > `Terminal & SNMP` > `Enable SSH service`
@ -112,64 +115,41 @@ Then use a program like [Putty](https://www.putty.org/){:target="_blank" rel="no
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. Enter the login information of a Synology user account that has admin priveliges, as only members of the 'administrators' user group are able to use SSH.
If you get a popup asking if you want to trust the key, If you get a message asking if you want to trust the key, just press `OK` or `ACCEPT`.
Just press `OK` or `ACCEPT`
### PUID and PGID ### PUID and PGID
In order for the Docker container to access the shares on the Synology, we need to know the user ID (PUID) and group ID (PGID) from the `docker` user we just created. In order for the Docker container to access the shares on the Synology, we need to know the user ID (PUID) and group ID (PGID) from the `docker` user we just created.
Go into your terminal app, login to your synology ssh. Once logged in to the terminal type `id docker`. If you used a different username, change `docker` to the one you used.
Once logged in type `id $user`. Change $user to the newly created username `docker`.
![!synology-id](images/synology-id.png) ![!synology-id](images/synology-id.png)
This will show you the UID (aka PUID). This will show you the UID (aka PUID).
Which in this screenshot is `1035` for the docker user Which in the screenshot above is `1035` for the docker user and the GID (aka PGID) which is `100` for the users group.
and the GID (aka PGID) which is `100` for the users group. Save these values for later use.
Remember these values for later use.
!!! warning
It is not recommended to use (anymore) your admin/main user account. That is why we just created a new user.
------
## Folder Structure
For this example we're going to make use of the share called `data`. ## Create Folder Structure
On the host (Synology) terminal you will need to add `/volume1/` before it. So `/volume1/data` Let's create a good folder structure on the shares we use (`docker` and `data`). This will be done with a few commands.
The `data` folder has sub-folders for `torrents` and `usenet` and each of these have sub-folders for `tv`, `movie` and `music` downloads to keep things neat. The `library` folder has nicely named `tv`, `movies` and `music` sub-folders, this is your library and what youd pass to Plex, Emby or JellyFin. 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.*
These subfolders you need to create your self.
*I'm using lower case on all folder on purpose, being Linux is case sensitive.*
{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !} {! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
{! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !} {! include-markdown "../../../includes/hardlinks/bad-path-suggestion.md" !}
<!-- --8<-- "includes/hardlinks/bad-path-suggestion.md" --> <!-- --8<-- "includes/hardlinks/bad-path-suggestion.md" -->
{! include-markdown "../../../includes/hardlinks/breakdown-folder-structure-synology.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:
<!-- --8<-- "includes/hardlinks/breakdown-folder-structure.md" -->
------
### Create the needed subfolder ### If you use usenet
Here we will create the needed subfolders for your media library and also for your preferred download client.
If you use both then run both commands
#### If you use usenet
```bash ```bash
mkdir -p /volume1/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv,movies,music}} mkdir -p /volume1/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv,movies,music}}
``` ```
#### If you use torrents ### If you use torrents
```bash ```bash
mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}} mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}}
@ -179,9 +159,8 @@ mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}}
### Appdata ### Appdata
Your appdata will be stored in `/volume1/docker/appdata/{appname}` Your application data will be stored in the `docker` share in the folder called `appdata` (`/volume1/docker/appdata`)
These `{appname}` sub folders you need to create your self. (*This is a limitation of the Synology*) Create these folders with command below, or create them in File Station manually.
We're going to do this in Putty or a similar program.
```bash ```bash
mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,pullio} mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,pullio}
@ -191,10 +170,6 @@ You can add your own sub folders for your download client(s) using the command a
So your appdata folder will look like this. So your appdata folder will look like this.
```bash
ls -al /volume1/docker/appdata
```
```none ```none
docker docker
└── appdata └── appdata
@ -203,7 +178,8 @@ docker
├── bazarr ├── bazarr
├── plex ├── plex
├── pullio ├── pullio
└── (your download client, i.e. nzbget; sabnzbd; qbittorrent) ├── (your download client, i.e. nzbget; sabnzbd; qbittorrent)
└── (other applications)
``` ```
------ ------
@ -225,26 +201,26 @@ Download this [docker-compose.yml](https://raw.githubusercontent.com/TRaSH-/Guid
wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml -P /volume1/docker/appdata/ wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/docker-compose.yml -P /volume1/docker/appdata/
``` ```
### Whats included and Whats not included ### What's included in the compose and what is not included
??? question "What's included and What's not included - [Click to show/hide]"
This docker-compose file will have the following docker containers included. This docker-compose file will have the following docker containers included.
```none
- Radarr - Radarr
- Sonarr - Sonarr
- Bazarr (Subtitle searcher and downloader) - Bazarr (Subtitle searcher and downloader)
- Plex - Plex
```
What's not included (and where are the download clients?). What's not included (and where are the download clients?).
I didn't add a download client to it, because it depends on what you prefer (usenet/torrent) and which client you prefer, so I created a new [Repository](https://github.com/TRaSH-/Guides-Synology-Templates/tree/main/templates){:target="_blank" rel="noopener noreferrer"} on Github where I 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 `.yml` file in to the main `docker-compose.yml`, the template also has the command what you need to use to create the [appdata](#appdata) folder that we explained earlier. 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 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 so you got your important stuff together. 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 ```bash
wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env -P /volume1/docker/appdata/ wget https://raw.githubusercontent.com/TRaSH-/Guides-Synology-Templates/main/docker-compose/.env -P /volume1/docker/appdata/
@ -275,7 +251,7 @@ The `.env` file we downloaded holds the variables/information you need to change
#### Pullio - Auto update docker-compose the correct way #### Pullio - Auto update docker-compose the correct way
Pullio allows you to automatically update your containers. And send you a notification through various means. In my setup, I use a Discord Webhook. Pullio allows you to automatically update your containers. And send you a notification through various means. We use a Discord Webhook.
First you need to download Pullio First you need to download Pullio
@ -287,13 +263,13 @@ First you need to download Pullio
sudo chmod +x /usr/local/bin/pullio sudo chmod +x /usr/local/bin/pullio
``` ```
For Pullio to work, you will need to create in your Task Scheduler a "Scheduled Task" that runs for example at 4am at night with root privileges. 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.
`Control Panel` > `Task Scheduler` > click `Create` > choose `Scheduled task - user defined script` `Control Panel` > `Task Scheduler` > click `Create` > choose `Scheduled task - user defined script`
Give the task a name so you know what it does. Choose user `root`. Give the task a name so you know what it does. Choose user `root`.
In the `Schedule` tab choose whenever you want it to check for updates. In the `Schedule` tab choose when and how often you want it to check for updates.
At `Task Settings` tab, add the following line in the Run Command section: At `Task Settings` tab, add the following line in the Run Command section:
@ -303,7 +279,7 @@ 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. 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/pullio/){:target="_blank" rel="noopener noreferrer"} More info about Pullio [HERE](https://hotio.dev/scripts/pullio/){:target="_blank" rel="noopener noreferrer"}
------ ------
@ -311,8 +287,10 @@ More info about Pullio [HERE](https://hotio.dev/pullio/){:target="_blank" rel="n
Now we need to make sure that the newly created files and folders have the correct permissions. Now we need to make sure that the newly created files and folders have the correct permissions.
If you have an existing library, it is advised to move these to the new `data` share prior to running the commands below.
!!! note !!! note
If you're using a different user than `docker` (the user generated in the beginning), then you need to change the `docker:users` part in the commands below!!! 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 ```bash
sudo chown -R docker:users /volume1/data /volume1/docker sudo chown -R docker:users /volume1/data /volume1/docker
@ -323,7 +301,7 @@ sudo chmod -R a=,a+rX,u+w,g+w /volume1/data /volume1/docker
``` ```
!!! note !!! note
If you copy files from a different library into the newly created library, you need to rerun these commands. !!! If you move files from a different library into the newly created library afterwards, you need to rerun these commands. !!!
------ ------
@ -331,9 +309,9 @@ sudo chmod -R a=,a+rX,u+w,g+w /volume1/data /volume1/docker
!!! tip !!! 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 !!! 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. If you had previous installed apps, make a backup of their config folders or backup through the webui of the app.
When you did all the above steps you only need to run the following commands: If you have followed all the steps and your compose file is ready, run the following commands:
```bash ```bash
cd /volume1/docker/appdata cd /volume1/docker/appdata
@ -343,15 +321,15 @@ cd /volume1/docker/appdata
sudo docker-compose up -d sudo docker-compose up -d
``` ```
You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then look at the error what it says and try to fix it. If you still got issues then put your used docker-compose.yml on [0bin](https://0bin.net/){:target="_blank" rel="noopener noreferrer"} and join the guides-discord [here](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} and provide the pastebin link with the error, have patience because of timezone differences. 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.
------ ------
**Don't forget to look at the [Examples](/Hardlinks/Examples/) how to setup the paths inside your applications.** **If you need help setting up the applications, look at the [Examples](/Hardlinks/Examples/) how to setup the paths inside your applications.**
!!! warning !!! warning
If you need to do any changes, only edit the `docker-compose.yml` file. To activate the changes, run the command `sudo docker-compose up -d` again, from within the `/volume1/docker/appdata` folder. 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. Any changes you do/did in the GUI will be reverted when you run the docker-compose command.

@ -102,7 +102,7 @@ Click `Submit` once complete.
Navigate to Services and click the edit icon under `Actions` on the `NFS` row. Navigate to Services and click the edit icon under `Actions` on the `NFS` row.
Enabling `NFSv4` is optional, but I generally prefer it since NFSv4 has some improvements over NFSv3. Make sure to check `Allow non-root mount` under `Other Options`. Enabling `NFSv4` is optional. If you wish to do so you will need to ensure that your NAS and host are on the same domain (verify with `hostname -d`), otherwise you'll run into permission issues (indicated by `nobody:4294967294` when checking files). Alternatively, enable `NFSv3 ownership model for NFSv4` to avoid the domain requirements. Make sure to check `Allow non-root mount` under `Other Options`.
One of the most important options here is the `Number of servers` setting. If you click on the help icon you'll see the help text for this setting, which indicates that you should keep this less than or equal to the number of CPUs reported by `sysctl -n kern.smp.cpus` to limit CPU context switching. One of the most important options here is the `Number of servers` setting. If you click on the help icon you'll see the help text for this setting, which indicates that you should keep this less than or equal to the number of CPUs reported by `sysctl -n kern.smp.cpus` to limit CPU context switching.

@ -1,56 +1,88 @@
# Unraid # unRAID
!!! note !!! 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.
The first thing you need to do is forget the suggested paths from the Spaceinvader One YouTube Tutorials,
and don't use the predefined paths from the unraid templates.
(Spaceinvader One YouTube guides are great to learn how to start with unraid or how to setup certain applications, and yes I did and still do use them. Probably the main reason why he's using those path is because they are predefined in the template)
------ ------
## Preparation ## Preparation
Make sure hardlinks support is enabled in your `Settings` => `Global Share Settings`. Make sure `Tunable (support Hard Links)` is enabled in your `Settings` => `Global Share Settings`.
=== "unRAID 6.12"
![Enable Hardlink support (New)](images/unraid-enable-hardlinks_612.png)
=== "unRAID 6.11"
![Enable Hardlink support](images/unraid-enable-hardlinks.png) ![Enable Hardlink support](images/unraid-enable-hardlinks.png)
## Create the main share ## Create the main share
!!! warning "To get Hardlinks and Atomic-Moves working with Unraid,<br>You will need to make use of <u>**ONE**</u> share with subfolders." !!! warning "To get Hardlinks and Atomic-Moves working with unRAID,<br>You will need to make use of <u>**ONE**</u> share with subfolders."
For this example I'm using my own setup and preferred share `data`. In this example, I'm using my own setup and the preferred share `data`.
Go to your dashboard and on the top select `shares` select `add share` . Go to your dashboard and select `Shares` on the navigation bar, then choose `Add Share`.
=== "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) ![!unraid-main-share](images/unraid-main-share.png)
1. use `data` 1. Use `data`
1. if you got a cache drive and want to make use of it put it on `Yes` or keep it disabled (Hardlinks will stay in tact if you're using the cache) 1. Set up your share with the applicable settings.
1. click on `ADD SHARE`
=== "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`
!!! note !!! note
Keep in mind regarding the use of the Cache drive, The mover can't move files that are in use, like when seeding with torrents. You will need to stop/pause the torrents so the mover can move them to your Array. Keep in mind, regarding the use of the cache drive, unRAID's integrated mover cannot move files that are in use, like seeding torrents. You will need to stop/pause the torrents so the mover can move the files from the cache to your array.
!!! tip "If you use qBittorrent you can automate the process by following the following Guide [HERE](/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/){:target="_blank" rel="noopener noreferrer"}" !!! tip "If you use qBittorrent you can automate the process by following the following Guide [HERE](/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent/){:target="_blank" rel="noopener noreferrer"}<br>If you use Deluge you can automate the process by following the following Guide [HERE](/Downloaders/Deluge/Tips/Unraid-Mover/){:target="_blank" rel="noopener noreferrer"}"
With Usenet you won't have any issues. With Usenet, you won't have any issues.
------ ------
## Folder Structure ## Folder Structure
On the host (Unraid) you will need to add `/mnt/user` before it. **So `/mnt/user/data`** On the host (unRAID) you will need to add `/mnt/user` before it. **So `/mnt/user/data`**
The `data` folder has sub-folders for `torrents` and `usenet` and each of these have sub-folders for `tv`, `movie` and `music` downloads to keep things neat. The `media` folder has nicely named `TV`, `Movies` and `Music` sub-folders, this is your library and what youd pass to Plex, Emby or JellyFin. {! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
These subfolders you need to create your self, you can use krusader or winscp to create them or any other way you prefer. *I'm using lower-case on all folders on purpose, being Linux is case-sensitive.*
{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !} 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.
*I'm using lower case on all folder on purpose, being Linux is case sensitive.* You will need to create these subfolders yourself. You can do this in any way you prefer, but the fastest way to create all the necessary subfolders would be to use the terminal (explained below). Alternatively, Krusader or WinSCP are popular choices if you are unsure.
### 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.
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.
#### If you use usenet
```bash
mkdir -p /mnt/user/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv,movies,music}}
```
#### If you use torrents
```bash
mkdir -p /mnt/user/data/{torrents/{tv,movies,music},media/{tv,movies,music}}
```
------ ------
@ -61,15 +93,15 @@ These subfolders you need to create your self, you can use krusader or winscp to
## Setting up the containers ## Setting up the containers
After you created all the needed folders it's time to setup the paths in the docker containers. After you've created all the necessary folders, it's time to set up the Docker container's paths.
Go to your dashboard and select your docker container you want to edit or if you're starting fresh add the docker containers you want to use or prefer. Go to your dashboard and select the Docker container you want to edit, or, if you're starting fresh, add the container/App you want to use.
Unraid makes it actually pretty clear what's the Host Path and what's the Container Path. unRAID makes it pretty clear which is the Host Path and Container Path.
`Container Path:` => The path that will be used inside the container. `Container Path:` => The path that will be used from inside the container.
`Host Path:` => The path on your Unraid Server (The Host). `Host Path:` => The actual/absolute path used on your unRAID Server (The Host).
------ ------
@ -85,7 +117,7 @@ qBittorrent, Deluge, ruTorrent
!!! info !!! info
The reason why we use `/data/torrents/` for the torrent client is because it only needs access to the torrent files. In the torrent software settings, youll need to reconfigure paths and you can sort into sub-folders like `/data/torrents/{tv|movies|music}`. The reason why we use `/data/torrents/` for the torrent client is because it only needs access to the torrent data. In the torrent software settings, youll need to configure your categories/labels to utilize the right path for specific content. You can sort into sub-folders like `/data/torrents/{tv|movies|music}`.
{! include-markdown "../../../includes/hardlinks/docker-tree-torrents.md" !} {! include-markdown "../../../includes/hardlinks/docker-tree-torrents.md" !}
@ -103,7 +135,7 @@ NZBGet or SABnzbd
!!! info !!! info
The reason why we use `/data/usenet/` for the usenet client is because it only needs access to the usenet files. In the usenet software settings, youll need to reconfigure paths and you can sort into sub-folders like `/data/usenet/{tv|movies|music}`. The reason why we use `/data/usenet/` for the usenet client is that it only needs access to the usenet data. In the usenet software settings, youll need to configure your paths to sort content into sub-folders like `/data/usenet/{tv|movies|music}`.
{! include-markdown "../../../includes/hardlinks/docker-tree-usenet.md" !} {! include-markdown "../../../includes/hardlinks/docker-tree-usenet.md" !}
@ -121,7 +153,7 @@ Sonarr, Radarr and Lidarr
!!! info !!! info
Sonarr, Radarr and Lidarr gets access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete. Sonarr, Radarr and Lidarr get access to everything because the download folder(s) and media folder will need to look like, and be one mount, on the file system. Hard links will work properly and any moves will be atomic, rather than copying and deleting.
{! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !} {! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !}
@ -139,7 +171,7 @@ Plex, Emby, JellyFin and Bazarr
!!! info !!! info
Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders. Plex, Emby, JellyFin and Bazarr only need access to your media library, which can have any number of sub-folders (Movies, Kids Movies, TV, Documentary TV and/or Music).
{! include-markdown "../../../includes/hardlinks/docker-tree-media.md" !} {! include-markdown "../../../includes/hardlinks/docker-tree-media.md" !}
@ -149,19 +181,20 @@ Plex, Emby, JellyFin and Bazarr
![!unraid-final-result](images/unraid-final-result.png) ![!unraid-final-result](images/unraid-final-result.png)
**Don't forget to look at the [Examples](/Hardlinks/Examples/) how to setup the paths inside your applications.** ### Examples how to set up your paths INSIDE your applications
**Don't forget to look at the [Examples](/Hardlinks/Examples/) of how to set up your paths INSIDE your applications.**
### Video Tutorial ## Video Tutorial
!!! tip "" !!! tip ""
Big Thanks to IBRACORP for noticing this Guide and creating a Video covering this unraid section. Big Thanks to IBRACORP for noticing this Guide and creating a Video covering this unRAID section.
The reason why I added the video to the end is because I want the user to actually learn and understand why it's recommended to use this folder structure, before going straight to the YouTube video. The reason why I have this video at the end is because I want the users to ACTUALLY LEARN and UNDERSTAND why it's recommended to use this folder structure prior to going straight to a YouTube video.
<iframe width="560" height="315" src="https://www.youtube.com/embed/AMcHsQJ7My0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube.com/embed/AMcHsQJ7My0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
Also check out other videos from IBRACORP [HERE](https://www.youtube.com/c/IBRACORP/videos){:target="_blank" rel="noopener noreferrer"} Check out other videos from IBRACORP [HERE](https://www.youtube.com/c/IBRACORP/videos){:target="_blank" rel="noopener noreferrer"}
{! include-markdown "../../../includes/support.md" !} --8<-- "includes/support.md"
<!-- --8<-- "includes/support.md" -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

@ -4,14 +4,14 @@ You recently switched to a proper setup that supports Hardlinks and Instant Move
And you would like to replace copies with hardlinks ? And you would like to replace copies with hardlinks ?
If your Operating System supports it you could make use of [Jdupes](https://github.com/jbruchon/jdupes). If your Operating System supports it you could make use of [Jdupes](https://codeberg.org/jbruchon/jdupes).
## Usage ## Usage
!!! info "" !!! info ""
I won't cover every command :bangbang: I won't cover every command :bangbang:
If you want to know what else [Jdupes](https://github.com/jbruchon/jdupes) can do please read the manual. If you want to know what else [Jdupes](https://codeberg.org/jbruchon/jdupes) can do please read the manual.
!!! tip !!! 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. 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.

@ -8,7 +8,7 @@
Get 50% Off ALL Plans (Anonymous VPN, Anonymous VPN Pro, Anonymous VPN Premium) Get 50% Off ALL Plans (Anonymous VPN, Anonymous VPN Pro, Anonymous VPN Premium)
``` ```
TRaSH-Guides-2023 TRaSH-Guides-2024
``` ```
[![torguard-FreeTrial-270x90](images/torguard/torguard-FreeTrial-728x90.gif)](https://torguard.net/aff.php?aff=5575){:target="_blank" rel="noopener noreferrer"} [![torguard-FreeTrial-270x90](images/torguard/torguard-FreeTrial-728x90.gif)](https://torguard.net/aff.php?aff=5575){:target="_blank" rel="noopener noreferrer"}
@ -18,6 +18,8 @@
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. 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.
!!! warning "If the US server doesn't work for you use another country"
[Source Torguard](https://torguard.net/blog/why-torguard-is-blocking-bittorrent-on-us-servers/){:target="_blank" rel="noopener noreferrer"}. [Source Torguard](https://torguard.net/blog/why-torguard-is-blocking-bittorrent-on-us-servers/){:target="_blank" rel="noopener noreferrer"}.
[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"}. [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"}.
@ -68,6 +70,8 @@ For the best speed it's recommended to choose the one nearest to your location.
!!! tip "" !!! tip ""
Sometimes you get better speeds if you use one of your neighboring countries. 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"
Let's use for this example: `USA Miami` and copy/paste the Hostname `us-fl.torguard.org`. Let's use for this example: `USA Miami` and copy/paste the Hostname `us-fl.torguard.org`.
![!Torguard Global VPN Network](images/torguard/globalvpnnetwork-list.png) ![!Torguard Global VPN Network](images/torguard/globalvpnnetwork-list.png)

@ -11,7 +11,7 @@ If you're using a system with a GUI (Synology, unRAID, OMV, etc.) it's not alway
!!! warning !!! warning
Please don't use screenshots to provide the info as they aren't always revealing all the needed info Please don't use screenshots to provide the info as they aren't always revealing all the needed info
Use one of the following from terminal(puTTy) to get the docker compose with or without the use of `sudo`. 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.
```bash ```bash
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose CONTAINER_NAME CONTAINER_NAME2 sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose CONTAINER_NAME CONTAINER_NAME2
@ -23,9 +23,12 @@ sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/
sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose sonarr radarr bazarr nzbget sudo docker run --rm -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/red5d/docker-autocompose sonarr radarr bazarr nzbget
``` ```
Paste the results on one of the following sites. !!! 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](https://logs.notifiarr.com/) (Recommended) - [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) - [Github Gist](https://gist.github.com){:target="_blank" rel="noopener noreferrer"} (Alternative)
- [hastebin.com](https://hastebin.com){:target="_blank" rel="noopener noreferrer"} - [hastebin.com](https://hastebin.com){:target="_blank" rel="noopener noreferrer"}
- [privatebin.net](https://privatebin.net/){:target="_blank" rel="noopener noreferrer"} - [privatebin.net](https://privatebin.net/){:target="_blank" rel="noopener noreferrer"}

@ -7,7 +7,7 @@
### How to accomplish the Golden Rule ### How to accomplish the Golden Rule
- For Sonarr check [HERE](/Sonarr/Sonarr-Release-Profile-RegEx/#golden-rule){: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"} - For Radarr check [HERE](/Radarr/Radarr-collection-of-custom-formats/#x265-hd){:target="_blank" rel="noopener noreferrer"}
## Some extra info about 4K/X265 ## Some extra info about 4K/X265

@ -1,4 +1,7 @@
nav: nav:
- Home: index.md - Home: index.md
- Tips - 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/ - Profiles: /Plex/profiles/

@ -1,4 +0,0 @@
nav:
- Suggested Plex Media Server Settings: Plex-media-server.md
- Optimal Plex Client Settings: Optimal-plex-client-settings.md
- JBOPS 4K Transcode Stopping with Tautulli: 4k-transcoding.md

@ -278,7 +278,7 @@ A comma-separated list of URLs (either HTTP or HTTPS), which will be published t
![!Settings - Network - Webhooks](images/settings-network-webhooks.png) ![!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](/Notifiarr/Quick-Start/){: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"}
------ ------

@ -0,0 +1,109 @@
# What does my Media Player Support
We've created an Excel sheet with several tested Media Player devices with info that our community has provided.
We hope this Excel sheet will be helpful for everyone looking for a reliable Media Player device.
Do you see a missing Player/Product? Are you able to provide the needed info? Please join [TRaSH Guides Discord](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"}
??? question "How can I provide info on a missing player? What do I need to provide? - [Click to show/hide]"
- Currently, it's only possible to provide info if the playback is seen in Tautulli.
- Player or Product that can run the Plex client directly or indirectly (Infuse, Plex Kodi Connect, Plex2Zidoo, etc)
- Preferably a TV that can do Dolby Vision, but we also need HDR10+ results.
- Player and Product info can be seen in Tautulli.
- When doing a playback test for HDR formats provide screenshots of what Tautulli and your TV show, along with whatever other devices you have that show what formats are being used.
- When doing an audio format test provide screenshots from Tautulli and your AVR.
- Provide this info in [TRaSH Guides Discord](https://trash-guides.info/discord){:target="_blank" rel="noopener noreferrer"} in #request-suggestions with a title starting with: `Test Media Player <your tested device>`
## What does the spreadsheet cover
This sheet will only cover Players/Products that can run the Plex client directly or indirectly (*Jellyfin/Emby isn't covered **yet** due to the lack of a proper Tautulli app and feedback/info from users*).
!!! info "Jellyfin/Emby"
While these principles are based on Plex and the capabilities of certain devices, the capabilities of these devices also apply to JellyFin and Emby. Assuming that it's possible to do the equivalent streaming method (direct or indirect play) with your media server, the hardware should act the same as if Plex was used.
The following aspects are covered
### Does it support the most common HDR formats
The sheet also has notes added for extra info
- Dolby Vision Profile 5 (*does not have a HDR10 baselayer, so cannot fallback to HDR10*)
- Dolby Vision Profile 7 (*DV + HDR10 baselayer, so it can fallback to HDR10*)
- Dolby Vision Profile 8 (*DV + HDR10 baselayer, so it can fallback to HDR10*)
- HDR10
- HDR10+ (*HDR10+ has also a HDR10 baselayer, so it can fallback to HDR10*)
#### Which Profile is used by what
- Profile 5 => WEBDL (Streaming Services)
- Profile 7 => Untouched Remuxes and BR-DISK
- Profile 8 => Encodes, Hybrid Remuxes, Hybrid WEBDL, and in some cases standard WEBDL like from Hulu
### Does it support audio passthrough in the most common formats
This allows for the best audio quality as the audio signal is not altered or compressed in any way before reaching the AV receiver or soundbar. This is especially important for high-quality audio formats such as Dolby TrueHD or DTS-HD Master Audio.
By using audio passthrough, you can ensure that you are getting the best audio experience possible when watching movies or listening to music through your home theater system. It allows you to take full advantage of the capabilities of your AVR/Soundbar and ensures that you are hearing the audio as it was intended to be heard by the content creators.
Overall, audio passthrough is the ideal way to send audio from your media server to your AV receiver or soundbar for the highest quality audio experience.
- TrueHD Atmos
- DTS X
- DD+ Atmos
- TrueHD
- DTS-HD MA
- FLAC/PCM
- DD+ (E-AC3)
- DTS
- AAC
- DD (AC3)
## Link to tested Media Player Devices
[Tested Media Players](https://docs.google.com/spreadsheets/d/15Wf_jy5WqOPShczFKQB28cCetBgAGcnA0mNOG-ePwDc/edit?usp=sharing){:target="_blank" rel="noopener noreferrer"}
!!! info "A lot of results have a note added that provides extra information, such as fallback HDR or audio formats, as well as other information that we've gathered from several sources."
---
## What should I do next with this info
The next thing to do is to setup a proper quality profile with the info you gathered from this sheet.
To make this easier we made a How to setup a quality profile for Radarr/Sonarr that has a flowchart to help you even more to decide what to choose.
### Radarr
[How to set up Quality Profiles](/Radarr/radarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences.
#### How to make use of HDR Formats for Radarr
- [How to set up Quality Profiles](/Radarr/radarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use
{! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
#### How to make use of Audio Formats for Radarr
- [How to set up Quality Profiles](/Radarr/radarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most use of Custom Formats and shows some specifics of my configuration. You can use
{! include-markdown "../../includes/cf/radarr-audio.md" !}
---
### Sonarr
[How to setup Quality Profiles](/Sonarr/sonarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences.
#### How to make use of HDR Formats for Sonarr
- [How to setup Quality Profiles](/Sonarr/sonarr-setup-quality-profiles){:target="_blank" rel="noopener noreferrer"} - Explains how to make the most of Custom Formats and shows some specifics of my configuration. You can use these examples to get an idea of how to set up your preferences.
{! include-markdown "../../includes/cf/sonarr-all-hdr-formats.md" !}
#### How to make use of Audio Formats for Sonarr
At the moment I decided not to add `Audio Advanced` Custom Formats to the WEB profile. You will hardly find HD audio with WEB-DL (Most newer WEBDL will have Atmos). If you also want HD audio formats, I would suggest going for Remuxes.
--8<-- "includes/support.md"

File diff suppressed because it is too large Load Diff

@ -13,9 +13,23 @@ The Tokens not available in the release won't be used/shown.
------ ------
## Preparation
Go to `Settings` => `Media Management` and make sure that `Show Advanced` at the top is enabled.
![Enable Advanced](images/radarr-show-adavanced.png)
Once you clicked on the button it should look like this and you should see all the advanced options.
![Unhide Advanced](images/unhide-advanced.png)
Finally, enable `Rename Movies` to reveal the movie renaming options.
![Enable Rename Movies](images/radarr-enable-rename.png)
## Standard Movie Format ## 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) 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." !!! warning "Starting from v4.2.2.6489, Radarr now supports Plex Multiple Edition tags in naming."
@ -25,6 +39,8 @@ This naming scheme is made to be compatible with the [New Plex Agent](https://fo
!!! danger "Only use `{edition-{Edition Tags}}` if you are prepared to have movies separated by edition<br>when using a merged Plex library - e.g., you keep both 1080p and 2160p versions of one movie.<br><br>For example if you have the `Directors Cut` and the `Extended Cut` for one movie, those will show up as two separate movies in your library.<br><br>Note that not using `{edition-{Edition Tags}}` will prevent Plex from recognizing the edition." !!! danger "Only use `{edition-{Edition Tags}}` if you are prepared to have movies separated by edition<br>when using a merged Plex library - e.g., you keep both 1080p and 2160p versions of one movie.<br><br>For example if you have the `Directors Cut` and the `Extended Cut` for one movie, those will show up as two separate movies in your library.<br><br>Note that not using `{edition-{Edition Tags}}` will prevent Plex from recognizing the edition."
### Plex
```bash ```bash
{{ radarr['naming']['radarr-naming']['file']['default'] }} {{ radarr['naming']['radarr-naming']['file']['default'] }}
``` ```
@ -33,27 +49,27 @@ This naming scheme is made to be compatible with the [New Plex Agent](https://fo
`The Movie Title (2010) {imdb-tt0066921} {edition-Ultimate Extended Edition} [IMAX HYBRID][Bluray-1080p Proper][3D][DV HDR10][DTS 5.1][x264]-EVOLVE` `The Movie Title (2010) {imdb-tt0066921} {edition-Ultimate Extended Edition} [IMAX HYBRID][Bluray-1080p Proper][3D][DV HDR10][DTS 5.1][x264]-EVOLVE`
For Jellyfin/Emby: #### Plex Anime
```bash ```bash
{{ radarr['naming']['radarr-naming']['file']['emby'] }} {{ radarr['naming']['radarr-naming']['file']['anime'] }}
``` ```
??? abstract "RESULTS: - [Click to show/hide]" ??? abstract "RESULTS: - [Click to show/hide]"
`The Movie Title (2010) [imdbid-tt0066921] {edition-Ultimate Extended Edition} [IMAX HYBRID][Bluray-1080p Proper][3D][DV HDR10][DTS 5.1][x264]-EVOLVE` `The Movie Title (2010) {imdb-tt0066921} {edition-Ultimate Extended Edition} [Surround Sound x264][Bluray-1080p Proper][3D][DTS 5.1][DE][10bit][AVC]-EVOLVE`
If you do Anime ### Emby
```bash ```bash
{{ radarr['naming']['radarr-naming']['file']['anime'] }} {{ radarr['naming']['radarr-naming']['file']['emby'] }}
``` ```
??? abstract "RESULTS: - [Click to show/hide]" ??? abstract "RESULTS: - [Click to show/hide]"
`The Movie Title (2010) {imdb-tt0066921} {edition-Ultimate Extended Edition} [Surround Sound x264][Bluray-1080p Proper][3D][DTS 5.1][DE][10bit][AVC]-EVOLVE` `The Movie Title (2010) [imdbid-tt0066921] - {edition-Ultimate Extended Edition} [IMAX HYBRID][Bluray-1080p Proper][3D][DV HDR10][DTS 5.1][x264]-EVOLVE`
For Jellyfin/Emby: #### Emby Anime
```bash ```bash
{{ radarr['naming']['radarr-naming']['file']['anime-emby'] }} {{ radarr['naming']['radarr-naming']['file']['anime-emby'] }}
@ -61,7 +77,27 @@ For Jellyfin/Emby:
??? abstract "RESULTS: - [Click to show/hide]" ??? abstract "RESULTS: - [Click to show/hide]"
`The Movie Title (2010) [imdbid-tt0066921] {edition-Ultimate Extended Edition} [Surround Sound x264][Bluray-1080p Proper][3D][DTS 5.1][DE][10bit][AVC]-EVOLVE` `The Movie Title (2010) [imdbid-tt0066921] - {edition-Ultimate Extended Edition} [Surround Sound x264][Bluray-1080p Proper][3D][DTS 5.1][DE][10bit][AVC]-EVOLVE`
### Jellyfin
```bash
{{ radarr['naming']['radarr-naming']['file']['jellyfin'] }}
```
??? abstract "RESULTS: - [Click to show/hide]"
`The Movie Title (2010) [imdbid-tt0066921] - {edition-Ultimate Extended Edition} [IMAX HYBRID][Bluray-1080p Proper][3D][DV HDR10][DTS 5.1][x264]-EVOLVE`
#### Jellyfin Anime
```bash
{{ radarr['naming']['radarr-naming']['file']['anime-jellyfin'] }}
```
??? abstract "RESULTS: - [Click to show/hide]"
`The Movie Title (2010) [imdbid-tt0066921] - {edition-Ultimate Extended Edition} [Surround Sound x264][Bluray-1080p Proper][3D][DTS 5.1][DE][10bit][AVC]-EVOLVE`
------ ------
@ -99,9 +135,7 @@ The filename can be Obscured where the Release naming isn't, especially when you
{{ radarr['naming']['radarr-naming']['folder']['default'] }} {{ radarr['naming']['radarr-naming']['folder']['default'] }}
``` ```
RESULT: <small>RESULT:</small> `The Movie Title (2010)`
`The Movie Title (2010)`
------ ------
@ -114,29 +148,33 @@ RESULT:
TMDb is usually better as it guarantees a match, IMDb only gets matched if the TMDb entry has the correct IMDb ID association. We don't actually talk to IMDb. TMDb is usually better as it guarantees a match, IMDb only gets matched if the TMDb entry has the correct IMDb ID association. We don't actually talk to IMDb.
#### Optional Movies Folder Format for the Plex Movies Scanner and Jellyfin/Emby #### 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.
For Plex: ##### Optional Plex
```bash ```bash
{{ radarr['naming']['radarr-naming']['folder']['plex'] }} {{ radarr['naming']['radarr-naming']['folder']['plex'] }}
``` ```
RESULT: <small>RESULT:</small> `The Movie Title (2010) {imdb-tt1520211}`
`The Movie Title (2010) {imdb-tt1520211}`
For Jellyfin/Emby: ##### Optional Emby
```bash ```bash
{{ radarr['naming']['radarr-naming']['folder']['emby'] }} {{ radarr['naming']['radarr-naming']['folder']['emby'] }}
``` ```
RESULT: <small>RESULT:</small> `The Movie Title (2010)`
##### Optional Jellyfin
```bash
{{ radarr['naming']['radarr-naming']['folder']['jellyfin'] }}
```
`The Movie Title (2010) [imdbid-tt1520211]` <small>RESULT:</small> `The Movie Title (2010) [imdbid-tt1520211]`
!!! tip !!! 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. 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.

@ -2,7 +2,7 @@
Here we will explain how to setup your own preferred language Custom Format, with a few examples. Here we will explain how to setup your own preferred language Custom Format, with a few examples.
!!! warning "Using language Custom Formats is not compatible with setting a preferred language in a quality profile in Radarr. You must use one or the other.<br>If you want to make use of the Custom Formats set the preferred language to `Any`." !!! warning "Using language Custom Formats is not compatible with setting a preferred language in a quality profile in Radarr. You must use one or the other.<br>If you want to make use of the Custom Formats set the preferred language to `Any`.<br><br>Sonarr doesn't have a preferred language in the quality profile, so this can be ignored if you're setting this up with Sonarr"
## Language Examples ## Language Examples
@ -24,7 +24,7 @@ With this Custom Format you will get only the Movie/TV Show with the original la
For this we're going to make use of so called reverse scoring. For this we're going to make use of so called reverse scoring.
Add the following json to your Radarr/Sonarr with a score of `-10000`. Add the following json to your Radarr/Sonarr with a score in your profile of `-10000`.
??? example "JSON - [Click to show/hide]" ??? example "JSON - [Click to show/hide]"
@ -44,7 +44,7 @@ With this Custom Format you will only get the Movie/TV Show in the English langu
For this we're going to make use of so called reverse scoring. For this we're going to make use of so called reverse scoring.
Add the following json to your Radarr/Sonarr with a score of `-10000`. Add the following json to your Radarr/Sonarr with a score in your profile of `-10000`.
??? example "JSON - [Click to show/hide]" ??? example "JSON - [Click to show/hide]"
@ -68,7 +68,7 @@ With this Custom Format you will only get the Movie/TV Show with Dutch and/or Fl
For this we're going to make use of so called reverse scoring. For this we're going to make use of so called reverse scoring.
Add the following json to your Radarr/Sonarr with a score of `-10000`. Add the following json to your Radarr/Sonarr with a score in your profile of `-10000`.
??? example "JSON - [Click to show/hide]" ??? example "JSON - [Click to show/hide]"
@ -87,7 +87,7 @@ Let's say you want German, but if German is not available then fall back to Orig
!!! info "For languages other than German, replace the German condition with language of your choice." !!! info "For languages other than German, replace the German condition with language of your choice."
Add the following json to your Radarr/Sonarr with a score of `-10000`. Add the following json to your Radarr/Sonarr with a score in your profile of `-10000`.
??? example "JSON - [Click to show/hide]" ??? example "JSON - [Click to show/hide]"
@ -95,7 +95,7 @@ Add the following json to your Radarr/Sonarr with a score of `-10000`.
[[% filter indent(width=4) %]][[% include 'json/guide-only/language-not-original-or-german.json' %]][[% endfilter %]] [[% filter indent(width=4) %]][[% include 'json/guide-only/language-not-original-or-german.json' %]][[% endfilter %]]
``` ```
Add the following json to your Radarr/Sonarr with a score of `10`. Add the following json to your Radarr/Sonarr with a score in your profile of `10`.
??? example "JSON - [Click to show/hide]" ??? example "JSON - [Click to show/hide]"
@ -113,7 +113,7 @@ Let's say you just want to prefer German and don't care if you get another rando
!!! info "For languages other than German, replace the German condition with language of your choice." !!! info "For languages other than German, replace the German condition with language of your choice."
Add the following json to your Radarr/Sonarr with a score of `10`. Add the following json to your Radarr/Sonarr with a score in your profile of `10`.
??? example "JSON - [Click to show/hide]" ??? example "JSON - [Click to show/hide]"
@ -135,7 +135,7 @@ In this example I will use Dutch and Flemish since a lot of Movies/TV Shows sinc
!!! info "For languages other than Dutch/Flemish, replace the Dutch/Flemish condition with language of your choice." !!! info "For languages other than Dutch/Flemish, replace the Dutch/Flemish condition with language of your choice."
Add the following json to your Radarr/Sonarr with a score of `10`. Add the following json to your Radarr/Sonarr with a score in your profile of `10`.
??? example "JSON - [Click to show/hide]" ??? example "JSON - [Click to show/hide]"
@ -175,7 +175,7 @@ Add the following json to your Radarr/Sonarr with a score of `10`.
??? question "Where does Radarr get the Original Language from? - [Click to show/hide]" ??? question "Where does Radarr get the Original Language from? - [Click to show/hide]"
Radarr makes use of [The Movie Database (TMDB)](https://www.themoviedb.org/){:target="_blank" rel="noopener noreferrer"}. Radarr makes use of [The Movie Database (TMDB)](https://www.themoviedb.org/){:target="_blank" rel="noopener noreferrer"}. As of February 12, 2023, Radarr has updated its metadata cache to use a movie's spoken language from TMDb as the original language, but only when there is a single spoken language listed for that movie on TMDb. In cases where multiple spoken languages are listed, Radarr will use the movie's designated original language from TMDb.
![!The Movie Database (TMDB) Original Language](images/original-language-tmdb.png) ![!The Movie Database (TMDB) Original Language](images/original-language-tmdb.png)

@ -1,39 +1,44 @@
# How to rename your folders # How to rename your folders
If you want to rename your current folder names (for example to your new naming scheme), you can do that with this little magic trick. If you need to rename your current folder names (for example, to a new naming scheme), you can do so with a little "magic trick".
![!radarr-wrong-folder-name](images/radarr-wrong-folder-name.png) ![!radarr-wrong-folder-name](images/radarr-wrong-folder-name.png)
Go to you movie overview Simply go to the movie overview section.
`Movies` `Movies`
On the top click on `Movie Editor` Click on `Edit Movies` (at the top)
![!radarr-movie-editor](images/radarr-movie-editor.png) ![!radarr-movie-editor](images/radarr-movie-editor.png)
After activating it you select the movie(s) from where you want to have the folder(s) to be renamed. Once you are in "edit" mode, you can select the movie(s) whose folders you want to be renamed.
![!radarr-movie-editor-select](images/radarr-movie-editor-select.png) ![!radarr-movie-editor-select](images/radarr-movie-editor-select.png)
1. If you want all your movie folders renamed to your new folder naming scheme you set earlier [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) from where you want to have the folder(s) to be renamed. 1. Select the movie(s) that you want to have the folder(s) renamed.
1. Choose the same `Root Folder` 1. At the bottom select `Edit`
A new popup will be shown: A new popup will be shown:
![!radarr-edit-selected-movies](images/radarr-edit-selected-movies.png)
Choose the same (current) root folder for your selected movies, and choose `Apply Changes`.
![!radarr-movie-editor-move-files-yes](images/radarr-movie-editor-move-files-yes.png) ![!radarr-movie-editor-move-files-yes](images/radarr-movie-editor-move-files-yes.png)
Select `Yes, Move the files` You will get a warning popup where you will need to choose `Yes, Move the files`
!!! warning !!! warning
If you have a large library, remote storage, cloud storage, or your path structure isn't well planned or doesn't support instant moves, then this process could take a while. Make sure you don't interrupt this process. If it stops before it's complete, it could result in quite the mess. 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.
Then Magic Then, Magic!
![!radarr-correct-folder-name](images/radarr-correct-folder-name.png) ![!radarr-correct-folder-name](images/radarr-correct-folder-name.png)
As you can see the folder has been renamed to the correct year following your naming scheme. As you can see, the folder has now been renamed to the new/updated naming scheme.
{! include-markdown "../../../includes/support.md" !} --8<-- "includes/support.md"
<!-- --8<-- "includes/support.md" -->

@ -4,8 +4,8 @@ In this guide I will try to explain how you can sync two (or more) Radarr/Sonarr
I'm going to show two different options on how you can setup your sync with two Radarr/Sonarr instances. I'm going to show two different options on how you can setup your sync with two Radarr/Sonarr instances.
- Option 1: This option is best used if you want a 1:1 copy of your Radarr/Sonarr instances as it'll sync everything - Option 1: This option is best used if you want a 1:1 copy of your Radarr/Sonarr instances as it'll sync everything.
- Option 2: This option is best used if you only want to have a subset of your library Movies/TV Shows as 4K/2160p (UHD) as it filters by quality profile - 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 "" !!! 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)
@ -160,6 +160,7 @@ You now only need to make use of `Sonarr 1`. When you got a TV show (or a movie
------ ------
[^1]: [^1]:
If you're interested in the 1080p streaming optimized quality profile you can join my [discord](https://trash-guides.info/discord) and get access to the Special Quality Profiles channel (access-to-sqp) by accepting the rules. If you're interested in the 1080p streaming optimized quality profile you can join my [discord](https://trash-guides.info/discord) and get access to the Special Quality Profiles channel (access-to-sqp) by accepting the rules.
This is a special quality profile I created for people who are really interested in it. This is a special quality profile I created for people who are really interested in it.
@ -198,5 +199,4 @@ You now only need to make use of `Sonarr 1`. When you got a TV show (or a movie
- **Daily**: Episodes released daily or less frequently that use year-month-day (2017-05-25) - **Daily**: Episodes released daily or less frequently that use year-month-day (2017-05-25)
- **Standard**: Episodes released with SxxEyy pattern - **Standard**: Episodes released with SxxEyy pattern
{! include-markdown "../../../includes/support.md" !} --8<-- "includes/support.md"
<!-- --8<-- "includes/support.md" -->

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 KiB

After

Width:  |  Height:  |  Size: 362 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

@ -103,6 +103,10 @@ This is a must-have for every Quality Profile you use. All these Custom Formats
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} {! 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 #### HD Bluray + WEB
@ -153,7 +157,7 @@ If you prefer High Quality UHD Encodes (Bluray-2160p)
{! include-markdown "../../includes/cf/radarr-audio.md" !} {! include-markdown "../../includes/cf/radarr-audio.md" !}
{! include-markdown "../../includes/cf/radarr-hdr-formats.md" !} {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
{! include-markdown "../../includes/french-guide/radarr-french-multi-audio-en.md" !} {! include-markdown "../../includes/french-guide/radarr-french-multi-audio-en.md" !}
@ -235,7 +239,7 @@ If you prefer 2160p Remuxes (Remux-2160p)
{! include-markdown "../../includes/cf/radarr-audio.md" !} {! include-markdown "../../includes/cf/radarr-audio.md" !}
{! include-markdown "../../includes/cf/radarr-hdr-formats.md" !} {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
{! include-markdown "../../includes/french-guide/radarr-french-multi-audio-en.md" !} {! include-markdown "../../includes/french-guide/radarr-french-multi-audio-en.md" !}
@ -271,8 +275,6 @@ 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"} - [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"} - [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"}
- [HDR Formats + DV (WEBDL)](/Radarr/radarr-setup-quality-profiles/#hdr-formats-dv-webdl){:target="_blank" rel="noopener noreferrer"}
- [HDR Formats + DV (WEBDL) + HDR10+ Boost](/Radarr/radarr-setup-quality-profiles/#hdr-formats-dv-webdl-hdr10-boost){:target="_blank" rel="noopener noreferrer"}
------ ------

@ -98,6 +98,10 @@ Ces Formats sont reconnus comme étant indispensables pour tous les Profils de Q
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} {! 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 #### HD Bluray + WEB
@ -150,7 +154,7 @@ Si vous préférez les encodages UHD de haute qualité (Bluray-2160p)
{! include-markdown "../../includes/cf/radarr-audio.md" !} {! include-markdown "../../includes/cf/radarr-audio.md" !}
{! include-markdown "../../includes/cf/radarr-hdr-formats.md" !} {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
{! include-markdown "../../includes/french-guide/radarr-french-multi-audio-fr.md" !} {! include-markdown "../../includes/french-guide/radarr-french-multi-audio-fr.md" !}
@ -234,7 +238,7 @@ Si vous préférez les Remuxes en 2160p (Remux-2160p)
{! include-markdown "../../includes/cf/radarr-audio.md" !} {! include-markdown "../../includes/cf/radarr-audio.md" !}
{! include-markdown "../../includes/cf/radarr-hdr-formats.md" !} {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
{! include-markdown "../../includes/french-guide/radarr-french-multi-audio-fr.md" !} {! include-markdown "../../includes/french-guide/radarr-french-multi-audio-fr.md" !}
@ -270,8 +274,6 @@ TRaSH fournit d'excellents guides et explications à leur sujet dans les liens s
- [Advanced Audio](/Radarr/radarr-setup-quality-profiles/#advanced-audio){: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"} - [HDR Formats](/Radarr/radarr-setup-quality-profiles/#hdr-formats){:target="_blank" rel="noopener noreferrer"}
- [HDR Formats + DV (WEBDL)](/Radarr/radarr-setup-quality-profiles/#hdr-formats-dv-webdl){:target="_blank" rel="noopener noreferrer"}
- [HDR Formats + DV (WEBDL) + HDR10+ Boost](/Radarr/radarr-setup-quality-profiles/#hdr-formats-dv-webdl-hdr10-boost){:target="_blank" rel="noopener noreferrer"}
------ ------

@ -3,13 +3,14 @@
*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? 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 setup (hardware devices) and your own personal preferences. There isn't a "best" setup, it depends on your media setup (hardware devices) and your personal preferences.
Some prefer high quality audio (HD Audio), others high quality video. Many prefer both. Some prefer high-quality audio (HD Audio), others high-quality video. Many prefer both.
Here I will try to explain how to make the most use of Custom Formats to help you to setup your quality profiles for your personal needs. Here we will try to explain how to make the most of Custom Formats to help you set up your quality profiles for your personal preferences.
I created a [flowchart](#which-quality-profile-should-you-choose) to make your decision/choices easier. - 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.
------ ------
@ -32,11 +33,11 @@ Select the profile that you want to use/prefer.
1. Profile name. 1. Profile name.
1. Allow upgrades. Radarr will stop upgrading quality once (3) is met. 1. Allow upgrades. Radarr will stop upgrading quality once (3) is met.
1. Upgrade until the selected quality. 1. Upgrade until the selected quality.
1. The `Minimum Custom Format Score` allowed to download. [More Info](#minimum-custom-format-score) 1. The `Minimum Custom Format Score` that is allowed to download. [More Info](#minimum-custom-format-score)
1. Keep upgrading Custom Format until this score is reached. (setting this to `0` means no upgrades will happen based on Custom Formats) 1. Keep upgrading Custom Format until this score is reached. (setting this to `0` means no upgrades will happen based on Custom Formats)
1. Your preferred language profile for your releases. (Original is recommended) 1. Your preferred language profile for your releases. (Original is recommended)
At the bottom in your chosen profile you will see the added Custom Formats where you can start setting up the scores. 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]" ??? success "Screenshot example - [Click to show/hide]"
![!cf-quality-profile-cf](images/cf-quality-profile-cf.png) ![!cf-quality-profile-cf](images/cf-quality-profile-cf.png)
@ -45,9 +46,9 @@ At the bottom in your chosen profile you will see the added Custom Formats where
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. 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. - Always follow the data described in the guide.
- If you got any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly. - If you have any questions or aren't sure just click the chat badge to join the Discord Channel where you can ask your questions directly.
!!! info "Keep in mind Custom Formats are made to fine tune your Quality Profile.<br>Generally, quality trumps all" !!! info "Keep in mind Custom Formats are made to fine-tune your Quality Profile.<br>Generally, quality trumps all"
Custom formats are controlled by Quality Profiles. Custom formats are controlled by Quality Profiles.
@ -71,7 +72,7 @@ At the bottom in your chosen profile you will see the added Custom Formats where
<p align="center">![Flowchart](/Radarr/images/flowchart-guide-radarr.png){ width="10%" height="10%" } <p align="center">![Flowchart](/Radarr/images/flowchart-guide-radarr.png){ width="10%" height="10%" }
![Flowchart](/Radarr/images/flowchart-custom-format-radarr.png) ![Flowchart](/Radarr/images/flowchart-quality-profiles-radarr.png)
If you're unsure or have questions do not hesitate to ask for help on Discord If you're unsure or have questions do not hesitate to ask for help on Discord
@ -81,9 +82,11 @@ At the bottom in your chosen profile you will see the added Custom Formats where
## TRaSH Quality Profiles ## TRaSH Quality Profiles
The following Quality Profiles can be combined into a single Quality Profile if you, for example, want to be able to upgrade from 1080p to 4K/2160p.
### HD Bluray + WEB ### HD Bluray + WEB
If you prefer High Quality HD Encodes (Bluray-720p/1080p) 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.*
@ -97,9 +100,11 @@ If you prefer High Quality HD Encodes (Bluray-720p/1080p)
{! include-markdown "../../includes/cf/radarr-unwanted.md" !} {! include-markdown "../../includes/cf/radarr-unwanted.md" !}
{! include-markdown "../../includes/cf/radarr-optional.md" !}
{! include-markdown "../../includes/cf/radarr-streaming-services.md" !} {! include-markdown "../../includes/cf/radarr-streaming-services.md" !}
I decided not to add `Audio Advanced` Custom Formats to the encodes profile, You will hardly find HD audio with HD Bluray Encodes. With HD Bluray Encodes I personally suggest to go for quality. If you also want HD audio formats I would suggest to go for the Remuxes or UHD Encodes. I decided not to add `Audio Advanced` Custom Formats to the encodes profile. You will hardly find HD audio with HD Bluray Encodes. When downloading HD Bluray Encodes, I suggest going for quality. If you want HD audio formats, I would suggest going with a Remux or UHD Encode.
Use the following main settings in your profile. Use the following main settings in your profile.
@ -107,7 +112,7 @@ Use the following main settings in your profile.
!!! warning "Make sure you don't check the BR-DISK." !!! warning "Make sure you don't check the BR-DISK."
The reason why I didn't select the WEB-DL 720p is because you will hardly find any releases that aren't done as 1080p WEB-DL. The reason why I didn't select the WEB-DL 720p is that you will hardly find any releases that aren't done as 1080p WEB-DL.
{! include-markdown "../../includes/starr/move-quality-to-top.md" !} {! include-markdown "../../includes/starr/move-quality-to-top.md" !}
@ -125,7 +130,7 @@ The reason why I didn't select the WEB-DL 720p is because you will hardly find a
### UHD Bluray + WEB ### UHD Bluray + WEB
If you prefer High Quality UHD Encodes (Bluray-2160p) 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.*
@ -133,7 +138,7 @@ If you prefer High Quality UHD Encodes (Bluray-2160p)
{! include-markdown "../../includes/cf/radarr-audio.md" !} {! include-markdown "../../includes/cf/radarr-audio.md" !}
{! include-markdown "../../includes/cf/radarr-hdr-formats.md" !} {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
{! include-markdown "../../includes/cf/radarr-movie-versions-imaxe-noremux.md" !} {! include-markdown "../../includes/cf/radarr-movie-versions-imaxe-noremux.md" !}
@ -143,6 +148,8 @@ If you prefer High Quality UHD Encodes (Bluray-2160p)
{! include-markdown "../../includes/cf/radarr-unwanted-uhd.md" !} {! include-markdown "../../includes/cf/radarr-unwanted-uhd.md" !}
{! include-markdown "../../includes/cf/radarr-optional.md" !}
{! include-markdown "../../includes/cf/radarr-optional-uhd.md" !} {! include-markdown "../../includes/cf/radarr-optional-uhd.md" !}
{! include-markdown "../../includes/cf/radarr-streaming-services.md" !} {! include-markdown "../../includes/cf/radarr-streaming-services.md" !}
@ -157,7 +164,7 @@ Use the following main settings in your profile.
??? abstract "Workflow Logic - [Click to show/hide]" ??? abstract "Workflow Logic - [Click to show/hide]"
**Depending what's released first and available the following Workflow Logic will be used:** **Depending on what's released first and available the following Workflow Logic will be used:**
- When the WEB-2160p is released it will download the WEB-2160p. (streaming services) - When the WEB-2160p is released it will download the WEB-2160p. (streaming services)
- When the Bluray-2160p is released it will upgrade to the Bluray-2160p. - When the Bluray-2160p is released it will upgrade to the Bluray-2160p.
@ -187,6 +194,8 @@ If you prefer 1080p Remuxes (Remux-1080p)
{! include-markdown "../../includes/cf/radarr-unwanted.md" !} {! include-markdown "../../includes/cf/radarr-unwanted.md" !}
{! include-markdown "../../includes/cf/radarr-optional.md" !}
{! include-markdown "../../includes/cf/radarr-streaming-services.md" !} {! include-markdown "../../includes/cf/radarr-streaming-services.md" !}
Use the following main settings in your profile. Use the following main settings in your profile.
@ -195,7 +204,7 @@ Use the following main settings in your profile.
!!! warning "Make sure you don't check the BR-DISK." !!! warning "Make sure you don't check the BR-DISK."
The reason why I didn't select the WEB-DL 720p is because you will hardly find any releases that aren't done as 1080p WEB-DL. The reason why I didn't select the WEB-DL 720p is that you will hardly find any releases that aren't done as 1080p WEB-DL.
{! include-markdown "../../includes/starr/move-quality-to-top.md" !} {! include-markdown "../../includes/starr/move-quality-to-top.md" !}
@ -221,7 +230,7 @@ If you prefer 2160p Remuxes (Remux-2160p)
{! include-markdown "../../includes/cf/radarr-audio.md" !} {! include-markdown "../../includes/cf/radarr-audio.md" !}
{! include-markdown "../../includes/cf/radarr-hdr-formats.md" !} {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
{! include-markdown "../../includes/cf/radarr-movie-versions-imaxe.md" !} {! include-markdown "../../includes/cf/radarr-movie-versions-imaxe.md" !}
@ -231,6 +240,8 @@ If you prefer 2160p Remuxes (Remux-2160p)
{! include-markdown "../../includes/cf/radarr-unwanted-uhd.md" !} {! include-markdown "../../includes/cf/radarr-unwanted-uhd.md" !}
{! include-markdown "../../includes/cf/radarr-optional.md" !}
{! include-markdown "../../includes/cf/radarr-optional-uhd.md" !} {! include-markdown "../../includes/cf/radarr-optional-uhd.md" !}
{! include-markdown "../../includes/cf/radarr-streaming-services.md" !} {! include-markdown "../../includes/cf/radarr-streaming-services.md" !}
@ -251,19 +262,25 @@ Use the following main settings in your profile.
So why such a ridiculously high `Upgrade Until Custom` and not a score of `500`? So why such a ridiculously high `Upgrade Until Custom` and not a score of `500`?
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. 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
The following custom format groups should be combined with the Quality Profiles above. Users will need to choose which options and custom formats they prefer.
### Advanced Audio ### Advanced Audio
- You have a audio setup that supports all HD Audio (TrueHD, DTS-X, DTS-HD, etc). - You have a hardware media player device and an audio setup that supports **ALL** HD Audio (TrueHD, DTS-X, DTS-HD, etc).
- You have a media player (hardware devices) that can passthrough HD audio.
- You don't have a AppleTV (Being it can't passthrough untouched HD audio).
*In this example I have lossy Atmos over lossless DTS because the object metadata (Atmos) matters more to me over lossy vs lossless.* {! include-markdown "../../includes/cf/audio-limitations-atv.md" !}
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !} - You've chosen a profile that includes Audio Formats. You should use all the Audio formats with Remuxes/UHD Encodes.
- You should add **ALL** the Audio formats - don't leave any of them out!
- Audio transcoding has a low impact on your server. If your server can't handle audio transcoding, consider choosing another quality profile.
*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" !} {! include-markdown "../../includes/cf/radarr-audio.md" !}
@ -271,45 +288,19 @@ Use the following main settings in your profile.
### HDR Formats ### HDR Formats
- You have a setup that supports Dolby Vision. - You have a 4K TV and a hardware media player device (such as Roku, AppleTV, Shield, SmartTV App, etc.) that supports several HDR formats (such as Dolby Vision, HDR10, HDR10+, etc.).
- You share your media library with other family members that also have have Dolby Vision compatible devices.
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
{! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !} {! include-markdown "../../includes/cf/radarr-all-hdr-formats.md" !}
------ ------
### HDR Formats + DV (WEBDL)
- Not all devices in your chain support Dolby Vision.
- You share your media library with other family members that don't have Dolby Vision compatible devices.
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
{! include-markdown "../../includes/cf/radarr-all-hdr-formats-dv-web.md" !}
------
### HDR Formats + DV (WEBDL) + HDR10+ Boost
- Not all devices in your chain support Dolby Vision.
- You share your media library with other family members that don't have Dolby Vision compatible devices.
- You have a (Samsung) TV that supports HDR10+.
{! include-markdown "../../includes/cf/radarr-suggest-attention.md" !}
{! include-markdown "../../includes/cf/radarr-all-hdr-formats-dv-web-hdr10plus-boost.md" !}
------
## FAQ & INFO ## FAQ & INFO
### Proper and Repacks ### Proper and Repacks
??? tip "Proper and Repacks - [Click to show/hide]" ??? tip "Proper and Repacks - [Click to show/hide]"
I also suggest to change the Propers and Repacks settings in Radarr I also suggest that you change the Propers and Repacks settings in Radarr
`Media Management` => `File Management` to `Do Not Prefer` and use the [Repack/Proper](/Radarr/Radarr-collection-of-custom-formats/#repackproper) Custom Format. `Media Management` => `File Management` to `Do Not Prefer` and use the [Repack/Proper](/Radarr/Radarr-collection-of-custom-formats/#repackproper) Custom Format.
@ -322,11 +313,11 @@ Use the following main settings in your profile.
??? question "How to use a Custom Format to avoid certain releases? - [Click to show/hide]" ??? question "How to use a Custom Format to avoid certain releases? - [Click to show/hide]"
For Custom Formats you really want to avoid, set it to something really low like `-10000` and not something like `-10`. For Custom Formats you really want to avoid, set it to something really low like `-10000` and not something like `-10`.
Being when you add a Custom Format what you prefer and you set it to something like `+10` it could happen that for example the `BR-DISK` will be downloaded (-10)+(+10)=0 and if your `Minimum Custom Format Score` is set at `0`. When you add your preferred Custom Format and set it to something like `+10`, it's possible that, for example, the `BR-DISK` will be downloaded - (-10)+(+10)=0 - if your `Minimum Custom Format Score` is set at `0`.
### Releases you should avoid ### Releases you should avoid
This is a must have for every Quality Profile you use in my opinion. All these Custom Formats make sure you don't get Low Quality Releases. This is a must-have for every Quality Profile you use in my opinion. All these Custom Formats make sure you don't get Low Quality Releases.
{! include-markdown "../../includes/cf/radarr-unwanted.md" !} {! include-markdown "../../includes/cf/radarr-unwanted.md" !}
@ -334,25 +325,25 @@ This is a must have for every Quality Profile you use in my opinion. All these C
??? question "What do Custom Formats with a score of 0 do? - [Click to show/hide]" ??? question "What do Custom Formats with a score of 0 do? - [Click to show/hide]"
All Custom Formats with a score of 0 are pure informational and don't do anything. All Custom Formats with a score of 0 are purely informational and don't do anything.
### Minimum Custom Format Score ### Minimum Custom Format Score
??? info "Minimum Custom Format Score - [Click to show/hide]" ??? info "Minimum Custom Format Score - [Click to show/hide]"
Some people suggest not to use negative scores for your Custom Formats and set this option to a higher score then 0. Some people suggest not to use negative scores for your Custom Formats and set this option to a higher score than 0.
The reason why I don't prefer/use this is because you could limit yourself when some new groups or whatever will be released. The reason why I don't prefer/use this is because you could limit yourself when some new groups or whatever will be released.
Also it makes it much more clear what you prefer and what you want to avoid. Also, it makes it much more clear what you prefer and what you want to avoid.
### Audio Channels ### Audio Channels
??? info "Audio Channels - [Click to show/hide]" ??? info "Audio Channels - [Click to show/hide]"
Elsewhere in the guide, you will find a separate group of custom formats called `Audio Channels`. These will match the number of audio channels in a release, for example 2.0 (stereo) or 5.1/7.1 (surround sound). Personally I wouldn't add the audio channels Custom Formats as you could limit yourself in the amount of releases you're able to get. Only use them if you have a specific need for them. Elsewhere in the guide, you will find a separate group of custom formats called `Audio Channels`. These will match the number of audio channels in a release, for example, 2.0 (stereo) or 5.1/7.1 (surround sound). Personally, I wouldn't add the audio channels Custom Formats as you could limit yourself in the amount of releases you're able to get. Only use them if you have a specific need for them.
Using it with any kind of Remuxes Quality Profile is useless in my opinion being that 99% of all remuxes are multi audio anyway. You can get better scores just using the `Audio Advanced` Custom Formats. Using this with any kind of Remux Quality Profile is useless, in my opinion, being that 99% of all Remuxes are multi-audio anyway. You can get better scores just by using the `Audio Advanced` Custom Formats.
### Avoid using the x264/x265 Custom Format ### Avoid using the x264/x265 Custom Format
@ -364,8 +355,16 @@ This is a must have for every Quality Profile you use in my opinion. All these C
Use x265 only for 4k releases and the [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd){:target="_blank" rel="noopener noreferrer"} makes sure you still get the x265 releases. Use x265 only for 4k releases and the [{{ radarr['cf']['x265-hd']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#x265-hd){:target="_blank" rel="noopener noreferrer"} makes sure you still get the x265 releases.
### Why am I getting purple or green colors
{! include-markdown "../../includes/cf/dv-info-green-purple.md" !}
### Dolby Vision Profiles
{! include-markdown "../../includes/cf/dv-info-profiles.md" !}
## Thanks ## Thanks
A big Thanks to [rg9400](https://github.com/rg9400) for providing me with info needed to create the Tips section. Special thanks to everyone who helped with the testing and creation of these Custom Formats.
--8<-- "includes/support.md" --8<-- "includes/support.md"

@ -1,5 +1,12 @@
---
search:
exclude: true
---
# SQP-1 (2160p) Streaming Optimized # SQP-1 (2160p) Streaming Optimized
<meta name="robots" content="noindex, noarchive, nofollow" />
--8<-- "includes/sqp/wip.md" --8<-- "includes/sqp/wip.md"
{! include-markdown "../../includes/sqp/1-4k-why.md" !} {! include-markdown "../../includes/sqp/1-4k-why.md" !}

@ -1,5 +1,12 @@
---
search:
exclude: true
---
# SQP-1 (1080p) Streaming Optimized # SQP-1 (1080p) Streaming Optimized
<meta name="robots" content="noindex, noarchive, nofollow" />
--8<-- "includes/sqp/wip.md" --8<-- "includes/sqp/wip.md"
{! include-markdown "../../includes/sqp/1-why.md" !} {! include-markdown "../../includes/sqp/1-why.md" !}

@ -1,5 +1,12 @@
---
search:
exclude: true
---
# UHD Remux|Bluray|IMAX-E (SQP-2) # UHD Remux|Bluray|IMAX-E (SQP-2)
<meta name="robots" content="noindex, noarchive, nofollow" />
--8<-- "includes/sqp/wip.md" --8<-- "includes/sqp/wip.md"
{! include-markdown "../../includes/sqp/2-why.md" !} {! include-markdown "../../includes/sqp/2-why.md" !}

@ -1,5 +1,12 @@
---
search:
exclude: true
---
# UHD Remux|IMAX-E (SQP-3) # UHD Remux|IMAX-E (SQP-3)
<meta name="robots" content="noindex, noarchive, nofollow" />
--8<-- "includes/sqp/wip.md" --8<-- "includes/sqp/wip.md"
{! include-markdown "../../includes/sqp/3-why.md" !} {! include-markdown "../../includes/sqp/3-why.md" !}

@ -1,5 +1,12 @@
---
search:
exclude: true
---
# UHD WEBDL|IMAX-E (SQP-4) # UHD WEBDL|IMAX-E (SQP-4)
<meta name="robots" content="noindex, noarchive, nofollow" />
--8<-- "includes/sqp/wip.md" --8<-- "includes/sqp/wip.md"
{! include-markdown "../../includes/sqp/4-why.md" !} {! include-markdown "../../includes/sqp/4-why.md" !}

@ -1,5 +1,12 @@
---
search:
exclude: true
---
# UHD Bluray|IMAX-E (SQP-5) # UHD Bluray|IMAX-E (SQP-5)
<meta name="robots" content="noindex, noarchive, nofollow" />
--8<-- "includes/sqp/wip.md" --8<-- "includes/sqp/wip.md"
{! include-markdown "../../includes/sqp/5-why.md" !} {! include-markdown "../../includes/sqp/5-why.md" !}

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

@ -1,13 +1,21 @@
---
search:
exclude: true
---
# Special Quality Profiles # Special Quality Profiles
<meta name="robots" content="noindex, noarchive, nofollow" />
The Special Quality Profiles are Custom made and tested Quality Profile for specific needs or preferences. The Special Quality Profiles are Custom made and tested Quality Profile for specific needs or preferences.
!!! warning !!! warning
- Anything here is for private use only and not for public use. :bangbang: - Anything here is for private use only. It is prohibited to share anything related to SQP, such as setup information or links to the guide, in any public locations.:bangbang:
- I expect from the users that got the link to this page to honour it. :bangbang: - I expect users who received the link to this page to honor this rule.:bangbang:
- Yes, you can talk in the public channels that you use a specific SQP. - Any questions about SQP should be asked in the related discord, not in the main channel or any other public places.:bangbang:
- If others are interested they can join. - Yes, you can mention in the public channels that you are using a specific SQP.
- If others are interested, they can join by accepting the rules in the `access-to-sqp` channel.
## The Following SQP are available ## The Following SQP are available

@ -2,14 +2,14 @@ nav:
- Home: index.md - Home: index.md
- Quality Settings (File Size): Sonarr-Quality-Settings-File-Size.md - Quality Settings (File Size): Sonarr-Quality-Settings-File-Size.md
- Recommended naming scheme: Sonarr-recommended-naming-scheme.md - Recommended naming scheme: Sonarr-recommended-naming-scheme.md
- Release Profile RegEx (WEB-DL): Sonarr-Release-Profile-RegEx.md
- Release Profile RegEx (Anime): Sonarr-Release-Profile-RegEx-Anime.md
- Remote Path Mappings explained: Sonarr-remote-path-mapping.md
- Sonarr v4 Beta:
- How to import Custom Formats: sonarr-import-custom-formats.md - How to import Custom Formats: sonarr-import-custom-formats.md
- How to Update Custom Formats: sonarr-how-to-update-custom-formats.md - How to Update Custom Formats: sonarr-how-to-update-custom-formats.md
- How to setup Quality Profiles: sonarr-setup-quality-profiles.md - How to setup Quality Profiles: sonarr-setup-quality-profiles.md
- How to setup Quality Profiles (Anime): sonarr-setup-quality-profiles-anime.md - How to setup Quality Profiles (Anime): sonarr-setup-quality-profiles-anime.md
- How to setup Quality Profiles (French): sonarr-setup-quality-profiles-french-en.md - How to setup Quality Profiles (French): sonarr-setup-quality-profiles-french-en.md
- Collection of Custom Formats: sonarr-collection-of-custom-formats.md - Collection of Custom Formats: sonarr-collection-of-custom-formats.md
- Remote Path Mappings explained: Sonarr-remote-path-mapping.md
- Sonarr v3 (Legacy):
- Release Profile RegEx (WEB-DL): Sonarr-Release-Profile-RegEx.md
- Release Profile RegEx (Anime): Sonarr-Release-Profile-RegEx-Anime.md
- Tips - Tips

@ -1,3 +1,5 @@
{! include-markdown "../../includes/sonarrv3-eol.md" !}
# Release Profile RegEx (Anime) # Release Profile RegEx (Anime)
!!! note !!! note

@ -1,3 +1,5 @@
{! include-markdown "../../includes/sonarrv3-eol.md" !}
# Release Profile RegEx (WEB-DL) # Release Profile RegEx (WEB-DL)
Sonarr V3 has a great feature called Release Profile. Sonarr V3 has a great feature called Release Profile.
@ -227,6 +229,26 @@ Add this to your `Preferred (3)` with a score of [50]
/\b(ovid)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i /\b(ovid)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
``` ```
```bash
/\b(fod)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
```
```bash
/\b(tver)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
```
```bash
/\b(u-next)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
```
```bash
/\b(ALL4)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
```
```bash
/\b(4OD)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i
```
!!! danger "Caution" !!! danger "Caution"
Don't forget to click on `SAVE` after you've added everything you want to the release profile :bangbang: Don't forget to click on `SAVE` after you've added everything you want to the release profile :bangbang:
@ -322,7 +344,7 @@ Add this to your `Preferred (3)` with a score of [5]
Add this to your `Preferred (3)` with a score of [-10000] Add this to your `Preferred (3)` with a score of [-10000]
```bash ```bash
/(-BRiNK|-CHX|-CTFOH|-EVO|-FGT|-GHOSTS|-HiQVE|-iNTENSO|JFF|MeGusta|-NERO|nhanc3|Pahe\.ph|Pahe\.in|PSA|TBS|-TG|-VIDEOHOLE|-worldmkv|-XLF|-Zero00)\b/i /(-BRiNK|-CHX|-CTFOH|-d3g|-EVO|-FGT|-GHOSTS|-HiQVE|-iNTENSO|JFF|MeGusta|-NERO|nhanc3|Pahe\.ph|Pahe\.in|Pahe|PSA|TBS|-TG|-VIDEOHOLE|-worldmkv|-XLF|-Zero00)\b/i
``` ```
!!! danger "Caution" !!! danger "Caution"
@ -419,7 +441,7 @@ Add this to your `Preferred (3)` with a score of [500]
Add this to your `Preferred (3)` with a score of [1500] Add this to your `Preferred (3)` with a score of [1500]
```bash ```bash
/\b(dv|dovi|dolby[ .]?vision)\b/i /\b(dv|dovi|dolby[ .]?v(ision)?)\b/i
``` ```
------ ------
@ -532,7 +554,7 @@ Add this to your `Preferred (3)` with a score of [15]
Add this to your `Must not contain (2)` Add this to your `Must not contain (2)`
```bash ```bash
/^(?!.*(HDR|HULU|REMUX))(?=.*\b(DV|Dovi|Dolby[- .]?Vision)\b).*/i /^(?!.*(HDR|HULU|REMUX))(?=.*\b(DV|Dovi|Dolby[- .]?V(ision)?)\b).*/i
``` ```
------ ------
@ -560,7 +582,7 @@ Add this to your `Must not contain (2)`
Add this to your `Must not contain (2)` Add this to your `Must not contain (2)`
```bash ```bash
/^(?!.*(web[ ]dl|-deflate|-inflate))(?=.*([_. ]WEB[_. ])(?!DL)\b)|\b(-CAKES|-GGEZ|-GGWP|-GLHF|-GOSSIP|-NAISU|-KOGI|-PECULATE|-SLOT|-EDITH|-ETHEL|-ELEANOR|-B2B|-SPAMnEGGS|-FTP|-DiRT|-SYNCOPY|-BAE|-SuccessfulCrab).*/i /^(?!.*(web[ ]dl|-deflate|-inflate))(?=.*(\b\d{3,4}p\b).*([_. ]WEB[_. ])(?!DL)\b)|\b(-CAKES|-GGEZ|-GGWP|-GLHF|-GOSSIP|-NAISU|-KOGI|-PECULATE|-SLOT|-EDITH|-ETHEL|-ELEANOR|-B2B|-SPAMnEGGS|-FTP|-DiRT|-SYNCOPY|-BAE|-SuccessfulCrab|-NHTFS|-SURCODE|-B0MBARDIERS).*/i
``` ```

@ -13,13 +13,21 @@ it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc.
------ ------
## Standard Episode Format ## Preparation
```bash Go to `Settings` => `Media Management` and make sure that `Show Advanced` at the top is enabled.
{{ sonarr['naming']['sonarr-naming']['episodes']['standard']['default:3'] }}
``` ![Enable Advanced](images/sonarr-show-adavanced.png)
Once you clicked on the button it should look like this and you should see all the advanced options.
![Unhide Advanced](images/unhide-advanced.png)
!!! warning "Sonarr V4 - Is now using Custom Formats instead of Release Profiles. Use the below naming scheme instead :warning:" Finally, enable `Rename Episodes` to reveal the episode renaming options.
![Enable Rename Episodes](images/sonarr-enable-rename.png)
## Standard Episode Format
```bash ```bash
{{ sonarr['naming']['sonarr-naming']['episodes']['standard']['default:4'] }} {{ sonarr['naming']['sonarr-naming']['episodes']['standard']['default:4'] }}
@ -39,12 +47,6 @@ it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc.
## Daily Episode Format ## Daily Episode Format
```bash
{{ sonarr['naming']['sonarr-naming']['episodes']['daily']['default:3'] }}
```
!!! warning "Sonarr V4 - Is now using Custom Formats instead of Release Profiles. Use the below naming scheme instead :warning:"
```bash ```bash
{{ sonarr['naming']['sonarr-naming']['episodes']['daily']['default:4'] }} {{ sonarr['naming']['sonarr-naming']['episodes']['daily']['default:4'] }}
``` ```
@ -57,12 +59,6 @@ it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc.
## Anime Episode Format ## Anime Episode Format
```bash
{{ sonarr['naming']['sonarr-naming']['episodes']['anime']['default:3'] }}
```
!!! warning "Sonarr V4 - Is now using Custom Formats instead of Release Profiles. Use the below naming scheme instead :warning:"
```bash ```bash
{{ sonarr['naming']['sonarr-naming']['episodes']['anime']['default:4'] }} {{ sonarr['naming']['sonarr-naming']['episodes']['anime']['default:4'] }}
``` ```
@ -85,33 +81,35 @@ it gets imported correctly and isn't incorrectly matched as HDTV or WEB-DL etc.
{{ sonarr['naming']['sonarr-naming']['series']['default'] }} {{ sonarr['naming']['sonarr-naming']['series']['default'] }}
``` ```
RESULT: <small>RESULT:</small> `The Series Title! (2010)`
`The Series Title! (2010)`
#### Optional Series Folder Format for the Plex TV Series Scanner and Jellyfin/Emby #### Optional Series 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.
For Plex: ##### Optional Plex
```bash ```bash
{{ sonarr['naming']['sonarr-naming']['series']['plex'] }} {{ sonarr['naming']['sonarr-naming']['series']['plex'] }}
``` ```
RESULT: <small>RESULT:</small> `The Series Title! (2010) {imdb-tt1520211}`
`The Series Title! (2010) {imdb-tt1520211}` ##### Optional Emby
For Jellyfin/Emby:
```bash ```bash
{{ sonarr['naming']['sonarr-naming']['series']['emby'] }} {{ sonarr['naming']['sonarr-naming']['series']['emby'] }}
``` ```
RESULT: <small>RESULT:</small> `The Series Title! (2010)`
##### Optional Jellyfin
```bash
{{ sonarr['naming']['sonarr-naming']['series']['jellyfin'] }}
```
`The Series Title! (2010) [tvdbid-tt1520211]` <small>RESULT:</small> `The Series Title! (2010) [tvdbid-tt1520211]`
!!! tip !!! 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. 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.
@ -126,9 +124,7 @@ For this there's only one real option to use in my opinion.
Season {season:00} Season {season:00}
``` ```
RESULT: RESULT: `Season 01`
`Season 01`
------ ------

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

@ -8,23 +8,17 @@ For Installation and Quick Start Guide please check the official [WikiArr](https
## Master ## Master
![Current Master/Stable](https://img.shields.io/badge/dynamic/json?color=4051B5&style=for-the-badge&label=Main&query=%24%5B%27v3-stable%27%5D.version&url=https%3A%2F%2Fservices.sonarr.tv%2Fv1%2Freleases){ .off-glb } ![Current Master/Stable](https://img.shields.io/badge/dynamic/json?color=4051B5&style=for-the-badge&label=Main&query=%24%5B%27v4-stable%27%5D.version&url=https%3A%2F%2Fservices.sonarr.tv%2Fv1%2Freleases){ .off-glb }
(Default/Stable): This has been tested by users on nightly (`develop`) branch and it's not known to have any major issues. This branch should be used by the majority of users. On GitHub, this is the `main` branch. (Default/Stable): This has been tested by users on nightly (`develop`) branch and it's not known to have any major issues. This branch should be used by the majority of users. On GitHub, this is the `main` branch.
## Develop ## Develop
![Current Develop/Nightly](https://img.shields.io/badge/dynamic/json?color=4051B5&style=for-the-badge&label=Develop&query=%24%5B%27v3-nightly%27%5D.version&url=https%3A%2F%2Fservices.sonarr.tv%2Fv1%2Freleases){ .off-glb } ![Current Develop/Nightly](https://img.shields.io/badge/dynamic/json?color=4051B5&style=for-the-badge&label=Develop&query=%24%5B%27v4-nightly%27%5D.version&url=https%3A%2F%2Fservices.sonarr.tv%2Fv1%2Freleases){ .off-glb }
(Alpha/Unstable) : This is now the same as main and likely the last v3 release.
## v4 Develop
![Current Develop/Nightly](https://img.shields.io/badge/dynamic/json?color=4051B5&style=for-the-badge&label=v4-preview&query=%24%5B%27v4-preview%27%5D.version&url=https%3A%2F%2Fservices.sonarr.tv%2Fv1%2Freleases){ .off-glb }
(Alpha/Unstable) : This is the bleeding edge for Sonarr v4 Beta. 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. On GitHub, this is the develop branch. (Alpha/Unstable) : This is the bleeding edge for Sonarr v4 Beta. 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. On GitHub, this is the develop branch.
!!! danger "**Warning: You are not able to go back to (v3) `main` or (v3) `develop` after switching to the v4 branch without reinstalling and locating a v3 backup.** On GitHub, this is the `develop` branch." !!! danger "**Warning: You may not be able to go back to `main` after switching to this branch.** On GitHub, this is the `develop` branch."
### How do I update Sonarr ### How do I update Sonarr

File diff suppressed because it is too large Load Diff

@ -5,7 +5,7 @@
!!! warning !!! warning
You must be running Sonarr V4 to be able to use this setup. You must be running Sonarr V4 to be able to use this setup.
![V4](https://img.shields.io/badge/dynamic/json?query=%24.version&url=https://raw.githubusercontent.com/hotio/sonarr/v4/VERSION.json&label=Current%20V4%20Version&style=for-the-badge&color=4051B5){ .off-glb } ![V4](https://img.shields.io/badge/dynamic/json?query=%24.version&url=https://raw.githubusercontent.com/hotio/sonarr/nightly/VERSION.json&label=Current%20V4%20Version&style=for-the-badge&color=4051B5){ .off-glb }
!!! note !!! note
This guide is created and maintained by [FonduemangVI](https://github.com/FonduemangVI) and [rg9400](https://github.com/rg9400) This guide is created and maintained by [FonduemangVI](https://github.com/FonduemangVI) and [rg9400](https://github.com/rg9400)

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

Loading…
Cancel
Save