keep override logic as-is

This commit is contained in:
Jesse Bannon 2026-03-09 16:39:55 -07:00
parent 6533858d1b
commit 96bdd30a7e
13 changed files with 428 additions and 117 deletions

View file

@ -10,6 +10,7 @@ from ytdl_sub.downloaders.url.validators import MultiUrlValidator
from ytdl_sub.entries.script.variable_definitions import UNRESOLVED_VARIABLES, VARIABLES
from ytdl_sub.script.script import Script
from ytdl_sub.script.utils.name_validation import is_function
from ytdl_sub.utils.script import ScriptUtils
from ytdl_sub.validators.string_formatter_validators import validate_formatters
@ -125,6 +126,22 @@ class VariableValidation:
self.unresolved_runtime_variables -= added_variables | modified_variables
def _output_override_variables(self) -> Dict:
output = {}
for name in self.overrides.keys:
value = self.script.definition_of(name)
if name in self.script.function_names:
# Keep custom functions as-is
output[name] = self.overrides.dict_with_format_strings[
name
]
elif resolved := value.maybe_resolvable:
output[name] = resolved.native
else:
output[name] = ScriptUtils.to_native_script(value)
return output
def ensure_proper_usage(self, partial_resolve_formatters: bool = False) -> Dict:
"""
Validate variables resolve as plugins are executed, and return
@ -185,13 +202,7 @@ class VariableValidation:
if url_output["url"]:
resolved_subscription["download"].append(url_output)
resolved_subscription |= validate_formatters(
script=self.script,
unresolved_variables=self.unresolved_variables,
unresolved_runtime_variables=self.unresolved_runtime_variables,
validator=self.overrides,
partial_resolve_formatters=partial_resolve_formatters,
)
resolved_subscription["overrides"] = self._output_override_variables()
# assert not self.unresolved_variables
return resolved_subscription

View file

@ -79,13 +79,13 @@
"file_name": "{ track_full_path }",
"keep_files_date_eval": "{ upload_date_standardized }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpj9da3fba",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp_rq6j0ir",
"preserve_mtime": false,
"thumbnail_name": "{ album_cover_path }"
},
"overrides": {
"album_cover_path": "Lester Young/{ album_dir }/folder.{ thumbnail_ext }",
"album_dir": "[{ track_year }] { %sanitize( track_album ) }",
"album_cover_path": "Lester Young/{ %concat( \"[\", playlist_max_upload_year, \"] \", %sanitize( playlist_title ) ) }/folder.{ thumbnail_ext }",
"album_dir": "[{ playlist_max_upload_year }] { %sanitize( playlist_title ) }",
"artist_dir": "Lester Young",
"avatar_uncropped_thumbnail_file_name": "",
"banner_uncropped_thumbnail_file_name": "",
@ -93,12 +93,12 @@
"enable_throttle_protection": true,
"include_sibling_metadata": true,
"modified_webpage_url": "{ webpage_url }",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpj9da3fba",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp_rq6j0ir",
"resolution_assert": "{ %if( %and( enable_resolution_assert, %ne( height, 0 ), %not( resolution_assert_is_ignored ) ), %assert( %gte( height, resolution_assert_height_gte ), %concat( \"Entry \", title, \" downloaded at a low resolution (\", resolution_readable, \"), you've probably been throttled. \", \"Stopping further downloads, wait a few hours and try again. \", \"Disable using the override variable `enable_resolution_assert: False`.\" ) ), \"false is no-op\" ) }",
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, resolution_assert_ignore_titles ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, [ ] ) ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"subscription_array": [
"https://www.youtube.com/channel/UCsItMF6_fP754ihIsSRLk5A/playlists"
@ -110,13 +110,13 @@
"track_album_artist": "Lester Young",
"track_artist": "Lester Young",
"track_date": "{ upload_date_standardized }",
"track_file_name": "{ track_number_padded } - { %sanitize( track_title ) }.{ ext }",
"track_full_path": "Lester Young/{ album_dir }/{ track_file_name }",
"track_file_name": "{ playlist_index_padded } - { %sanitize( title ) }.{ ext }",
"track_full_path": "Lester Young/{ %concat( \"[\", playlist_max_upload_year, \"] \", %sanitize( playlist_title ) ) }/{ %concat( playlist_index_padded, \" - \", %sanitize( title ), \".\", ext ) }",
"track_genre": "Jazz",
"track_genre_default": "Unset",
"track_number": "{ playlist_index }",
"track_number_padded": "{ playlist_index_padded }",
"track_original_date": "{ track_date }",
"track_original_date": "{ upload_date_standardized }",
"track_title": "{ title }",
"track_total": "{ playlist_count }",
"track_year": "{ playlist_max_upload_year }",

View file

@ -79,7 +79,7 @@
"file_name": "Lester Young/{ %concat( \"[\", %int( %map_get( %to_date_metadata( %array_reduce( %if_passthrough( %extract_field_from_siblings( \"upload_date\" ), [ upload_date ] ), %max ) ), \"year\" ) ), \"] \", %sanitize( %map_get_non_empty( entry_metadata, \"playlist_title\", %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) }/{ %concat( %pad_zero( %map_get_non_empty( entry_metadata, \"playlist_index\", 1 ), 2 ), \" - \", %sanitize( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ), \".\", ext ) }",
"keep_files_date_eval": "{ %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"date_standardized\" ) ) }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpji2e3xeg",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpiqt5f8bw",
"preserve_mtime": false,
"thumbnail_name": "Lester Young/{ %concat( \"[\", %int( %map_get( %to_date_metadata( %array_reduce( %if_passthrough( %extract_field_from_siblings( \"upload_date\" ), [ upload_date ] ), %max ) ), \"year\" ) ), \"] \", %sanitize( %map_get_non_empty( entry_metadata, \"playlist_title\", %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) }/folder.jpg"
},
@ -93,12 +93,12 @@
"enable_throttle_protection": true,
"include_sibling_metadata": true,
"modified_webpage_url": "{ %map_get( entry_metadata, \"webpage_url\" ) }",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpji2e3xeg",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpiqt5f8bw",
"resolution_assert": "{ %if( %and( enable_resolution_assert, %ne( height, 0 ), %not( resolution_assert_is_ignored ) ), %assert( %gte( height, resolution_assert_height_gte ), %concat( \"Entry \", title, \" downloaded at a low resolution (\", resolution_readable, \"), you've probably been throttled. \", \"Stopping further downloads, wait a few hours and try again. \", \"Disable using the override variable `enable_resolution_assert: False`.\" ) ), \"false is no-op\" ) }",
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ), \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ), [ ] ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"subscription_array": [
"https://www.youtube.com/channel/UCsItMF6_fP754ihIsSRLk5A/playlists"

View file

@ -71,7 +71,7 @@
"enable_throttle_protection": true,
"include_sibling_metadata": true,
"modified_webpage_url": "{webpage_url}",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpdk4bkgf2",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp8f35xgea",
"resolution_assert": "{\n %if(\n %and(\n enable_resolution_assert,\n %ne( height, 0 ),\n %not(resolution_assert_is_ignored)\n ),\n %assert(\n %gte( height, resolution_assert_height_gte ),\n %concat(\n \"Entry \",\n title,\n \" downloaded at a low resolution (\",\n resolution_readable,\n \"), you've probably been throttled. \",\n \"Stopping further downloads, wait a few hours and try again. \",\n \"Disable using the override variable `enable_resolution_assert: False`.\"\n )\n ),\n \"false is no-op\"\n )\n}",
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [] }",

View file

@ -79,7 +79,7 @@
"file_name": "Lester Young/{ %concat( \"[\", playlist_max_upload_year, \"] \", %sanitize( playlist_title ) ) }/{ %concat( playlist_index_padded, \" - \", %sanitize( title ), \".\", ext ) }",
"keep_files_date_eval": "{ upload_date_standardized }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpvhp9csvg",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp_2ffo1ep",
"preserve_mtime": false,
"thumbnail_name": "Lester Young/{ %concat( \"[\", playlist_max_upload_year, \"] \", %sanitize( playlist_title ) ) }/folder.{ thumbnail_ext }"
},
@ -93,12 +93,12 @@
"enable_throttle_protection": true,
"include_sibling_metadata": true,
"modified_webpage_url": "{ webpage_url }",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpvhp9csvg",
"music_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp_2ffo1ep",
"resolution_assert": "{ %if( %and( enable_resolution_assert, %ne( height, 0 ), %not( resolution_assert_is_ignored ) ), %assert( %gte( height, resolution_assert_height_gte ), %concat( \"Entry \", title, \" downloaded at a low resolution (\", resolution_readable, \"), you've probably been throttled. \", \"Stopping further downloads, wait a few hours and try again. \", \"Disable using the override variable `enable_resolution_assert: False`.\" ) ), \"false is no-op\" ) }",
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, [ ] ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"subscription_array": [
"https://www.youtube.com/channel/UCsItMF6_fP754ihIsSRLk5A/playlists"

View file

@ -38,23 +38,23 @@
"info_json_name": "{ music_video_file_name }.{ info_json_ext }",
"keep_files_date_eval": "{ upload_date_standardized }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmphwfl7855",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpoip4vg8b",
"preserve_mtime": false,
"thumbnail_name": "{ music_video_file_name }.jpg"
},
"overrides": {
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $bilateral_url___0 ) ), $bilateral_url___0, '' ) }",
"%contains_url_field": "{ %not( %is_null( %get_url_field( $contains_url_field___0, '' ) ) ) }",
"%flat_array__category_to_map_format": "{ %array_apply_fixed( %assert_then( %is_array( $flat_array__category_to_map_format___1 ), $flat_array__category_to_map_format___1, \"If using album categories, each category must map to an array\" ), $flat_array__category_to_map_format___0, %flat_array__url_to_map_format ) }",
"%flat_array__url_keyed_map_format": "{ { %map_get( $flat_array__url_keyed_map_format___0, \"url\" ): $flat_array__url_keyed_map_format___0 } }",
"%flat_array__url_to_map_format": "{ %elif( %is_map( $flat_array__url_to_map_format___0 ), %map_extend( $flat_array__url_to_map_format___0, { \"category\": $flat_array__url_to_map_format___1 } ), %is_string( $flat_array__url_to_map_format___0 ), { \"url\": $flat_array__url_to_map_format___0, \"category\": $flat_array__url_to_map_format___1 }, %throw( \"If using album categories, each URL must be either a string or map with metadata fields\" ) ) }",
"%get_url_field": "{ %map_get( %map( %map_get( category_url_map, ytdl_sub_input_url, { } ) ), $get_url_field___0, $get_url_field___1 ) }",
"%get_url_i": "{ %map_get( %map( %array_at( category_url_array, %int( %sub( $get_url_i___0, 1 ) ), { } ) ), \"url\", %array_at( [ \"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc\" ], %int( %sub( $get_url_i___0, 1 ) ), '' ) ) }",
"%is_bilateral_url": "{ %contains( $is_bilateral_url___0, \"youtube.com/playlist\" ) }",
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $0 ) ), $0, '' ) }",
"%contains_url_field": "{ %not( %is_null( %get_url_field( $0, '' ) ) ) }",
"%flat_array__category_to_map_format": "{ %array_apply_fixed( %assert_then( %is_array( $1 ), $1, \"If using album categories, each category must map to an array\" ), $0, %flat_array__url_to_map_format ) }",
"%flat_array__url_keyed_map_format": "{ { %map_get( $0, \"url\" ): $0 } }",
"%flat_array__url_to_map_format": "{ %elif( %is_map( $0 ), %map_extend( $0, { \"category\": $1 } ), %is_string( $0 ), { \"url\": $0, \"category\": $1 }, %throw( \"If using album categories, each URL must be either a string or map with metadata fields\" ) ) }",
"%get_url_field": "{ %map_get( %map( %map_get( category_url_map, ytdl_sub_input_url, { } ) ), $0, $1 ) }",
"%get_url_i": "{ %map_get( %map( %array_at( category_url_array, %int( %sub( $0, 1 ) ), { } ) ), \"url\", %array_at( subscription_array, %int( %sub( $0, 1 ) ), '' ) ) }",
"%is_bilateral_url": "{ %contains( $0, \"youtube.com/playlist\" ) }",
"avatar_uncropped_thumbnail_file_name": "",
"banner_uncropped_thumbnail_file_name": "",
"category_url_array": "{ [ ] }",
"category_url_map": "{ %array_reduce( %array_apply( category_url_array, %flat_array__url_keyed_map_format ), %map_extend ) }",
"category_url_map": "{ [ ] }",
"enable_bilateral_scraping": true,
"enable_resolution_assert": true,
"enable_throttle_protection": true,
@ -66,8 +66,8 @@
"music_video_album_default": "Music Videos",
"music_video_artist": "Rick Astley",
"music_video_date": "{ %elif( %contains_url_field( \"date\" ), %get_url_field( \"date\", upload_date_standardized ), %contains_url_field( \"year\" ), %concat( %get_url_field( \"date\", upload_year ), \"-01-01\" ), upload_date_standardized ) }",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmphwfl7855",
"music_video_file_name": "Rick Astley/{ %sanitize( music_video_title ) }",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpoip4vg8b",
"music_video_file_name": "Rick Astley/{ %sanitize( %get_url_field( \"title\", title ) ) }",
"music_video_file_name_suffix": "",
"music_video_genre": "Pop",
"music_video_genre_default": "ytdl-sub",
@ -76,8 +76,8 @@
"resolution_assert": "{ %if( %and( enable_resolution_assert, %ne( height, 0 ), %not( resolution_assert_is_ignored ) ), %assert( %gte( height, resolution_assert_height_gte ), %concat( \"Entry \", title, \" downloaded at a low resolution (\", resolution_readable, \"), you've probably been throttled. \", \"Stopping further downloads, wait a few hours and try again. \", \"Disable using the override variable `enable_resolution_assert: False`.\" ) ), \"false is no-op\" ) }",
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, resolution_assert_ignore_titles ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, [ ] ) ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"subscription_array": [
"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc"
@ -186,7 +186,107 @@
"url97": "",
"url98": "",
"url99": "",
"urls": "{ %array_apply( [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 ], %get_url_i ) }"
"urls": [
"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
},
"throttle_protection": {
"enable": true,

View file

@ -38,19 +38,19 @@
"info_json_name": "{ %concat( \"Rick Astley\", \"/\", %sanitize( %get_url_field( \"title\", %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ), '' ) }.info.json",
"keep_files_date_eval": "{ %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"date_standardized\" ) ) }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmprqov1llf",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpfqm9v_z7",
"preserve_mtime": false,
"thumbnail_name": "{ %concat( \"Rick Astley\", \"/\", %sanitize( %get_url_field( \"title\", %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ), '' ) }.jpg"
},
"overrides": {
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $bilateral_url___0 ) ), $bilateral_url___0, '' ) }",
"%contains_url_field": "{ %not( %is_null( %get_url_field( $contains_url_field___0, '' ) ) ) }",
"%flat_array__category_to_map_format": "{ %array_apply_fixed( %assert_then( %is_array( $flat_array__category_to_map_format___1 ), $flat_array__category_to_map_format___1, \"If using album categories, each category must map to an array\" ), $flat_array__category_to_map_format___0, %flat_array__url_to_map_format ) }",
"%flat_array__url_keyed_map_format": "{ { %map_get( $flat_array__url_keyed_map_format___0, \"url\" ): $flat_array__url_keyed_map_format___0 } }",
"%flat_array__url_to_map_format": "{ %elif( %is_map( $flat_array__url_to_map_format___0 ), %map_extend( $flat_array__url_to_map_format___0, { \"category\": $flat_array__url_to_map_format___1 } ), %is_string( $flat_array__url_to_map_format___0 ), { \"url\": $flat_array__url_to_map_format___0, \"category\": $flat_array__url_to_map_format___1 }, %throw( \"If using album categories, each URL must be either a string or map with metadata fields\" ) ) }",
"%get_url_field": "{ %map_get( %map( %map_get( [ ], ytdl_sub_input_url, { } ) ), $get_url_field___0, $get_url_field___1 ) }",
"%get_url_i": "{ %map_get( %map( %array_at( [ ], %int( %sub( $get_url_i___0, 1 ) ), { } ) ), \"url\", %array_at( [ \"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc\" ], %int( %sub( $get_url_i___0, 1 ) ), '' ) ) }",
"%is_bilateral_url": "{ %contains( $is_bilateral_url___0, \"youtube.com/playlist\" ) }",
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $0 ) ), $0, '' ) }",
"%contains_url_field": "{ %not( %is_null( %get_url_field( $0, '' ) ) ) }",
"%flat_array__category_to_map_format": "{ %array_apply_fixed( %assert_then( %is_array( $1 ), $1, \"If using album categories, each category must map to an array\" ), $0, %flat_array__url_to_map_format ) }",
"%flat_array__url_keyed_map_format": "{ { %map_get( $0, \"url\" ): $0 } }",
"%flat_array__url_to_map_format": "{ %elif( %is_map( $0 ), %map_extend( $0, { \"category\": $1 } ), %is_string( $0 ), { \"url\": $0, \"category\": $1 }, %throw( \"If using album categories, each URL must be either a string or map with metadata fields\" ) ) }",
"%get_url_field": "{ %map_get( %map( %map_get( category_url_map, ytdl_sub_input_url, { } ) ), $0, $1 ) }",
"%get_url_i": "{ %map_get( %map( %array_at( category_url_array, %int( %sub( $0, 1 ) ), { } ) ), \"url\", %array_at( subscription_array, %int( %sub( $0, 1 ) ), '' ) ) }",
"%is_bilateral_url": "{ %contains( $0, \"youtube.com/playlist\" ) }",
"avatar_uncropped_thumbnail_file_name": "",
"banner_uncropped_thumbnail_file_name": "",
"category_url_array": "{ [ ] }",
@ -66,7 +66,7 @@
"music_video_album_default": "Music Videos",
"music_video_artist": "Rick Astley",
"music_video_date": "{ %elif( %contains_url_field( \"date\" ), %get_url_field( \"date\", upload_date_standardized ), %contains_url_field( \"year\" ), %concat( %get_url_field( \"date\", upload_year ), \"-01-01\" ), upload_date_standardized ) }",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmprqov1llf",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpfqm9v_z7",
"music_video_file_name": "Rick Astley/{ %sanitize( %get_url_field( \"title\", %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) }",
"music_video_file_name_suffix": "",
"music_video_genre": "Pop",
@ -77,7 +77,7 @@
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ), \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ), [ ] ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"subscription_array": [
"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc"
@ -186,7 +186,107 @@
"url97": "",
"url98": "",
"url99": "",
"urls": "{ %array_apply( [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 ], %get_url_i ) }"
"urls": [
"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
},
"throttle_protection": {
"enable": true,

View file

@ -71,7 +71,7 @@
"music_video_album_default": "Music Videos",
"music_video_artist": "{subscription_name}",
"music_video_date": "{ \n %elif(\n %contains_url_field(\"date\"),\n %get_url_field(\"date\", upload_date_standardized),\n\n %contains_url_field(\"year\"),\n %concat( %get_url_field(\"date\", upload_year), \"-01-01\"),\n\n upload_date_standardized\n )\n}",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpko32uxsq",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpjq3ge5bi",
"music_video_file_name": "{music_video_artist_sanitized}/{music_video_title_sanitized}{music_video_file_name_suffix}",
"music_video_file_name_suffix": "",
"music_video_genre": "{subscription_indent_1}",

View file

@ -38,19 +38,19 @@
"info_json_name": "{ %concat( \"Rick Astley\", \"/\", %sanitize( %get_url_field( \"title\", title ) ), '' ) }.{ info_json_ext }",
"keep_files_date_eval": "{ upload_date_standardized }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmphqyddu9q",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpvn6oqvre",
"preserve_mtime": false,
"thumbnail_name": "{ %concat( \"Rick Astley\", \"/\", %sanitize( %get_url_field( \"title\", title ) ), '' ) }.jpg"
},
"overrides": {
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $bilateral_url___0 ) ), $bilateral_url___0, '' ) }",
"%contains_url_field": "{ %not( %is_null( %get_url_field( $contains_url_field___0, '' ) ) ) }",
"%flat_array__category_to_map_format": "{ %array_apply_fixed( %assert_then( %is_array( $flat_array__category_to_map_format___1 ), $flat_array__category_to_map_format___1, \"If using album categories, each category must map to an array\" ), $flat_array__category_to_map_format___0, %flat_array__url_to_map_format ) }",
"%flat_array__url_keyed_map_format": "{ { %map_get( $flat_array__url_keyed_map_format___0, \"url\" ): $flat_array__url_keyed_map_format___0 } }",
"%flat_array__url_to_map_format": "{ %elif( %is_map( $flat_array__url_to_map_format___0 ), %map_extend( $flat_array__url_to_map_format___0, { \"category\": $flat_array__url_to_map_format___1 } ), %is_string( $flat_array__url_to_map_format___0 ), { \"url\": $flat_array__url_to_map_format___0, \"category\": $flat_array__url_to_map_format___1 }, %throw( \"If using album categories, each URL must be either a string or map with metadata fields\" ) ) }",
"%get_url_field": "{ %map_get( %map( %map_get( [ ], ytdl_sub_input_url, { } ) ), $get_url_field___0, $get_url_field___1 ) }",
"%get_url_i": "{ %map_get( %map( %array_at( [ ], %int( %sub( $get_url_i___0, 1 ) ), { } ) ), \"url\", %array_at( [ \"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc\" ], %int( %sub( $get_url_i___0, 1 ) ), '' ) ) }",
"%is_bilateral_url": "{ %contains( $is_bilateral_url___0, \"youtube.com/playlist\" ) }",
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $0 ) ), $0, '' ) }",
"%contains_url_field": "{ %not( %is_null( %get_url_field( $0, '' ) ) ) }",
"%flat_array__category_to_map_format": "{ %array_apply_fixed( %assert_then( %is_array( $1 ), $1, \"If using album categories, each category must map to an array\" ), $0, %flat_array__url_to_map_format ) }",
"%flat_array__url_keyed_map_format": "{ { %map_get( $0, \"url\" ): $0 } }",
"%flat_array__url_to_map_format": "{ %elif( %is_map( $0 ), %map_extend( $0, { \"category\": $1 } ), %is_string( $0 ), { \"url\": $0, \"category\": $1 }, %throw( \"If using album categories, each URL must be either a string or map with metadata fields\" ) ) }",
"%get_url_field": "{ %map_get( %map( %map_get( category_url_map, ytdl_sub_input_url, { } ) ), $0, $1 ) }",
"%get_url_i": "{ %map_get( %map( %array_at( category_url_array, %int( %sub( $0, 1 ) ), { } ) ), \"url\", %array_at( subscription_array, %int( %sub( $0, 1 ) ), '' ) ) }",
"%is_bilateral_url": "{ %contains( $0, \"youtube.com/playlist\" ) }",
"avatar_uncropped_thumbnail_file_name": "",
"banner_uncropped_thumbnail_file_name": "",
"category_url_array": "{ [ ] }",
@ -66,7 +66,7 @@
"music_video_album_default": "Music Videos",
"music_video_artist": "Rick Astley",
"music_video_date": "{ %elif( %contains_url_field( \"date\" ), %get_url_field( \"date\", upload_date_standardized ), %contains_url_field( \"year\" ), %concat( %get_url_field( \"date\", upload_year ), \"-01-01\" ), upload_date_standardized ) }",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmphqyddu9q",
"music_video_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpvn6oqvre",
"music_video_file_name": "Rick Astley/{ %sanitize( %get_url_field( \"title\", title ) ) }",
"music_video_file_name_suffix": "",
"music_video_genre": "Pop",
@ -77,7 +77,7 @@
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, [ ] ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"subscription_array": [
"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc"
@ -186,7 +186,107 @@
"url97": "",
"url98": "",
"url99": "",
"urls": "{ %array_apply( [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 ], %get_url_i ) }"
"urls": [
"https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
},
"throttle_protection": {
"enable": true,

View file

@ -54,32 +54,32 @@
"info_json_name": "{ episode_file_path }.{ info_json_ext }",
"keep_files_date_eval": "{ episode_date_standardized }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp1vga5bgc/NOVA PBS",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp8seugdh8/NOVA PBS",
"preserve_mtime": false,
"thumbnail_name": "{ thumbnail_file_name }"
},
"overrides": {
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $bilateral_url___0 ) ), $bilateral_url___0, '' ) }",
"%episode_ordering_": "{ %eq( \"upload-month-day\", $episode_ordering____0 ) }",
"%is_bilateral_url": "{ %contains( $is_bilateral_url___0, \"youtube.com/playlist\" ) }",
"%ordering_pair_eq": "{ %eq( [ \"upload-year\", \"upload-month-day\" ], [ $ordering_pair_eq___0, $ordering_pair_eq___1 ] ) }",
"%season_ordering_": "{ %eq( \"upload-year\", $season_ordering____0 ) }",
"assert_not_collection": "{ %assert( %and( %not( %bool( s01_url ) ), %not( %bool( s01_name ) ) ), \"Provided `s01_url` or `s01_name` variable to TV Show by Date preset when it expects `url`. Perhaps you meant to use the `TV Show Collection` preset?\" ) }",
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $0 ) ), $0, '' ) }",
"%episode_ordering_": "{ %eq( %lower( tv_show_by_date_episode_ordering ), $0 ) }",
"%is_bilateral_url": "{ %contains( $0, \"youtube.com/playlist\" ) }",
"%ordering_pair_eq": "{ %eq( [ tv_show_by_date_season_ordering, tv_show_by_date_episode_ordering ], [ $0, $1 ] ) }",
"%season_ordering_": "{ %eq( %lower( tv_show_by_date_season_ordering ), $0 ) }",
"assert_not_collection": true,
"avatar_uncropped_thumbnail_file_name": "poster.jpg",
"banner_uncropped_thumbnail_file_name": "fanart.jpg",
"enable_bilateral_scraping": true,
"enable_resolution_assert": true,
"enable_throttle_protection": true,
"episode_content_rating": "TV-14",
"episode_date_standardized": "{ %if( %contains( tv_show_by_date_season_ordering, \"release\" ), release_date_standardized, upload_date_standardized ) }",
"episode_file_name": "s{ season_number_padded }.e{ episode_number_padded } - { file_title }",
"episode_file_path": "{ %sanitize( season_directory_name ) }/{ %sanitize( episode_file_name ) }",
"episode_number": "{ %array_at( episode_number_and_padded_, 0 ) }",
"episode_number_and_padded_": "{ %elif( %episode_ordering_( \"upload-day\" ), [ %concat( upload_day, upload_date_index_padded ), 4 ], %episode_ordering_( \"upload-month-day\" ), [ %concat( upload_month, upload_day_padded, upload_date_index_padded ), 6 ], %episode_ordering_( \"upload-month-day-reversed\" ), [ %concat( upload_day_of_year_reversed, upload_date_index_reversed_padded ), 5 ], %episode_ordering_( \"release-day\" ), [ %concat( release_day, upload_date_index_padded ), 4 ], %episode_ordering_( \"release-month-day\" ), [ %concat( release_month, release_day_padded, upload_date_index_padded ), 6 ], %episode_ordering_( \"release-month-day-reversed\" ), [ %concat( release_day_of_year_reversed, upload_date_index_reversed_padded ), 5 ], %episode_ordering_( \"download-index\" ), [ download_index, 6 ], %throw( 'tv_show_by_date_episode_ordering must be one of the following: \"upload-day\", \"upload-month-day\", \"upload-month-day-reversed\", \"release-day\", \"release-month-day\", \"release-month-day-reversed\", \"download-index\"' ) ) }",
"episode_number_padded": "{ %pad_zero( %int( episode_number ), %int( %array_at( episode_number_and_padded_, 1 ) ) ) }",
"episode_date_standardized": "{ upload_date_standardized }",
"episode_file_name": "s{ upload_year }.e{ %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) } - { title_sanitized_plex }",
"episode_file_path": "{ %sanitize( %concat( \"Season \", upload_year ) ) }/{ %sanitize( %concat( \"s\", upload_year, \".e\", %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ), \" - \", title_sanitized_plex ) ) }",
"episode_number": "{ upload_month }{ upload_day_padded }{ upload_date_index_padded }",
"episode_number_and_padded_": "{ [ %concat( upload_month, upload_day_padded, upload_date_index_padded ), 6 ] }",
"episode_number_padded": "{ %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) }",
"episode_plot": "{ webpage_url }\n\n{ description }",
"episode_title": "{ episode_date_standardized } - { title }",
"episode_year": "{ %slice( episode_date_standardized, 0, 4 ) }",
"episode_title": "{ upload_date_standardized } - { title }",
"episode_year": "{ %slice( upload_date_standardized, 0, 4 ) }",
"file_title": "{ title_sanitized_plex }",
"file_uid": "{ uid_sanitized_plex }",
"include_sibling_metadata": false,
@ -89,15 +89,15 @@
"resolution_assert": "{ %if( %and( enable_resolution_assert, %ne( height, 0 ), %not( resolution_assert_is_ignored ) ), %assert( %gte( height, resolution_assert_height_gte ), %concat( \"Entry \", title, \" downloaded at a low resolution (\", resolution_readable, \"), you've probably been throttled. \", \"Stopping further downloads, wait a few hours and try again. \", \"Disable using the override variable `enable_resolution_assert: False`.\" ) ), \"false is no-op\" ) }",
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, resolution_assert_ignore_titles ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, [ ] ) ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"s01_name": "",
"s01_url": "",
"season_directory_name": "Season { season_number_padded }",
"season_number": "{ %elif( %season_ordering_( \"upload-year\" ), upload_year, %season_ordering_( \"upload-year-month\" ), %concat( upload_year, upload_month_padded ), %season_ordering_( \"release-year\" ), release_year, %season_ordering_( \"release-year-month\" ), %concat( release_year, release_month_padded ), %throw( 'tv_show_by_date_season_ordering must be one of the following: \"upload-year\", \"upload-year-month\", \"release-year\", \"release-year-month\"' ) ) }",
"season_number_padded": "{ season_number }",
"season_poster_file_name": "{ %sanitize( season_directory_name ) }/Season{ season_number_padded }.jpg",
"season_directory_name": "Season { upload_year }",
"season_number": "{ upload_year }",
"season_number_padded": "{ upload_year }",
"season_poster_file_name": "{ %sanitize( %concat( \"Season \", upload_year ) ) }/Season{ upload_year }.jpg",
"subscription_array": [
"https://www.youtube.com/@novapbs"
],
@ -105,14 +105,14 @@
"subscription_indent_2": "TV-14",
"subscription_value": "https://www.youtube.com/@novapbs",
"subscription_value_1": "https://www.youtube.com/@novapbs",
"thumbnail_file_name": "{ episode_file_path }-thumb.jpg",
"thumbnail_file_name": "{ %concat( %sanitize( %concat( \"Season \", upload_year ) ), \"/\", %sanitize( %concat( \"s\", upload_year, \".e\", %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ), \" - \", title_sanitized_plex ) ) ) }-thumb.jpg",
"tv_show_by_date_episode_ordering": "upload-month-day",
"tv_show_by_date_ordering_pair_validation_": "{ %assert_then( %or( %ordering_pair_eq( \"upload-year\", \"upload-month-day\" ), %ordering_pair_eq( \"upload-year\", \"upload-month-day-reversed\" ), %ordering_pair_eq( \"upload-year\", \"download-index\" ), %ordering_pair_eq( \"upload-year-month\", \"upload-day\" ), %ordering_pair_eq( \"release-year\", \"release-month-day\" ), %ordering_pair_eq( \"release-year\", \"release-month-day-reversed\" ), %ordering_pair_eq( \"release-year\", \"download-index\" ), %ordering_pair_eq( \"release-year-month\", \"release-day\" ) ), episode_number_and_padded_, \"Detected incompatibility between tv_show_by_date_season_ordering and tv_show_by_date_episode_ordering. Ensure you are not using both upload and release date, and that the year/month/day are included in the combined season and episode.\" ) }",
"tv_show_by_date_ordering_pair_validation_": "{ [ %concat( upload_month, upload_day_padded, upload_date_index_padded ), 6 ] }",
"tv_show_by_date_season_ordering": "upload-year",
"tv_show_content_rating": "TV-14",
"tv_show_content_rating_default": "TV-14",
"tv_show_date_range_type": "{ %if( %contains( tv_show_by_date_season_ordering, \"release\" ), \"release_date\", \"upload_date\" ) }",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp1vga5bgc",
"tv_show_date_range_type": "upload_date",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp8seugdh8",
"tv_show_fanart_file_name": "fanart.jpg",
"tv_show_genre": "Documentaries",
"tv_show_genre_default": "ytdl-sub",

View file

@ -54,28 +54,28 @@
"info_json_name": "{ %concat( %sanitize( %concat( \"Season \", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ), \"/\", %sanitize( %concat( \"s\", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ), \".e\", %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ), \" - \", %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) ) }.info.json",
"keep_files_date_eval": "{ %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"date_standardized\" ) ) }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpa0scqq_n/NOVA PBS",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp33ooazwa/NOVA PBS",
"preserve_mtime": false,
"thumbnail_name": "{ %concat( %sanitize( %concat( \"Season \", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ), \"/\", %sanitize( %concat( \"s\", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ), \".e\", %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ), \" - \", %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) ) }-thumb.jpg"
},
"overrides": {
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $bilateral_url___0 ) ), $bilateral_url___0, '' ) }",
"%episode_ordering_": "{ %eq( \"upload-month-day\", $episode_ordering____0 ) }",
"%is_bilateral_url": "{ %contains( $is_bilateral_url___0, \"youtube.com/playlist\" ) }",
"%ordering_pair_eq": "{ %eq( [ \"upload-year\", \"upload-month-day\" ], [ $ordering_pair_eq___0, $ordering_pair_eq___1 ] ) }",
"%season_ordering_": "{ %eq( \"upload-year\", $season_ordering____0 ) }",
"assert_not_collection": "{ %assert( %and( %not( %bool( s01_url ) ), %not( %bool( s01_name ) ) ), \"Provided `s01_url` or `s01_name` variable to TV Show by Date preset when it expects `url`. Perhaps you meant to use the `TV Show Collection` preset?\" ) }",
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $0 ) ), $0, '' ) }",
"%episode_ordering_": "{ %eq( %lower( tv_show_by_date_episode_ordering ), $0 ) }",
"%is_bilateral_url": "{ %contains( $0, \"youtube.com/playlist\" ) }",
"%ordering_pair_eq": "{ %eq( [ tv_show_by_date_season_ordering, tv_show_by_date_episode_ordering ], [ $0, $1 ] ) }",
"%season_ordering_": "{ %eq( %lower( tv_show_by_date_season_ordering ), $0 ) }",
"assert_not_collection": true,
"avatar_uncropped_thumbnail_file_name": "poster.jpg",
"banner_uncropped_thumbnail_file_name": "fanart.jpg",
"enable_bilateral_scraping": true,
"enable_resolution_assert": true,
"enable_throttle_protection": true,
"episode_content_rating": "TV-14",
"episode_date_standardized": "{ %if( %contains( tv_show_by_date_season_ordering, \"release\" ), release_date_standardized, upload_date_standardized ) }",
"episode_date_standardized": "{ %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"date_standardized\" ) ) }",
"episode_file_name": "s{ %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) }.e{ %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ) } - { %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) }",
"episode_file_path": "{ %sanitize( %concat( \"Season \", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ) }/{ %sanitize( %concat( \"s\", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ), \".e\", %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ), \" - \", %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) }",
"episode_number": "{ %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ) }{ %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) }{ %pad_zero( upload_date_index, 2 ) }",
"episode_number_and_padded_": "{ %elif( %episode_ordering_( \"upload-day\" ), [ %concat( upload_day, upload_date_index_padded ), 4 ], %episode_ordering_( \"upload-month-day\" ), [ %concat( upload_month, upload_day_padded, upload_date_index_padded ), 6 ], %episode_ordering_( \"upload-month-day-reversed\" ), [ %concat( upload_day_of_year_reversed, upload_date_index_reversed_padded ), 5 ], %episode_ordering_( \"release-day\" ), [ %concat( release_day, upload_date_index_padded ), 4 ], %episode_ordering_( \"release-month-day\" ), [ %concat( release_month, release_day_padded, upload_date_index_padded ), 6 ], %episode_ordering_( \"release-month-day-reversed\" ), [ %concat( release_day_of_year_reversed, upload_date_index_reversed_padded ), 5 ], %episode_ordering_( \"download-index\" ), [ download_index, 6 ], %throw( 'tv_show_by_date_episode_ordering must be one of the following: \"upload-day\", \"upload-month-day\", \"upload-month-day-reversed\", \"release-day\", \"release-month-day\", \"release-month-day-reversed\", \"download-index\"' ) ) }",
"episode_number_and_padded_": "{ [ %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ), 6 ] }",
"episode_number_padded": "{ %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ) }",
"episode_plot": "{ %map_get( entry_metadata, \"webpage_url\" ) }\n\n{ %map_get_non_empty( entry_metadata, \"description\", '' ) }",
"episode_title": "{ %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"date_standardized\" ) } - { %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) }",
@ -90,12 +90,12 @@
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ), \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ), [ ] ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"s01_name": "",
"s01_url": "",
"season_directory_name": "Season { %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) }",
"season_number": "{ %elif( %season_ordering_( \"upload-year\" ), upload_year, %season_ordering_( \"upload-year-month\" ), %concat( upload_year, upload_month_padded ), %season_ordering_( \"release-year\" ), release_year, %season_ordering_( \"release-year-month\" ), %concat( release_year, release_month_padded ), %throw( 'tv_show_by_date_season_ordering must be one of the following: \"upload-year\", \"upload-year-month\", \"release-year\", \"release-year-month\"' ) ) }",
"season_number": "{ %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) }",
"season_number_padded": "{ %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) }",
"season_poster_file_name": "{ %sanitize( %concat( \"Season \", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ) }/Season{ %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) }.jpg",
"subscription_array": [
@ -107,12 +107,12 @@
"subscription_value_1": "https://www.youtube.com/@novapbs",
"thumbnail_file_name": "{ %concat( %sanitize( %concat( \"Season \", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ) ) ), \"/\", %sanitize( %concat( \"s\", %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"year\" ) ), \".e\", %pad_zero( %int( %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ) ), 6 ), \" - \", %sanitize_plex_episode( %map_get_non_empty( entry_metadata, \"title\", %map_get( entry_metadata, \"id\" ) ) ) ) ) ) }-thumb.jpg",
"tv_show_by_date_episode_ordering": "upload-month-day",
"tv_show_by_date_ordering_pair_validation_": "{ %assert_then( %or( %ordering_pair_eq( \"upload-year\", \"upload-month-day\" ), %ordering_pair_eq( \"upload-year\", \"upload-month-day-reversed\" ), %ordering_pair_eq( \"upload-year\", \"download-index\" ), %ordering_pair_eq( \"upload-year-month\", \"upload-day\" ), %ordering_pair_eq( \"release-year\", \"release-month-day\" ), %ordering_pair_eq( \"release-year\", \"release-month-day-reversed\" ), %ordering_pair_eq( \"release-year\", \"download-index\" ), %ordering_pair_eq( \"release-year-month\", \"release-day\" ) ), episode_number_and_padded_, \"Detected incompatibility between tv_show_by_date_season_ordering and tv_show_by_date_episode_ordering. Ensure you are not using both upload and release date, and that the year/month/day are included in the combined season and episode.\" ) }",
"tv_show_by_date_ordering_pair_validation_": "{ [ %concat( %int( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"month\" ) ), %string( %map_get( %to_date_metadata( %map_get_non_empty( entry_metadata, \"upload_date\", %datetime_strftime( %map_get( entry_metadata, \"epoch\" ), \"%Y%m%d\" ) ) ), \"day_padded\" ) ), %pad_zero( upload_date_index, 2 ) ), 6 ] }",
"tv_show_by_date_season_ordering": "upload-year",
"tv_show_content_rating": "TV-14",
"tv_show_content_rating_default": "TV-14",
"tv_show_date_range_type": "{ %if( %contains( tv_show_by_date_season_ordering, \"release\" ), \"release_date\", \"upload_date\" ) }",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpa0scqq_n",
"tv_show_date_range_type": "upload_date",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp33ooazwa",
"tv_show_fanart_file_name": "fanart.jpg",
"tv_show_genre": "Documentaries",
"tv_show_genre_default": "ytdl-sub",

View file

@ -109,7 +109,7 @@
"tv_show_content_rating": "{subscription_indent_2}",
"tv_show_content_rating_default": "TV-14",
"tv_show_date_range_type": "{\n %if(\n %contains(tv_show_by_date_season_ordering, \"release\"),\n \"release_date\",\n \"upload_date\"\n )\n}",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpg89qkg_d",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpaj6z3dtk",
"tv_show_fanart_file_name": "fanart.jpg",
"tv_show_genre": "{subscription_indent_1}",
"tv_show_genre_default": "ytdl-sub",

View file

@ -54,28 +54,28 @@
"info_json_name": "{ %concat( %sanitize( %concat( \"Season \", upload_year ) ), \"/\", %sanitize( %concat( \"s\", upload_year, \".e\", %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ), \" - \", title_sanitized_plex ) ) ) }.{ info_json_ext }",
"keep_files_date_eval": "{ upload_date_standardized }",
"maintain_download_archive": true,
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpv86eh9c_/NOVA PBS",
"output_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp0658rh14/NOVA PBS",
"preserve_mtime": false,
"thumbnail_name": "{ %concat( %sanitize( %concat( \"Season \", upload_year ) ), \"/\", %sanitize( %concat( \"s\", upload_year, \".e\", %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ), \" - \", title_sanitized_plex ) ) ) }-thumb.jpg"
},
"overrides": {
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $bilateral_url___0 ) ), $bilateral_url___0, '' ) }",
"%episode_ordering_": "{ %eq( \"upload-month-day\", $episode_ordering____0 ) }",
"%is_bilateral_url": "{ %contains( $is_bilateral_url___0, \"youtube.com/playlist\" ) }",
"%ordering_pair_eq": "{ %eq( [ \"upload-year\", \"upload-month-day\" ], [ $ordering_pair_eq___0, $ordering_pair_eq___1 ] ) }",
"%season_ordering_": "{ %eq( \"upload-year\", $season_ordering____0 ) }",
"assert_not_collection": "{ %assert( %and( %not( %bool( s01_url ) ), %not( %bool( s01_name ) ) ), \"Provided `s01_url` or `s01_name` variable to TV Show by Date preset when it expects `url`. Perhaps you meant to use the `TV Show Collection` preset?\" ) }",
"%bilateral_url": "{ %if( %and( enable_bilateral_scraping, subscription_has_download_archive, %is_bilateral_url( $0 ) ), $0, '' ) }",
"%episode_ordering_": "{ %eq( %lower( tv_show_by_date_episode_ordering ), $0 ) }",
"%is_bilateral_url": "{ %contains( $0, \"youtube.com/playlist\" ) }",
"%ordering_pair_eq": "{ %eq( [ tv_show_by_date_season_ordering, tv_show_by_date_episode_ordering ], [ $0, $1 ] ) }",
"%season_ordering_": "{ %eq( %lower( tv_show_by_date_season_ordering ), $0 ) }",
"assert_not_collection": true,
"avatar_uncropped_thumbnail_file_name": "poster.jpg",
"banner_uncropped_thumbnail_file_name": "fanart.jpg",
"enable_bilateral_scraping": true,
"enable_resolution_assert": true,
"enable_throttle_protection": true,
"episode_content_rating": "TV-14",
"episode_date_standardized": "{ %if( %contains( tv_show_by_date_season_ordering, \"release\" ), release_date_standardized, upload_date_standardized ) }",
"episode_date_standardized": "{ upload_date_standardized }",
"episode_file_name": "s{ upload_year }.e{ %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) } - { title_sanitized_plex }",
"episode_file_path": "{ %sanitize( %concat( \"Season \", upload_year ) ) }/{ %sanitize( %concat( \"s\", upload_year, \".e\", %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ), \" - \", title_sanitized_plex ) ) }",
"episode_number": "{ upload_month }{ upload_day_padded }{ upload_date_index_padded }",
"episode_number_and_padded_": "{ %elif( %episode_ordering_( \"upload-day\" ), [ %concat( upload_day, upload_date_index_padded ), 4 ], %episode_ordering_( \"upload-month-day\" ), [ %concat( upload_month, upload_day_padded, upload_date_index_padded ), 6 ], %episode_ordering_( \"upload-month-day-reversed\" ), [ %concat( upload_day_of_year_reversed, upload_date_index_reversed_padded ), 5 ], %episode_ordering_( \"release-day\" ), [ %concat( release_day, upload_date_index_padded ), 4 ], %episode_ordering_( \"release-month-day\" ), [ %concat( release_month, release_day_padded, upload_date_index_padded ), 6 ], %episode_ordering_( \"release-month-day-reversed\" ), [ %concat( release_day_of_year_reversed, upload_date_index_reversed_padded ), 5 ], %episode_ordering_( \"download-index\" ), [ download_index, 6 ], %throw( 'tv_show_by_date_episode_ordering must be one of the following: \"upload-day\", \"upload-month-day\", \"upload-month-day-reversed\", \"release-day\", \"release-month-day\", \"release-month-day-reversed\", \"download-index\"' ) ) }",
"episode_number_and_padded_": "{ [ %concat( upload_month, upload_day_padded, upload_date_index_padded ), 6 ] }",
"episode_number_padded": "{ %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ) }",
"episode_plot": "{ webpage_url }\n\n{ description }",
"episode_title": "{ upload_date_standardized } - { title }",
@ -90,12 +90,12 @@
"resolution_assert_height_gte": 361,
"resolution_assert_ignore_titles": "{ [ ] }",
"resolution_assert_is_ignored": "{ %print_if_true( %concat( title, \" has a match in resolution_assert_ignore_titles, skipping resolution assert.\" ), %contains_any( title, [ ] ) ) }",
"resolution_assert_print": "{ %print( %if( enable_resolution_assert, \"Resolution assert is enabled, will fail on low-quality video downloads and presume throttle. Disable using the override variable `enable_resolution_assert: False`\", \"Resolution assert is disabled. Use at your own risk!\" ), True, -1 ) }",
"resolution_assert_print": true,
"resolution_readable": "{ width }x{ height }",
"s01_name": "",
"s01_url": "",
"season_directory_name": "Season { upload_year }",
"season_number": "{ %elif( %season_ordering_( \"upload-year\" ), upload_year, %season_ordering_( \"upload-year-month\" ), %concat( upload_year, upload_month_padded ), %season_ordering_( \"release-year\" ), release_year, %season_ordering_( \"release-year-month\" ), %concat( release_year, release_month_padded ), %throw( 'tv_show_by_date_season_ordering must be one of the following: \"upload-year\", \"upload-year-month\", \"release-year\", \"release-year-month\"' ) ) }",
"season_number": "{ upload_year }",
"season_number_padded": "{ upload_year }",
"season_poster_file_name": "{ %sanitize( %concat( \"Season \", upload_year ) ) }/Season{ upload_year }.jpg",
"subscription_array": [
@ -107,12 +107,12 @@
"subscription_value_1": "https://www.youtube.com/@novapbs",
"thumbnail_file_name": "{ %concat( %sanitize( %concat( \"Season \", upload_year ) ), \"/\", %sanitize( %concat( \"s\", upload_year, \".e\", %pad_zero( %int( %concat( upload_month, upload_day_padded, upload_date_index_padded ) ), 6 ), \" - \", title_sanitized_plex ) ) ) }-thumb.jpg",
"tv_show_by_date_episode_ordering": "upload-month-day",
"tv_show_by_date_ordering_pair_validation_": "{ %assert_then( %or( %ordering_pair_eq( \"upload-year\", \"upload-month-day\" ), %ordering_pair_eq( \"upload-year\", \"upload-month-day-reversed\" ), %ordering_pair_eq( \"upload-year\", \"download-index\" ), %ordering_pair_eq( \"upload-year-month\", \"upload-day\" ), %ordering_pair_eq( \"release-year\", \"release-month-day\" ), %ordering_pair_eq( \"release-year\", \"release-month-day-reversed\" ), %ordering_pair_eq( \"release-year\", \"download-index\" ), %ordering_pair_eq( \"release-year-month\", \"release-day\" ) ), episode_number_and_padded_, \"Detected incompatibility between tv_show_by_date_season_ordering and tv_show_by_date_episode_ordering. Ensure you are not using both upload and release date, and that the year/month/day are included in the combined season and episode.\" ) }",
"tv_show_by_date_ordering_pair_validation_": "{ [ %concat( upload_month, upload_day_padded, upload_date_index_padded ), 6 ] }",
"tv_show_by_date_season_ordering": "upload-year",
"tv_show_content_rating": "TV-14",
"tv_show_content_rating_default": "TV-14",
"tv_show_date_range_type": "{ %if( %contains( tv_show_by_date_season_ordering, \"release\" ), \"release_date\", \"upload_date\" ) }",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmpv86eh9c_",
"tv_show_date_range_type": "upload_date",
"tv_show_directory": "/var/folders/rw/hl1xmkmj68zdl2kjx3l0dwzc0000gn/T/tmp0658rh14",
"tv_show_fanart_file_name": "fanart.jpg",
"tv_show_genre": "Documentaries",
"tv_show_genre_default": "ytdl-sub",