From 6dc8dd39db6150421cc33d93523ebe78efb43ac6 Mon Sep 17 00:00:00 2001 From: TRaSH Date: Sat, 6 Dec 2025 21:35:20 +0100 Subject: [PATCH] feat(starr): Add Streaming Service PLAY (#2558) * feat(starr): Add Streaming Service PLAY * Update docs/Sonarr/sonarr-collection-of-custom-formats.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --------- Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- .../Radarr-collection-of-custom-formats.md | 19 ++++++++ .../sonarr-collection-of-custom-formats.md | 19 ++++++++ .../cf-groups/streaming-services-general.json | 5 ++ docs/json/radarr/cf/play.json | 43 +++++++++++++++++ .../cf-groups/streaming-services-general.json | 5 ++ docs/json/sonarr/cf/play.json | 46 +++++++++++++++++++ includes/cf-descriptions/play.md | 7 +++ includes/cf/radarr-streaming-services.md | 3 +- includes/cf/sonarr-streaming-services.md | 1 + includes/cf/sonarr-uhd-streaming-services.md | 5 +- 10 files changed, 150 insertions(+), 3 deletions(-) create mode 100644 docs/json/radarr/cf/play.json create mode 100644 docs/json/sonarr/cf/play.json create mode 100644 includes/cf-descriptions/play.md diff --git a/docs/Radarr/Radarr-collection-of-custom-formats.md b/docs/Radarr/Radarr-collection-of-custom-formats.md index 947f24120..e8afd84b4 100644 --- a/docs/Radarr/Radarr-collection-of-custom-formats.md +++ b/docs/Radarr/Radarr-collection-of-custom-formats.md @@ -88,6 +88,7 @@ We've made 3 guides related to this. | [Netflix](#nf) | | | | [Peacock TV](#pcok) | | | | [Paramount+](#pmtp) | | | +| [Google Play](#play) | | | | [ROKU](#roku) | | | | [Stan](#stan) | | | @@ -1850,6 +1851,24 @@ We've made 3 guides related to this. --- +#### PLAY + +Google Play + +??? question "Description - [Click to show/hide]" + + {! include-markdown "../../includes/cf-descriptions/play.md" !} + +??? example "JSON - [Click to show/hide]" + + ```json + [[% filter indent(width=4) %]][[% include 'json/radarr/cf/play.json' %]][[% endfilter %]] + ``` + +[TOP](#index) + +--- + #### ROKU ROKU diff --git a/docs/Sonarr/sonarr-collection-of-custom-formats.md b/docs/Sonarr/sonarr-collection-of-custom-formats.md index 6728729d0..a68b14869 100644 --- a/docs/Sonarr/sonarr-collection-of-custom-formats.md +++ b/docs/Sonarr/sonarr-collection-of-custom-formats.md @@ -79,6 +79,7 @@ Special thanks to everyone who has helped in the creation and testing of these C | [Netflix](#nf) | | | | | [Paramount+](#pmtp) | | | | | [Peacock TV](#pcok) | | | | +| [Google Play](#play) | | | | | [ROKU](#roku) | | | | | [SHOWTIME](#sho) | | | | | [Stan](#stan) | | | | @@ -1568,6 +1569,24 @@ Special thanks to everyone who has helped in the creation and testing of these C --- +#### PLAY + +Google Play + +??? question "Description - [Click to show/hide]" + + {! include-markdown "../../includes/cf-descriptions/play.md" !} + +??? example "JSON - [Click to show/hide]" + + ```json + [[% filter indent(width=4) %]][[% include 'json/sonarr/cf/play.json' %]][[% endfilter %]] + ``` + +[TOP](#index) + +--- + #### ROKU ROKU diff --git a/docs/json/radarr/cf-groups/streaming-services-general.json b/docs/json/radarr/cf-groups/streaming-services-general.json index e39628eb1..fc9016718 100644 --- a/docs/json/radarr/cf-groups/streaming-services-general.json +++ b/docs/json/radarr/cf-groups/streaming-services-general.json @@ -79,6 +79,11 @@ "trash_id": "e36a0ba1bc902b26ee40818a1d59b8bd", "required": true }, + { + "name": "PLAY", + "trash_id": "350e9170619683a55cb9191d0b1ababa", + "required": true + }, { "name": "ROKU", "trash_id": "44c2b54d7c81c1a442a8b2cabeaef54f", diff --git a/docs/json/radarr/cf/play.json b/docs/json/radarr/cf/play.json new file mode 100644 index 000000000..08f4dd814 --- /dev/null +++ b/docs/json/radarr/cf/play.json @@ -0,0 +1,43 @@ +{ + "trash_id": "350e9170619683a55cb9191d0b1ababa", + "name": "PLAY", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "PLAY", + "implementation": "ReleaseTitleSpecification", + "negate": false, + "required": false, + "fields": { + "value": "\\b(Play)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + } + }, + { + "name": "PLAY Rename", + "implementation": "ReleaseTitleSpecification", + "negate": false, + "required": false, + "fields": { + "value": "\\[(Play)\\b|\\b(Play)\\]" + } + }, + { + "name": "WEBDL", + "implementation": "SourceSpecification", + "negate": false, + "required": false, + "fields": { + "value": 7 + } + }, + { + "name": "WEBRIP", + "implementation": "SourceSpecification", + "negate": false, + "required": false, + "fields": { + "value": 8 + } + } + ] +} diff --git a/docs/json/sonarr/cf-groups/streaming-services-general.json b/docs/json/sonarr/cf-groups/streaming-services-general.json index 9a9243ea8..5eb30b990 100644 --- a/docs/json/sonarr/cf-groups/streaming-services-general.json +++ b/docs/json/sonarr/cf-groups/streaming-services-general.json @@ -74,6 +74,11 @@ "trash_id": "c67a75ae4a1715f2bb4d492755ba4195", "required": true }, + { + "name": "PLAY", + "trash_id": "6eb71887a8db6e783dd398446eb0e65d", + "required": true + }, { "name": "ROKU", "trash_id": "da393fd4e2c0cce7c9dc2669c43e0593", diff --git a/docs/json/sonarr/cf/play.json b/docs/json/sonarr/cf/play.json new file mode 100644 index 000000000..9608a5c05 --- /dev/null +++ b/docs/json/sonarr/cf/play.json @@ -0,0 +1,46 @@ +{ + "trash_id": "6eb71887a8db6e783dd398446eb0e65d", + "trash_scores": { + "default": 75 + }, + "name": "PLAY", + "includeCustomFormatWhenRenaming": true, + "specifications": [ + { + "name": "PLAY", + "implementation": "ReleaseTitleSpecification", + "negate": false, + "required": false, + "fields": { + "value": "\\b(Play)\\b(?=[ ._-]web[ ._-]?(dl|rip)\\b)" + } + }, + { + "name": "PLAY Rename", + "implementation": "ReleaseTitleSpecification", + "negate": false, + "required": false, + "fields": { + "value": "\\[(Play)\\b|\\b(Play)\\]" + } + }, + { + "name": "WEBDL", + "implementation": "SourceSpecification", + "negate": false, + "required": false, + "fields": { + "value": 3 + } + }, + { + "name": "WEBRIP", + "implementation": "SourceSpecification", + "negate": false, + "required": false, + "fields": { + "value": 4 + } + } + ] +} diff --git a/includes/cf-descriptions/play.md b/includes/cf-descriptions/play.md new file mode 100644 index 000000000..727fedb39 --- /dev/null +++ b/includes/cf-descriptions/play.md @@ -0,0 +1,7 @@ + +**PLAY**
+ +[From Wikipedia, the free encyclopedia](https://en.wikipedia.org/wiki/Google_TV_(service)){:target="\_blank" rel="noopener noreferrer"} + +Google TV, formerly known as Google Play Movies & TV, is a digital distribution service for movies and television series developed by Google. Launched in 2011 as part of the Google Play product line, the service offers search and discovery of video titles across multiple streaming services, including rental or purchase options, alongside watchlist features for accessing titles from eligible devices and platforms. + diff --git a/includes/cf/radarr-streaming-services.md b/includes/cf/radarr-streaming-services.md index 1d206f80b..275114df9 100644 --- a/includes/cf/radarr-streaming-services.md +++ b/includes/cf/radarr-streaming-services.md @@ -4,7 +4,7 @@ | Custom Format | Score | Trash ID | | ----------------------------------------------------------------------------------------- | :----------------------------------------------------: | --------------------------------------- | | [{{ radarr['cf']['amzn']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#amzn) | 0 | {{ radarr['cf']['amzn']['trash_id'] }} | - | [{{ radarr['cf']['atv']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#atv) | 0 | {{ radarr['cf']['atv']['trash_id'] }} | + | [{{ radarr['cf']['atv']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#atv) | 0 | {{ radarr['cf']['atv']['trash_id'] }} | | [{{ radarr['cf']['atvp']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#atvp) | 0 | {{ radarr['cf']['atvp']['trash_id'] }} | | [{{ radarr['cf']['bcore']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#bcore) | {{ radarr['cf']['bcore']['trash_scores']['default'] }} | {{ radarr['cf']['bcore']['trash_id'] }} | | [{{ radarr['cf']['crit']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#crit) | {{ radarr['cf']['crit']['trash_scores']['default'] }} | {{ radarr['cf']['crit']['trash_id'] }} | @@ -18,6 +18,7 @@ | [{{ radarr['cf']['nf']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#nf) | 0 | {{ radarr['cf']['nf']['trash_id'] }} | | [{{ radarr['cf']['pmtp']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#pmtp) | 0 | {{ radarr['cf']['pmtp']['trash_id'] }} | | [{{ radarr['cf']['pcok']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#pcok) | 0 | {{ radarr['cf']['pcok']['trash_id'] }} | + | [{{ radarr['cf']['play']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#play) | 0 | {{ radarr['cf']['play']['trash_id'] }} | | [{{ radarr['cf']['roku']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#roku) | 0 | {{ radarr['cf']['roku']['trash_id'] }} | | [{{ radarr['cf']['stan']['name'] }}](/Radarr/Radarr-collection-of-custom-formats/#stan) | 0 | {{ radarr['cf']['stan']['trash_id'] }} | diff --git a/includes/cf/sonarr-streaming-services.md b/includes/cf/sonarr-streaming-services.md index 9eb6cedef..2ecf2ca88 100644 --- a/includes/cf/sonarr-streaming-services.md +++ b/includes/cf/sonarr-streaming-services.md @@ -16,6 +16,7 @@ | [{{ sonarr['cf']['nf']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#nf) | {{ sonarr['cf']['nf']['trash_scores']['default'] }} | {{ sonarr['cf']['nf']['trash_id'] }} | | [{{ sonarr['cf']['pmtp']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#pmtp) | {{ sonarr['cf']['pmtp']['trash_scores']['default'] }} | {{ sonarr['cf']['pmtp']['trash_id'] }} | | [{{ sonarr['cf']['pcok']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#pcok) | {{ sonarr['cf']['pcok']['trash_scores']['default'] }} | {{ sonarr['cf']['pcok']['trash_id'] }} | + | [{{ sonarr['cf']['play']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#play) | {{ sonarr['cf']['play']['trash_scores']['default'] }} | {{ sonarr['cf']['play']['trash_id'] }} | | [{{ sonarr['cf']['sho']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#sho) | {{ sonarr['cf']['sho']['trash_scores']['default'] }} | {{ sonarr['cf']['sho']['trash_id'] }} | | [{{ sonarr['cf']['stan']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#stan) | {{ sonarr['cf']['stan']['trash_scores']['default'] }} | {{ sonarr['cf']['stan']['trash_id'] }} | | [{{ sonarr['cf']['syfy']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#syfy) | {{ sonarr['cf']['syfy']['trash_scores']['default'] }} | {{ sonarr['cf']['syfy']['trash_id'] }} | diff --git a/includes/cf/sonarr-uhd-streaming-services.md b/includes/cf/sonarr-uhd-streaming-services.md index 3076d7752..397895cb2 100644 --- a/includes/cf/sonarr-uhd-streaming-services.md +++ b/includes/cf/sonarr-uhd-streaming-services.md @@ -16,11 +16,12 @@ | [{{ sonarr['cf']['nf']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#nf) | {{ sonarr['cf']['nf']['trash_scores']['default'] }} | {{ sonarr['cf']['nf']['trash_id'] }} | | [{{ sonarr['cf']['pmtp']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#pmtp) | {{ sonarr['cf']['pmtp']['trash_scores']['default'] }} | {{ sonarr['cf']['pmtp']['trash_id'] }} | | [{{ sonarr['cf']['pcok']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#pcok) | {{ sonarr['cf']['pcok']['trash_scores']['default'] }} | {{ sonarr['cf']['pcok']['trash_id'] }} | + | [{{ sonarr['cf']['play']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#play) | {{ sonarr['cf']['play']['trash_scores']['default'] }} | {{ sonarr['cf']['play']['trash_id'] }} | | [{{ sonarr['cf']['sho']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#sho) | {{ sonarr['cf']['sho']['trash_scores']['default'] }} | {{ sonarr['cf']['sho']['trash_id'] }} | | [{{ sonarr['cf']['stan']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#stan) | {{ sonarr['cf']['stan']['trash_scores']['default'] }} | {{ sonarr['cf']['stan']['trash_id'] }} | - | [{{ sonarr['cf']['syfy']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#syfy) | {{ sonarr['cf']['syfy']['trash_scores']['default'] }} | {{ sonarr['cf']['syfy']['trash_id'] }} | + | [{{ sonarr['cf']['syfy']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#syfy) | {{ sonarr['cf']['syfy']['trash_scores']['default'] }} | {{ sonarr['cf']['syfy']['trash_id'] }} | | :warning: [{{ sonarr['cf']['uhd-streaming-boost']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#uhd-streaming-boost) | {{ sonarr['cf']['uhd-streaming-boost']['trash_scores']['default'] }} | {{ sonarr['cf']['uhd-streaming-boost']['trash_id'] }} | - | :warning: [{{ sonarr['cf']['hd-streaming-boost']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#hd-streaming-boost) | {{ sonarr['cf']['hd-streaming-boost']['trash_scores']['default'] }} | {{ sonarr['cf']['hd-streaming-boost']['trash_id'] }} | + | :warning: [{{ sonarr['cf']['hd-streaming-boost']['name'] }}](/Sonarr/sonarr-collection-of-custom-formats/#hd-streaming-boost) | {{ sonarr['cf']['hd-streaming-boost']['trash_scores']['default'] }} | {{ sonarr['cf']['hd-streaming-boost']['trash_id'] }} | !!! warning "UHD Streaming Boost and HD Streaming Boost Custom Formats"