From c7823a40ad3ba1545e69717e97d54ef2ec32bc50 Mon Sep 17 00:00:00 2001 From: Qualis Svagtlys <45446348+Svagtlys@users.noreply.github.com> Date: Thu, 18 Jan 2024 17:01:29 -0600 Subject: [PATCH] [DEV] Prebuilt Presets Revamp (#864) Modifies some of the prebuilt preset logic in the backend --- ...on.yaml => download_deletion_options.yaml} | 51 +++--- .../helpers/media_quality.yaml | 40 +++++ .../music/albums_from_chapters.yaml | 21 +++ .../music/albums_from_playlists.yaml | 36 ++++ .../prebuilt_presets/music/music.yaml | 163 ------------------ .../music/other_websites.yaml | 38 ++++ .../prebuilt_presets/music/singles.yaml | 72 ++++++++ .../music_videos/music_video_base.yaml | 35 ++++ .../music_videos/music_videos.yaml | 70 ++------ .../prebuilt_presets/tv_show/episode.yaml | 99 +---------- .../prebuilt_presets/tv_show/tv_show.yaml | 37 +++- .../tv_show/tv_show_by_date.yaml | 44 ++++- .../tv_show/tv_show_collection.yaml | 26 ++- 13 files changed, 391 insertions(+), 341 deletions(-) rename src/ytdl_sub/prebuilt_presets/helpers/{common.yaml => download_deletion_options.yaml} (70%) create mode 100644 src/ytdl_sub/prebuilt_presets/helpers/media_quality.yaml create mode 100644 src/ytdl_sub/prebuilt_presets/music/albums_from_chapters.yaml create mode 100644 src/ytdl_sub/prebuilt_presets/music/albums_from_playlists.yaml delete mode 100644 src/ytdl_sub/prebuilt_presets/music/music.yaml create mode 100644 src/ytdl_sub/prebuilt_presets/music/other_websites.yaml create mode 100644 src/ytdl_sub/prebuilt_presets/music/singles.yaml create mode 100644 src/ytdl_sub/prebuilt_presets/music_videos/music_video_base.yaml diff --git a/src/ytdl_sub/prebuilt_presets/helpers/common.yaml b/src/ytdl_sub/prebuilt_presets/helpers/download_deletion_options.yaml similarity index 70% rename from src/ytdl_sub/prebuilt_presets/helpers/common.yaml rename to src/ytdl_sub/prebuilt_presets/helpers/download_deletion_options.yaml index 9278d012..cc964d4d 100644 --- a/src/ytdl_sub/prebuilt_presets/helpers/common.yaml +++ b/src/ytdl_sub/prebuilt_presets/helpers/download_deletion_options.yaml @@ -1,16 +1,29 @@ - - presets: - best_video_quality: - format: "bestvideo+bestaudio/best" - ytdl_options: - merge_output_format: "mp4" + "Only Recent": + preset: + - "Only Recent Archive" + # Only fetch videos after today minus date_range - max_1080p: - format: "(bv*[height<=1080]+bestaudio/best[height<=1080])" - ytdl_options: - merge_output_format: "mp4" + # Only keep files uploaded after date_range + output_options: + keep_files_after: "today-{only_recent_date_range}" + keep_max_files: "{only_recent_max_files}" + + overrides: + only_recent_max_files: 0 + + + "Only Recent Archive": + # Only fetch videos after today minus date_range + date_range: + after: "today-{only_recent_date_range}" + + # Set the default date_range to 2 months + overrides: + date_range: "2months" # keep for legacy-reasons + only_recent_date_range: "{date_range}" + chunk_initial_download: ytdl_options: @@ -19,18 +32,6 @@ presets: break_on_existing: False break_on_reject: True - "Only Recent": - # Only fetch videos after today minus date_range - date_range: - after: "today-{only_recent_date_range}" - - # Only keep files uploaded after date_range - output_options: - keep_files_after: "today-{only_recent_date_range}" - keep_max_files: "{only_recent_max_files}" - - # Set the default date_range to 2 months - overrides: - date_range: "2months" # keep for legacy-reasons - only_recent_date_range: "{date_range}" - only_recent_max_files: 0 \ No newline at end of file + "Download in Chunks": + preset: + - chunk_initial_download \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/helpers/media_quality.yaml b/src/ytdl_sub/prebuilt_presets/helpers/media_quality.yaml new file mode 100644 index 00000000..7bb5e53d --- /dev/null +++ b/src/ytdl_sub/prebuilt_presets/helpers/media_quality.yaml @@ -0,0 +1,40 @@ +presets: + + best_video_quality: + format: "bestvideo+bestaudio/best" + ytdl_options: + merge_output_format: "mp4" + + "Best Video Quality": + preset: + - best_video_quality + + + "Max 2160p": + format: "(bv*[height<=2160]+bestaudio/best[height<=2160])" + ytdl_options: + merge_output_format: "mp4" + + "Max 1440p": + format: "(bv*[height<=1440]+bestaudio/best[height<=1440])" + ytdl_options: + merge_output_format: "mp4" + + max_1080p: + format: "(bv*[height<=1080]+bestaudio/best[height<=1080])" + ytdl_options: + merge_output_format: "mp4" + + "Max 1080p": + preset: + - max_1080p + + "Max 720p": + format: "(bv*[height<=720]+bestaudio/best[height<=720])" + ytdl_options: + merge_output_format: "mp4" + + "Max 480p": + format: "(bv*[height<=480]+bestaudio/best[height<=480])" + ytdl_options: + merge_output_format: "mp4" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/music/albums_from_chapters.yaml b/src/ytdl_sub/prebuilt_presets/music/albums_from_chapters.yaml new file mode 100644 index 00000000..0c629516 --- /dev/null +++ b/src/ytdl_sub/prebuilt_presets/music/albums_from_chapters.yaml @@ -0,0 +1,21 @@ +presets: + + # assumes that each chapter in an entry is a song + _albums_from_chapters: + preset: "Single" + + chapters: + embed_chapters: True + split_by_chapters: + when_no_chapters: "pass" + + overrides: + track_title: "{chapter_title}" # Chapter title is the track title + track_album: "{title}" # Video's title is the album title + track_number: "{chapter_index}" + track_number_padded: "{chapter_index_padded}" + track_total: "{chapter_count}" + + "YouTube Full Albums": + preset: + - "_albums_from_chapters" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/music/albums_from_playlists.yaml b/src/ytdl_sub/prebuilt_presets/music/albums_from_playlists.yaml new file mode 100644 index 00000000..ab0955a0 --- /dev/null +++ b/src/ytdl_sub/prebuilt_presets/music/albums_from_playlists.yaml @@ -0,0 +1,36 @@ +presets: + + # assumes that each entry is a song in one album + _albums_from_playlists: + preset: + - "_music_base" + + download: + - url: "{url}" + include_sibling_metadata: True + + overrides: + track_album: "{playlist_title}" + track_number: "{playlist_index}" + track_number_padded: "{playlist_index_padded}" + track_total: "{playlist_count}" + track_year: "{playlist_max_upload_year}" + + "YouTube Releases": + preset: + - "_albums_from_playlists" + + "Bandcamp": + preset: + - "_albums_from_playlists" + regex: + from: + title: + match: + - ".*? - (.*)" # Captures 'Some - Song' from 'Emily Hopkins - Some - Song' + capture_group_names: + - "captured_track_title" + capture_group_defaults: + - "{title}" + overrides: + track_title: "{captured_track_title}" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/music/music.yaml b/src/ytdl_sub/prebuilt_presets/music/music.yaml deleted file mode 100644 index 7c2f23a3..00000000 --- a/src/ytdl_sub/prebuilt_presets/music/music.yaml +++ /dev/null @@ -1,163 +0,0 @@ -presets: - - _music_base: - output_options: - output_directory: "{music_directory}" - file_name: "{track_full_path}" - thumbnail_name: "{album_cover_path}" - maintain_download_archive: True - - ytdl_options: - break_on_existing: True - - format: "ba[ext=webm]/ba" - - audio_extract: - codec: "best" - - music_tags: - artist: "{track_artist}" - albumartist: "{track_album_artist}" - title: "{track_title}" - album: "{track_album}" - track: "{track_number}" - tracktotal: "{track_total}" - year: "{track_year}" - # multi-tags - artists: - - "{track_artist}" - albumartists: - - "{track_album_artist}" - genres: - - "{track_genre}" - - overrides: -# MUST DEFINE: -# music_directory - - # Defaults - track_genre_default: "Unset" - - # Subscription overrides - subscription_indent_1: "{track_genre_default}" - subscription_value: "" - url: "{subscription_value}" - - # Track Overrides - track_title: "{title}" - track_album: "{title}" - track_artist: "{subscription_name}" - track_album_artist: "{track_artist}" - track_number: "1" - track_number_padded: "01" - track_total: "1" - track_year: "{upload_year}" - track_genre: "{subscription_indent_1}" - - # Directory Overrides - artist_dir: "{track_artist_sanitized}" - album_dir: "[{track_year}] {track_album_sanitized}" - track_file_name: "{track_number_padded} - {track_title_sanitized}.{ext}" - track_full_path: "{artist_dir}/{album_dir}/{track_file_name}" - album_cover_path: "{artist_dir}/{album_dir}/folder.{thumbnail_ext}" - - - "Single": - preset: - - "_music_base" - - download: - - url: "{url}" - include_sibling_metadata: False - - - _albums_from_playlists: - preset: - - "_music_base" - - download: - - url: "{url}" - include_sibling_metadata: True - - overrides: - track_album: "{playlist_title}" - track_number: "{playlist_index}" - track_number_padded: "{playlist_index_padded}" - track_total: "{playlist_count}" - track_year: "{playlist_max_upload_year}" - - - _albums_from_chapters: - preset: "Single" - - chapters: - embed_chapters: True - split_by_chapters: - when_no_chapters: "pass" - - overrides: - track_title: "{chapter_title}" # Chapter title is the track title - track_album: "{title}" # Video's title is the album title - track_number: "{chapter_index}" - track_number_padded: "{chapter_index_padded}" - track_total: "{chapter_count}" - - "SoundCloud Discography": - preset: "_music_base" - - # 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 - - url: "{url}/tracks" - include_sibling_metadata: False - variables: - sc_track_album: "{title}" - sc_track_number: "1" - sc_track_number_padded: "01" - sc_track_total: "1" - sc_track_year: "{upload_year}" - # Set the second URL to the artist's albums. If a track belongs to both - # to an album and tracks (in the URL above), it will resolve to this - # URL and include the album metadata we set below. - - url: "{url}/albums" - include_sibling_metadata: True - variables: - sc_track_album: "{playlist_title}" - sc_track_number: "{playlist_index}" - sc_track_number_padded: "{playlist_index_padded}" - sc_track_total: "{playlist_count}" - sc_track_year: "{playlist_max_upload_year}" - - # Override various track properties using playlist variables. - overrides: - track_album: "{sc_track_album}" - track_number: "{sc_track_number}" - track_number_padded: "{sc_track_number_padded}" - track_total: "{sc_track_total}" - track_year: "{sc_track_year}" - - "YouTube Releases": - preset: - - "_albums_from_playlists" - - "YouTube Full Albums": - preset: - - "_albums_from_chapters" - - "Bandcamp": - preset: - - "_albums_from_playlists" - regex: - from: - title: - match: - - ".*? - (.*)" # Captures 'Some - Song' from 'Emily Hopkins - Some - Song' - capture_group_names: - - "captured_track_title" - capture_group_defaults: - - "{title}" - overrides: - track_title: "{captured_track_title}" diff --git a/src/ytdl_sub/prebuilt_presets/music/other_websites.yaml b/src/ytdl_sub/prebuilt_presets/music/other_websites.yaml new file mode 100644 index 00000000..14780bea --- /dev/null +++ b/src/ytdl_sub/prebuilt_presets/music/other_websites.yaml @@ -0,0 +1,38 @@ +presets: + + "SoundCloud Discography": + preset: "_music_base" + + # 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 + - url: "{url}/tracks" + include_sibling_metadata: False + variables: + sc_track_album: "{title}" + sc_track_number: "1" + sc_track_number_padded: "01" + sc_track_total: "1" + sc_track_year: "{upload_year}" + # Set the second URL to the artist's albums. If a track belongs to both + # to an album and tracks (in the URL above), it will resolve to this + # URL and include the album metadata we set below. + - url: "{url}/albums" + include_sibling_metadata: True + variables: + sc_track_album: "{playlist_title}" + sc_track_number: "{playlist_index}" + sc_track_number_padded: "{playlist_index_padded}" + sc_track_total: "{playlist_count}" + sc_track_year: "{playlist_max_upload_year}" + + # Override various track properties using playlist variables. + overrides: + track_album: "{sc_track_album}" + track_number: "{sc_track_number}" + track_number_padded: "{sc_track_number_padded}" + track_total: "{sc_track_total}" + track_year: "{sc_track_year}" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/music/singles.yaml b/src/ytdl_sub/prebuilt_presets/music/singles.yaml new file mode 100644 index 00000000..634fd43f --- /dev/null +++ b/src/ytdl_sub/prebuilt_presets/music/singles.yaml @@ -0,0 +1,72 @@ +presets: + + + _music_base: + output_options: + output_directory: "{music_directory}" + file_name: "{track_full_path}" + thumbnail_name: "{album_cover_path}" + maintain_download_archive: True + + ytdl_options: + break_on_existing: True + + format: "ba[ext=webm]/ba" + + audio_extract: + codec: "best" + + music_tags: + artist: "{track_artist}" + albumartist: "{track_album_artist}" + title: "{track_title}" + album: "{track_album}" + track: "{track_number}" + tracktotal: "{track_total}" + year: "{track_year}" + # multi-tags + artists: + - "{track_artist}" + albumartists: + - "{track_album_artist}" + genres: + - "{track_genre}" + + overrides: +# MUST DEFINE: +# music_directory + + # Defaults + track_genre_default: "Unset" + + # Subscription overrides + subscription_indent_1: "{track_genre_default}" + subscription_value: "" + url: "{subscription_value}" + + # Track Overrides + track_title: "{title}" + track_album: "{title}" + track_artist: "{subscription_name}" + track_album_artist: "{track_artist}" + track_number: "1" + track_number_padded: "01" + track_total: "1" + track_year: "{upload_year}" + track_genre: "{subscription_indent_1}" + + # Directory Overrides + artist_dir: "{track_artist_sanitized}" + album_dir: "[{track_year}] {track_album_sanitized}" + track_file_name: "{track_number_padded} - {track_title_sanitized}.{ext}" + track_full_path: "{artist_dir}/{album_dir}/{track_file_name}" + album_cover_path: "{artist_dir}/{album_dir}/folder.{thumbnail_ext}" + + + "Single": + preset: + - "_music_base" + + download: + - url: "{url}" + include_sibling_metadata: False \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/music_videos/music_video_base.yaml b/src/ytdl_sub/prebuilt_presets/music_videos/music_video_base.yaml new file mode 100644 index 00000000..9f85dd46 --- /dev/null +++ b/src/ytdl_sub/prebuilt_presets/music_videos/music_video_base.yaml @@ -0,0 +1,35 @@ +presets: + _music_video_base: + preset: + - "_multi_url" + + output_options: + output_directory: "{music_video_directory}" + file_name: "{music_video_file_name}.{ext}" + thumbnail_name: "{music_video_file_name}.jpg" + maintain_download_archive: True + + ytdl_options: + break_on_existing: True + + overrides: +# MUST DEFINE: +# music_video_directory + + # Defaults + music_video_genre_default: "ytdl-sub" + music_video_album_default: "Music Videos" + + # Subscription overrides + subscription_indent_1: "{music_video_genre_default}" + + # Music Video Overrides + music_video_title: "{title}" + music_video_album: "{music_video_album_default}" + music_video_artist: "{subscription_name}" + music_video_year: "{upload_year}" + music_video_date: "{upload_date_standardized}" + music_video_genre: "{subscription_indent_1}" + + # Directory Overrides + music_video_file_name: "{music_video_artist_sanitized}/{music_video_title_sanitized}" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/music_videos/music_videos.yaml b/src/ytdl_sub/prebuilt_presets/music_videos/music_videos.yaml index 47c73bb6..dcacd330 100644 --- a/src/ytdl_sub/prebuilt_presets/music_videos/music_videos.yaml +++ b/src/ytdl_sub/prebuilt_presets/music_videos/music_videos.yaml @@ -1,38 +1,24 @@ presets: - _music_video_base: + + "Jellyfin Music Videos": preset: - - "_multi_url" + - "_base" + - "_music_video_base" + - "_music_video_nfo" + - "_music_video_tags" - output_options: - output_directory: "{music_video_directory}" - file_name: "{music_video_file_name}.{ext}" - thumbnail_name: "{music_video_file_name}.jpg" - maintain_download_archive: True + "Kodi Music Videos": + preset: + - "_kodi_base" + - "_music_video_base" + - "_music_video_nfo" + - "_music_video_tags" - ytdl_options: - break_on_existing: True - - overrides: -# MUST DEFINE: -# music_video_directory - - # Defaults - music_video_genre_default: "ytdl-sub" - music_video_album_default: "Music Videos" - - # Subscription overrides - subscription_indent_1: "{music_video_genre_default}" - - # Music Video Overrides - music_video_title: "{title}" - music_video_album: "{music_video_album_default}" - music_video_artist: "{subscription_name}" - music_video_year: "{upload_year}" - music_video_date: "{upload_date_standardized}" - music_video_genre: "{subscription_indent_1}" - - # Directory Overrides - music_video_file_name: "{music_video_artist_sanitized}/{music_video_title_sanitized}" + "Plex Music Videos": + preset: + - "_plex_video_base" + - "_music_video_base" + - "_music_video_tags" _music_video_nfo: nfo_tags: @@ -54,24 +40,4 @@ presets: album: "{music_video_album}" genre: "{music_video_genre}" year: "{music_video_year}" - premiered: "{music_video_date}" - - "Jellyfin Music Videos": - preset: - - "_base" - - "_music_video_base" - - "_music_video_nfo" - - "_music_video_tags" - - "Kodi Music Videos": - preset: - - "_kodi_base" - - "_music_video_base" - - "_music_video_nfo" - - "_music_video_tags" - - "Plex Music Videos": - preset: - - "_plex_video_base" - - "_music_video_base" - - "_music_video_tags" \ No newline at end of file + premiered: "{music_video_date}" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml index bb1c9047..b6bacd27 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml @@ -6,7 +6,7 @@ presets: output_options: output_directory: "{tv_show_directory}/{tv_show_name_sanitized}" file_name: "{episode_file_path}.{ext}" - thumbnail_name: "{episode_file_path}-thumb.jpg" + thumbnail_name: "{thumbnail_file_name}" info_json_name: "{episode_file_path}.{info_json_ext}" maintain_download_archive: True @@ -43,102 +43,7 @@ presets: episode_date_standardized: "{upload_date_standardized}" episode_file_name: "s{season_number_padded}.e{episode_number_padded} - {file_title}" episode_file_path: "{season_directory_name_sanitized}/{episode_file_name_sanitized}" + thumbnail_file_name: "{episode_file_path}-thumb.jpg" - _episode_video_tags: - video_tags: - show: "{tv_show_name}" - genre: "{tv_show_genre}" - episode_id: "{episode_number}" - title: "{episode_title}" - synopsis: "{episode_plot}" - year: "{episode_year}" - date: "{episode_date_standardized}" - contentRating: "{episode_content_rating}" - _episode_nfo_tags: - nfo_tags: - nfo_name: "{episode_file_path}.nfo" - nfo_root: "episodedetails" - tags: - genre: - - "{tv_show_genre}" - season: "{season_number}" - episode: "{episode_number}" - title: "{episode_title}" - plot: "{episode_plot}" - year: "{episode_year}" - aired: "{episode_date_standardized}" - mpaa: "{episode_content_rating}" - output_directory_nfo_tags: - nfo_name: "tvshow.nfo" - nfo_root: "tvshow" - tags: - title: "{tv_show_name}" - genre: - - "{tv_show_genre}" - mpaa: "{tv_show_content_rating}" - -#################################################################################################### - - _season_by_year: - overrides: - season_number: "{upload_year}" - season_number_padded: "{season_number}" - - _season_by_year_month: - overrides: - season_number: "{upload_year}{upload_month_padded}" - season_number_padded: "{season_number}" - -#################################################################################################### - - season_by_year_month__episode_by_day: - preset: - - "_season_by_year_month" - overrides: - episode_number: "{upload_day}{upload_date_index_padded}" - episode_number_padded: "{upload_day_padded}{upload_date_index_padded}" - - season_by_year__episode_by_month_day: - preset: - - "_season_by_year" - overrides: - episode_number: "{upload_month}{upload_day_padded}{upload_date_index_padded}" - episode_number_padded: "{upload_month_padded}{upload_day_padded}{upload_date_index_padded}" - - season_by_year__episode_by_month_day_reversed: - preset: - - "_season_by_year" - overrides: - episode_number: "{upload_day_of_year_reversed}{upload_date_index_reversed_padded}" - episode_number_padded: "{upload_day_of_year_reversed_padded}{upload_date_index_reversed_padded}" - - season_by_year__episode_by_download_index: - preset: - - "_season_by_year" - overrides: - episode_number: "{download_index}" - episode_number_padded: "{download_index_padded6}" - - ############### - - season_by_collection__episode_by_year_month_day: - overrides: - episode_number: "{upload_year_truncated}{upload_month_padded}{upload_day_padded}{upload_date_index_padded}" - episode_number_padded: "{episode_number}" - - season_by_collection__episode_by_year_month_day_reversed: - overrides: - episode_number: "{upload_year_truncated_reversed}{upload_month_reversed_padded}{upload_day_reversed_padded}{upload_date_index_reversed_padded}" - episode_number_padded: "{episode_number}" - - season_by_collection__episode_by_playlist_index: - overrides: - episode_number: "{playlist_index}" - episode_number_padded: "{playlist_index_padded6}" - - season_by_collection__episode_by_playlist_index_reversed: - overrides: - episode_number: "{playlist_index_reversed}" - episode_number_padded: "{playlist_index_reversed_padded6}" diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml index 308162e2..edf64ec5 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml @@ -46,4 +46,39 @@ presets: overrides: collection_season_number_padded: "{ %pad_zero(%int(collection_season_number), 2) }" season_number: "{collection_season_number}" - season_number_padded: "{collection_season_number_padded}" \ No newline at end of file + season_number_padded: "{collection_season_number_padded}" + + _episode_video_tags: + video_tags: + show: "{tv_show_name}" + genre: "{tv_show_genre}" + episode_id: "{episode_number}" + title: "{episode_title}" + synopsis: "{episode_plot}" + year: "{episode_year}" + date: "{episode_date_standardized}" + contentRating: "{episode_content_rating}" + + _episode_nfo_tags: + nfo_tags: + nfo_name: "{episode_file_path}.nfo" + nfo_root: "episodedetails" + tags: + genre: + - "{tv_show_genre}" + season: "{season_number}" + episode: "{episode_number}" + title: "{episode_title}" + plot: "{episode_plot}" + year: "{episode_year}" + aired: "{episode_date_standardized}" + mpaa: "{episode_content_rating}" + + output_directory_nfo_tags: + nfo_name: "tvshow.nfo" + nfo_root: "tvshow" + tags: + title: "{tv_show_name}" + genre: + - "{tv_show_genre}" + mpaa: "{tv_show_content_rating}" \ No newline at end of file diff --git a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml index 275216fe..30027444 100644 --- a/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml +++ b/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml @@ -29,4 +29,46 @@ presets: "Plex TV Show by Date": preset: - "plex_tv_show_by_date" - - "season_by_year__episode_by_month_day" \ No newline at end of file + - "season_by_year__episode_by_month_day" + +#################################################################################################### + + _season_by_year: + overrides: + season_number: "{upload_year}" + season_number_padded: "{season_number}" + + _season_by_year_month: + overrides: + season_number: "{upload_year}{upload_month_padded}" + season_number_padded: "{season_number}" + +#################################################################################################### + + season_by_year_month__episode_by_day: + preset: + - "_season_by_year_month" + overrides: + episode_number: "{upload_day}{upload_date_index_padded}" + episode_number_padded: "{upload_day_padded}{upload_date_index_padded}" + + season_by_year__episode_by_month_day: + preset: + - "_season_by_year" + overrides: + episode_number: "{upload_month}{upload_day_padded}{upload_date_index_padded}" + episode_number_padded: "{upload_month_padded}{upload_day_padded}{upload_date_index_padded}" + + season_by_year__episode_by_month_day_reversed: + preset: + - "_season_by_year" + overrides: + episode_number: "{upload_day_of_year_reversed}{upload_date_index_reversed_padded}" + episode_number_padded: "{upload_day_of_year_reversed_padded}{upload_date_index_reversed_padded}" + + season_by_year__episode_by_download_index: + preset: + - "_season_by_year" + overrides: + episode_number: "{download_index}" + episode_number_padded: "{download_index_padded6}" \ No newline at end of file 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 e54e07d2..0999161c 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,6 +1,5 @@ presets: - kodi_tv_show_collection: preset: - "_kodi_tv_show" @@ -708,4 +707,27 @@ presets: namedseason: - tag: "{collection_season_40_name}" attributes: - number: "40" \ No newline at end of file + number: "40" + + + ############### + + season_by_collection__episode_by_year_month_day: + overrides: + episode_number: "{upload_year_truncated}{upload_month_padded}{upload_day_padded}{upload_date_index_padded}" + episode_number_padded: "{episode_number}" + + season_by_collection__episode_by_year_month_day_reversed: + overrides: + episode_number: "{upload_year_truncated_reversed}{upload_month_reversed_padded}{upload_day_reversed_padded}{upload_date_index_reversed_padded}" + episode_number_padded: "{episode_number}" + + season_by_collection__episode_by_playlist_index: + overrides: + episode_number: "{playlist_index}" + episode_number_padded: "{playlist_index_padded6}" + + 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