diff --git a/README.md b/README.md index 15036dff..01fd005c 100644 --- a/README.md +++ b/README.md @@ -71,13 +71,8 @@ __preset__: cookiefile: "/config/cookie.txt" ################################################################### -# Subscriptions nested under this will use the -# `Plex TV Show by Date` preset. -# -# Can choose between: -# - Plex TV Show by Date: -# - Jellyfin TV Show by Date: -# - Kodi TV Show by Date: +# TV Show Presets. Can replace Plex with Plex/Jellyfin/Kodi + Plex TV Show by Date: # Sets genre tag to "Documentaries" @@ -101,9 +96,18 @@ Plex TV Show by Date: = News | Only Recent: "BBC News": "https://www.youtube.com/@BBCNews" +Plex TV Show Collection: + = Music: + # Prefix with ~ to set specific override variables + "~Beyond the Guitar": + s01_name: "Videos" + s01_url: "https://www.youtube.com/c/BeyondTheGuitar" + s02_name: "Covers" + s02_url: "https://www.youtube.com/playlist?list=PLE62gWlWZk5NWVAVuf0Lm9jdv_-_KXs0W" + ################################################################### -# Subscriptions nested under these will use the various prebuilt -# music presets +# Music Presets. Can replace Plex with Plex/Jellyfin/Kodi + YouTube Releases: = Jazz: # Sets genre tag to "Jazz" "Thelonious Monk": "https://www.youtube.com/@theloniousmonk3870/releases" @@ -124,10 +128,7 @@ Bandcamp: "Emily Hopkins": "https://emilyharpist.bandcamp.com/" ################################################################### -# Can choose between: -# - Plex Music Videos: -# - Jellyfin Music Videos: -# - Kodi Music Videos: +# Music Video Presets "Plex Music Videos": = Pop: # Sets genre tag to "Pop" "Rick Astley": "https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc" diff --git a/docs/source/config_reference/subscriptions_yaml.rst b/docs/source/config_reference/subscriptions_yaml.rst index 5c976149..d97b65f9 100644 --- a/docs/source/config_reference/subscriptions_yaml.rst +++ b/docs/source/config_reference/subscriptions_yaml.rst @@ -19,9 +19,7 @@ Below is an example that downloads a YouTube playlist: presets: playlist_preset_ex: - download: - download_strategy: "url" - url: "{url}" + download: "{url}" output_options: output_directory: "{output_directory}/{playlist_name}" file_name: "{playlist_name}.{title}.{ext}" diff --git a/docs/source/prebuilt_presets/tv_shows.rst b/docs/source/prebuilt_presets/tv_shows.rst index a7770d0f..8510350d 100644 --- a/docs/source/prebuilt_presets/tv_shows.rst +++ b/docs/source/prebuilt_presets/tv_shows.rst @@ -38,17 +38,39 @@ TV Show by Date TV Show by Date will organize something like a YouTube channel or playlist into a tv show, where seasons and episodes are organized using upload date. -Plug and Play Presets -~~~~~~~~~~~~~~~~~~~~~ - -You can use any of these presets in your ``subscriptions.yaml`` as a "One size fits all" solution- they should set all appropriate values. These will organize seasons by year and episodes by month, then day. - -Must define ``tv_show_directory`` +Example +~~~~~~~ +Must define ``tv_show_directory``. Available presets: * ``"Kodi TV Show by Date"`` * ``"Jellyfin TV Show by Date"`` * ``"Plex TV Show by Date"`` +.. code-block:: yaml + + __preset__: + overrides: + tv_show_directory: "/tv_shows" + + Plex TV Show by Date: + + # Sets genre tag to "Documentaries" + = Documentaries: + "NOVA PBS": "https://www.youtube.com/@novapbs" + "National Geographic": "https://www.youtube.com/@NatGeo" + "Cosmos - What If": "https://www.youtube.com/playlist?list=PLZdXRHYAVxTJno6oFF9nLGuwXNGYHmE8U" + + # Sets genre tag to "Kids", "TV-Y" for content rating + = Kids | = TV-Y: + "Jake Trains": "https://www.youtube.com/@JakeTrains" + "Kids Toys Play": "https://www.youtube.com/@KidsToysPlayChannel" + + = Music: + # TV show subscriptions can support multiple urls and store in the same TV Show + "Rick Beato": + - "https://www.youtube.com/@RickBeato" + - "https://www.youtube.com/@rickbeato240" + Advanced Usage ~~~~~~~~~~~~~~ @@ -71,43 +93,13 @@ And then add one of these: * Episodes are numbered by the download order. NOTE that this is fetched using the length of the download archive. Do not use if you intend to remove old videos. -An example of a subscription that will be played on Kodi, organized by year with the most recent episode at the top (having a lower episode number), with a genre of "Pop": - -.. code-block:: yaml - :caption: subscriptions.yaml - - __preset__: - overrides: - tv_show_directory: "/tv_shows" - - kodi_tv_show_by_date: - season_by_year_episode_by_month_day_reversed: - = Pop: - "Rick A": "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw" - -You can also choose to combine multiple URLs into one show. This will result in your videos being downloaded to the same folder, and the episode numbers being shared between them (so you won't have two episode 10's, for example). Note that you may :ytdl-sub-gh:`experience issues ` if you use more than 20 URLs at this time. - -.. code-block:: yaml - :caption: subscriptions.yaml - - __preset__: - overrides: - tv_show_directory: "/tv_shows" - - kodi_tv_show_by_date: - season_by_year_episode_by_month_day_reversed: - = Pop: - "~Rick A": - url: "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw" - url2: "https://www.youtube.com/@just.rick_6" - TV Show Collection ------------------ -TV Show Collections are made up of multiple URLs, where each URL is a season. -If a video belongs to multiple URLs (i.e. a channel and a channel's playlist), -it will resolve to the bottom-most season, as defined in the subscription. +TV Show Collections set each URL as its own season. If a video belongs to multiple URLs +(i.e. a channel and a channel's playlist), the video will only download once and reside in +the higher-numbered season. Two main use cases of a collection are: 1. Organize a YouTube channel TV show where Season 1 contains any video @@ -116,15 +108,41 @@ Two main use cases of a collection are: 2. Organize one or more YouTube channels/playlists, where each season represents a separate channel/playlist. -Player Presets +Example +~~~~~~~ +Must define ``tv_show_directory``. Available presets: + +* ``"Kodi TV Show Collection"`` +* ``"Jellyfin TV Show Collection"`` +* ``"Plex TV Show Collection"`` + +.. code-block:: yaml + + __preset__: + overrides: + tv_show_directory: "/tv_shows" + + Plex TV Show Collection: + = Music: + # Prefix with ~ to set specific override variables + "~Beyond the Guitar": + s01_name: "Videos" + s01_url: "https://www.youtube.com/c/BeyondTheGuitar" + s02_name: "Covers" + s02_url: "https://www.youtube.com/playlist?list=PLE62gWlWZk5NWVAVuf0Lm9jdv_-_KXs0W" + +Advanced Usage ~~~~~~~~~~~~~~ +If you prefer a different organization method, you can instead apply multiple presets to your subscriptions. + +You will need a base of one of the below: + * ``kodi_tv_show_collection`` * ``jellyfin_tv_show_collection`` * ``plex_tv_show_collection`` -Episode Formatting Presets -~~~~~~~~~~~~~~~~~~~~~~~~~~ +And then add one of these: * ``season_by_collection__episode_by_year_month_day`` * ``season_by_collection__episode_by_year_month_day_reversed`` @@ -132,40 +150,3 @@ Episode Formatting Presets * Only use playlist_index episode formatting for playlists that will be fully downloaded once and never again. Otherwise, indices can change. * ``season_by_collection__episode_by_playlist_index_reversed`` - -Season Presets -~~~~~~~~~~~~~~ - -* ``collection_season_1`` -* ``collection_season_2`` -* ``collection_season_3`` -* ``collection_season_4`` -* ``...`` -* ``collection_season_40`` - -Example -~~~~~~~ - -A preset/subscription requires specifying a player, episode formatting, and -one or more season presets, with the following override variables: - -.. code-block:: yaml - - rick_a_tv_show_collection: - preset: - - "jellyfin_tv_show_collection" - - "season_by_collection__episode_by_year_month_day_reversed" - - "collection_season_1" - - "collection_season_2" - overrides: - # required - tv_show_name: "Rick A" - tv_show_directory: "/path/to/youtube_shows" - collection_season_1_url: "https://www.youtube.com/channel/UCuAXFkgsw1L7xaCfnd5JJOw" - collection_season_1_name: "All Videos" - collection_season_2_url: "https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc" - collection_season_2_name: "Official Music Videos" - # can be modified from their default value - # tv_show_genre: "ytdl-sub" - # episode_title: "{upload_date_standardized} - {title}" - # episode_description: "{webpage_url}" \ No newline at end of file diff --git a/examples/tv_show_subscriptions.yaml b/examples/tv_show_subscriptions.yaml index d8b914cb..eb88e4da 100644 --- a/examples/tv_show_subscriptions.yaml +++ b/examples/tv_show_subscriptions.yaml @@ -55,4 +55,21 @@ Plex TV Show by Date: # Set "News" for genre, use `Only Recent` preset to only store videos uploaded recently = News | Only Recent: - "BBC News": "https://www.youtube.com/@BBCNews" \ No newline at end of file + "BBC News": "https://www.youtube.com/@BBCNews" + +# Sets URLs to be explicit seasons. If a video resides in multiple URLs, it will +# only appear once in the higher-numbered season. This is how you can separate a channel's +# videos and playlists you are interested in. +# +# Choose the player you intend to use by setting the top-level key to be either: +# - Plex TV Show Collection: +# - Jellyfin TV Show Collection: +# - Kodi TV Show Collection: +Plex TV Show Collection: + = Music: + "~Beyond the Guitar": + s01_name: "Videos" + s01_url: "https://www.youtube.com/c/BeyondTheGuitar" + + s02_name: "Music Videos" + s02_url: "https://www.youtube.com/playlist?list=PLE62gWlWZk5NWVAVuf0Lm9jdv_-_KXs0W" diff --git a/src/ytdl_sub/prebuilt_presets/music/other_websites.yaml b/src/ytdl_sub/prebuilt_presets/music/other_websites.yaml index 14780bea..32eb964a 100644 --- a/src/ytdl_sub/prebuilt_presets/music/other_websites.yaml +++ b/src/ytdl_sub/prebuilt_presets/music/other_websites.yaml @@ -5,7 +5,6 @@ presets: # Download using the multi_url strategy download: - download_strategy: "multi_url" urls: # The first URL will be all the artist's tracks. # Treat these as singles - an album with a single track diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py b/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py index 5e85f0c4..98723bc8 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py +++ b/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py @@ -52,6 +52,8 @@ class TvShowCollectionEpisodeFormattingPresets(PrebuiltPresets): class TvShowCollectionSeasonPresets(PrebuiltPresets): + """Now Deprecated""" + preset_names = { "collection_season_1", "collection_season_2", diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml index d3bafc69..8554fda9 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml @@ -1,132 +1,24 @@ presets: - # TV show from a collection. Must specify additional `tv_show_collection_season` presets in - # addition. Each season sets its own `collection_season_number/_padded` - _tv_show_collection: - overrides: - collection_season_number_padded: "{ %pad_zero(%int(collection_season_number), 2) }" - season_number: "{collection_season_number}" - season_number_padded: "{collection_season_number_padded}" - collection_season_1_url: "" - collection_season_1_name: "Season 1" - collection_season_1_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_1_url) }" - collection_season_2_url: "" - collection_season_2_name: "Season 2" - collection_season_2_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_2_url) }" - collection_season_3_url: "" - collection_season_3_name: "Season 3" - collection_season_3_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_3_url) }" - collection_season_4_url: "" - collection_season_4_name: "Season 4" - collection_season_4_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_4_url) }" - collection_season_5_url: "" - collection_season_5_name: "Season 5" - collection_season_5_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_5_url) }" - collection_season_6_url: "" - collection_season_6_name: "Season 6" - collection_season_6_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_6_url) }" - collection_season_7_url: "" - collection_season_7_name: "Season 7" - collection_season_7_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_7_url) }" - collection_season_8_url: "" - collection_season_8_name: "Season 8" - collection_season_8_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_8_url) }" - collection_season_9_url: "" - collection_season_9_name: "Season 9" - collection_season_9_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_9_url) }" - collection_season_10_url: "" - collection_season_10_name: "Season 10" - collection_season_10_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_10_url) }" - collection_season_11_url: "" - collection_season_11_name: "Season 11" - collection_season_11_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_11_url) }" - collection_season_12_url: "" - collection_season_12_name: "Season 12" - collection_season_12_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_12_url) }" - collection_season_13_url: "" - collection_season_13_name: "Season 13" - collection_season_13_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_13_url) }" - collection_season_14_url: "" - collection_season_14_name: "Season 14" - collection_season_14_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_14_url) }" - collection_season_15_url: "" - collection_season_15_name: "Season 15" - collection_season_15_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_15_url) }" - collection_season_16_url: "" - collection_season_16_name: "Season 16" - collection_season_16_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_16_url) }" - collection_season_17_url: "" - collection_season_17_name: "Season 17" - collection_season_17_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_17_url) }" - collection_season_18_url: "" - collection_season_18_name: "Season 18" - collection_season_18_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_18_url) }" - collection_season_19_url: "" - collection_season_19_name: "Season 19" - collection_season_19_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_19_url) }" - collection_season_20_url: "" - collection_season_20_name: "Season 20" - collection_season_20_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_20_url) }" - collection_season_21_url: "" - collection_season_21_name: "Season 21" - collection_season_21_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_21_url) }" - collection_season_22_url: "" - collection_season_22_name: "Season 22" - collection_season_22_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_22_url) }" - collection_season_23_url: "" - collection_season_23_name: "Season 23" - collection_season_23_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_23_url) }" - collection_season_24_url: "" - collection_season_24_name: "Season 24" - collection_season_24_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_24_url) }" - collection_season_25_url: "" - collection_season_25_name: "Season 25" - collection_season_25_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_25_url) }" - collection_season_26_url: "" - collection_season_26_name: "Season 26" - collection_season_26_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_26_url) }" - collection_season_27_url: "" - collection_season_27_name: "Season 27" - collection_season_27_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_27_url) }" - collection_season_28_url: "" - collection_season_28_name: "Season 28" - collection_season_28_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_28_url) }" - collection_season_29_url: "" - collection_season_29_name: "Season 29" - collection_season_29_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_29_url) }" - collection_season_30_url: "" - collection_season_30_name: "Season 30" - collection_season_30_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_30_url) }" - collection_season_31_url: "" - collection_season_31_name: "Season 31" - collection_season_31_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_31_url) }" - collection_season_32_url: "" - collection_season_32_name: "Season 32" - collection_season_32_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_32_url) }" - collection_season_33_url: "" - collection_season_33_name: "Season 33" - collection_season_33_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_33_url) }" - collection_season_34_url: "" - collection_season_34_name: "Season 34" - collection_season_34_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_34_url) }" - collection_season_35_url: "" - collection_season_35_name: "Season 35" - collection_season_35_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_35_url) }" - collection_season_36_url: "" - collection_season_36_name: "Season 36" - collection_season_36_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_36_url) }" - collection_season_37_url: "" - collection_season_37_name: "Season 37" - collection_season_37_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_37_url) }" - collection_season_38_url: "" - collection_season_38_name: "Season 38" - collection_season_38_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_38_url) }" - collection_season_39_url: "" - collection_season_39_name: "Season 39" - collection_season_39_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_39_url) }" - collection_season_40_url: "" - collection_season_40_name: "Season 40" - collection_season_40_extract_bilaterally: "{ %is_bilateral_playlist_url(collection_season_40_url) }" + ############################### + # All-in-one presets that require no config + + "Kodi TV Show Collection": + preset: + - "kodi_tv_show_collection" + - "season_by_collection__episode_by_year_month_day" + + "Jellyfin TV Show Collection": + preset: + - "jellyfin_tv_show_collection" + - "season_by_collection__episode_by_year_month_day" + + "Plex TV Show Collection": + preset: + - "plex_tv_show_collection" + - "season_by_collection__episode_by_year_month_day" + + ################## kodi_tv_show_collection: preset: @@ -143,742 +35,7 @@ presets: - "_plex_tv_show" - "_tv_show_collection" -#################################################################################################### -# SEASON PRESETS - - collection_season_1: - download: - - url: "{collection_season_1_url}" - variables: - collection_season_number: "1" - collection_season_name: "{collection_season_1_name}" - playlist_thumbnails: - # Use latest_entry first, then see if YT channel artwork exists - # ONLY FOR SEASON 1! The channel artwork will be the show's artwork. - - name: "{season_poster_file_name}" - uid: "latest_entry" - - name: "{tv_show_poster_file_name}" - uid: "avatar_uncropped" - - name: "{tv_show_fanart_file_name}" - uid: "banner_uncropped" - source_thumbnails: - - name: "{tv_show_poster_file_name}" - uid: "avatar_uncropped" - - name: "{tv_show_fanart_file_name}" - uid: "banner_uncropped" - extract_bilaterally: "collection_season_1_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_1_name}" - attributes: - number: "1" - - collection_season_2: - download: - - url: "{collection_season_2_url}" - variables: - collection_season_number: "2" - collection_season_name: "{collection_season_2_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_2_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_2_name}" - attributes: - number: "2" - - collection_season_3: - download: - - url: "{collection_season_3_url}" - variables: - collection_season_number: "3" - collection_season_name: "{collection_season_3_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_3_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_3_name}" - attributes: - number: "3" - - collection_season_4: - download: - - url: "{collection_season_4_url}" - variables: - collection_season_number: "4" - collection_season_name: "{collection_season_4_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_4_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_4_name}" - attributes: - number: "4" - - collection_season_5: - download: - - url: "{collection_season_5_url}" - variables: - collection_season_number: "5" - collection_season_name: "{collection_season_5_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_5_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_5_name}" - attributes: - number: "5" - - collection_season_6: - download: - - url: "{collection_season_6_url}" - variables: - collection_season_number: "6" - collection_season_name: "{collection_season_6_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_6_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_6_name}" - attributes: - number: "6" - - collection_season_7: - download: - - url: "{collection_season_7_url}" - variables: - collection_season_number: "7" - collection_season_name: "{collection_season_7_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_7_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_7_name}" - attributes: - number: "7" - - collection_season_8: - download: - - url: "{collection_season_8_url}" - variables: - collection_season_number: "8" - collection_season_name: "{collection_season_8_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_8_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_8_name}" - attributes: - number: "8" - - collection_season_9: - download: - - url: "{collection_season_9_url}" - variables: - collection_season_number: "9" - collection_season_name: "{collection_season_9_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_9_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_9_name}" - attributes: - number: "9" - - collection_season_10: - download: - - url: "{collection_season_10_url}" - variables: - collection_season_number: "10" - collection_season_name: "{collection_season_10_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_10_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_10_name}" - attributes: - number: "10" - - collection_season_11: - download: - - url: "{collection_season_11_url}" - variables: - collection_season_number: "11" - collection_season_name: "{collection_season_11_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_11_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_11_name}" - attributes: - number: "11" - - collection_season_12: - download: - - url: "{collection_season_12_url}" - variables: - collection_season_number: "12" - collection_season_name: "{collection_season_12_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_12_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_12_name}" - attributes: - number: "12" - - collection_season_13: - download: - - url: "{collection_season_13_url}" - variables: - collection_season_number: "13" - collection_season_name: "{collection_season_13_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_13_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_13_name}" - attributes: - number: "13" - - collection_season_14: - download: - - url: "{collection_season_14_url}" - variables: - collection_season_number: "14" - collection_season_name: "{collection_season_14_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_14_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_14_name}" - attributes: - number: "14" - - collection_season_15: - download: - - url: "{collection_season_15_url}" - variables: - collection_season_number: "15" - collection_season_name: "{collection_season_15_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_15_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_15_name}" - attributes: - number: "15" - - collection_season_16: - download: - - url: "{collection_season_16_url}" - variables: - collection_season_number: "16" - collection_season_name: "{collection_season_16_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_16_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_16_name}" - attributes: - number: "16" - - collection_season_17: - download: - - url: "{collection_season_17_url}" - variables: - collection_season_number: "17" - collection_season_name: "{collection_season_17_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_17_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_17_name}" - attributes: - number: "17" - - collection_season_18: - download: - - url: "{collection_season_18_url}" - variables: - collection_season_number: "18" - collection_season_name: "{collection_season_18_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_18_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_18_name}" - attributes: - number: "18" - - collection_season_19: - download: - - url: "{collection_season_19_url}" - variables: - collection_season_number: "19" - collection_season_name: "{collection_season_19_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_19_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_19_name}" - attributes: - number: "19" - - collection_season_20: - download: - - url: "{collection_season_20_url}" - variables: - collection_season_number: "20" - collection_season_name: "{collection_season_20_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_20_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_20_name}" - attributes: - number: "20" - - collection_season_21: - download: - - url: "{collection_season_21_url}" - variables: - collection_season_number: "21" - collection_season_name: "{collection_season_21_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_21_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_21_name}" - attributes: - number: "21" - - collection_season_22: - download: - - url: "{collection_season_22_url}" - variables: - collection_season_number: "22" - collection_season_name: "{collection_season_22_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_22_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_22_name}" - attributes: - number: "22" - - collection_season_23: - download: - - url: "{collection_season_23_url}" - variables: - collection_season_number: "23" - collection_season_name: "{collection_season_23_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_23_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_23_name}" - attributes: - number: "23" - - collection_season_24: - download: - - url: "{collection_season_24_url}" - variables: - collection_season_number: "24" - collection_season_name: "{collection_season_24_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_24_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_24_name}" - attributes: - number: "24" - - collection_season_25: - download: - - url: "{collection_season_25_url}" - variables: - collection_season_number: "25" - collection_season_name: "{collection_season_25_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_25_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_25_name}" - attributes: - number: "25" - - collection_season_26: - download: - - url: "{collection_season_26_url}" - variables: - collection_season_number: "26" - collection_season_name: "{collection_season_26_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_26_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_26_name}" - attributes: - number: "26" - - collection_season_27: - download: - - url: "{collection_season_27_url}" - variables: - collection_season_number: "27" - collection_season_name: "{collection_season_27_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_27_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_27_name}" - attributes: - number: "27" - - collection_season_28: - download: - - url: "{collection_season_28_url}" - variables: - collection_season_number: "28" - collection_season_name: "{collection_season_28_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_28_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_28_name}" - attributes: - number: "28" - - collection_season_29: - download: - - url: "{collection_season_29_url}" - variables: - collection_season_number: "29" - collection_season_name: "{collection_season_29_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_29_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_29_name}" - attributes: - number: "29" - - collection_season_30: - download: - - url: "{collection_season_30_url}" - variables: - collection_season_number: "30" - collection_season_name: "{collection_season_30_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_30_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_30_name}" - attributes: - number: "30" - - collection_season_31: - download: - - url: "{collection_season_31_url}" - variables: - collection_season_number: "31" - collection_season_name: "{collection_season_31_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_31_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_31_name}" - attributes: - number: "31" - - collection_season_32: - download: - - url: "{collection_season_32_url}" - variables: - collection_season_number: "32" - collection_season_name: "{collection_season_32_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_32_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_32_name}" - attributes: - number: "32" - - collection_season_33: - download: - - url: "{collection_season_33_url}" - variables: - collection_season_number: "33" - collection_season_name: "{collection_season_33_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_33_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_33_name}" - attributes: - number: "33" - - collection_season_34: - download: - - url: "{collection_season_34_url}" - variables: - collection_season_number: "34" - collection_season_name: "{collection_season_34_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_34_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_34_name}" - attributes: - number: "34" - - collection_season_35: - download: - - url: "{collection_season_35_url}" - variables: - collection_season_number: "35" - collection_season_name: "{collection_season_35_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_35_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_35_name}" - attributes: - number: "35" - - collection_season_36: - download: - - url: "{collection_season_36_url}" - variables: - collection_season_number: "36" - collection_season_name: "{collection_season_36_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_36_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_36_name}" - attributes: - number: "36" - - collection_season_37: - download: - - url: "{collection_season_37_url}" - variables: - collection_season_number: "37" - collection_season_name: "{collection_season_37_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_37_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_37_name}" - attributes: - number: "37" - - collection_season_38: - download: - - url: "{collection_season_38_url}" - variables: - collection_season_number: "38" - collection_season_name: "{collection_season_38_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_38_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_38_name}" - attributes: - number: "38" - - collection_season_39: - download: - - url: "{collection_season_39_url}" - variables: - collection_season_number: "39" - collection_season_name: "{collection_season_39_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_39_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_39_name}" - attributes: - number: "39" - - collection_season_40: - download: - - url: "{collection_season_40_url}" - variables: - collection_season_number: "40" - collection_season_name: "{collection_season_40_name}" - playlist_thumbnails: - - name: "{season_poster_file_name}" - uid: "latest_entry" - extract_bilaterally: "collection_season_40_extract_bilaterally" - - output_directory_nfo_tags: - tags: - namedseason: - - tag: "{collection_season_40_name}" - attributes: - number: "40" - - - ############### + ############################### season_by_collection__episode_by_year_month_day: overrides: @@ -898,4 +55,639 @@ presets: season_by_collection__episode_by_playlist_index_reversed: overrides: episode_number: "{playlist_index_reversed}" - episode_number_padded: "{playlist_index_reversed_padded6}" \ No newline at end of file + episode_number_padded: "{playlist_index_reversed_padded6}" + + ############## + + _tv_show_collection: + download: + - url: "{collection_season_1_url}" + variables: + collection_season_number: "1" + collection_season_name: "{collection_season_1_name}" + playlist_thumbnails: + # Use latest_entry first, then see if YT channel artwork exists + # ONLY FOR SEASON 1! The channel artwork will be the show's artwork. + - name: "{season_poster_file_name}" + uid: "latest_entry" + - name: "{tv_show_poster_file_name}" + uid: "avatar_uncropped" + - name: "{tv_show_fanart_file_name}" + uid: "banner_uncropped" + source_thumbnails: + - name: "{tv_show_poster_file_name}" + uid: "avatar_uncropped" + - name: "{tv_show_fanart_file_name}" + uid: "banner_uncropped" + - url: "{collection_season_2_url}" + variables: + collection_season_number: "2" + collection_season_name: "{collection_season_2_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_3_url}" + variables: + collection_season_number: "3" + collection_season_name: "{collection_season_3_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_4_url}" + variables: + collection_season_number: "4" + collection_season_name: "{collection_season_4_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_5_url}" + variables: + collection_season_number: "5" + collection_season_name: "{collection_season_5_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_6_url}" + variables: + collection_season_number: "6" + collection_season_name: "{collection_season_6_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_7_url}" + variables: + collection_season_number: "7" + collection_season_name: "{collection_season_7_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_8_url}" + variables: + collection_season_number: "8" + collection_season_name: "{collection_season_8_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_9_url}" + variables: + collection_season_number: "9" + collection_season_name: "{collection_season_9_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_10_url}" + variables: + collection_season_number: "10" + collection_season_name: "{collection_season_10_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_11_url}" + variables: + collection_season_number: "11" + collection_season_name: "{collection_season_11_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_12_url}" + variables: + collection_season_number: "12" + collection_season_name: "{collection_season_12_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_13_url}" + variables: + collection_season_number: "13" + collection_season_name: "{collection_season_13_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_14_url}" + variables: + collection_season_number: "14" + collection_season_name: "{collection_season_14_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_15_url}" + variables: + collection_season_number: "15" + collection_season_name: "{collection_season_15_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_16_url}" + variables: + collection_season_number: "16" + collection_season_name: "{collection_season_16_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_17_url}" + variables: + collection_season_number: "17" + collection_season_name: "{collection_season_17_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_18_url}" + variables: + collection_season_number: "18" + collection_season_name: "{collection_season_18_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_19_url}" + variables: + collection_season_number: "19" + collection_season_name: "{collection_season_19_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_20_url}" + variables: + collection_season_number: "20" + collection_season_name: "{collection_season_20_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_21_url}" + variables: + collection_season_number: "21" + collection_season_name: "{collection_season_21_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_22_url}" + variables: + collection_season_number: "22" + collection_season_name: "{collection_season_22_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_23_url}" + variables: + collection_season_number: "23" + collection_season_name: "{collection_season_23_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_24_url}" + variables: + collection_season_number: "24" + collection_season_name: "{collection_season_24_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_25_url}" + variables: + collection_season_number: "25" + collection_season_name: "{collection_season_25_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_26_url}" + variables: + collection_season_number: "26" + collection_season_name: "{collection_season_26_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_27_url}" + variables: + collection_season_number: "27" + collection_season_name: "{collection_season_27_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_28_url}" + variables: + collection_season_number: "28" + collection_season_name: "{collection_season_28_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_29_url}" + variables: + collection_season_number: "29" + collection_season_name: "{collection_season_29_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_30_url}" + variables: + collection_season_number: "30" + collection_season_name: "{collection_season_30_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_31_url}" + variables: + collection_season_number: "31" + collection_season_name: "{collection_season_31_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_32_url}" + variables: + collection_season_number: "32" + collection_season_name: "{collection_season_32_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_33_url}" + variables: + collection_season_number: "33" + collection_season_name: "{collection_season_33_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_34_url}" + variables: + collection_season_number: "34" + collection_season_name: "{collection_season_34_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_35_url}" + variables: + collection_season_number: "35" + collection_season_name: "{collection_season_35_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_36_url}" + variables: + collection_season_number: "36" + collection_season_name: "{collection_season_36_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_37_url}" + variables: + collection_season_number: "37" + collection_season_name: "{collection_season_37_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_38_url}" + variables: + collection_season_number: "38" + collection_season_name: "{collection_season_38_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_39_url}" + variables: + collection_season_number: "39" + collection_season_name: "{collection_season_39_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + - url: "{collection_season_40_url}" + variables: + collection_season_number: "40" + collection_season_name: "{collection_season_40_name}" + playlist_thumbnails: + - name: "{season_poster_file_name}" + uid: "latest_entry" + + output_directory_nfo_tags: + tags: + namedseason: + - tag: "{collection_season_1_name}" + attributes: + number: "1" + - tag: "{collection_season_2_name}" + attributes: + number: "2" + - tag: "{collection_season_3_name}" + attributes: + number: "3" + - tag: "{collection_season_4_name}" + attributes: + number: "4" + - tag: "{collection_season_5_name}" + attributes: + number: "5" + - tag: "{collection_season_6_name}" + attributes: + number: "6" + - tag: "{collection_season_7_name}" + attributes: + number: "7" + - tag: "{collection_season_8_name}" + attributes: + number: "8" + - tag: "{collection_season_9_name}" + attributes: + number: "9" + - tag: "{collection_season_10_name}" + attributes: + number: "10" + - tag: "{collection_season_11_name}" + attributes: + number: "11" + - tag: "{collection_season_12_name}" + attributes: + number: "12" + - tag: "{collection_season_13_name}" + attributes: + number: "13" + - tag: "{collection_season_14_name}" + attributes: + number: "14" + - tag: "{collection_season_15_name}" + attributes: + number: "15" + - tag: "{collection_season_16_name}" + attributes: + number: "16" + - tag: "{collection_season_17_name}" + attributes: + number: "17" + - tag: "{collection_season_18_name}" + attributes: + number: "18" + - tag: "{collection_season_19_name}" + attributes: + number: "19" + - tag: "{collection_season_20_name}" + attributes: + number: "20" + - tag: "{collection_season_21_name}" + attributes: + number: "21" + - tag: "{collection_season_22_name}" + attributes: + number: "22" + - tag: "{collection_season_23_name}" + attributes: + number: "23" + - tag: "{collection_season_24_name}" + attributes: + number: "24" + - tag: "{collection_season_25_name}" + attributes: + number: "25" + - tag: "{collection_season_26_name}" + attributes: + number: "26" + - tag: "{collection_season_27_name}" + attributes: + number: "27" + - tag: "{collection_season_28_name}" + attributes: + number: "28" + - tag: "{collection_season_29_name}" + attributes: + number: "29" + - tag: "{collection_season_30_name}" + attributes: + number: "30" + - tag: "{collection_season_31_name}" + attributes: + number: "31" + - tag: "{collection_season_32_name}" + attributes: + number: "32" + - tag: "{collection_season_33_name}" + attributes: + number: "33" + - tag: "{collection_season_34_name}" + attributes: + number: "34" + - tag: "{collection_season_35_name}" + attributes: + number: "35" + - tag: "{collection_season_36_name}" + attributes: + number: "36" + - tag: "{collection_season_37_name}" + attributes: + number: "37" + - tag: "{collection_season_38_name}" + attributes: + number: "38" + - tag: "{collection_season_39_name}" + attributes: + number: "39" + - tag: "{collection_season_40_name}" + attributes: + number: "40" + + overrides: + collection_season_number_padded: "{ %pad_zero(%int(collection_season_number), 2) }" + season_number: "{collection_season_number}" + season_number_padded: "{collection_season_number_padded}" + + # Legacy name variable + collection_season_1_name: "{s01_name}" + collection_season_2_name: "{s02_name}" + collection_season_3_name: "{s03_name}" + collection_season_4_name: "{s04_name}" + collection_season_5_name: "{s05_name}" + collection_season_6_name: "{s06_name}" + collection_season_7_name: "{s07_name}" + collection_season_8_name: "{s08_name}" + collection_season_9_name: "{s09_name}" + collection_season_10_name: "{s10_name}" + collection_season_11_name: "{s11_name}" + collection_season_12_name: "{s12_name}" + collection_season_13_name: "{s13_name}" + collection_season_14_name: "{s14_name}" + collection_season_15_name: "{s15_name}" + collection_season_16_name: "{s16_name}" + collection_season_17_name: "{s17_name}" + collection_season_18_name: "{s18_name}" + collection_season_19_name: "{s19_name}" + collection_season_20_name: "{s20_name}" + collection_season_21_name: "{s21_name}" + collection_season_22_name: "{s22_name}" + collection_season_23_name: "{s23_name}" + collection_season_24_name: "{s24_name}" + collection_season_25_name: "{s25_name}" + collection_season_26_name: "{s26_name}" + collection_season_27_name: "{s27_name}" + collection_season_28_name: "{s28_name}" + collection_season_29_name: "{s29_name}" + collection_season_30_name: "{s30_name}" + collection_season_31_name: "{s31_name}" + collection_season_32_name: "{s32_name}" + collection_season_33_name: "{s33_name}" + collection_season_34_name: "{s34_name}" + collection_season_35_name: "{s35_name}" + collection_season_36_name: "{s36_name}" + collection_season_37_name: "{s37_name}" + collection_season_38_name: "{s38_name}" + collection_season_39_name: "{s39_name}" + collection_season_40_name: "{s40_name}" + + # Legacy url variable + collection_season_1_url: "{s01_url}" + collection_season_2_url: "{s02_url}" + collection_season_3_url: "{s03_url}" + collection_season_4_url: "{s04_url}" + collection_season_5_url: "{s05_url}" + collection_season_6_url: "{s06_url}" + collection_season_7_url: "{s07_url}" + collection_season_8_url: "{s08_url}" + collection_season_9_url: "{s09_url}" + collection_season_10_url: "{s10_url}" + collection_season_11_url: "{s11_url}" + collection_season_12_url: "{s12_url}" + collection_season_13_url: "{s13_url}" + collection_season_14_url: "{s14_url}" + collection_season_15_url: "{s15_url}" + collection_season_16_url: "{s16_url}" + collection_season_17_url: "{s17_url}" + collection_season_18_url: "{s18_url}" + collection_season_19_url: "{s19_url}" + collection_season_20_url: "{s20_url}" + collection_season_21_url: "{s21_url}" + collection_season_22_url: "{s22_url}" + collection_season_23_url: "{s23_url}" + collection_season_24_url: "{s24_url}" + collection_season_25_url: "{s25_url}" + collection_season_26_url: "{s26_url}" + collection_season_27_url: "{s27_url}" + collection_season_28_url: "{s28_url}" + collection_season_29_url: "{s29_url}" + collection_season_30_url: "{s30_url}" + collection_season_31_url: "{s31_url}" + collection_season_32_url: "{s32_url}" + collection_season_33_url: "{s33_url}" + collection_season_34_url: "{s34_url}" + collection_season_35_url: "{s35_url}" + collection_season_36_url: "{s36_url}" + collection_season_37_url: "{s37_url}" + collection_season_38_url: "{s38_url}" + collection_season_39_url: "{s39_url}" + collection_season_40_url: "{s40_url}" + + s01_name: "" + s02_name: "" + s03_name: "" + s04_name: "" + s05_name: "" + s06_name: "" + s07_name: "" + s08_name: "" + s09_name: "" + s10_name: "" + s11_name: "" + s12_name: "" + s13_name: "" + s14_name: "" + s15_name: "" + s16_name: "" + s17_name: "" + s18_name: "" + s19_name: "" + s20_name: "" + s21_name: "" + s22_name: "" + s23_name: "" + s24_name: "" + s25_name: "" + s26_name: "" + s27_name: "" + s28_name: "" + s29_name: "" + s30_name: "" + s31_name: "" + s32_name: "" + s33_name: "" + s34_name: "" + s35_name: "" + s36_name: "" + s37_name: "" + s38_name: "" + s39_name: "" + s40_name: "" + + s01_url: "" + s02_url: "" + s03_url: "" + s04_url: "" + s05_url: "" + s06_url: "" + s07_url: "" + s08_url: "" + s09_url: "" + s10_url: "" + s11_url: "" + s12_url: "" + s13_url: "" + s14_url: "" + s15_url: "" + s16_url: "" + s17_url: "" + s18_url: "" + s19_url: "" + s20_url: "" + s21_url: "" + s22_url: "" + s23_url: "" + s24_url: "" + s25_url: "" + s26_url: "" + s27_url: "" + s28_url: "" + s29_url: "" + s30_url: "" + s31_url: "" + s32_url: "" + s33_url: "" + s34_url: "" + s35_url: "" + s36_url: "" + s37_url: "" + s38_url: "" + s39_url: "" + s40_url: "" + +#################################################################################################### +# DEPRECATED SEASON PRESETS + + collection_season_1: {} + collection_season_2: {} + collection_season_3: {} + collection_season_4: {} + collection_season_5: {} + collection_season_6: {} + collection_season_7: {} + collection_season_8: {} + collection_season_9: {} + collection_season_10: {} + collection_season_11: {} + collection_season_12: {} + collection_season_13: {} + collection_season_14: {} + collection_season_15: {} + collection_season_16: {} + collection_season_17: {} + collection_season_18: {} + collection_season_19: {} + collection_season_20: {} + collection_season_21: {} + collection_season_22: {} + collection_season_23: {} + collection_season_24: {} + collection_season_25: {} + collection_season_26: {} + collection_season_27: {} + collection_season_28: {} + collection_season_29: {} + collection_season_30: {} + collection_season_31: {} + collection_season_32: {} + collection_season_33: {} + collection_season_34: {} + collection_season_35: {} + collection_season_36: {} + collection_season_37: {} + collection_season_38: {} + collection_season_39: {} + collection_season_40: {} diff --git a/tests/resources/expected_downloads_summaries/youtube/test_channel_full.json b/tests/resources/expected_downloads_summaries/youtube/test_channel_full.json index 15d3fd4d..772a9cfc 100644 --- a/tests/resources/expected_downloads_summaries/youtube/test_channel_full.json +++ b/tests/resources/expected_downloads_summaries/youtube/test_channel_full.json @@ -26,7 +26,7 @@ "Project ⧸ Zombie/Season 2011/s2011.e052901 - Project Zombie |Official Trailer| (IP: mc.projectzombie.beastnode.net).nfo": "cb0184784a8eda842cfaf851f6e6af7d", "Project ⧸ Zombie/Season 2011/s2011.e063001 - Project Zombie |Fin|-thumb.jpg": "00ed383591779ffe98291de60f198fe9", "Project ⧸ Zombie/Season 2011/s2011.e063001 - Project Zombie |Fin|.info.json": "INFO_JSON", - "Project ⧸ Zombie/Season 2011/s2011.e063001 - Project Zombie |Fin|.mp4": "5f9f8841aed3f5d95efbd1839045741e", + "Project ⧸ Zombie/Season 2011/s2011.e063001 - Project Zombie |Fin|.mp4": "b20822d0f7217c9f0a0ccf83e33f8187", "Project ⧸ Zombie/Season 2011/s2011.e063001 - Project Zombie |Fin|.nfo": "54ea4a48116aa98480a79495036c25e9", "Project ⧸ Zombie/Season 2011/s2011.e112101 - Skyrim 'Ultra HD w⧸Mods' [PC]-thumb.jpg": "1718599d5189c65f7d8cf6acfa5ea851", "Project ⧸ Zombie/Season 2011/s2011.e112101 - Skyrim 'Ultra HD w⧸Mods' [PC].info.json": "INFO_JSON", diff --git a/tests/unit/config/test_subscription.py b/tests/unit/config/test_subscription.py index bd7122c5..1415926e 100644 --- a/tests/unit/config/test_subscription.py +++ b/tests/unit/config/test_subscription.py @@ -416,7 +416,7 @@ def test_tv_show_subscriptions(config_file: ConfigFile, tv_show_subscriptions_pa config=config_file, subscription_path=tv_show_subscriptions_path ) - assert len(subs) == 7 + assert len(subs) == 8 assert subs[3].name == "Jake Trains" jake_train_overrides = subs[3].overrides.script