├── README.md ├── Untitled Document.md.html ├── add_plex_to_cloudflare.md ├── enable_igpu_on_hetzner.md └── my_sonarr_and_radarr_naming_guide.md /README.md: -------------------------------------------------------------------------------- 1 | # docs 2 | 3 | Just some random guides and docs. 4 | -------------------------------------------------------------------------------- /Untitled Document.md.html: -------------------------------------------------------------------------------- 1 | Untitled Document.md 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 |
ParameterSub-ParameterDefinitionRequiredChoicesDefaultNotes
userUser account for CloudboxnoseedIt will be created if it doesn’t already exist. <br /> Specify passwd below if one needs to be created.
passwdPassword for user accountnoOnly needed if user account is being created <br /> <br /> Note: Password must be in alphanumeric characters. No special characters.
domainYour domain name.yesIf you don’t have one, see [[Prerequisites
emailYour e-mail address.yesThis is used to get SSL certificates.
nzbget
downloadsPath for NZBGet downloads.yes"/home/{{user}}/downloads/nzbget"
rutorrent
passwdPassword to be used for ruTorrent webguiyesNote: Password must be in alpha or alphanumeric characters (but not only numeric ones). No special characters.
downloadsPath for ruTorrent downloadsyes"/home/{{user}}/downloads/rutorrent"
plex
tagDetermines what recent version to install.yespublic<br /> plexpasspublicUse plexpass only if you have an active Plex Pass. This can be changed later by running the installer again.
transcodesPath of temporary transcoding files.yes"/home/{{user}}/transcodes"Note: DO NOT use /tmp or /dev/shm as a transcode location. On reboots, /tmp and /dev/shm are cleared and this causes docker to recreate the folder as root, causing the plex transcoder to crash. See this comment from a Plex employee: https://forums.plex.tv/discussion/comment/1502936/#Comment_1502936.
plex_autoscan
ipServer IP that Plex_Autoscan will listen on.yes0.0.0.0
rclone
versionRclone version that is installed with Cloudboxyes1.36Default version is the most stable tested version
unionfs_cleaner
max_local_gigabytesMax size in GB allowed for local media before is moved to the cloud.yes200
size_check_minsHow often in minutes local media size is checked.yes30
rclone_remoteShould not be changed.yes"google:"
backup
tgz_destPath for local backups (.tar).no"/home/{{user}}/Backups"Only the two most recent copies are kept. <br /> <br /> Note: Ensure the path does NOT have a trailing slash (/) or else backup will fail (i.e. /sample/path, not /sample/path/).
rsync_destPath for rsync backups (.tar).noOnly the two most recent copies are kept. <br /> <br /> Note: Ensure the path does NOT have a trailing slash (/) or else backup will fail (i.e. /sample/path, not /sample/path/).
rclone_destPath for cloud (i.e. Google Drive) backups.nogoogle:/BackupsOnly the two most recent copies are kept.
use_rsyncOption to enable/disable rsync backup.yestrue <br /> falsefalseIf set to true, you must specify rsync_dest.
use_rcloneOption to enable/disable cloud (i.e. Google Drive) backups.yestrue <br /> falsefalseIf set to true, you must specify rclone_dest.
cron_timeHow often to backup.noreboot<br /> yearly<br /> annually<br /> weekly<br /> daily<br /> hourlyweeklyOnly needed when cron_state is set to present <br /> <br /> Note 1: It is not recommended to schedule backups hourly as backing up may take a long time and cause future backup attempts to fail (the backup will not occur while another one is in progress, thanks to backup.lock file being created/removed during this process). <br /> Note 2: This option just allows the script to schedule the backup for you. You can manually schedule cron to run backups with ansible-playbook cloudbox.yml --tags backup called as root.
cron_stateOption to enable/disable automatic backups.yesabsent <br /> presentabsentIf set to present, you must specify cron_time. <br /> <br /> absent will remove any existing backup schedule. present will ensure it is always scheduled. <br /> <br /> Note: When this option changed (whether to present or absent), a manual backup must be run once in order to set the backup schedule (i.e. sudo ansible-playbook cloudbox.yml --tags backup). In case the absent option is set, it will disable further backups after running the manual backup; however, you can manually remove the cron job (i.e. sudo crontab -e) if you did not want to run a manual backup command to do so.
269 | 270 | -------------------------------------------------------------------------------- /add_plex_to_cloudflare.md: -------------------------------------------------------------------------------- 1 | ## Add Plex with nginx-proxy to Cloudflare 2 | 3 | 4 | 1. Sign up for CloudFlare 5 | 6 | 1. Move the nameservers of your domain (domain registar website) over to the one’s provided during CloudFlare’s setup. 7 | 8 | 1. Under the "Crypto" tab, set SSL to Full (Strict) 9 | 10 | ![](https://i.imgur.com/ph1pNZx.png) 11 | 12 | 1. Add the DNS records for your subdomains, including `*` and `www`. Set Plex subdomain to `DNS and HTTP proxy (CDN)` (click the cloud icon). Leave the others off. 13 | 14 | ![](https://i.imgur.com/YHbDAcM.png) 15 | 16 | 1. That's it. 17 | -------------------------------------------------------------------------------- /enable_igpu_on_hetzner.md: -------------------------------------------------------------------------------- 1 | # How to enable iGPU on Hetzner - For Hardware Accelerated Transcoding in Plex/Emby 2 | 3 | 4 | Note: This was tested on Hetzner's EX41-SSD Server, running Intel Core i7-7700 CPU on Ubuntu Server 16.04, but should work on other Hetzner servers with supported Intel CPUs (see [this](https://support.plex.tv/hc/en-us/articles/115002178853-Using-Hardware-Accelerated-Streaming) and [this](https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video)). 5 | 6 | _Note: If you have a Coffee Lake or newer CPU (e.g. the Intel Core i7-8700 in EX61-NVME), you will need to either 1) update to Ubuntu Server 18.04, or 2) update the kernel on 16.04 (see [this](https://github.com/pimlie/ubuntu-mainline-kernel.sh)), to have /dev/dri show up._ 7 | 8 | ## When iGPU isnt loaded... 9 | 10 | `/dev/dri` path will be missing... 11 | 12 | ``` 13 | $ ls -la /dev/dri 14 | ls: cannot access '/dev/dri': No such file or directory 15 | ``` 16 | 17 | `vainfo` will show this: 18 | 19 | ``` 20 | $ vainfo 21 | error: can't connect to X server! 22 | error: failed to initialize display 23 | Aborted (core dumped) 24 | ``` 25 | 26 | Note: You may have to install `vainfo` via `sudo apt-get install vainfo`. 27 | 28 | 29 | ## See if iGPU is supported on your server 30 | 31 | 32 | Run the following command: 33 | ```bash 34 | sudo lspci -v -s $(lspci | grep VGA | cut -d" " -f 1) 35 | 36 | ``` 37 | 38 | If your server supports iGPU, you will see something similar to `Kernel modules: i915`. However, kernel driver will not be loaded (i.e. `Kernel driver in use: i915` will be missing). 39 | 40 | 41 | ## Steps to enable iGPU 42 | 43 | Hetzner disables loading of video card drivers unless install desktop OS. So to enable the loading of the drivers (ie. VA-AI) follow the steps below: 44 | 45 | 1. Open `/etc/modprobe.d/blacklist-hetzner.conf` (e.g. `sudo nano /etc/modprobe.d/blacklist-hetzner.conf`) and comment-out (add a `#` in front of) all lines referencing `i915` driver or similar. 46 | 47 | - Example: 48 | 49 | - Before: 50 | 51 | ```shell 52 | ### Hetzner Online GmbH - installimage 53 | ### silence any onboard speaker 54 | blacklist pcspkr 55 | blacklist snd_pcsp 56 | ### i915 driver blacklisted due to various bugs 57 | ### especially in combination with nomodeset 58 | blacklist i915 59 | blacklist i915_bdw 60 | ### mei driver blacklisted due to serious bugs 61 | blacklist mei 62 | blacklist mei-me 63 | ``` 64 | 65 | - After: 66 | 67 | ```shell 68 | ### Hetzner Online GmbH - installimage 69 | ### silence any onboard speaker 70 | blacklist pcspkr 71 | blacklist snd_pcsp 72 | ### i915 driver blacklisted due to various bugs 73 | ### especially in combination with nomodeset 74 | #blacklist i915 75 | #blacklist i915_bdw 76 | ### mei driver blacklisted due to serious bugs 77 | blacklist mei 78 | blacklist mei-me 79 | ``` 80 | 81 | 82 | 2. Open `/etc/default/grub.d/hetzner.cfg` (e.g. `sudo nano /etc/default/grub.d/hetzner.cfg`) and delete `nomodeset` from the `GRUB_CMDLINE_LINUX_DEFAULT` line. 83 | 84 | _Note 1: For Ubuntu 18.04, this file may just be `/etc/default/grub`._ 85 | 86 | _Note 2: Your `GRUB_CMDLINE_LINUX_DEFAULT` might have something else in there, e.g. `GRUB_CMDLINE_LINUX_DEFAULT="nomodeset consoleblank=0"`. That is OK. You are only taking out the word `nomodeset` from that line._ 87 | 88 | - Example: 89 | 90 | - Before: 91 | 92 | ```shell 93 | GRUB_HIDDEN_TIMEOUT_QUIET=false 94 | GRUB_CMDLINE_LINUX_DEFAULT="nomodeset net.ifnames=0" 95 | 96 | # only use text mode - other modes may scramble screen 97 | GRUB_GFXPAYLOAD_LINUX="text" 98 | ``` 99 | 100 | - After: 101 | 102 | ```shell 103 | GRUB_HIDDEN_TIMEOUT_QUIET=false 104 | GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0" 105 | 106 | # only use text mode - other modes may scramble screen 107 | GRUB_GFXPAYLOAD_LINUX="text" 108 | ``` 109 | 110 | 3. Reload grub and reboot. 111 | 112 | ```shell 113 | sudo grub-mkconfig -o /boot/grub/grub.cfg 114 | sudo reboot 115 | ``` 116 | 117 | 118 | ## Verify iGPU is enabled 119 | 120 | `/dev/dri` will now exist with similar contents as below: 121 | 122 | ``` 123 | $ ls -la /dev/dri 124 | total 0 125 | drwxr-xr-x 2 root root 80 Sep 30 05:14 . 126 | drwxr-xr-x 20 root root 4200 Sep 30 05:14 .. 127 | crw-rw---- 1 root video 226, 0 Sep 30 05:14 card0 128 | crw-rw---- 1 root video 226, 128 Sep 30 05:14 renderD128 129 | ``` 130 | 131 | 132 | 133 | `vainfo` will now show the details of the video driver. 134 | 135 | _Note: If the following doesn't work, that's OK. As long as `/dev/dri` exists with contents, you can move on to the next step`._ 136 | 137 | ```shell 138 | $ vainfo 139 | error: can't connect to X server! 140 | libva info: VA-API version 0.39.0 141 | libva info: va_getDriverName() returns 0 142 | libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so 143 | libva info: Found init function __vaDriverInit_0_39 144 | libva info: va_openDriver() returns 0 145 | vainfo: VA-API version: 0.39 (libva 1.7.0) 146 | vainfo: Driver version: Intel i965 driver for Intel(R) Kabylake - 1.7.0 147 | vainfo: Supported profile and entrypoints 148 | 149 | VAProfileMPEG2Simple : VAEntrypointVLD 150 | VAProfileMPEG2Simple : VAEntrypointEncSlice 151 | VAProfileMPEG2Main : VAEntrypointVLD 152 | VAProfileMPEG2Main : VAEntrypointEncSlice 153 | VAProfileH264ConstrainedBaseline: VAEntrypointVLD 154 | VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice 155 | VAProfileH264Main : VAEntrypointVLD 156 | VAProfileH264Main : VAEntrypointEncSlice 157 | VAProfileH264High : VAEntrypointVLD 158 | VAProfileH264High : VAEntrypointEncSlice 159 | VAProfileH264MultiviewHigh : VAEntrypointVLD 160 | VAProfileH264MultiviewHigh : VAEntrypointEncSlice 161 | VAProfileH264StereoHigh : VAEntrypointVLD 162 | VAProfileH264StereoHigh : VAEntrypointEncSlice 163 | VAProfileVC1Simple : VAEntrypointVLD 164 | VAProfileVC1Main : VAEntrypointVLD 165 | VAProfileVC1Advanced : VAEntrypointVLD 166 | VAProfileNone : VAEntrypointVideoProc 167 | VAProfileJPEGBaseline : VAEntrypointVLD 168 | VAProfileJPEGBaseline : VAEntrypointEncPicture 169 | VAProfileVP8Version0_3 : VAEntrypointVLD 170 | VAProfileVP8Version0_3 : VAEntrypointEncSlice 171 | VAProfileHEVCMain : VAEntrypointVLD 172 | VAProfileHEVCMain : VAEntrypointEncSlice 173 | VAProfileHEVCMain10 : VAEntrypointVLD 174 | VAProfileVP9Profile0 : VAEntrypointVLD 175 | VAProfileVP9Profile2 : VAEntrypointVLD 176 | ``` 177 | 178 | 179 | 180 | You can also check by running `sudo lspci -v -s $(lspci | grep VGA | cut -d" " -f 1)` and finding `Kernel driver in use: i915`. 181 | 182 | ``` 183 | $ sudo lspci -v -s $(lspci | grep VGA | cut -d" " -f 1) 184 | 00:02.0 VGA compatible controller: Intel Corporation Device 5912 (rev 04) (prog-if 00 [VGA controller]) 185 | Subsystem: Fujitsu Technology Solutions Device 121c 186 | Flags: bus master, fast devsel, latency 0, IRQ 125 187 | Memory at ee000000 (64-bit, non-prefetchable) [size=16M] 188 | Memory at d0000000 (64-bit, prefetchable) [size=256M] 189 | I/O ports at f000 [size=64] 190 | [virtual] Expansion ROM at 000c0000 [disabled] [size=128K] 191 | Capabilities: [40] Vendor Specific Information: Len=0c 192 | Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00 193 | Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable- 64bit- 194 | Capabilities: [d0] Power Management version 2 195 | Capabilities: [100] #1b 196 | Capabilities: [200] Address Translation Service (ATS) 197 | Capabilities: [300] #13 198 | Kernel driver in use: i915 199 | Kernel modules: i915 200 | ``` 201 | 202 | 203 | *** 204 | 205 | 206 | 207 | ## Enable HW acceleration in Plex ([Cloudbox](https://cloudbox.rocks)) 208 | 209 | Hardware acceleration is currently only available to Plex Pass members. 210 | 211 | _Note 1: **ALL** the steps below are essential!_ 212 | 213 | _Note 2: Step 1 is only necessary for existing Cloudbox installs. If you haven't installed Cloudbox yet, install Cloudbox first and then jump to Step 2._ 214 | 215 | 1. Update the Plex container (your database and settings will remain intact). 216 | 217 | ```shell 218 | sudo ansible-playbook cloudbox.yml --tags plex 219 | ``` 220 | 221 | _Note: This step is important because it adds `/dev/dri/` to the Plex container. HW acceleration will not work without it._ 222 | 223 | 2. Enable HW Acceleration in Plex: 224 | 225 | - Settings -> Server -> Transcoder 226 | 227 | - "Use hardware acceleration when available": enabled 228 | 229 | 230 | ## Enable HW acceleration in Emby ([Cloudbox](https://cloudbox.rocks)) 231 | 232 | 233 | _Note 1: **ALL** the steps below are essential!_ 234 | 235 | _Note 2: Step 1 is only necessary for existing Cloudbox installs. If you haven't installed Cloudbox yet, install Cloudbox first and then jump to Step 2._ 236 | 237 | 238 | 1. Update the Emby container (your database and settings will remain intact). 239 | 240 | ```shell 241 | sudo ansible-playbook cloudbox.yml --tags emby 242 | ``` 243 | 244 | _Note: This step is important because it adds `/dev/dri/renderD128` to the Emby container. HW acceleration will not work without it._ 245 | 246 | 1. Enable HW Acceleration in Emby: 247 | 248 | - Gear icon -> Server -> Transcoding 249 | 250 | - "Hardware acceleration:" `Video Acceleration API (VA API) (experimental)` 251 | 252 | - "VA API Device:" `/dev/dri/renderD128` 253 | 254 | - "Enable hardware encoding": enabled 255 | 256 | 257 | *** 258 | 259 | 260 | ## Tests 261 | 262 | 263 | ### Intel GPU Top tool 264 | 265 | To install it: 266 | 267 | - `sudo apt-get install intel-gpu-tools` 268 | 269 | To run it: 270 | 271 | - `sudo intel_gpu_top` 272 | 273 | 274 | 275 | ### Test 1 276 | 277 | CPU: [Intel Core i7-7700](https://ark.intel.com/products/97128/Intel-Core-i7-7700-Processor-8M-Cache-up-to-4_20-GHz)
278 | OS: Ubuntu 16.04 LTS
279 | Plex Server ([docker](https://github.com/plexinc/pms-docker)): 1.10.0.4523
280 | Plex transcode: Movie @ 1080p BluRay Remux (H264) --> 4Mbps 720p HD (H264). 281 | 282 | #### CPU Usage (`htop`) 283 | 284 | Without HW Acceleration: ~450% 285 | 286 | ![](https://i.imgur.com/o1f4PUV.png) 287 | 288 | 289 | With HW Acceleration: ~40% 290 | 291 | ![](https://i.imgur.com/mcrRDcK.png) 292 | 293 | 294 | #### iGPU Usage (`intel_gpu_top`) 295 | 296 | Without HW Acceleration: 297 | 298 | ![](https://i.imgur.com/SqQoij3.png) 299 | 300 | With HW Acceleration: 301 | 302 | ![](https://i.imgur.com/NbzMP2q.png) 303 | 304 | 305 | 306 | ### Test 2 307 | 308 | 309 | CPU: [Intel Core i7-7700](https://ark.intel.com/products/97128/Intel-Core-i7-7700-Processor-8M-Cache-up-to-4_20-GHz)
310 | OS: Ubuntu 16.04 LTS
311 | Plex Server ([docker](https://github.com/plexinc/pms-docker)): 1.10.0.4523
312 | Plex transcode: Movie @ 2160p (4K-UHD) BluRay Remux (HEVC) --> 4Mbps 720p HD (H264). 313 | 314 | #### CPU Usage (`htop`) 315 | 316 | Without HW Acceleration: ~550% 317 | 318 | ![](https://i.imgur.com/l8xTmi8.png) 319 | 320 | 321 | With HW Acceleration: ~40% 322 | 323 | ![](https://i.imgur.com/x2GknKc.png) 324 | 325 | 326 | #### iGPU Usage (`intel_gpu_top`) 327 | 328 | Without HW Acceleration: 329 | 330 | ![](https://i.imgur.com/7pNO5c8.png) 331 | 332 | With HW Acceleration: 333 | 334 | ![](https://i.imgur.com/qHbNtLR.png) 335 | 336 | 337 | --- 338 | 339 | References:
https://www.reddit.com/r/seedboxes/comments/57uq5e/hardware_video_encoding_on_hetzner_server_with/ 340 | 341 | -------------------------------------------------------------------------------- /my_sonarr_and_radarr_naming_guide.md: -------------------------------------------------------------------------------- 1 | # My Sonarr and Radarr Naming Guide 2 | 3 | 4 | --- 5 | 6 | 7 | 8 | - [Introduction](#introduction) 9 | - [Sonarr](#sonarr) 10 | - [Radarr](#radarr) 11 | 12 | 13 | 14 | --- 15 | 16 | 17 | # Introduction 18 | 19 | I like having my media files _loosely_ named with the [scene naming style](https://scenerules.org/). This format _**works**_ with Plex (even though they recommend [this](https://support.plex.tv/hc/en-us/articles/200220687-Naming-Series-Season-Based-TV-Shows)). I just like the ability to quickly see the info on the release (i.e. the episode quality, proper, edition, release group) by just looking at the filename. Another benefit is that Subzero (subtitle) lookups yield more accurate results. 20 | 21 | _Update: I have decided to remove `{Episode.CleanTitle}` from the naming format because 1) The episode titles can sometimes get so large that you have trouble storing/uploading it, and 2) The titles can often change on TVDB, making it a nuisance to fix later. However, if you decide to keep it, you may leave it in (it comes after the episode number and before the quality proper tags)._ 22 | 23 | _Update 2: Added Year to TV Show Titles._ 24 | 25 | ``` 26 | Examples: 27 | 28 | TV Shows 29 | └── Gotham (2014) 30 | └── Season 01 31 | └── Gotham.2014.S01E01.1080p.BluRay.x264-DEMAND.mkv 32 | 33 | Movies 34 | └── Guardians of the Galaxy Vol. 2 (2017) 35 | └── Guardians.of.the.Galaxy.Vol.2.2017.1080p.BluRay.x264-SPARKS.mkv 36 | 37 | ``` 38 | --- 39 | 40 | # Sonarr 41 | 42 | ### Quality Definitions 43 | 44 | These are important, or else the naming format will not work. 45 | 46 | | Quality | Title | 47 | | ------------ | ------------ | 48 | | Unknown* | Unknown | 49 | | SDTV* | SDTV | 50 | | WEBDL-480p | 480p.WEB | 51 | | DVD | DVDRip | 52 | | HDTV-720p | 720p.HDTV | 53 | | HDTV-1080p | 1080p.HDTV | 54 | | Raw-HD* | Raw-HD | 55 | | WEBDL-720p | 720p.WEB | 56 | | Bluray-720p | 720p.BluRay | 57 | | WEBDL-1080p | 1080p.WEB | 58 | | Bluray-1080p | 1080p.BluRay | 59 | | HDTV-2160p | 2160p.HDTV | 60 | | WEBDL-2160p | 2160p.WEB | 61 | | Bluray-2160p | 2160p.BluRay | 62 | 63 | \*Haven't figured out what to do with these yet, so I left them as-is. 64 | 65 | 66 | ### Episode Naming 67 | 68 | #### Replace Illegal Characters 69 | 70 | ``` 71 | Yes 72 | ``` 73 | 74 | #### Standard Episode Format 75 | 76 | ``` 77 | {Series.CleanTitleYear}.S{season:00}E{episode:00}.{QUALITY.REAL}.{QUALITY.PROPER}.{Quality.Title}.{MediaInfo.VideoCodec}-{RELEASE.GROUP} 78 | ``` 79 | 80 | > Single Episode Example: The.Series.Title.2010.S01E01.PROPER.720p.HDTV.x264-RLSGRP 81 | 82 | 83 | #### Daily Episode Format 84 | 85 | ~~{Series.CleanTitleYear}.{Air.Date}.{QUALITY.REAL}.{QUALITY.PROPER}.{Quality.Title}.{MediaInfo.VideoCodec}-{RELEASE.GROUP}~~ 86 | 87 | > ~~ Daily-Episode Example: The.Series.Title.2010.2013.10.30.PROPER.720p.HDTV.x264-RLSGRP~~ 88 | 89 | ``` 90 | {Series.CleanTitleYear}.S{season:00}E{episode:00}.{QUALITY.REAL}.{QUALITY.PROPER}.{Quality.Title}.{MediaInfo.VideoCodec}-{RELEASE.GROUP} 91 | ``` 92 | > Daily-Episode Example: The.Series.Title.2010.S01E01.PROPER.720p.HDTV.x264-RLSGRP 93 | 94 | _Using Standard Episode Format now because there were issues matching daily shows such as Conan (2010) properly. Also saw posts from Plex team members who also suggested using the 0x00 format for dailies._ 95 | 96 | 97 | #### Anime Episode Format 98 | 99 | ``` 100 | {Series.CleanTitleYear}.S{season:00}E{episode:00}.{QUALITY.REAL}.{QUALITY.PROPER}.{Quality.Title}.{MediaInfo.VideoCodec}-{RELEASE.GROUP} 101 | ``` 102 | 103 | > Anime Episode Example: The.Series.Title.2010.S01E01.720p.HDTV.x264-RLSGRP 104 | 105 | #### Series Folder Format 106 | 107 | ``` 108 | {Series TitleYear} 109 | ``` 110 | 111 | > Series Folder Example: The Series Title (2010) 112 | 113 | _Doing `{Series CleanTitleYear}` would add the year without the parenthesis (i.e. `The Series Title 2010`), which is why I had to do `{Series TitleYear}`._ 114 | 115 | #### Season Folder Format 116 | 117 | ``` 118 | Season {season:00} 119 | ``` 120 | 121 | > Season Folder Example: Season 01 122 | 123 | Padding the season numbers (e.g. `01`, `02`, etc) is preferred by the scene. This also helps sort your seasons in order when you have 10+ seasons. 124 | 125 | _This style is also preferred by [Plex](https://support.plex.tv/hc/en-us/articles/200220687-Naming-Series-Season-Based-TV-Shows)._ 126 | 127 | #### Multi-Episode Style 128 | 129 | ``` 130 | Prefixed Range 131 | ``` 132 | 133 | >Multi-Episode Example: The.Series.Title.2010.S01E01-E03.PROPER.720p.HDTV.x264-RLSGRP 134 | > 135 | >Anime Multi-Episode Example: The.Series.Title.2010.S01E01-E03.720p.HDTV.x264-RLSGRP 136 | 137 | Even though releases sometimes use the `repeat` style for multi episode TV shows (e.g. S01E01E02), the scene actually prefers the `Prefixed Range` style (e.g. S01E01-E02), which is also the naming style [Plex](https://support.plex.tv/hc/en-us/articles/200220687-Naming-Series-Season-Based-TV-Shows) recommends. 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | *** 146 | 147 | # Radarr 148 | 149 | ### Quality Definitions 150 | 151 | These are important, or else the naming format will not work. 152 | 153 | 154 | | Quality | Title | 155 | | ------------ | ------------------ | 156 | | Unknown* | Unknown | 157 | | WORKPRINT* | WORKPRINT | 158 | | CAM* | CAM | 159 | | TELESYNC* | TELESYNC | 160 | | TELECINE* | TELECINE | 161 | | REGIONAL* | REGIONAL | 162 | | DVDSCR* | DVDSCR | 163 | | SDTV* | SDTV | 164 | | DVD | DVDRip | 165 | | DVD-R | DVDR | 166 | | WEBDL-480p | 480p.WEB | 167 | | Bluray-480p | 480p.BluRay | 168 | | Bluray-576p | 576p.BluRay | 169 | | HDTV-720p | 720p.HDTV | 170 | | WEBDL-720p | 720p.WEB | 171 | | Bluray-720p | 720p.BluRay | 172 | | HDTV-1080p | 1080p.HDTV | 173 | | WEBDL-1080p | 1080p.WEB | 174 | | Bluray-1080p | 1080p.BluRay | 175 | | Remux-1080p | 1080p.BluRay.REMUX | 176 | | HDTV-2160p | 2160p.HDTV | 177 | | WEBDL-2160p | 2160p.WEB | 178 | | Bluray-2160p | 2160p.BluRay | 179 | | Remux-2160p | 2160p.BluRay.REMUX | 180 | | BR-DISK* | BR-DISK | 181 | | Raw-HD* | Raw-HD | 182 | 183 | 184 | \*Haven't figured out what to do with these yet, so I left them as-is. 185 | 186 | ### Movie Naming 187 | 188 | #### Rename Movies 189 | ``` 190 | Yes 191 | ``` 192 | 193 | #### Replace Illegal Characters 194 | ``` 195 | Yes 196 | ``` 197 | 198 | #### Colon Replacement Format: 199 | ``` 200 | Replace with Space Dash 201 | ``` 202 | 203 | #### Standard Movie Format 204 | ``` 205 | {Movie.CleanTitle}.{Release.Year}.{EDITION.TAGS}.{QUALITY.REAL}.{QUALITY.PROPER}.{Quality.Title}.{MediaInfo.VideoCodec}-{RELEASE.GROUP} 206 | ``` 207 | 208 | >Movie Example: The.Movie.Title.2010.ULTIMATE.EXTENDED.EDITION.PROPER.1080p.BluRay.x264-EVOLVE 209 | 210 | 211 | #### Movie Folder Format 212 | ``` 213 | {Movie Title} ({Release Year}) 214 | ``` 215 | 216 | >Movie Folder Example: The Movie - Title (2010) 217 | --------------------------------------------------------------------------------