From ec52a7bb91cad760c58340997defbd37a3512315 Mon Sep 17 00:00:00 2001 From: nuxen Date: Sat, 6 Apr 2024 09:31:46 +0200 Subject: [PATCH 01/18] fix(starr): DTS-X CF mismatching (#1863) * fix(starr): DTS-X CF mismatching * chore(starr): add regex example for DTS X * fix(starr): DTS X regex example --- docs/json/radarr/cf/dts-es.json | 2 +- docs/json/radarr/cf/dts-hd-hra.json | 2 +- docs/json/radarr/cf/dts-hd-ma.json | 2 +- docs/json/radarr/cf/dts-x.json | 3 ++- docs/json/radarr/cf/dts.json | 2 +- docs/json/radarr/cf/truehd-atmos.json | 2 +- docs/json/sonarr/cf/dts-es.json | 2 +- docs/json/sonarr/cf/dts-hd-hra.json | 2 +- docs/json/sonarr/cf/dts-hd-ma.json | 2 +- docs/json/sonarr/cf/dts-x.json | 3 ++- docs/json/sonarr/cf/dts.json | 2 +- docs/json/sonarr/cf/truehd-atmos.json | 2 +- 12 files changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/json/radarr/cf/dts-es.json b/docs/json/radarr/cf/dts-es.json index f1d38be24..06f804d3b 100644 --- a/docs/json/radarr/cf/dts-es.json +++ b/docs/json/radarr/cf/dts-es.json @@ -58,7 +58,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/radarr/cf/dts-hd-hra.json b/docs/json/radarr/cf/dts-hd-hra.json index 2f09ff842..aef15babe 100644 --- a/docs/json/radarr/cf/dts-hd-hra.json +++ b/docs/json/radarr/cf/dts-hd-hra.json @@ -59,7 +59,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/radarr/cf/dts-hd-ma.json b/docs/json/radarr/cf/dts-hd-ma.json index 185b5527d..220e4d6cd 100644 --- a/docs/json/radarr/cf/dts-hd-ma.json +++ b/docs/json/radarr/cf/dts-hd-ma.json @@ -51,7 +51,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/radarr/cf/dts-x.json b/docs/json/radarr/cf/dts-x.json index 0a320c650..37d65a596 100644 --- a/docs/json/radarr/cf/dts-x.json +++ b/docs/json/radarr/cf/dts-x.json @@ -5,6 +5,7 @@ "sqp-1-1080p": -10000, "sqp-1-2160p": -10000 }, + "trash_regex": "https://regex101.com/r/VWCW8c/1", "name": "DTS X", "includeCustomFormatWhenRenaming": false, "specifications": [{ @@ -13,7 +14,7 @@ "negate": false, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/radarr/cf/dts.json b/docs/json/radarr/cf/dts.json index 056f533d8..5c97ce5cf 100644 --- a/docs/json/radarr/cf/dts.json +++ b/docs/json/radarr/cf/dts.json @@ -68,7 +68,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/radarr/cf/truehd-atmos.json b/docs/json/radarr/cf/truehd-atmos.json index 78b8f7a95..ee5139c03 100644 --- a/docs/json/radarr/cf/truehd-atmos.json +++ b/docs/json/radarr/cf/truehd-atmos.json @@ -59,7 +59,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/sonarr/cf/dts-es.json b/docs/json/sonarr/cf/dts-es.json index 94ad6b85d..03c112846 100644 --- a/docs/json/sonarr/cf/dts-es.json +++ b/docs/json/sonarr/cf/dts-es.json @@ -56,7 +56,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/sonarr/cf/dts-hd-hra.json b/docs/json/sonarr/cf/dts-hd-hra.json index 3061e0411..e8eaf0cc2 100644 --- a/docs/json/sonarr/cf/dts-hd-hra.json +++ b/docs/json/sonarr/cf/dts-hd-hra.json @@ -57,7 +57,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/sonarr/cf/dts-hd-ma.json b/docs/json/sonarr/cf/dts-hd-ma.json index ff6bbd3e9..376075bb3 100644 --- a/docs/json/sonarr/cf/dts-hd-ma.json +++ b/docs/json/sonarr/cf/dts-hd-ma.json @@ -49,7 +49,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/sonarr/cf/dts-x.json b/docs/json/sonarr/cf/dts-x.json index b88fed7dc..b7dd848cc 100644 --- a/docs/json/sonarr/cf/dts-x.json +++ b/docs/json/sonarr/cf/dts-x.json @@ -3,6 +3,7 @@ "trash_scores": { "default": 4500 }, + "trash_regex": "https://regex101.com/r/VWCW8c/1", "name": "DTS X", "includeCustomFormatWhenRenaming": false, "specifications": [{ @@ -11,7 +12,7 @@ "negate": false, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/sonarr/cf/dts.json b/docs/json/sonarr/cf/dts.json index 95e54ff4c..848208567 100644 --- a/docs/json/sonarr/cf/dts.json +++ b/docs/json/sonarr/cf/dts.json @@ -66,7 +66,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { diff --git a/docs/json/sonarr/cf/truehd-atmos.json b/docs/json/sonarr/cf/truehd-atmos.json index 40c11cdac..a4844fb9e 100644 --- a/docs/json/sonarr/cf/truehd-atmos.json +++ b/docs/json/sonarr/cf/truehd-atmos.json @@ -57,7 +57,7 @@ "negate": true, "required": true, "fields": { - "value": "\\b(dts[-_. ]?x)\\b(?!\\d)" + "value": "\\b(dts[-_.: ]?x7?)\\b(?![-_. ]?(26[456]))" } }, { From abeb6b5b4592d7673df7b209cc4a108b1981b42e Mon Sep 17 00:00:00 2001 From: TRaSH Date: Sun, 7 Apr 2024 11:28:20 +0200 Subject: [PATCH 02/18] feat(guide): New Plex Guide what does my media player support (#1868) * feat(guide): New Plex Guide what does my media player support * changes to fix local build error * Added link to the index * added: hulu and support footer * changed TOC order and added how to provide a missing player * Update plex-audio-atv.png * added: correct link to the sheet * renamed media-players to what does my media player support * Update .pages * added: link to what does my media player support * Changed JF to Jellyfin * moved note info to the sheet link * Apply suggestions from code review Co-authored-by: zakary * Improved: Audio description * added: option so we can link to it * Update what-does-my-media-player-support.md - Added: JellyFin/Emby info - Changed comments to notes, being the sheet uses notes to show the extra info - Corrected formatting in text line --------- Co-authored-by: zakary --- docs/Plex/.pages | 1 + .../Plex/what-does-my-media-player-support.md | 109 ++++++++++++++++++ docs/Radarr/images/plex-audio-atv.png | Bin 43579 -> 43591 bytes docs/Radarr/radarr-setup-quality-profiles.md | 15 ++- docs/Sonarr/sonarr-setup-quality-profiles.md | 5 +- mkdocs.yml | 3 +- 6 files changed, 125 insertions(+), 8 deletions(-) create mode 100644 docs/Plex/what-does-my-media-player-support.md diff --git a/docs/Plex/.pages b/docs/Plex/.pages index 66ecf3f78..162f823d8 100644 --- a/docs/Plex/.pages +++ b/docs/Plex/.pages @@ -2,5 +2,6 @@ nav: - Home: index.md - Suggested Plex Media Server Settings: /Plex/Tips/Plex-media-server/ - Optimal Plex Client Settings: /Plex/Tips/Optimal-plex-client-settings/ + - What does my media player support: what-does-my-media-player-support.md - Stop 4k Video Transcoding: /Plex/Tips/4k-transcoding/ - Profiles: /Plex/profiles/ diff --git a/docs/Plex/what-does-my-media-player-support.md b/docs/Plex/what-does-my-media-player-support.md new file mode 100644 index 000000000..781e37e31 --- /dev/null +++ b/docs/Plex/what-does-my-media-player-support.md @@ -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 ` + +## 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" diff --git a/docs/Radarr/images/plex-audio-atv.png b/docs/Radarr/images/plex-audio-atv.png index 22bf09d8f95b62573155b548898847ede8c74d52..cdaaee9496532a37e2a7a9203e1f31dc2f621063 100644 GIT binary patch literal 43591 zcmdSB2UL^U`ZtPW8%G5ZM?jiN6BQUxdb1;fprZ7mR1rd?mypB`C`IWVl_pXmErCE1 z3lfnMr3DB{ln4<*5-=ozgplvWnK@_9J^%Zyd)K;mt$X)cguLN>_ufx`p5L=W@&$YA z?Z55$O+rFqyUp2Cmn0-Mk|iY8Mf|!6_@w8@({SL|x`<2GCnW0o6=#5p4S~ncAD575 zNZ-10Z6k2K<>pz}2nh+vcWXcE@ZcAI5)#!DHm8nXj`d=S^y;$8F?i%cD2rn>)MW0JmWQWMz1-y`Hfx!K?EB_v+o-8&=s@5}kUXVL5b zeQEw{2J7Ef5>j{mhevP9S;65Q?-S>R>CLnI%xfr{=V=z3l));`vK{sgiF1BYFzLEp zg*!xGF&vJ}^A``VtemCtQB)OQ$sd^}w3sBe=)yL5=>`djTTRdP&Rojn$^c6`EiaTP zKj->E&)pL-`R>_Ugv$%N`JY2<1Aq8O_%Kh|@Dnw*!&hKLbR%1h4Dy!3+fyAQEc$UW zD8r-MMf@iS?wONS48d)v1=;&IDhzku&057yh)s(GTBMDzL$(ar|JJR}|P@mz$;f1Bq z2)Vo|27jG7Gr##JIPS|5W-{g%35hR4%w?h6Y=r*cz82@lIMM~*YG_5HWxnEy`{6H^BFOxbXhUn z>?}GRf(ZU=(Hszw?P<=iobf8Of{TBp?-RFtEQ`gk0lvSE`xF@Y7vD`=)g3}@nn~!n zqq6;(^FiU@3|$o~7`%f@`3`{?ZMk*E=lsr_VbBSlrO1d;%r*U>fB|0-_CW2((P?ZA zok_Tx)v&tQ6`nvMAt$ExFx4pVxQ#~;^P%6Fm=ErR9I5qg0Eymwr2Q@Z}b;0dIVd5x1PN+E~xSot4iOCJ``vk*^@aP zqC;0(SBd_OZlmOUL`%2ZX1jG&-)RH;JHF=*#OkOSuSD1yjJ}^L zKE*cLgD>2X`S<$zqQhU-Al74`q*}0Hs1pLZmEJmnavvYuTMEW*im<3F=SM0=%q6cV z>GpFByC^yaQIMQG)D)eqGPqR1c;5ya5zdYTfbf^C8NwEQdwa|gj>%ytxZp2dgpZa4 zPevC7W&hF6o}zW$tHll%F$6=RxN50*!n3y`O9FvoBJu@6*`atZEDVwkB~cA>BkHT$ z1;l1s=%em%(vNz*RtDO|m{@JKN2ohy?hNo@{uSZkpSJV8tmG)&KflN+bJctcw$Ht< zJVsDj(@pY^^E|ZWf_mSExb+5hvoxPTjHDI(UUkRV0r1Cc;pHv2dk??)e8blRH8b%G zsvNH^t?xUs=^4s0bK7s40q4+Ale(=!I!dm}v~PhZbSx;IZB#NXwiS2n%V9qEI!acTYS>hT|%s*46}s;{D3JlZZ-SD3-$EkIe73SNc2PWHM(eWp3B$b zrV#&$#1pe|Hk?-sw{2SHWC@ku<3do8VsUuK�c;;Rzjhq%ukT! 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 diff --git a/docs/Radarr/radarr-setup-quality-profiles.md b/docs/Radarr/radarr-setup-quality-profiles.md index 25cafaa21..b5dcce2eb 100644 --- a/docs/Radarr/radarr-setup-quality-profiles.md +++ b/docs/Radarr/radarr-setup-quality-profiles.md @@ -7,9 +7,10 @@ There isn't a "best" setup, it depends on your media setup (hardware devices) an 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 set up 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. ------ @@ -271,9 +272,13 @@ The following custom format groups should be combined with the Quality Profiles ### Advanced Audio -- You have 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 an AppleTV (Being it can't passthrough untouched HD audio). +- You have a hardware media player device and an audio setup that supports **ALL** HD Audio (TrueHD, DTS-X, DTS-HD, etc). + + {! include-markdown "../../includes/cf/audio-limitations-atv.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.* diff --git a/docs/Sonarr/sonarr-setup-quality-profiles.md b/docs/Sonarr/sonarr-setup-quality-profiles.md index 6a85f090d..4151e3781 100644 --- a/docs/Sonarr/sonarr-setup-quality-profiles.md +++ b/docs/Sonarr/sonarr-setup-quality-profiles.md @@ -7,9 +7,10 @@ There isn't a "best" setup, it depends on your media setup (hardware devices) an 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 set up 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. ------ diff --git a/mkdocs.yml b/mkdocs.yml index 6d51bf8ff..6727b9e06 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -65,7 +65,8 @@ plugins: - git-revision-date-localized: type: datetime locale: en - fallback_to_build_date: false + fallback_to_build_date: true + enable_creation_date: true - awesome-pages - glightbox: touchNavigation: true From ef0ffd74a97a0930c0d94aaf781998fb22d36a8c Mon Sep 17 00:00:00 2001 From: TRaSH Date: Sun, 7 Apr 2024 11:36:23 +0200 Subject: [PATCH 03/18] # 2024-04-07 09:35 # 2024-04-07 09:35 --- docs/updates.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/updates.txt b/docs/updates.txt index cbbf05025..8aa46fe5a 100644 --- a/docs/updates.txt +++ b/docs/updates.txt @@ -1,3 +1,6 @@ +# 2024-04-07 09:35 +- [feat(guide): **NEW** Plex Guide what does my media player support](https://github.com/TRaSH-Guides/Guides/pull/1868) + # 2024-04-01 16:30 - [feat(guide): minor changes to several guides](https://github.com/TRaSH-Guides/Guides/pull/1858) - [feat(guide): Update Sonarr Remux Tiers](https://github.com/TRaSH-Guides/Guides/pull/1862) From 93e8740bd1431b2c4893252e3b7e61ef0c9fb57d Mon Sep 17 00:00:00 2001 From: bokkoman Date: Mon, 8 Apr 2024 18:34:06 +0200 Subject: [PATCH 04/18] feat(Synology): Simplify Synology Guide (#1876) * Update Synology.md Updated guide. Removed too much info on the subfolders part (the breakdown). Removed unnecessary warnings / infos. * Update docs/Hardlinks/How-to-setup-for/Synology.md better indeed Co-authored-by: bakerboy448 <55419169+bakerboy448@users.noreply.github.com> * Fix: MD001 and MD029 lint error * fix: push mistake --------- Co-authored-by: bakerboy448 <55419169+bakerboy448@users.noreply.github.com> Co-authored-by: TRaSH --- docs/Hardlinks/How-to-setup-for/Synology.md | 134 ++++++++------------ 1 file changed, 56 insertions(+), 78 deletions(-) diff --git a/docs/Hardlinks/How-to-setup-for/Synology.md b/docs/Hardlinks/How-to-setup-for/Synology.md index 5a856f9c9..0deab8018 100644 --- a/docs/Hardlinks/How-to-setup-for/Synology.md +++ b/docs/Hardlinks/How-to-setup-for/Synology.md @@ -12,7 +12,16 @@ ## 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 @@ -47,17 +56,11 @@ This page will provide you with guidance on how to install several Docker images ## 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 -!!! warning - - To get Hardlinks and Atomic-Moves working with your Synology you will need to make use of **ONE** share with subfolders. - -We will use a new share named `data` (lowercase) for all your library media. - -Later in this guide, we will fill this share with subfolders. +We will create and use a new share named `data` (lowercase) for all your library media and downloads. To create a new share: @@ -65,27 +68,27 @@ To create a new share: ![!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 -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` -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) 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 -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) @@ -93,7 +96,7 @@ Click `Next` until you reach `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) @@ -102,7 +105,7 @@ Continue to click `Next` until you are finished. ## SSH 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` @@ -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. -If you get a popup asking if you want to trust the key, -Just press `OK` or `ACCEPT` +If you get a message asking if you want to trust the key, just press `OK` or `ACCEPT`. ### 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. -Go into your terminal app, login to your synology ssh. - -Once logged in type `id $user`. Change $user to the newly created username `docker`. +Once logged in to the terminal type `id docker`. If you used a different username, change `docker` to the one you used. ![!synology-id](images/synology-id.png) This will show you the UID (aka PUID). -Which in this screenshot is `1035` for the docker user -and the GID (aka PGID) which is `100` for the users group. -Remember these values for later use. - -!!! warning - - It is not recommended to use (anymore) your admin/main user account. That is why we just created a new user. - ------- - -## Folder Structure +Which in the screenshot above is `1035` for the docker user and the GID (aka PGID) which is `100` for the users group. +Save these values for later use. -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 you’d pass to Plex, Emby or JellyFin. - -These subfolders you need to create your self. - -*I'm using lower case on all folder on purpose, being Linux is case sensitive.* +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.* {! include-markdown "../../../includes/hardlinks/docker-tree-full.md" !} {! include-markdown "../../../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: -### Create the needed subfolder - -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 +### If you use usenet ```bash mkdir -p /volume1/data/{usenet/{incomplete,complete}/{tv,movies,music},media/{tv,movies,music}} ``` -#### If you use torrents +### If you use torrents ```bash mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}} @@ -179,22 +159,17 @@ mkdir -p /volume1/data/{torrents/{tv,movies,music},media/{tv,movies,music}} ### Appdata -Your appdata will be stored in `/volume1/docker/appdata/{appname}` -These `{appname}` sub folders you need to create your self. (*This is a limitation of the Synology*) -We're going to do this in Putty or a similar program. +Your application data will be stored in the `docker` share in the folder called `appdata` (`/volume1/docker/appdata`) +Create these folders with command below, or create them in File Station manually. ```bash mkdir -p /volume1/docker/appdata/{radarr,sonarr,bazarr,plex,pullio} ``` -You can add your own sub folders for your download client(s) using the command above, by adding the name to the command. +You can add your own subfolders for your download client(s) using the command above, by adding the name to the command. So your appdata folder will look like this. -```bash -ls -al /volume1/docker/appdata -``` - ```none docker └── appdata @@ -203,7 +178,8 @@ docker ├── bazarr ├── plex ├── 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/ ``` -### Whats included and Whats not included - -??? question "What's included and What's not included - [Click to show/hide]" +### What's included in the compose and what is not included - This docker-compose file will have the following docker containers included. +This docker-compose file will have the following docker containers included. +```none - Radarr - Sonarr - Bazarr (Subtitle searcher and downloader) - 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 -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 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 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 @@ -287,13 +263,13 @@ First you need to download 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` 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: @@ -311,8 +287,10 @@ More info about Pullio [HERE](https://hotio.dev/scripts/pullio/){:target="_blank Now we need to make sure that the newly created files and folders have the correct permissions. +If you have an existing library, it is advised to move these to the new `data` share prior to running the commands below. + !!! note - If you're using a different user than `docker` (the user generated in the beginning), then you need to change the `docker:users` part in the 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 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 - 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 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 cd /volume1/docker/appdata @@ -343,15 +321,15 @@ cd /volume1/docker/appdata sudo docker-compose up -d ``` -You will notice that all the images will be downloaded, after that the containers will be started. If you get a error then 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 - 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. From cb8e4dc9e9da0cc4af87e747100a23ce01d35876 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 20:14:13 +0200 Subject: [PATCH 05/18] build(deps): bump mkdocs-material from 9.5.16 to 9.5.17 (#1875) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.16 to 9.5.17. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.16...9.5.17) --- updated-dependencies: - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index a4e263187..3cd9c41bc 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,7 +2,7 @@ mkdocs-glightbox==0.3.7 mkdocs-awesome-pages-plugin==2.9.2 mkdocs-git-revision-date-localized-plugin==1.2.4 mkdocs-macros-plugin==1.0.5 -mkdocs-material==9.5.16 +mkdocs-material==9.5.17 mkdocs-minify-plugin==0.8.0 mkdocs-redirects==1.2.1 mkdocs-include-markdown-plugin==6.0.5 From f2cbf5146d40f4f0e3aa59434095817c448bf338 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Thu, 11 Apr 2024 20:36:21 +0200 Subject: [PATCH 06/18] fix(guide): Fix Optional UHD include error (#1878) --- includes/cf/radarr-optional-uhd.md | 2 +- includes/cf/sonarr-optional-uhd.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/cf/radarr-optional-uhd.md b/includes/cf/radarr-optional-uhd.md index a26a688b2..4eb0ac9a9 100644 --- a/includes/cf/radarr-optional-uhd.md +++ b/includes/cf/radarr-optional-uhd.md @@ -8,7 +8,7 @@ Breakdown and Why - - **{{ radarr['cf']['sdr']['name'] }}:** {! include-markdown "../../includes/cf-descriptions/sdr.md" !} + - **{{ radarr['cf']['sdr']['name'] }}:** This will prevent grabbing UHD/4k releases without HDR Formats. - **{{ radarr['cf']['sdr-no-webdl']['name'] }}:** This will prevent grabbing UHD/4k Remux and Bluray encode releases without HDR Formats. - i.e., SDR WEB releases will still be allowed since 4K SDR WEB releases can often look better than the 1080p version due to the improved bitrate. !!! Danger "Don't use this together with [{{ radarr['cf']['sdr']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#sdr), Only ever include one of them :warning:" diff --git a/includes/cf/sonarr-optional-uhd.md b/includes/cf/sonarr-optional-uhd.md index b833efad3..fc3d47bfa 100644 --- a/includes/cf/sonarr-optional-uhd.md +++ b/includes/cf/sonarr-optional-uhd.md @@ -8,7 +8,7 @@ Breakdown and Why - - **{{ sonarr['cf']['sdr']['name'] }}:** {! include-markdown "../../includes/cf-descriptions/sdr.md" !} + - **{{ sonarr['cf']['sdr']['name'] }}:** This will prevent grabbing UHD/4k releases without HDR Formats. - **{{ sonarr['cf']['sdr-no-webdl']['name'] }}:** This will prevent grabbing UHD/4k Remux and Bluray encode releases without HDR Formats. - i.e., SDR WEB releases will still be allowed since 4K SDR WEB releases can often look better than the 1080p version due to the improved bitrate. !!! Danger "Don't use this together with [{{ sonarr['cf']['sdr']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#sdr), Only ever include one of them :warning:" From dc82f90b96f4a895e677993cf7ee70f745a09c5e Mon Sep 17 00:00:00 2001 From: zakary Date: Thu, 11 Apr 2024 15:27:46 -0500 Subject: [PATCH 07/18] update(imax-descriptions): language and descriptions around imax(e) (#1879) * update(imax-descriptions): language and descriptions around imax related text * update(workflows.md): missed a few * add(citations): adds reference for imax description * update(imax-e): further refinement --- docs/Radarr/Radarr-collection-of-custom-formats.md | 14 +++++++++++--- includes/cf-descriptions/bcore.md | 2 +- includes/sqp/2-workflow.md | 8 ++++---- includes/sqp/3-workflow.md | 10 +++++----- includes/sqp/4-why.md | 8 ++++---- includes/sqp/4-workflow.md | 8 ++++---- includes/sqp/5-workflow.md | 8 ++++---- 7 files changed, 33 insertions(+), 25 deletions(-) diff --git a/docs/Radarr/Radarr-collection-of-custom-formats.md b/docs/Radarr/Radarr-collection-of-custom-formats.md index 04ce0532d..2535ccdba 100644 --- a/docs/Radarr/Radarr-collection-of-custom-formats.md +++ b/docs/Radarr/Radarr-collection-of-custom-formats.md @@ -839,7 +839,10 @@ We've made 3 guides related to this. ### IMAX ??? question "IMAX - [Click to show/hide]" - Description placeholder + + [From In Depth Cine](https://www.indepthcine.com/videos/imax){:target="_blank" rel="noopener noreferrer"} + + IMAX films are shot in tall aspect ratios, typically 1.9:1 or sometimes 1.43:1. Most IMAX film releases also have scenes shot at wider aspect ratios and, as a result, the aspect ratio will change throughout. Because they are shot on large format cameras, there is often less film grain present. This results in a clearer picture. ??? example "JSON - [Click to show/hide]" @@ -854,9 +857,14 @@ We've made 3 guides related to this. ### IMAX Enhanced ??? question "IMAX Enhanced - [Click to show/hide]" - IMAX Enhanced: Get More Picture Instead of Black Bars - IMAX Enhanced exclusive expanded aspect ratio is 1:90:1, which offers up to 26% more picture for select sequences, meaning more of the action is visible on screen. + **Get more picture and less black bars (letterboxing).** + + [From Wired](https://www.wired.com/story/what-is-imax-enhanced/){:target="_blank" rel="noopener noreferrer"} + + IMAX Enhanced is a standard for digital releases. It features scenes shot on IMAX cameras and produced in HDR10 DV. IMAX Enhanced releases are often higher bitrate than other WEB options and are encoded into various formats, including SDR conversions. + + As a result of the higher bitrate and implied picture quality improvement, it is recommended to enable the IMAX Enhanced custom format on WEB profiles, especially for those seeking 'The IMAX Experience' - including less "black bars" or letterboxing. ![!Imax Enhanced Example](images/imax-e/imax-e.1.png) diff --git a/includes/cf-descriptions/bcore.md b/includes/cf-descriptions/bcore.md index 5a35dff62..176362c27 100644 --- a/includes/cf-descriptions/bcore.md +++ b/includes/cf-descriptions/bcore.md @@ -4,4 +4,4 @@ [From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Sony_Pictures_Core){:target="_blank" rel="noopener noreferrer"} Sony Pictures Core (formerly known as Bravia Core) is a video on demand service from Sony for its televisions and smartphones, launched in April 2021. The service offers the streaming of movies at up to 4K resolution provided by Sony Pictures Entertainment. CORE stands for Centre of Real Entertainment. -Sony claims that Bravia Core has one of the largest library of IMAX Enhanced format film content. Streaming, which is marketed as Pure Stream, is claimed to be at speeds of up to 80 Mbit/s. +Sony claims that Bravia Core has one of the largest libraries of IMAX Enhanced format film content. Streaming, which is marketed as Pure Stream, is claimed to be at speeds of up to 80 Mbit/s. diff --git a/includes/sqp/2-workflow.md b/includes/sqp/2-workflow.md index bfb874280..23d3cedcb 100644 --- a/includes/sqp/2-workflow.md +++ b/includes/sqp/2-workflow.md @@ -2,9 +2,9 @@ ??? 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 4k WEBDL is released it will download the 4k WEB-DL. (streaming services) + - When the 4k WEB-DL is released it will download the 4k WEB-DL. (streaming services) - When the 4k Remux is released it will upgrade to the 4k Remux. - When the HQ Encode is released it will upgrade to the HQ Encode. - When the IMAX-E is released it will upgrade to the IMAX-E. (*optional, see below*) @@ -13,9 +13,9 @@ *Possible Variables* - **When no 4k exist it will grab the following:** + **When no 4k release exists, it will grab the following:** - 1080p WEBDL with DV/HDR (*optional also 1080p WEBDL without DV/HDR*) - 1080p Remux - !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When a IMAX Enhanced exist it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will be **ONLY** chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to a `HDR`." + !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When an IMAX Enhanced exists, it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will **ONLY** be chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to an `HDR`." diff --git a/includes/sqp/3-workflow.md b/includes/sqp/3-workflow.md index 9c6110934..c34a04459 100644 --- a/includes/sqp/3-workflow.md +++ b/includes/sqp/3-workflow.md @@ -2,9 +2,9 @@ ??? 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 4k WEBDL is released it will download the 4k WEB-DL. (streaming services) + - When the 4k WEB-DL is released it will download the 4k WEB-DL. (streaming services) - When the 4k Remux is released it will upgrade to the 4k Remux. - When the IMAX-E is released it will upgrade to the IMAX-E. (*optional, see below*) @@ -12,9 +12,9 @@ *Possible Variables* - **When no 4k exist it will grab the following:** + **When no 4k release exists, it will grab the following:** - - 1080p WEBDL with DV/HDR (*optional also 1080p WEBDL without DV/HDR*) + - 1080p WEB-DL with DV/HDR (*optional also 1080p WEBDL without DV/HDR*) - 1080p Remux - !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When a IMAX Enhanced exist it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will be **ONLY** chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to a `HDR`." + !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When an IMAX Enhanced exists it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will **ONLY** be chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to a `HDR`." diff --git a/includes/sqp/4-why.md b/includes/sqp/4-why.md index 74109418b..ff632973e 100644 --- a/includes/sqp/4-why.md +++ b/includes/sqp/4-why.md @@ -2,9 +2,9 @@ ??? question "Why choose this quality profile? - [Click to show/hide]" - - You got a setup that completely supports DoVi from start to end. - - HDR/DoVi (Depending what's offered and often both) + - You have a setup that completely supports DoVi from start to end. + - HDR/DoVi (Depending on what's offered and often both) - If available HD Audio (Atmos, TrueHD etc...) - - You're okay with WEBDL, with the option to upgrade to IMAX Enhanced. + - You're okay with WEB-DL, with the option to upgrade to IMAX Enhanced. - You don't need the huge Remuxes or UHD Bluray Encodes but still want HDR Formats. - - You want a smaller files for your kids movies (Disney/Pixar etc) + - You want smaller files for your kid's movies (Disney/Pixar etc) diff --git a/includes/sqp/4-workflow.md b/includes/sqp/4-workflow.md index 80d6f156a..61e96c25e 100644 --- a/includes/sqp/4-workflow.md +++ b/includes/sqp/4-workflow.md @@ -2,18 +2,18 @@ ??? 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 4k WEBDL is released it will download the 4k WEB-DL. (streaming services) + - When the 4k WEB-DL is released it will download the 4k WEB-DL. (streaming services) - When the IMAX-E is released it will upgrade to the IMAX-E. (*optional, see below*) ------ *Possible Variables* - **When no 4k exist it will grab the following:** + **When no 4k release exists, it will grab the following:** - 1080p WEBDL with DV/HDR (*optional also 1080p WEBDL without DV/HDR*) - 1080p Remux - !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When a IMAX Enhanced exist it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will be **ONLY** chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to a `HDR`." + !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When an IMAX Enhanced exists, it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will **ONLY** be chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to an `HDR`." diff --git a/includes/sqp/5-workflow.md b/includes/sqp/5-workflow.md index 46eef38e5..2d3fdcc01 100644 --- a/includes/sqp/5-workflow.md +++ b/includes/sqp/5-workflow.md @@ -2,9 +2,9 @@ ??? 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 4k WEBDL is released it will download the 4k WEB-DL. (streaming services) + - When the 4k WEB-DL is released it will download the 4k WEB-DL. (streaming services) - When the HQ Encode is released it will upgrade to the HQ Encode. - When the IMAX-E is released it will upgrade to the IMAX-E. (*optional, see below*) @@ -14,9 +14,9 @@ *Possible Variables* - **When no 4k exist it will grab the following:** + **When no 4k release exists, it will grab the following:** - 1080p WEBDL with DV/HDR (*optional also 1080p WEBDL without DV/HDR*) - 1080p Remux - !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When a IMAX Enhanced exist it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will be **ONLY** chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to a `HDR`." + !!! info "[*Optional*] IMAX Enhanced (IMAX-E)
- When an IMAX Enhanced exists, it will upgrade/downgrade to IMAX Enhanced.
- IMAX Enhanced will **ONLY** be chosen if it has the same **AUDIO** and **HDR Metadata**
- It won't downgrade from a `TrueHD Atmos` to a `DD+ Atmos` or from a `DV` to an `HDR`." From 27106e0cddee1ddc6d3261c913765e1c67bffae0 Mon Sep 17 00:00:00 2001 From: zakary Date: Sun, 14 Apr 2024 20:15:17 -0500 Subject: [PATCH 08/18] ci(pr-name-check): integrates pr naming convention into workflow (#1881) Co-authored-by: nuxen <47067662+nuxencs@users.noreply.github.com> --- .github/workflows/pr-naming-check.yml | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/pr-naming-check.yml diff --git a/.github/workflows/pr-naming-check.yml b/.github/workflows/pr-naming-check.yml new file mode 100644 index 000000000..219d64c11 --- /dev/null +++ b/.github/workflows/pr-naming-check.yml @@ -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(\\): \\\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.`) + } From 8a37f9086d95c0e7efe478e7630c8e9c472627ec Mon Sep 17 00:00:00 2001 From: NiceTSY <38940602+NiceTSY@users.noreply.github.com> Date: Wed, 17 Apr 2024 19:43:44 +0200 Subject: [PATCH 09/18] update(sonarr): remove NERO from LQ (#1884) update(sonarr-lq): remove nero --- docs/json/sonarr/cf/lq.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/docs/json/sonarr/cf/lq.json b/docs/json/sonarr/cf/lq.json index 997dc3652..445cd476e 100644 --- a/docs/json/sonarr/cf/lq.json +++ b/docs/json/sonarr/cf/lq.json @@ -114,15 +114,6 @@ "value": "^(MeGusta)$" } }, - { - "name": "NERO", - "implementation": "ReleaseGroupSpecification", - "negate": false, - "required": false, - "fields": { - "value": "^(NERO)$" - } - }, { "name": "nhanc3", "implementation": "ReleaseGroupSpecification", From cdc502369d15a24d6dfc025b15d951bd464b3459 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Sun, 21 Apr 2024 20:51:20 +0200 Subject: [PATCH 10/18] fix(starr): Prevent double scoring `DD+` and `DD+ Atmos` (#1887) --- docs/json/radarr/cf/ddplus.json | 2 +- docs/json/sonarr/cf/ddplus.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/json/radarr/cf/ddplus.json b/docs/json/radarr/cf/ddplus.json index 339ae3e3f..21586fad3 100644 --- a/docs/json/radarr/cf/ddplus.json +++ b/docs/json/radarr/cf/ddplus.json @@ -22,7 +22,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS(\\b|\\d)" + "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" } }, { diff --git a/docs/json/sonarr/cf/ddplus.json b/docs/json/sonarr/cf/ddplus.json index 206947fa4..da5793093 100644 --- a/docs/json/sonarr/cf/ddplus.json +++ b/docs/json/sonarr/cf/ddplus.json @@ -20,7 +20,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS(\\b|\\d)" + "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" } }, { From fc9ad8e94f1f178d428e095ad877fb17df6da710 Mon Sep 17 00:00:00 2001 From: nuxen Date: Mon, 22 Apr 2024 17:54:28 +0200 Subject: [PATCH 11/18] fix(starr): `DD+` word boundaries (#1892) fix(starr): DD+ word boundaries --- docs/json/radarr/cf/ddplus.json | 2 +- docs/json/sonarr/cf/ddplus.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/json/radarr/cf/ddplus.json b/docs/json/radarr/cf/ddplus.json index 21586fad3..17298e736 100644 --- a/docs/json/radarr/cf/ddplus.json +++ b/docs/json/radarr/cf/ddplus.json @@ -22,7 +22,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" + "value": "\\b(True[ .-]?HD|ATMOS|DDPA)(\\b|\\d)" } }, { diff --git a/docs/json/sonarr/cf/ddplus.json b/docs/json/sonarr/cf/ddplus.json index da5793093..f3de1f75a 100644 --- a/docs/json/sonarr/cf/ddplus.json +++ b/docs/json/sonarr/cf/ddplus.json @@ -20,7 +20,7 @@ "negate": true, "required": true, "fields": { - "value": "True[ .-]?HD|\\bATMOS|DDPA(\\b|\\d)" + "value": "\\b(True[ .-]?HD|ATMOS|DDPA)(\\b|\\d)" } }, { From cf1b5b998f2fb7ba87d786b26cc1ae1ace117d56 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Mon, 22 Apr 2024 18:27:48 +0200 Subject: [PATCH 12/18] fix(guide): unRAID Mover and qBittorrent - Remove option to edit script for mover.old (#1889) --- ...ow-to-run-the-unRaid-mover-for-qBittorrent.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md index d600df08d..cd483b960 100644 --- a/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md +++ b/docs/Downloaders/qBittorrent/Tips/How-to-run-the-unRaid-mover-for-qBittorrent.md @@ -137,13 +137,6 @@ You can choose one of the following 3 options (select a tab) to install `qbittor ### Script -!!! warning "" - 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 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 94** - - 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 the script to your preferred location Place the script you just edited somewhere easy to access/remember. @@ -174,13 +167,16 @@ Click on the cogwheel of the new script in the list. ![!Select user script](images/Unraid-settings-user-scripts-list-select-qbit-mover.png) Choose your method (select a tab) and copy/paste the script in the new window that opens, then click `SAVE CHANGES`. + +!!! info "replace `ip` with your unraid server ip, replace `port` with your webgui port you use to access the webgui" + === "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 + python3 /mnt/user/data/scripts/mover.py --host "ip:port" --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`." ``` @@ -192,7 +188,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th /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." - /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 + /mnt/user/data/scripts/.venv/bin/python3 /mnt/user/data/scripts/mover.py --host ip:port" --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`." ``` @@ -206,7 +202,7 @@ Choose your method (select a tab) and copy/paste the script in the new window th - `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) + Click the schedule dropdown to choose when the script should run. We want to select `Custom`. From c9cc4019dc88df50de10bf6c224987076336c3b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 18:28:53 +0200 Subject: [PATCH 13/18] build(deps): bump actions/checkout from 4.1.2 to 4.1.3 (#1890) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy.yml | 4 ++-- .github/workflows/lint-editor.yml | 2 +- .github/workflows/lint-markdown.yml | 2 +- .github/workflows/lint-yaml.yml | 2 +- .github/workflows/metadata-validation.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 25bf746cd..af7243401 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -17,7 +17,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 with: fetch-depth: 0 sparse-checkout: | @@ -57,7 +57,7 @@ jobs: cancel-in-progress: true steps: - name: Checkout repository - uses: actions/checkout@v4.1.2 + uses: actions/checkout@v4.1.3 with: fetch-depth: 0 sparse-checkout: | diff --git a/.github/workflows/lint-editor.yml b/.github/workflows/lint-editor.yml index 42f64fdca..6cb907c74 100644 --- a/.github/workflows/lint-editor.yml +++ b/.github/workflows/lint-editor.yml @@ -10,7 +10,7 @@ jobs: editorconfig-checker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - name: editorconfig-checker run: | docker run --rm \ diff --git a/.github/workflows/lint-markdown.yml b/.github/workflows/lint-markdown.yml index d083d2fe6..c8b10508f 100644 --- a/.github/workflows/lint-markdown.yml +++ b/.github/workflows/lint-markdown.yml @@ -10,7 +10,7 @@ jobs: markdownlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - name: markdownlint run: | docker run --rm \ diff --git a/.github/workflows/lint-yaml.yml b/.github/workflows/lint-yaml.yml index d63e30eff..40ce6352a 100644 --- a/.github/workflows/lint-yaml.yml +++ b/.github/workflows/lint-yaml.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - name: Run yamllint run: | diff --git a/.github/workflows/metadata-validation.yml b/.github/workflows/metadata-validation.yml index 0c4f765c9..a89da4dba 100644 --- a/.github/workflows/metadata-validation.yml +++ b/.github/workflows/metadata-validation.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest name: Validate metadata.json steps: - - uses: actions/checkout@v4.1.2 + - uses: actions/checkout@v4.1.3 - uses: actions/setup-python@v5.1.0 with: python-version: 3.x From c642c14fe73ff8f42bb354d9b01185a14dc21184 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 19:23:28 +0200 Subject: [PATCH 14/18] build(deps): bump mkdocs-material from 9.5.17 to 9.5.18 (#1891) Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.17 to 9.5.18. - [Release notes](https://github.com/squidfunk/mkdocs-material/releases) - [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG) - [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.17...9.5.18) --- updated-dependencies: - dependency-name: mkdocs-material dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 3cd9c41bc..14dce6a30 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,7 +2,7 @@ mkdocs-glightbox==0.3.7 mkdocs-awesome-pages-plugin==2.9.2 mkdocs-git-revision-date-localized-plugin==1.2.4 mkdocs-macros-plugin==1.0.5 -mkdocs-material==9.5.17 +mkdocs-material==9.5.18 mkdocs-minify-plugin==0.8.0 mkdocs-redirects==1.2.1 mkdocs-include-markdown-plugin==6.0.5 From 44d3f87d44fcdc5186750a7d94c2593168cc5f0f Mon Sep 17 00:00:00 2001 From: Robert Dailey Date: Mon, 22 Apr 2024 23:00:35 -0500 Subject: [PATCH 15/18] feat(backend): Add Quality Profile JSON Files for Use by Guide Sync Tools (#1660) * Add initial quality profile JSON files for Radarr These files were auto-generated by an exporter tool provided by nitsua. The source of the exported data was one of Trash's Radarr instances. The following transformations were performed on the data model provided by Radarr. All of these are motivated by providing a simpler JSON file schema for guide contributors and eliminating redundant data. - Any `id` fields are omitted (for `items` especially) since those can vary from instance to instance. - The `formatItems` array represents a mapping of Custom Format Name to Custom Format Trash ID. The name itself is for documentation purposes only and serves no functional purpose; think of it as a comment that exists only to describe the CF identified by the trash ID next to it. The Trash ID itself is self explanatory; that is used by tooling to identify the CF JSON file paired with the quality profile. - Greatly simplified the `items` structure (this is the list of qualities and/or groups). The following rules must be adhered to: - The `allowed` property is required. It must be either true or false. This corresponds to the enabled/disabled toggle in the Radarr UI. - For qualities, `name` must match an existing quality *exactly, including case*. For groups, `name` can be whatever you want as long as it is unique. - For groups, a nested `items` array may be provided which identifies **two or more** quality names within it. - All qualities must be present and none omitted, even if their `allowed` property is set to `false`. This ensures explicit ordering in the guides. * Add quality profile groups to metadata.json Initially only for Radarr * Radarr JSON Updates - Renamed HD Bluray + WEB and UHD Bluray + WEB profile JSONs to be consistent with the profile names - Added Custom Format Group JSONs for: - Advanced Audio Formats - Optional Custom Formats - Fixes and updates for quality profile JSONs: - Removed non-mandatory custom formats - Removed incorrect custom formats - Fixed incorrect minimum profile scores for SQP-2/3/4/5 - Renamed merged quality group for SQP-5 - Reordered custom formats to match respective guide pages * Sonarr Profiles and Other Updates - Created quality profile JSONs for Sonarr - Created Optional CF group JSON for Sonarr - Created HDR Formats CF group JSONs for Radarr and Sonarr - Created Advanced Audio Formats CF group JSON for Sonarr - Added `trash_score_sets` to relevant quality profile JSONs - Fixed incorrect `required` variable inn Radarr Optional CF group JSON * Create Optional UHD Groups - Create new JSONs for Optional UHD custom format groups - Amend existing Optional custom format group JSONs to exclude relevant UHD profiles * Add DV HDR10Plus Custom Formats - Add DV HDR10Plus custom formats to relevant profile and group JSONs. * Add Sonarr QPs and CF Groups to metadata.json * Radarr Updates - Updated all jsons to match latest guide updates - Swapped `x265 (HD)` and `x265 (no HDR/DV)` for all UHD-capable profiles. This makes `x265 (no HDR/DV)` mandatory and `x265 (HD)` optional * Sonarr Updates - Update jsons with latest guide profile updates - Swapped `x265 (HD)` and `x265 (no HDR/DV)` for WEB-2160p profile. This makes `x265 (no HDR/DV)` mandatory and `x265 (HD)` optional * Radarr Quality Profile Updates 2024-04-22 - Updated Radarr quality profile JSONs to match current profile state * Sonarr Quality Profile Updates 2024-04-22 - Updated Sonarr quality profile JSONs to match current profile state --------- Co-authored-by: yammes08 <111231042+yammes08@users.noreply.github.com> --- .../cf-groups/advanced-audio-formats.json | 83 +++++++++++++ docs/json/radarr/cf-groups/hdr-formats.json | 75 ++++++++++++ docs/json/radarr/cf-groups/optional-uhd.json | 63 ++++++++++ docs/json/radarr/cf-groups/optional.json | 53 +++++++++ .../cf-groups/sqp-1-1080p-optional.json | 49 ++++++++ .../cf-groups/sqp-1-2160p-optional.json | 74 ++++++++++++ .../cf-groups/sqp-2-3-4-5-optional.json | 71 ++++++++++++ .../quality-profiles/hd-bluray-web.json | 74 ++++++++++++ .../quality-profiles/remux-web-1080p.json | 75 ++++++++++++ .../quality-profiles/remux-web-2160p.json | 87 ++++++++++++++ .../radarr/quality-profiles/sqp-1-1080p.json | 93 +++++++++++++++ .../radarr/quality-profiles/sqp-1-2160p.json | 109 ++++++++++++++++++ docs/json/radarr/quality-profiles/sqp-2.json | 101 ++++++++++++++++ docs/json/radarr/quality-profiles/sqp-3.json | 92 +++++++++++++++ docs/json/radarr/quality-profiles/sqp-4.json | 93 +++++++++++++++ docs/json/radarr/quality-profiles/sqp-5.json | 95 +++++++++++++++ .../quality-profiles/uhd-bluray-web.json | 86 ++++++++++++++ .../cf-groups/advanced-audio-formats.json | 82 +++++++++++++ docs/json/sonarr/cf-groups/hdr-formats.json | 67 +++++++++++ docs/json/sonarr/cf-groups/optional-uhd.json | 51 ++++++++ docs/json/sonarr/cf-groups/optional.json | 41 +++++++ .../sonarr/quality-profiles/web-1080p.json | 56 +++++++++ .../sonarr/quality-profiles/web-2160p.json | 68 +++++++++++ metadata.json | 8 +- metadata.schema.json | 8 +- 25 files changed, 1750 insertions(+), 4 deletions(-) create mode 100644 docs/json/radarr/cf-groups/advanced-audio-formats.json create mode 100644 docs/json/radarr/cf-groups/hdr-formats.json create mode 100644 docs/json/radarr/cf-groups/optional-uhd.json create mode 100644 docs/json/radarr/cf-groups/optional.json create mode 100644 docs/json/radarr/cf-groups/sqp-1-1080p-optional.json create mode 100644 docs/json/radarr/cf-groups/sqp-1-2160p-optional.json create mode 100644 docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json create mode 100644 docs/json/radarr/quality-profiles/hd-bluray-web.json create mode 100644 docs/json/radarr/quality-profiles/remux-web-1080p.json create mode 100644 docs/json/radarr/quality-profiles/remux-web-2160p.json create mode 100644 docs/json/radarr/quality-profiles/sqp-1-1080p.json create mode 100644 docs/json/radarr/quality-profiles/sqp-1-2160p.json create mode 100644 docs/json/radarr/quality-profiles/sqp-2.json create mode 100644 docs/json/radarr/quality-profiles/sqp-3.json create mode 100644 docs/json/radarr/quality-profiles/sqp-4.json create mode 100644 docs/json/radarr/quality-profiles/sqp-5.json create mode 100644 docs/json/radarr/quality-profiles/uhd-bluray-web.json create mode 100644 docs/json/sonarr/cf-groups/advanced-audio-formats.json create mode 100644 docs/json/sonarr/cf-groups/hdr-formats.json create mode 100644 docs/json/sonarr/cf-groups/optional-uhd.json create mode 100644 docs/json/sonarr/cf-groups/optional.json create mode 100644 docs/json/sonarr/quality-profiles/web-1080p.json create mode 100644 docs/json/sonarr/quality-profiles/web-2160p.json diff --git a/docs/json/radarr/cf-groups/advanced-audio-formats.json b/docs/json/radarr/cf-groups/advanced-audio-formats.json new file mode 100644 index 000000000..fa635183d --- /dev/null +++ b/docs/json/radarr/cf-groups/advanced-audio-formats.json @@ -0,0 +1,83 @@ +{ + "name": "Advanced Audio Formats", + "trash_id": "9d5acd8f1da78dfbae788182f7605200", + "custom_formats": [ + { + "name": "TrueHD Atmos", + "trash_id": "496f355514737f7d83bf7aa4d24f8169", + "required": true + }, + { + "name": "DTS X", + "trash_id": "2f22d89048b01681dde8afe203bf2e95", + "required": true + }, + { + "name": "ATMOS (undefined)", + "trash_id": "417804f7f2c4308c1f4c5d380d4c4475", + "required": true + }, + { + "name": "DD+ ATMOS", + "trash_id": "1af239278386be2919e1bcee0bde047e", + "required": true + }, + { + "name": "TrueHD", + "trash_id": "3cafb66171b47f226146a0770576870f", + "required": true + }, + { + "name": "DTS-HD MA", + "trash_id": "dcf3ec6938fa32445f590a4da84256cd", + "required": true + }, + { + "name": "FLAC", + "trash_id": "a570d4a0e56a2874b64e5bfa55202a1b", + "required": true + }, + { + "name": "PCM", + "trash_id": "e7c2fcae07cbada050a0af3357491d7b", + "required": true + }, + { + "name": "DTS-HD HRA", + "trash_id": "8e109e50e0a0b83a5098b056e13bf6db", + "required": true + }, + { + "name": "DD+", + "trash_id": "185f1dd7264c4562b9022d963ac37424", + "required": true + }, + { + "name": "DTS-ES", + "trash_id": "f9f847ac70a0af62ea4a08280b859636", + "required": true + }, + { + "name": "DTS", + "trash_id": "1c1a4c5e823891c75bc50380a6866f73", + "required": true + }, + { + "name": "AAC", + "trash_id": "240770601cc226190c367ef59aba7463", + "required": true + }, + { + "name": "DD", + "trash_id": "c2998bd0d90ed5621d8df281e839436e", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0" + } + } +} diff --git a/docs/json/radarr/cf-groups/hdr-formats.json b/docs/json/radarr/cf-groups/hdr-formats.json new file mode 100644 index 000000000..afeeb6946 --- /dev/null +++ b/docs/json/radarr/cf-groups/hdr-formats.json @@ -0,0 +1,75 @@ +{ + "name": "HDR Formats", + "trash_id": "d9acca37ab4ab8f6428b68125fc0cacb", + "custom_formats": [ + { + "name": "DV HDR10Plus", + "trash_id": "c53085ddbd027d9624b320627748612f", + "required": true + }, + { + "name": "DV HDR10", + "trash_id": "e23edd2482476e595fb990b12e7c609c", + "required": true + }, + { + "name": "DV", + "trash_id": "58d6a88f13e2db7f5059c41047876f00", + "required": true + }, + { + "name": "DV HLG", + "trash_id": "55d53828b9d81cbe20b02efd00aa0efd", + "required": true + }, + { + "name": "DV SDR", + "trash_id": "a3e19f8f627608af0211acd02bf89735", + "required": true + }, + { + "name": "HDR10+", + "trash_id": "b974a6cd08c1066250f1f177d7aa1225", + "required": true + }, + { + "name": "HDR10", + "trash_id": "dfb86d5941bc9075d6af23b09c2aeecd", + "required": true + }, + { + "name": "HDR", + "trash_id": "e61e28db95d22bedcadf030b8f156d96", + "required": true + }, + { + "name": "HDR (Undefined)", + "trash_id": "2a4d9069cc1fe3242ff9bdaebed239bb", + "required": true + }, + { + "name": "PQ", + "trash_id": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "required": true + }, + { + "name": "HLG", + "trash_id": "9364dd386c9b4a1100dde8264690add7", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/optional-uhd.json b/docs/json/radarr/cf-groups/optional-uhd.json new file mode 100644 index 000000000..a8086149c --- /dev/null +++ b/docs/json/radarr/cf-groups/optional-uhd.json @@ -0,0 +1,63 @@ +{ + "name": "Optional", + "trash_id": "8a3d746a76dcfc02c43983ac5432f754", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "dc98083864ea246d05a42df0d05f81cc", + "required": false + }, + { + "name": "SDR", + "trash_id": "9c38ebb7384dada637be8899efa68e6f", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "25c12f78430a3a23413652cbd1d48d77", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/optional.json b/docs/json/radarr/cf-groups/optional.json new file mode 100644 index 000000000..10b288bc7 --- /dev/null +++ b/docs/json/radarr/cf-groups/optional.json @@ -0,0 +1,53 @@ +{ + "name": "Optional", + "trash_id": "9337080378236ce4c0b183e35790d2a7", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (no HDR/DV)", + "trash_id": "839bea857ed2c0a8e084f3cbdbd65ecb", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/sqp-1-1080p-optional.json b/docs/json/radarr/cf-groups/sqp-1-1080p-optional.json new file mode 100644 index 000000000..a00192891 --- /dev/null +++ b/docs/json/radarr/cf-groups/sqp-1-1080p-optional.json @@ -0,0 +1,49 @@ +{ + "name": "SQP-1 (1080p) Optional", + "trash_id": "0ac153dc6f4f96459bc8fdb30aaefedf", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/sqp-1-2160p-optional.json b/docs/json/radarr/cf-groups/sqp-1-2160p-optional.json new file mode 100644 index 000000000..5c5dfc1e8 --- /dev/null +++ b/docs/json/radarr/cf-groups/sqp-1-2160p-optional.json @@ -0,0 +1,74 @@ +{ + "name": "SQP-1 (2160p) Optional", + "trash_id": "208222a117fa38f8ab954fad9350910c", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "dc98083864ea246d05a42df0d05f81cc", + "required": false + }, + { + "name": "HDR10+ Boost", + "trash_id": "b17886cb4158d9fea189859409975758", + "required": false + }, + { + "name": "DV HDR10+ Boost", + "trash_id": "55a5b50cb416dea5a50c4955896217ab", + "required": false + }, + { + "name": "SDR", + "trash_id": "9c38ebb7384dada637be8899efa68e6f", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "25c12f78430a3a23413652cbd1d48d77", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-2": "c3933358ba2356bafc41524f81471069", + "SQP-3": "2cf36c1f0106ffac993be003ade51865", + "SQP-4": "013f89e6da27519fe56cf482702a2db9", + "SQP-5": "a7bb1539fd147256b21b1098f3dc2016" + } + } +} diff --git a/docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json b/docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json new file mode 100644 index 000000000..7a091745b --- /dev/null +++ b/docs/json/radarr/cf-groups/sqp-2-3-4-5-optional.json @@ -0,0 +1,71 @@ +{ + "name": "SQP-2/3/4/5 Optional", + "trash_id": "de18f9d6e3f843f5208c68219ee732a7", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "b6832f586342ef70d9c128d40c07b872", + "required": false + }, + { + "name": "EVO (no WEBDL)", + "trash_id": "90cedc1fea7ea5d11298bebd3d1d3223", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "ae9b7c9ebde1f3bd336a8cbd1ec4c5e5", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "7357cf5161efbf8c4d5d0c30b4815ee2", + "required": false + }, + { + "name": "Retags", + "trash_id": "5c44f52a8714fdd79bb4d98e2673be1f", + "required": false + }, + { + "name": "Scene", + "trash_id": "f537cf427b64c38c8e36298f657e4828", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "dc98083864ea246d05a42df0d05f81cc", + "required": false + }, + { + "name": "SDR", + "trash_id": "9c38ebb7384dada637be8899efa68e6f", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "25c12f78430a3a23413652cbd1d48d77", + "required": false + }, + { + "name": "DV (WEBDL)", + "trash_id": "923b6abef9b17f937fab56cfcf89e1f1", + "required": false + }, + { + "name": "HDR10+ Boost", + "trash_id": "b17886cb4158d9fea189859409975758", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "HD Bluray + WEB": "d1d67249d3890e49bc12e275d989a7e9", + "UHD Bluray + WEB": "64fb5f9858489bdac2af690e27c8f42f", + "Remux + WEB 1080p": "9ca12ea80aa55ef916e3751f4b874151", + "Remux + WEB 2160p": "fd161a61e3ab826d3a22d53f935696dd", + "SQP-1 (1080p)": "0896c29d74de619df168d23b98104b22", + "SQP-1 (2160p)": "5128baeb2b081b72126bc8482b2a86a0" + } + } +} diff --git a/docs/json/radarr/quality-profiles/hd-bluray-web.json b/docs/json/radarr/quality-profiles/hd-bluray-web.json new file mode 100644 index 000000000..5b9e4e730 --- /dev/null +++ b/docs/json/radarr/quality-profiles/hd-bluray-web.json @@ -0,0 +1,74 @@ +{ + "trash_id": "d1d67249d3890e49bc12e275d989a7e9", + "name": "HD Bluray + WEB", + "upgradeAllowed": true, + "cutoff": "Bluray-1080p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Bluray-720p", "allowed": true }, + { "name": "WEB 1080p", "allowed": true, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": true } + ], + "formatItems": { + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "HD Bluray Tier 01": "ed27ebfef2f323e964fb1f61391bcb35", + "HD Bluray Tier 02": "c20c8647f2746a1f4c4262b0fbbeeeae", + "HD Bluray Tier 03": "5608c71bcebba0a5e666223bae8c9227", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (HD)": "dc98083864ea246d05a42df0d05f81cc", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/remux-web-1080p.json b/docs/json/radarr/quality-profiles/remux-web-1080p.json new file mode 100644 index 000000000..4f273f657 --- /dev/null +++ b/docs/json/radarr/quality-profiles/remux-web-1080p.json @@ -0,0 +1,75 @@ +{ + "trash_id": "9ca12ea80aa55ef916e3751f4b874151", + "name": "Remux + WEB 1080p", + "upgradeAllowed": true, + "cutoff": "Remux-1080p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 1080p", "allowed": true, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Remux-1080p", "allowed": true } + ], + "formatItems": { + "Hybrid": "0f12c086e289cf966fa5948eac571f44", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (HD)": "dc98083864ea246d05a42df0d05f81cc", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/remux-web-2160p.json b/docs/json/radarr/quality-profiles/remux-web-2160p.json new file mode 100644 index 000000000..da0b646e5 --- /dev/null +++ b/docs/json/radarr/quality-profiles/remux-web-2160p.json @@ -0,0 +1,87 @@ +{ + "trash_id": "fd161a61e3ab826d3a22d53f935696dd", + "name": "Remux + WEB 2160p", + "upgradeAllowed": true, + "cutoff": "Remux-2160p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "WEB 1080p", "allowed": false, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Remux-2160p", "allowed": true } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Hybrid": "0f12c086e289cf966fa5948eac571f44", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-1-1080p.json b/docs/json/radarr/quality-profiles/sqp-1-1080p.json new file mode 100644 index 000000000..797c3239f --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-1-1080p.json @@ -0,0 +1,93 @@ +{ + "trash_id": "0896c29d74de619df168d23b98104b22", + "name": "SQP-1 (1080p)", + "trash_score_set": "sqp-1-1080p", + "upgradeAllowed": true, + "cutoff": "Bluray|WEB-1080p", + "minFormatScore": 1000, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Bluray-720p", "allowed": true }, + { + "name": "Bluray|WEB-1080p", + "allowed": true, + "items": ["WEBDL-720p", "WEBRip-720p", "WEBDL-1080p", "WEBRip-1080p", "Bluray-1080p"] + } + ], + "formatItems": { + "TrueHD ATMOS": "496f355514737f7d83bf7aa4d24f8169", + "DTS X": "2f22d89048b01681dde8afe203bf2e95", + "ATMOS (undefined)": "417804f7f2c4308c1f4c5d380d4c4475", + "DD+ ATMOS": "1af239278386be2919e1bcee0bde047e", + "TrueHD": "3cafb66171b47f226146a0770576870f", + "DTS-HD MA": "dcf3ec6938fa32445f590a4da84256cd", + "FLAC": "a570d4a0e56a2874b64e5bfa55202a1b", + "PCM": "e7c2fcae07cbada050a0af3357491d7b", + "DTS-HD HRA": "8e109e50e0a0b83a5098b056e13bf6db", + "DD+": "185f1dd7264c4562b9022d963ac37424", + "DTS-ES": "f9f847ac70a0af62ea4a08280b859636", + "DTS": "1c1a4c5e823891c75bc50380a6866f73", + "AAC": "240770601cc226190c367ef59aba7463", + "DD": "c2998bd0d90ed5621d8df281e839436e", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "BHDStudio": "5153ec7413d9dae44e24275589b5e944", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "HD Bluray Tier 01": "ed27ebfef2f323e964fb1f61391bcb35", + "HD Bluray Tier 02": "c20c8647f2746a1f4c4262b0fbbeeeae", + "HD Bluray Tier 03": "5608c71bcebba0a5e666223bae8c9227", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (HD)": "dc98083864ea246d05a42df0d05f81cc", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Extras": "0a3f082873eb454bde444150b70253cc", + "10 bit": "a5d148168c4506b55cf53984107c396e", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "720p": "b2be17d608fc88818940cd1833b0b24c", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-1-2160p.json b/docs/json/radarr/quality-profiles/sqp-1-2160p.json new file mode 100644 index 000000000..f101462dc --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-1-2160p.json @@ -0,0 +1,109 @@ +{ + "trash_id": "5128baeb2b081b72126bc8482b2a86a0", + "name": "SQP-1 (2160p)", + "trash_score_set": "sqp-1-2160p", + "upgradeAllowed": true, + "cutoff": "Bluray-2160p", + "minFormatScore": 1000, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Bluray-720p", "allowed": true }, + { + "name": "Bluray|WEB-1080p", + "allowed": true, + "items": ["WEBRip-720p", "WEBDL-720p", "WEBRip-1080p", "WEBDL-1080p", "Bluray-1080p"] + }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": true } + ], + "formatItems": { + "TrueHD ATMOS": "496f355514737f7d83bf7aa4d24f8169", + "DTS X": "2f22d89048b01681dde8afe203bf2e95", + "ATMOS (undefined)": "417804f7f2c4308c1f4c5d380d4c4475", + "DD+ ATMOS": "1af239278386be2919e1bcee0bde047e", + "TrueHD": "3cafb66171b47f226146a0770576870f", + "DTS-HD MA": "dcf3ec6938fa32445f590a4da84256cd", + "FLAC": "a570d4a0e56a2874b64e5bfa55202a1b", + "PCM": "e7c2fcae07cbada050a0af3357491d7b", + "DTS-HD HRA": "8e109e50e0a0b83a5098b056e13bf6db", + "DD+": "185f1dd7264c4562b9022d963ac37424", + "DTS-ES": "f9f847ac70a0af62ea4a08280b859636", + "DTS": "1c1a4c5e823891c75bc50380a6866f73", + "AAC": "240770601cc226190c367ef59aba7463", + "DD": "c2998bd0d90ed5621d8df281e839436e", + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "DV (WEBDL)": "923b6abef9b17f937fab56cfcf89e1f1", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "BHDStudio": "5153ec7413d9dae44e24275589b5e944", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "HD Bluray Tier 01": "ed27ebfef2f323e964fb1f61391bcb35", + "HD Bluray Tier 02": "c20c8647f2746a1f4c4262b0fbbeeeae", + "HD Bluray Tier 03": "5608c71bcebba0a5e666223bae8c9227", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "10 bit": "a5d148168c4506b55cf53984107c396e", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "720p": "b2be17d608fc88818940cd1833b0b24c", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-2.json b/docs/json/radarr/quality-profiles/sqp-2.json new file mode 100644 index 000000000..2c7910d75 --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-2.json @@ -0,0 +1,101 @@ +{ + "trash_id": "c3933358ba2356bafc41524f81471069", + "name": "SQP-2", + "trash_score_set": "sqp-2", + "upgradeAllowed": true, + "cutoff": "WEB|Remux|Bluray|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Remux-1080p", "allowed": true }, + { + "name": "WEB|Remux|Bluray|2160p", + "allowed": true, + "items": [ + "WEBDL-1080p", + "WEBRip-1080p", + "WEBDL-2160p", + "WEBRip-2160p", + "Remux-2160p", + "Bluray-2160p" + ] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-3.json b/docs/json/radarr/quality-profiles/sqp-3.json new file mode 100644 index 000000000..1061b9fe0 --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-3.json @@ -0,0 +1,92 @@ +{ + "trash_id": "2cf36c1f0106ffac993be003ade51865", + "name": "SQP-3", + "trash_score_set": "sqp-3", + "upgradeAllowed": true, + "cutoff": "WEB|Remux|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Remux-1080p", "allowed": true }, + { + "name": "WEB|Remux|2160p", + "allowed": true, + "items": ["WEBDL-1080p", "WEBRip-1080p", "WEBDL-2160p", "WEBRip-2160p", "Remux-2160p"] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-4.json b/docs/json/radarr/quality-profiles/sqp-4.json new file mode 100644 index 000000000..319116f62 --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-4.json @@ -0,0 +1,93 @@ +{ + "trash_id": "013f89e6da27519fe56cf482702a2db9", + "name": "SQP-4", + "trash_score_set": "sqp-4", + "upgradeAllowed": true, + "cutoff": "WEB|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { + "name": "WEB|2160p", + "allowed": true, + "items": ["WEBRip-1080p", "WEBDL-1080p", "WEBRip-2160p", "WEBDL-2160p"] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/sqp-5.json b/docs/json/radarr/quality-profiles/sqp-5.json new file mode 100644 index 000000000..0b929a68c --- /dev/null +++ b/docs/json/radarr/quality-profiles/sqp-5.json @@ -0,0 +1,95 @@ +{ + "trash_id": "a7bb1539fd147256b21b1098f3dc2016", + "name": "SQP-5", + "trash_score_set": "sqp-5", + "upgradeAllowed": true, + "cutoff": "WEBDL|Bluray|2160p", + "minFormatScore": 550, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "Remux-1080p", "allowed": true }, + { + "name": "WEBDL|Bluray|2160p", + "allowed": true, + "items": ["WEBDL-1080p", "WEBRip-1080p", "Bluray-2160p", "WEBRip-2160p", "WEBDL-2160p"] + } + ], + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "Remux Tier 01": "3a3ff47579026e76d6504ebea39390de", + "Remux Tier 02": "9f98181fe5a3fbeb0cc29340da2a468a", + "Remux Tier 03": "8baaf0b3142bf4d94c42a724f034e27a", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "x264": "2899d84dc9372de3408e6d8cc18e9666", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "1080p": "820b09bb9acbfde9c35c71e0e565dad8", + "2160p": "fb392fb0d61a010ae38e49ceaa24a1ef", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/radarr/quality-profiles/uhd-bluray-web.json b/docs/json/radarr/quality-profiles/uhd-bluray-web.json new file mode 100644 index 000000000..be4285f1d --- /dev/null +++ b/docs/json/radarr/quality-profiles/uhd-bluray-web.json @@ -0,0 +1,86 @@ +{ + "trash_id": "64fb5f9858489bdac2af690e27c8f42f", + "name": "UHD Bluray + WEB", + "upgradeAllowed": true, + "cutoff": "Bluray-2160p", + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "WORKPRINT", "allowed": false }, + { "name": "CAM", "allowed": false }, + { "name": "TELESYNC", "allowed": false }, + { "name": "TELECINE", "allowed": false }, + { "name": "REGIONAL", "allowed": false }, + { "name": "DVDSCR", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "DVD", "allowed": false }, + { "name": "DVD-R", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "Bluray-576p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "WEB 1080p", "allowed": false, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Remux-1080p", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Remux-2160p", "allowed": false }, + { "name": "BR-DISK", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": true } + ], + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "formatItems": { + "DV HDR10Plus": "c53085ddbd027d9624b320627748612f", + "DV HDR10": "e23edd2482476e595fb990b12e7c609c", + "DV": "58d6a88f13e2db7f5059c41047876f00", + "DV HLG": "55d53828b9d81cbe20b02efd00aa0efd", + "DV SDR": "a3e19f8f627608af0211acd02bf89735", + "HDR10+": "b974a6cd08c1066250f1f177d7aa1225", + "HDR10": "dfb86d5941bc9075d6af23b09c2aeecd", + "HDR": "e61e28db95d22bedcadf030b8f156d96", + "HDR (undefined)": "2a4d9069cc1fe3242ff9bdaebed239bb", + "PQ": "08d6d8834ad9ec87b1dc7ec8148e7a1f", + "HLG": "9364dd386c9b4a1100dde8264690add7", + "Remaster": "570bc9ebecd92723d2d21500f4be314c", + "4K Remaster": "eca37840c13c6ef2dd0262b141a5482f", + "Criterion Collection": "e0c07d59beb37348e975a930d5e50319", + "Masters of Cinema": "9d27d9d2181838f76dee150882bdc58c", + "Vinegar Syndrome": "db9b4c4b53d312a3ca5f1378f6440fc9", + "Special Edition": "957d0f44b592285f26449575e8b1167e", + "IMAX": "eecf3a857724171f968a66cb5719e152", + "IMAX Enhanced": "9f6cbff8cfe4ebbc1bde14c7b7bec0de", + "UHD Bluray Tier 01": "4d74ac4c4db0b64bff6ce0cffef99bf0", + "UHD Bluray Tier 02": "a58f517a70193f8e578056642178419d", + "UHD Bluray Tier 03": "e71939fae578037e7aed3ee219bbe7c1", + "WEB Tier 01": "c20f169ef63c5f40c2def54abaf4438e", + "WEB Tier 02": "403816d65392c79236dcb6dd591aeda4", + "WEB Tier 03": "af94e0fe497124d1f9ce732069ec8c3b", + "Repack/Proper": "e7718d7a3ce595f289bfee26adc178f5", + "Repack2": "ae43b294509409a6a13919dedd4764c4", + "BR-DISK": "ed38b889b31be83fda192888e2286d83", + "LQ": "90a6f9a284dff5103f6346090e6280c8", + "LQ (Release Title)": "e204b80c87be9497a8a6eaff48f72905", + "x265 (no HDR/DV)": "839bea857ed2c0a8e084f3cbdbd65ecb", + "3D": "b8cd450cbfa689c0259a01d9e29ba3d6", + "Upscaled": "bfd8eb01832d646a0a89c4deb46f8564", + "Extras": "0a3f082873eb454bde444150b70253cc", + "AMZN": "b3b3a6ac74ecbd56bcdbefa4799fb9df", + "ATVP": "40e9380490e748672c2522eaaeb692f7", + "BCORE": "cc5e51a9e85a6296ceefe097a77f12f4", + "CRiT": "16622a6911d1ab5d5b8b713d5b0036d4", + "DSNP": "84272245b2988854bfb76a16e60baea5", + "HBO": "509e5f41146e278f9eab1ddaceb34515", + "HMAX": "5763d1b0ce84aff3b21038eea8e9b8ad", + "Hulu": "526d445d4c16214309f0fd2b3be18a89", + "MA": "2a6039655313bf5dab1e43523b62c374", + "MAX": "6a061313d22e51e0f25b7cd4dc065233", + "NF": "170b1d363bd8516fbf3a3eb05d4faff6", + "PCOK": "c9fd353f8f5f1baf56dc601c4cb29920", + "PMTP": "e36a0ba1bc902b26ee40818a1d59b8bd", + "STAN": "c2863d2a50c9acad1fb50e53ece60817" + } +} diff --git a/docs/json/sonarr/cf-groups/advanced-audio-formats.json b/docs/json/sonarr/cf-groups/advanced-audio-formats.json new file mode 100644 index 000000000..329194d74 --- /dev/null +++ b/docs/json/sonarr/cf-groups/advanced-audio-formats.json @@ -0,0 +1,82 @@ +{ + "name": "Advanced Audio Formats", + "trash_id": "e9a1944a254e6f8a9da63083f7ae15cb", + "custom_formats": [ + { + "name": "TrueHD Atmos", + "trash_id": "0d7824bb924701997f874e7ff7d4844a", + "required": true + }, + { + "name": "DTS X", + "trash_id": "9d00418ba386a083fbf4d58235fc37ef", + "required": true + }, + { + "name": "ATMOS (undefined)", + "trash_id": "b6fbafa7942952a13e17e2b1152b539a", + "required": true + }, + { + "name": "DD+ ATMOS", + "trash_id": "4232a509ce60c4e208d13825b7c06264", + "required": true + }, + { + "name": "TrueHD", + "trash_id": "1808e4b9cee74e064dfae3f1db99dbfe", + "required": true + }, + { + "name": "DTS-HD MA", + "trash_id": "c429417a57ea8c41d57e6990a8b0033f", + "required": true + }, + { + "name": "FLAC", + "trash_id": "851bd64e04c9374c51102be3dd9ae4cc", + "required": true + }, + { + "name": "PCM", + "trash_id": "30f70576671ca933adbdcfc736a69718", + "required": true + }, + { + "name": "DTS-HD HRA", + "trash_id": "cfa5fbd8f02a86fc55d8d223d06a5e1f", + "required": true + }, + { + "name": "DD+", + "trash_id": "63487786a8b01b7f20dd2bc90dd4a477", + "required": true + }, + { + "name": "DTS-ES", + "trash_id": "c1a25cd67b5d2e08287c957b1eb903ec", + "required": true + }, + { + "name": "DTS", + "trash_id": "5964f2a8b3be407d083498e4459d05d0", + "required": true + }, + { + "name": "AAC", + "trash_id": "a50b8a0c62274a7c38b09a9619ba9d86", + "required": true + }, + { + "name": "DD", + "trash_id": "dbe00161b08a25ac6154c55f95e6318d", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "WEB-1080p": "72dae194fc92bf828f32cde7744e51a1", + "WEB-2160p": "d1498e7d189fbe6c7110ceaabb7473e6" + } + } +} diff --git a/docs/json/sonarr/cf-groups/hdr-formats.json b/docs/json/sonarr/cf-groups/hdr-formats.json new file mode 100644 index 000000000..5fdc5d088 --- /dev/null +++ b/docs/json/sonarr/cf-groups/hdr-formats.json @@ -0,0 +1,67 @@ +{ + "name": "HDR Formats", + "trash_id": "c4735e1d02e8738044ad4ad1bf58670c", + "custom_formats": [ + { + "name": "DV HDR10Plus", + "trash_id": "2b239ed870daba8126a53bd5dc8dc1c8", + "required": true + }, + { + "name": "DV HDR10", + "trash_id": "7878c33f1963fefb3d6c8657d46c2f0a", + "required": true + }, + { + "name": "DV", + "trash_id": "6d0d8de7b57e35518ac0308b0ddf404e", + "required": true + }, + { + "name": "DV HLG", + "trash_id": "1f733af03141f068a540eec352589a89", + "required": true + }, + { + "name": "DV SDR", + "trash_id": "27954b0a80aab882522a88a4d9eae1cd", + "required": true + }, + { + "name": "HDR10+", + "trash_id": "a3d82cbef5039f8d295478d28a887159", + "required": true + }, + { + "name": "HDR10", + "trash_id": "3497799d29a085e2ac2df9d468413c94", + "required": true + }, + { + "name": "HDR", + "trash_id": "3e2c4e748b64a1a1118e0ea3f4cf6875", + "required": true + }, + { + "name": "HDR (Undefined)", + "trash_id": "bb019e1cd00f304f80971c965de064dc", + "required": true + }, + { + "name": "PQ", + "trash_id": "2a7e3be05d3861d6df7171ec74cad727", + "required": true + }, + { + "name": "HLG", + "trash_id": "17e889ce13117940092308f48b48b45b", + "required": true + } + ], + "quality_profiles": { + "exclude": { + "WEB-1080p": "72dae194fc92bf828f32cde7744e51a1", + "WEB-2160p": "d1498e7d189fbe6c7110ceaabb7473e6" + } + } +} diff --git a/docs/json/sonarr/cf-groups/optional-uhd.json b/docs/json/sonarr/cf-groups/optional-uhd.json new file mode 100644 index 000000000..95c9cde9a --- /dev/null +++ b/docs/json/sonarr/cf-groups/optional-uhd.json @@ -0,0 +1,51 @@ +{ + "name": "Optional", + "trash_id": "cac4624ef8fae1ef5e8abb8cf1cf6607", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "32b367365729d530ca1c124a0b180c64", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "82d40da2bc6923f41e14394075dd4b03", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "e1a997ddb54e3ecbfe06341ad323c458", + "required": false + }, + { + "name": "Retags", + "trash_id": "06d66ab109d4d2eddb2794d21526d140", + "required": false + }, + { + "name": "Scene", + "trash_id": "1b3994c551cbb92a2c781af061f4ab44", + "required": false + }, + { + "name": "x265 (HD)", + "trash_id": "47435ece6b99a0b477caf360e79ba0bb", + "required": false + }, + { + "name": "SDR", + "trash_id": "2016d1676f5ee13a5b7257ff86ac9a93", + "required": false + }, + { + "name": "SDR (no WEBDL)", + "trash_id": "83304f261cf516bb208c18c54c0adf97", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "WEB-1080p": "72dae194fc92bf828f32cde7744e51a1" + } + } +} diff --git a/docs/json/sonarr/cf-groups/optional.json b/docs/json/sonarr/cf-groups/optional.json new file mode 100644 index 000000000..4816a751d --- /dev/null +++ b/docs/json/sonarr/cf-groups/optional.json @@ -0,0 +1,41 @@ +{ + "name": "Optional", + "trash_id": "f4a0410a1df109a66d6e47dcadcce014", + "custom_formats": [ + { + "name": "Bad Dual Groups", + "trash_id": "32b367365729d530ca1c124a0b180c64", + "required": false + }, + { + "name": "No-RlsGroup", + "trash_id": "82d40da2bc6923f41e14394075dd4b03", + "required": false + }, + { + "name": "Obfuscated", + "trash_id": "e1a997ddb54e3ecbfe06341ad323c458", + "required": false + }, + { + "name": "Retags", + "trash_id": "06d66ab109d4d2eddb2794d21526d140", + "required": false + }, + { + "name": "Scene", + "trash_id": "1b3994c551cbb92a2c781af061f4ab44", + "required": false + }, + { + "name": "x265 (no HDR/DV)", + "trash_id": "9b64dff695c2115facf1b6ea59c9bd07", + "required": false + } + ], + "quality_profiles": { + "exclude": { + "WEB-2160p": "d1498e7d189fbe6c7110ceaabb7473e6" + } + } +} diff --git a/docs/json/sonarr/quality-profiles/web-1080p.json b/docs/json/sonarr/quality-profiles/web-1080p.json new file mode 100644 index 000000000..9f7d4e703 --- /dev/null +++ b/docs/json/sonarr/quality-profiles/web-1080p.json @@ -0,0 +1,56 @@ +{ + "trash_id": "72dae194fc92bf828f32cde7744e51a1", + "name": "WEB-1080p", + "upgradeAllowed": true, + "cutoff": "WEB 1080p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "DVD", "allowed": false }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Bluray-1080p Remux", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "WEB 2160p", "allowed": false, "items": ["WEBDL-2160p", "WEBRip-2160p"] }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Bluray-2160p Remux", "allowed": false }, + { "name": "WEB 1080p", "allowed": true, "items": ["WEBDL-1080p", "WEBRip-1080p"] } + ], + "formatItems": { + "BR-DISK": "85c61753df5da1fb2aab6f2a47426b09", + "LQ": "9c11cd3f07101cdba90a2d81cf0e56b4", + "LQ (Release Title)": "e2315f990da2e2cbfc9fa5b7a6fcfe48", + "x265 (HD)": "47435ece6b99a0b477caf360e79ba0bb", + "Extras": "fbcb31d8dabd2a319072b84fc0b7249c", + "Repack/Proper": "ec8fa7296b64e8cd390a1600981f3923", + "Repack v2": "eb3d5cc0a2be0db205fb823640db6a3c", + "Repack v3": "44e7c4de10ae50265753082e5dc76047", + "AMZN": "d660701077794679fd59e8bdf4ce3a29", + "ATVP": "f67c9ca88f463a48346062e8ad07713f", + "CC": "77a7b25585c18af08f60b1547bb9b4fb", + "DCU": "36b72f59f4ea20aad9316f475f2d9fbb", + "DSNP": "89358767a60cc28783cdc3d0be9388a4", + "HBO": "7a235133c87f7da4c8cccceca7e3c7a6", + "HMAX": "a880d6abc21e7c16884f3ae393f84179", + "HULU": "f6cce30f1733d5c8194222a7507909bb", + "iT": "0ac24a2a68a9700bcb7eeca8e5cd644c", + "MAX": "81d1fbf600e2540cee87f3a23f9d3c1c", + "NF": "d34870697c9db575f17700212167be23", + "PCOK": "1656adc6d7bb2c8cca6acfb6592db421", + "PMTP": "c67a75ae4a1715f2bb4d492755ba4195", + "SHO": "ae58039e1319178e6be73caab5c42166", + "STAN": "1efe8da11bfd74fbbcd4d8117ddb9213", + "WEB Tier 01": "e6258996055b9fbab7e9cb2f75819294", + "WEB Tier 02": "58790d4e2fdcd9733aa7ae68ba2bb503", + "WEB Tier 03": "d84935abd3f8556dcd51d4f27e22d0a6", + "WEB Scene": "d0c516558625b04b363fa6c5c2c7cfd4" + } +} diff --git a/docs/json/sonarr/quality-profiles/web-2160p.json b/docs/json/sonarr/quality-profiles/web-2160p.json new file mode 100644 index 000000000..4b8937017 --- /dev/null +++ b/docs/json/sonarr/quality-profiles/web-2160p.json @@ -0,0 +1,68 @@ +{ + "trash_id": "d1498e7d189fbe6c7110ceaabb7473e6", + "name": "WEB-2160p", + "upgradeAllowed": true, + "cutoff": "WEB 2160p", + "minFormatScore": 0, + "cutoffFormatScore": 10000, + "items": [ + { "name": "Unknown", "allowed": false }, + { "name": "SDTV", "allowed": false }, + { "name": "WEB 480p", "allowed": false, "items": ["WEBDL-480p", "WEBRip-480p"] }, + { "name": "DVD", "allowed": false }, + { "name": "Bluray-480p", "allowed": false }, + { "name": "HDTV-720p", "allowed": false }, + { "name": "HDTV-1080p", "allowed": false }, + { "name": "Raw-HD", "allowed": false }, + { "name": "WEB 720p", "allowed": false, "items": ["WEBDL-720p", "WEBRip-720p"] }, + { "name": "Bluray-720p", "allowed": false }, + { "name": "WEB 1080p", "allowed": false, "items": ["WEBDL-1080p", "WEBRip-1080p"] }, + { "name": "Bluray-1080p", "allowed": false }, + { "name": "Bluray-1080p Remux", "allowed": false }, + { "name": "HDTV-2160p", "allowed": false }, + { "name": "Bluray-2160p", "allowed": false }, + { "name": "Bluray-2160p Remux", "allowed": false }, + { "name": "WEB 2160p", "allowed": true, "items": ["WEBDL-2160p", "WEBRip-2160p"] } + ], + "formatItems": { + "DV HDR10Plus": "2b239ed870daba8126a53bd5dc8dc1c8", + "DV HDR10": "7878c33f1963fefb3d6c8657d46c2f0a", + "DV": "6d0d8de7b57e35518ac0308b0ddf404e", + "DV HLG": "1f733af03141f068a540eec352589a89", + "DV SDR": "27954b0a80aab882522a88a4d9eae1cd", + "HDR10+": "a3d82cbef5039f8d295478d28a887159", + "HDR10": "3497799d29a085e2ac2df9d468413c94", + "HDR": "3e2c4e748b64a1a1118e0ea3f4cf6875", + "HDR (Undefined)": "bb019e1cd00f304f80971c965de064dc", + "PQ": "2a7e3be05d3861d6df7171ec74cad727", + "HLG": "17e889ce13117940092308f48b48b45b", + "BR-DISK": "85c61753df5da1fb2aab6f2a47426b09", + "LQ": "9c11cd3f07101cdba90a2d81cf0e56b4", + "LQ (Release Title)": "e2315f990da2e2cbfc9fa5b7a6fcfe48", + "x265 (no HDR/DV)": "9b64dff695c2115facf1b6ea59c9bd07", + "Extras": "fbcb31d8dabd2a319072b84fc0b7249c", + "Repack/Proper": "ec8fa7296b64e8cd390a1600981f3923", + "Repack v2": "eb3d5cc0a2be0db205fb823640db6a3c", + "Repack v3": "44e7c4de10ae50265753082e5dc76047", + "ATVP": "f67c9ca88f463a48346062e8ad07713f", + "CC": "77a7b25585c18af08f60b1547bb9b4fb", + "DCU": "36b72f59f4ea20aad9316f475f2d9fbb", + "DSNP": "89358767a60cc28783cdc3d0be9388a4", + "HBO": "7a235133c87f7da4c8cccceca7e3c7a6", + "HMAX": "a880d6abc21e7c16884f3ae393f84179", + "HULU": "f6cce30f1733d5c8194222a7507909bb", + "iT": "0ac24a2a68a9700bcb7eeca8e5cd644c", + "MAX": "81d1fbf600e2540cee87f3a23f9d3c1c", + "NF": "d34870697c9db575f17700212167be23", + "PCOK": "1656adc6d7bb2c8cca6acfb6592db421", + "PMTP": "c67a75ae4a1715f2bb4d492755ba4195", + "SHO": "ae58039e1319178e6be73caab5c42166", + "STAN": "1efe8da11bfd74fbbcd4d8117ddb9213", + "UHD Streaming Boost": "43b3cf48cb385cd3eac608ee6bca7f09", + "UHD Streaming Cut": "d2d299244a92b8a52d4921ce3897a256", + "WEB Tier 01": "e6258996055b9fbab7e9cb2f75819294", + "WEB Tier 02": "58790d4e2fdcd9733aa7ae68ba2bb503", + "WEB Tier 03": "d84935abd3f8556dcd51d4f27e22d0a6", + "WEB Scene": "d0c516558625b04b363fa6c5c2c7cfd4" + } +} diff --git a/metadata.json b/metadata.json index fb53e56c3..ba5038dec 100644 --- a/metadata.json +++ b/metadata.json @@ -4,13 +4,17 @@ "radarr": { "custom_formats": ["docs/json/radarr/cf"], "qualities": ["docs/json/radarr/quality-size"], - "naming": ["docs/json/radarr/naming"] + "naming": ["docs/json/radarr/naming"], + "quality_profiles": ["docs/json/radarr/quality-profiles"], + "custom_format_groups": ["docs/json/radarr/cf-groups"] }, "sonarr": { "release_profiles": ["docs/json/sonarr/rp"], "custom_formats": ["docs/json/sonarr/cf"], "qualities": ["docs/json/sonarr/quality-size"], - "naming": ["docs/json/sonarr/naming"] + "naming": ["docs/json/sonarr/naming"], + "quality_profiles": ["docs/json/sonarr/quality-profiles"], + "custom_format_groups": ["docs/json/sonarr/cf-groups"] } }, "recyclarr": { diff --git a/metadata.schema.json b/metadata.schema.json index 6c050c516..2f90e7849 100644 --- a/metadata.schema.json +++ b/metadata.schema.json @@ -26,7 +26,9 @@ "properties": { "custom_formats": { "$ref": "#/$defs/paths_object" }, "qualities": { "$ref": "#/$defs/paths_object" }, - "naming": { "$ref": "#/$defs/paths_object" } + "naming": { "$ref": "#/$defs/paths_object" }, + "quality_profiles": { "$ref": "#/$defs/paths_object" }, + "custom_format_groups": { "$ref": "#/$defs/paths_object" } } }, "sonarr": { @@ -36,7 +38,9 @@ "custom_formats": { "$ref": "#/$defs/paths_object" }, "release_profiles": { "$ref": "#/$defs/paths_object" }, "qualities": { "$ref": "#/$defs/paths_object" }, - "naming": { "$ref": "#/$defs/paths_object" } + "naming": { "$ref": "#/$defs/paths_object" }, + "quality_profiles": { "$ref": "#/$defs/paths_object" }, + "custom_format_groups": { "$ref": "#/$defs/paths_object" } } }, "recyclarr": { From 743cffc5585048f9e2fb42226f34f0914f0cf8b4 Mon Sep 17 00:00:00 2001 From: nuxen Date: Sun, 28 Apr 2024 16:36:24 +0200 Subject: [PATCH 16/18] fix(starr): match `AC-3` as `DD` (#1899) fix(starr): match AC-3 as DD --- docs/json/radarr/cf/aac.json | 4 ++-- docs/json/radarr/cf/anime-bd-tier-03-seadex-muxers.json | 2 +- docs/json/radarr/cf/atmos-undefined.json | 4 ++-- docs/json/radarr/cf/dd.json | 4 ++-- docs/json/radarr/cf/ddplus-atmos.json | 4 ++-- docs/json/radarr/cf/ddplus.json | 2 +- docs/json/radarr/cf/dts-es.json | 4 ++-- docs/json/radarr/cf/dts-hd-hra.json | 4 ++-- docs/json/radarr/cf/dts-hd-ma.json | 4 ++-- docs/json/radarr/cf/dts-x.json | 4 ++-- docs/json/radarr/cf/dts.json | 4 ++-- docs/json/radarr/cf/flac.json | 4 ++-- docs/json/radarr/cf/pcm.json | 4 ++-- docs/json/radarr/cf/truehd-atmos.json | 4 ++-- docs/json/radarr/cf/truehd.json | 4 ++-- docs/json/sonarr/cf/aac.json | 4 ++-- docs/json/sonarr/cf/anime-bd-tier-03-seadex-muxers.json | 2 +- docs/json/sonarr/cf/atmos-undefined.json | 4 ++-- docs/json/sonarr/cf/dd.json | 4 ++-- docs/json/sonarr/cf/ddplus-atmos.json | 4 ++-- docs/json/sonarr/cf/ddplus.json | 2 +- docs/json/sonarr/cf/dts-es.json | 4 ++-- docs/json/sonarr/cf/dts-hd-hra.json | 4 ++-- docs/json/sonarr/cf/dts-hd-ma.json | 4 ++-- docs/json/sonarr/cf/dts-x.json | 4 ++-- docs/json/sonarr/cf/dts.json | 4 ++-- docs/json/sonarr/cf/flac.json | 4 ++-- docs/json/sonarr/cf/pcm.json | 4 ++-- docs/json/sonarr/cf/truehd-atmos.json | 4 ++-- docs/json/sonarr/cf/truehd.json | 4 ++-- 30 files changed, 56 insertions(+), 56 deletions(-) diff --git a/docs/json/radarr/cf/aac.json b/docs/json/radarr/cf/aac.json index cbbe76037..5b22f9601 100644 --- a/docs/json/radarr/cf/aac.json +++ b/docs/json/radarr/cf/aac.json @@ -31,7 +31,7 @@ "negate": true, "required": true, "fields": { - "value": "\\bDD[P+]|\\b(e[-_. ]?ac3)\\b" + "value": "\\bDD[P+]|\\b(e[-_. ]?ac-?3)\\b" } }, { @@ -40,7 +40,7 @@ "negate": true, "required": true, "fields": { - "value": "\\bDD[^a-z+]|(? Date: Sun, 28 Apr 2024 15:53:17 +0100 Subject: [PATCH 17/18] style(Bazarr): add missing (Sonarr) for Bazarr Setup-Guide.md (#1898) Update Setup-Guide.md add (Sonarr) to Options and Path Mappings --- docs/Bazarr/Setup-Guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Bazarr/Setup-Guide.md b/docs/Bazarr/Setup-Guide.md index bea73847c..17227ec74 100644 --- a/docs/Bazarr/Setup-Guide.md +++ b/docs/Bazarr/Setup-Guide.md @@ -48,7 +48,7 @@ Click on `Enabled` 1. Click the `Test` button after filling in all the fields. Make sure the test is successful before you proceed. -### Options +### Options (Sonarr) ![!Sonarr - Options](images/qs-sonarr-options.png) @@ -66,7 +66,7 @@ Click on `Enabled` 1. Automatic downloading of subtitles will only happen for monitored shows/episodes in Sonarr. -### Path Mappings +### Path Mappings (Sonarr) !!! note From 18bcdcba134bd8f026b7b43867ba2c4d925334d3 Mon Sep 17 00:00:00 2001 From: zakary Date: Sun, 28 Apr 2024 12:12:59 -0500 Subject: [PATCH 18/18] update(cf/hbomax): adds capturing hbomax (without separator) (#1895) https://regex101.com/r/VZsSwC/1 --- docs/Sonarr/Sonarr-Release-Profile-RegEx.md | 2 +- docs/json/radarr/cf/hmax.json | 2 +- docs/json/sonarr/cf/hmax.json | 2 +- docs/json/sonarr/cf/uhd-streaming-cut.json | 2 +- docs/json/sonarr/rp/streaming.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/Sonarr/Sonarr-Release-Profile-RegEx.md b/docs/Sonarr/Sonarr-Release-Profile-RegEx.md index 446906597..aa851af89 100644 --- a/docs/Sonarr/Sonarr-Release-Profile-RegEx.md +++ b/docs/Sonarr/Sonarr-Release-Profile-RegEx.md @@ -152,7 +152,7 @@ Add this to your `Preferred (3)` with a score of [90] Add this to your `Preferred (3)` with a score of [80] ```bash -/\b(hmax|hbom|hbo[ ._-]max)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i +/\b(hmax|hbom|hbo[ ._-]?max)\b(?=[ ._-]web[ ._-]?(dl|rip)\b)/i ``` ```bash diff --git a/docs/json/radarr/cf/hmax.json b/docs/json/radarr/cf/hmax.json index 0c83fe0af..bda624618 100644 --- a/docs/json/radarr/cf/hmax.json +++ b/docs/json/radarr/cf/hmax.json @@ -9,7 +9,7 @@ "negate": false, "required": true, "fields": { - "value": "\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + "value": "\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" } }, { diff --git a/docs/json/sonarr/cf/hmax.json b/docs/json/sonarr/cf/hmax.json index 0a8145009..cd5d931ed 100644 --- a/docs/json/sonarr/cf/hmax.json +++ b/docs/json/sonarr/cf/hmax.json @@ -12,7 +12,7 @@ "negate": false, "required": true, "fields": { - "value": "\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + "value": "\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" } }, { diff --git a/docs/json/sonarr/cf/uhd-streaming-cut.json b/docs/json/sonarr/cf/uhd-streaming-cut.json index 3f0588209..a80f85b6c 100644 --- a/docs/json/sonarr/cf/uhd-streaming-cut.json +++ b/docs/json/sonarr/cf/uhd-streaming-cut.json @@ -21,7 +21,7 @@ "negate": false, "required": false, "fields": { - "value": "\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + "value": "\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" } }, { diff --git a/docs/json/sonarr/rp/streaming.json b/docs/json/sonarr/rp/streaming.json index d0aaf61a3..94587c905 100644 --- a/docs/json/sonarr/rp/streaming.json +++ b/docs/json/sonarr/rp/streaming.json @@ -20,7 +20,7 @@ { "score": 80, "terms": [ - "/\\b(hmax|hbom|hbo[ ._-]max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)/i", + "/\\b(hmax|hbom|hbo[ ._-]?max)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)/i", "/\\b(qibi|quibi)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)/i" ] },