Closed nothing2obvi closed 2 weeks ago
if I set ytdl-sub to download a playlist of 30 videos, it does not download all 30 videos
Let's try to narrow this down. What is the particular playlist this happens with? Do you have logs by chance? If not, enable persisted logs (https://ytdl-sub.readthedocs.io/en/latest/config_reference/config_yaml.html#persist-logs) and upload them here.
The latter part makes sense that it'd download all vids.
One theory is that the playlist ordering is getting changed, and ytdl-sub is breaking on existing. Could try disabling that for playlists
Thanks for your response. The next time I add a playlist, if it doesn't download all the videos on the first run, I'll share the logs here.
Could you please elaborate on the theory of playlist order changing and break-on-existing occurring? Also how do I disable it? I'm familiar with it in yt-dlp but don't know how to implement that in ytdl-sub; couldn't find it when I searched the docs.
@nothing2obvi Apologies for the very late response. break_on_existing
will stop all additional scraping if it reaches a vid it has seen before in the download archive. So for example, let's say you download these:
vid3
vid2
vid1
The author then uploads vid4, but changes the ordering like so:
vid3
vid4
vid2
vid1
yt-dlp/ytdl-sub will break immediately and not download vid4 since it's breaking on vid3
Hello,
I have been having the same issue, but with unlisted playlists I have freshly created myself. Deleting the archive file solves the problem, but the scraper tries to download everything again and I want to automate this and forget about it.
I have disabled break_on_existing in the conf file I specify in the command, but the logs seem to act as if it is still enabled.
Here is the conf file:
# This config uses prebuilt presets included with ytdl-sub to download and format
# channels from YouTube or other sites supported by yt-dlp into a TV show for
# your favorite player. The directory format will look something like
#
# /tv_shows
# /Season 2021
# s2021.e0317 - Pattys Day Video-thumb.jpg
# s2021.e0317 - Pattys Day Video.mp4
# s2021.e0317 - Pattys Day Video.nfo
# /Season 2022
# s2022.e1225 - Merry Christmas-thumb.jpg
# s2022.e1225 - Merry Christmas.mp4
# s2022.e1225 - Merry Christmas.nfo
# poster.jpg
# fanart.jpg
# tvshow.nfo
#
# The idea is to use dates as numerics to represent season and episode numbers.
configuration:
persist_logs:
logs_directory: '/mnt/streamy/ytdl-sub/logs'
working_directory: '/mnt/streamy/ytdl-sub/'
presets:
# Your main TV show preset - all your tv show subscriptions will use this.
tv_show:
preset:
# Choose one of the following player types:
# - "kodi_tv_show_by_date"
# - "jellyfin_tv_show_by_date"
# - "plex_tv_show_by_date"
- "jellyfin_tv_show_by_date" # replace with desired player type
# Choose one of the following season/episode formats:
# - "season_by_year__episode_by_month_day"
# - "season_by_year_month__episode_by_day"
# - "season_by_year__episode_by_month_day_reversed"
# - "season_by_year__episode_by_download_index"
- "season_by_year__episode_by_month_day" # replace with desired season/episode format
# Include any of the presets listed below in your 'main preset' if you want
# it applied to every TV show. Or, use them on the individual subscriptions.
# - "only_recent_videos"
- "add_subtitles"
# - "sponsorblock"
- "include_info_json"
# To download age-restricted videos, you will need to uncomment and set your cookie
# file here as a ytdl parameter. For more info, see
# https://ytdl-sub.readthedocs.io/en/latest/faq.html#download-age-restricted-youtube-videos
#
# ytdl_options:
# cookiefile: "/config/cookie_file.txt" # replace with actual cookie file path
overrides:
tv_show_directory: "/mnt/streamy/videos/Subs/" # replace with path to tv show directory
# Fields in the prebuilt preset that can be changed:
#
episode_title: "{title} - {upload_date_standardized}"
# episode_plot: "{webpage_url}" # source variable for the video description is {description}
####################################################################################################
# Preset to only download and keep recent videos
only_recent_videos:
# Only download videos within the download_range
#date_range:
# after: "today-{download_range}"
# Stops fetching metadata if the video is out of range (saves time + bandwidth)
ytdl_options:
break_on_reject: True
break_on_existing: False
cookiefile: "/mnt/streamy/ytdl-sub/cookies.txt"
# Deletes any videos older than download_range. WARNING: do not use
# "season_by_year__episode_by_download_index" if you plan to delete older videos
#output_options:
# keep_files_after: "today-{download_range}"
# Set the duration of download_range, defaults to 2 months
# overrides:
# download_range: "2months"
####################################################################################################
# Preset to download subtitles (either by file or embedded)
add_subtitles:
subtitles:
# Embed subtitles into the video
embed_subtitles: True
# And/or download them as a file. Uncomment to download as file:
# subtitles_name: "{episode_file_path}.{lang}.{subtitles_ext}"
# subtitles_type: "srt"
languages: "en" # supports list of multiple languages
allow_auto_generated_subtitles: True # allow auto subtitles
####################################################################################################
# Preset to cut sponsor segments from videos
sponsorblock:
# If you download using cron, it is wise to add a delay before downloading ad-filled content to
# give folks time to submit sponsor segments. Uncomment to wait 2 days before download a video.
# date_range:
# before: "today-2days"
chapters:
# Remove all of these sponsorblock categories
sponsorblock_categories:
- "intro"
- "outro"
- "selfpromo"
- "preview"
- "interaction"
- "sponsor"
- "music_offtopic"
remove_sponsorblock_categories: "all"
force_key_frames: False
####################################################################################################
# Preset for the hoarders who want to also save the info.json file
include_info_json:
output_options:
info_json_name: "{episode_file_path}.{info_json_ext}"
And here is the log:
[ytdl-sub] Validating subscriptions...
[ytdl-sub] Beginning subscription download for subs
[ytdl-sub] Subscription full yaml:
presets:
subs:
chapters:
embed_chapters: true
download:
- download_reverse: false
url: '{%bilateral_url(url) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url2) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url3) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url4) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url5) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url6) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url7) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url8) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url9) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url10) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url11) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url12) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url13) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url14) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url15) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url16) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url17) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url18) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url19) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url20) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url21) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url22) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url23) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url24) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url25) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url26) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url27) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url28) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url29) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url30) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url31) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url32) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url33) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url34) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url35) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url36) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url37) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url38) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url39) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url40) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url41) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url42) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url43) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url44) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url45) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url46) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url47) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url48) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url49) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url50) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url51) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url52) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url53) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url54) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url55) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url56) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url57) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url58) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url59) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url60) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url61) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url62) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url63) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url64) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url65) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url66) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url67) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url68) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url69) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url70) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url71) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url72) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url73) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url74) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url75) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url76) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url77) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url78) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url79) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url80) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url81) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url82) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url83) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url84) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url85) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url86) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url87) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url88) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url89) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url90) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url91) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url92) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url93) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url94) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url95) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url96) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url97) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url98) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url99) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{%bilateral_url(url100) }'
ytdl_options:
playlist_items: -1:0:-1
- playlist_thumbnails:
- name: '{avatar_uncropped_thumbnail_file_name}'
uid: avatar_uncropped
- name: '{banner_uncropped_thumbnail_file_name}'
uid: banner_uncropped
source_thumbnails:
- name: '{avatar_uncropped_thumbnail_file_name}'
uid: avatar_uncropped
- name: '{banner_uncropped_thumbnail_file_name}'
uid: banner_uncropped
url: '{url}'
- url: '{url2}'
- url: '{url3}'
- url: '{url4}'
- url: '{url5}'
- url: '{url6}'
- url: '{url7}'
- url: '{url8}'
- url: '{url9}'
- url: '{url10}'
- url: '{url11}'
- url: '{url12}'
- url: '{url13}'
- url: '{url14}'
- url: '{url15}'
- url: '{url16}'
- url: '{url17}'
- url: '{url18}'
- url: '{url19}'
- url: '{url20}'
- url: '{url21}'
- url: '{url22}'
- url: '{url23}'
- url: '{url24}'
- url: '{url25}'
- url: '{url26}'
- url: '{url27}'
- url: '{url28}'
- url: '{url29}'
- url: '{url30}'
- url: '{url31}'
- url: '{url32}'
- url: '{url33}'
- url: '{url34}'
- url: '{url35}'
- url: '{url36}'
- url: '{url37}'
- url: '{url38}'
- url: '{url39}'
- url: '{url40}'
- url: '{url41}'
- url: '{url42}'
- url: '{url43}'
- url: '{url44}'
- url: '{url45}'
- url: '{url46}'
- url: '{url47}'
- url: '{url48}'
- url: '{url49}'
- url: '{url50}'
- url: '{url51}'
- url: '{url52}'
- url: '{url53}'
- url: '{url54}'
- url: '{url55}'
- url: '{url56}'
- url: '{url57}'
- url: '{url58}'
- url: '{url59}'
- url: '{url60}'
- url: '{url61}'
- url: '{url62}'
- url: '{url63}'
- url: '{url64}'
- url: '{url65}'
- url: '{url66}'
- url: '{url67}'
- url: '{url68}'
- url: '{url69}'
- url: '{url70}'
- url: '{url71}'
- url: '{url72}'
- url: '{url73}'
- url: '{url74}'
- url: '{url75}'
- url: '{url76}'
- url: '{url77}'
- url: '{url78}'
- url: '{url79}'
- url: '{url80}'
- url: '{url81}'
- url: '{url82}'
- url: '{url83}'
- url: '{url84}'
- url: '{url85}'
- url: '{url86}'
- url: '{url87}'
- url: '{url88}'
- url: '{url89}'
- url: '{url90}'
- url: '{url91}'
- url: '{url92}'
- url: '{url93}'
- url: '{url94}'
- url: '{url95}'
- url: '{url96}'
- url: '{url97}'
- url: '{url98}'
- url: '{url99}'
- url: '{url100}'
nfo_tags:
nfo_name: '{episode_file_path}.nfo'
nfo_root: episodedetails
tags:
aired: '{episode_date_standardized}'
episode: '{episode_number}'
genre:
- '{tv_show_genre}'
mpaa: '{episode_content_rating}'
plot: '{episode_plot}'
season: '{season_number}'
title: '{episode_title}'
year: '{episode_year}'
output_directory_nfo_tags:
nfo_name: tvshow.nfo
nfo_root: tvshow
tags:
genre:
- '{tv_show_genre}'
mpaa: '{tv_show_content_rating}'
title: '{tv_show_name}'
output_options:
file_name: '{episode_file_path}.{ext}'
info_json_name: '{episode_file_path}.{info_json_ext}'
maintain_download_archive: true
output_directory: '{tv_show_directory}/{tv_show_name_sanitized}'
thumbnail_name: '{thumbnail_file_name}'
overrides:
'%bilateral_url': "{ \n %if(\n %and(\n enable_bilateral_scraping,\n\
\ subscription_has_download_archive,\n %is_bilateral_url($0)\n \
\ ),\n $0,\n \"\"\n )\n}"
'%is_bilateral_url': '{ %contains( $0, "youtube.com/playlist" ) }'
avatar_uncropped_thumbnail_file_name: '{tv_show_poster_file_name}'
banner_uncropped_thumbnail_file_name: '{tv_show_fanart_file_name}'
enable_bilateral_scraping: true
episode_content_rating: '{tv_show_content_rating}'
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}'
episode_number: '{upload_month}{upload_day_padded}{upload_date_index_padded}'
episode_number_padded: '{upload_month_padded}{upload_day_padded}{upload_date_index_padded}'
episode_plot: '{webpage_url}
{description}'
episode_title: '{title} - {upload_date_standardized}'
episode_year: '{upload_year}'
file_title: '{title_sanitized}'
file_uid: '{uid_sanitized}'
season_directory_name: Season {season_number_padded}
season_number: '{upload_year}'
season_number_padded: '{season_number}'
season_poster_file_name: season{season_number_padded}-poster.jpg
subscription_array: '{ [] }'
subscription_indent_1: '{tv_show_genre_default}'
subscription_indent_2: '{tv_show_content_rating_default}'
subscription_value: ''
subscription_value_10: ''
subscription_value_100: ''
subscription_value_11: ''
subscription_value_12: ''
subscription_value_13: ''
subscription_value_14: ''
subscription_value_15: ''
subscription_value_16: ''
subscription_value_17: ''
subscription_value_18: ''
subscription_value_19: ''
subscription_value_2: ''
subscription_value_20: ''
subscription_value_21: ''
subscription_value_22: ''
subscription_value_23: ''
subscription_value_24: ''
subscription_value_25: ''
subscription_value_26: ''
subscription_value_27: ''
subscription_value_28: ''
subscription_value_29: ''
subscription_value_3: ''
subscription_value_30: ''
subscription_value_31: ''
subscription_value_32: ''
subscription_value_33: ''
subscription_value_34: ''
subscription_value_35: ''
subscription_value_36: ''
subscription_value_37: ''
subscription_value_38: ''
subscription_value_39: ''
subscription_value_4: ''
subscription_value_40: ''
subscription_value_41: ''
subscription_value_42: ''
subscription_value_43: ''
subscription_value_44: ''
subscription_value_45: ''
subscription_value_46: ''
subscription_value_47: ''
subscription_value_48: ''
subscription_value_49: ''
subscription_value_5: ''
subscription_value_50: ''
subscription_value_51: ''
subscription_value_52: ''
subscription_value_53: ''
subscription_value_54: ''
subscription_value_55: ''
subscription_value_56: ''
subscription_value_57: ''
subscription_value_58: ''
subscription_value_59: ''
subscription_value_6: ''
subscription_value_60: ''
subscription_value_61: ''
subscription_value_62: ''
subscription_value_63: ''
subscription_value_64: ''
subscription_value_65: ''
subscription_value_66: ''
subscription_value_67: ''
subscription_value_68: ''
subscription_value_69: ''
subscription_value_7: ''
subscription_value_70: ''
subscription_value_71: ''
subscription_value_72: ''
subscription_value_73: ''
subscription_value_74: ''
subscription_value_75: ''
subscription_value_76: ''
subscription_value_77: ''
subscription_value_78: ''
subscription_value_79: ''
subscription_value_8: ''
subscription_value_80: ''
subscription_value_81: ''
subscription_value_82: ''
subscription_value_83: ''
subscription_value_84: ''
subscription_value_85: ''
subscription_value_86: ''
subscription_value_87: ''
subscription_value_88: ''
subscription_value_89: ''
subscription_value_9: ''
subscription_value_90: ''
subscription_value_91: ''
subscription_value_92: ''
subscription_value_93: ''
subscription_value_94: ''
subscription_value_95: ''
subscription_value_96: ''
subscription_value_97: ''
subscription_value_98: ''
subscription_value_99: ''
thumbnail_file_name: '{episode_file_path}-thumb.jpg'
tv_show_content_rating: '{subscription_indent_2}'
tv_show_content_rating_default: TV-14
tv_show_directory: /mnt/streamy/videos/Subs/
tv_show_fanart_file_name: fanart.jpg
tv_show_genre: Animation
tv_show_genre_default: ytdl-sub
tv_show_name: Filthy Frank
tv_show_poster_file_name: poster.jpg
url: https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
url10: '{subscription_value_10}'
url100: '{subscription_value_100}'
url11: '{subscription_value_11}'
url12: '{subscription_value_12}'
url13: '{subscription_value_13}'
url14: '{subscription_value_14}'
url15: '{subscription_value_15}'
url16: '{subscription_value_16}'
url17: '{subscription_value_17}'
url18: '{subscription_value_18}'
url19: '{subscription_value_19}'
url2: '{subscription_value_2}'
url20: '{subscription_value_20}'
url21: '{subscription_value_21}'
url22: '{subscription_value_22}'
url23: '{subscription_value_23}'
url24: '{subscription_value_24}'
url25: '{subscription_value_25}'
url26: '{subscription_value_26}'
url27: '{subscription_value_27}'
url28: '{subscription_value_28}'
url29: '{subscription_value_29}'
url3: '{subscription_value_3}'
url30: '{subscription_value_30}'
url31: '{subscription_value_31}'
url32: '{subscription_value_32}'
url33: '{subscription_value_33}'
url34: '{subscription_value_34}'
url35: '{subscription_value_35}'
url36: '{subscription_value_36}'
url37: '{subscription_value_37}'
url38: '{subscription_value_38}'
url39: '{subscription_value_39}'
url4: '{subscription_value_4}'
url40: '{subscription_value_40}'
url41: '{subscription_value_41}'
url42: '{subscription_value_42}'
url43: '{subscription_value_43}'
url44: '{subscription_value_44}'
url45: '{subscription_value_45}'
url46: '{subscription_value_46}'
url47: '{subscription_value_47}'
url48: '{subscription_value_48}'
url49: '{subscription_value_49}'
url5: '{subscription_value_5}'
url50: '{subscription_value_50}'
url51: '{subscription_value_51}'
url52: '{subscription_value_52}'
url53: '{subscription_value_53}'
url54: '{subscription_value_54}'
url55: '{subscription_value_55}'
url56: '{subscription_value_56}'
url57: '{subscription_value_57}'
url58: '{subscription_value_58}'
url59: '{subscription_value_59}'
url6: '{subscription_value_6}'
url60: '{subscription_value_60}'
url61: '{subscription_value_61}'
url62: '{subscription_value_62}'
url63: '{subscription_value_63}'
url64: '{subscription_value_64}'
url65: '{subscription_value_65}'
url66: '{subscription_value_66}'
url67: '{subscription_value_67}'
url68: '{subscription_value_68}'
url69: '{subscription_value_69}'
url7: '{subscription_value_7}'
url70: '{subscription_value_70}'
url71: '{subscription_value_71}'
url72: '{subscription_value_72}'
url73: '{subscription_value_73}'
url74: '{subscription_value_74}'
url75: '{subscription_value_75}'
url76: '{subscription_value_76}'
url77: '{subscription_value_77}'
url78: '{subscription_value_78}'
url79: '{subscription_value_79}'
url8: '{subscription_value_8}'
url80: '{subscription_value_80}'
url81: '{subscription_value_81}'
url82: '{subscription_value_82}'
url83: '{subscription_value_83}'
url84: '{subscription_value_84}'
url85: '{subscription_value_85}'
url86: '{subscription_value_86}'
url87: '{subscription_value_87}'
url88: '{subscription_value_88}'
url89: '{subscription_value_89}'
url9: '{subscription_value_9}'
url90: '{subscription_value_90}'
url91: '{subscription_value_91}'
url92: '{subscription_value_92}'
url93: '{subscription_value_93}'
url94: '{subscription_value_94}'
url95: '{subscription_value_95}'
url96: '{subscription_value_96}'
url97: '{subscription_value_97}'
url98: '{subscription_value_98}'
url99: '{subscription_value_99}'
preset:
- _jellyfin_tv_show
- _tv_show_by_date
- _season_by_year
- jellyfin_tv_show_by_date
- season_by_year__episode_by_month_day
- add_subtitles
- include_info_json
- tv_show
subtitles:
allow_auto_generated_subtitles: true
embed_subtitles: true
languages: en
video_tags:
contentRating: '{episode_content_rating}'
date: '{episode_date_standardized}'
episode_id: '{episode_number}'
genre: '{tv_show_genre}'
show: '{tv_show_name}'
synopsis: '{episode_plot}'
title: '{episode_title}'
year: '{episode_year}'
ytdl_options:
break_on_existing: true
[ytdl-sub:ytdl-options] Setting match-filters:
- !is_live & !is_upcoming & !post_live
[ytdl-sub:ytdl-options] Setting breaking-match-filters: []
[ytdl-sub:yt-dlp-downloader] ytdl_options: {'ignoreerrors': True, 'outtmpl': '/mnt/streamy/ytdl-sub/subs/%(id)S.%(ext)s', 'writethumbnail': False, 'ffmpeg_location': '/usr/bin/ffmpeg', 'download_archive': '/mnt/streamy/ytdl-sub/subs/.ytdl-sub-subs-download-archive.json-ytdl-archive', 'match_filter': yt_dlp.utils.match_filter_func(['!is_live & !is_upcoming & !post_live'], []), 'break_on_existing': True, 'skip_download': True, 'writeinfojson': True, 'extract_flat': 'discard'}
[ytdl-sub:yt-dlp] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Downloading webpage
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Redownloading playlist API JSON with unavailable videos
[ytdl-sub:yt-dlp] [download] Downloading playlist: FF Guest Apperances
[ytdl-sub:yt-dlp] [info] Writing playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6.info.json
[ytdl-sub:yt-dlp] [youtube:tab] Playlist FF Guest Apperances: Downloading 1 items of 5
[ytdl-sub:yt-dlp] [download] CnNT88aISu8: Edward Watermelon-hands has already been recorded in the archive
[ytdl-sub:yt-dlp-downloader] ExistingVideoReached, stopping additional downloads. (Can be disable by setting `ytdl_options.break_on_existing` to False).
[ytdl-sub:yt-dlp-downloader] Attempting to get parent metadata from URL https://www.youtube.com/@danielcavanaugh5905
[ytdl-sub:yt-dlp-downloader] ytdl_options: {'ignoreerrors': True, 'outtmpl': '/mnt/streamy/ytdl-sub/subs/%(id)S.%(ext)s', 'writethumbnail': False, 'ffmpeg_location': '/usr/bin/ffmpeg', 'download_archive': '/mnt/streamy/ytdl-sub/subs/.ytdl-sub-subs-download-archive.json-ytdl-archive', 'match_filter': yt_dlp.utils.match_filter_func(['!is_live & !is_upcoming & !post_live'], []), 'break_on_existing': True, 'skip_download': True, 'writeinfojson': True, 'extract_flat': 'discard', 'playlist_items': '0:0'}
[ytdl-sub:yt-dlp] [youtube:tab] Extracting URL: https://www.youtube.com/@danielcavanaugh5905
[ytdl-sub:yt-dlp] [youtube:tab] @danielcavanaugh5905: Downloading webpage
[ytdl-sub:yt-dlp] [youtube:tab] Downloading all uploads of the channel. To download only the videos in a specific tab, pass the tab's URL
[ytdl-sub:yt-dlp] [download] Downloading playlist: Daniel Cavanaugh
[ytdl-sub:yt-dlp] [info] Writing playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/@danielcavanaugh5905.info.json
[ytdl-sub:yt-dlp] [youtube:tab] Playlist Daniel Cavanaugh: Downloading 0 items
[ytdl-sub:yt-dlp] [info] Writing updated playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/@danielcavanaugh5905.info.json
[ytdl-sub:yt-dlp] [download] Finished downloading playlist: Daniel Cavanaugh
[ytdl-sub:yt-dlp-downloader] Adding parent metadata with ids [@danielcavanaugh5905, @danielcavanaugh5905]
[ytdl-sub:downloader] Beginning downloads for https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
[ytdl-sub:yt-dlp-downloader] ytdl_options: {'playlist_items': <ytdl_sub.validators.string_formatter_validators.OverridesStringFormatterValidator object at 0x722ffa818100>, 'ignoreerrors': True, 'outtmpl': '/mnt/streamy/ytdl-sub/subs/%(id)S.%(ext)s', 'writethumbnail': False, 'ffmpeg_location': '/usr/bin/ffmpeg', 'download_archive': '/mnt/streamy/ytdl-sub/subs/.ytdl-sub-subs-download-archive.json-ytdl-archive', 'match_filter': yt_dlp.utils.match_filter_func(['!is_live & !is_upcoming & !post_live'], []), 'break_on_existing': True, 'skip_download': True, 'writeinfojson': True, 'extract_flat': 'discard'}
[ytdl-sub:yt-dlp] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Downloading webpage
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Redownloading playlist API JSON with unavailable videos
[ytdl-sub:yt-dlp] [download] Downloading playlist: FF Guest Apperances
[ytdl-sub:yt-dlp] ERROR: 'OverridesStringFormatterValidator' object has no attribute 'split'
[ytdl-sub:downloader] Beginning downloads for https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
Thanks for the heads up @GerbertBless , https://github.com/jmbannon/ytdl-sub/pull/1101 should resolve your issue
Hey,
Thanks for the quick turn around, but this didn't seem to address my issue. After upgrading the executable and verifying with -v that my command was using the latest version, with the same config file I used earlier, the log still shows the same behavior of ignoring the option break_on_existing option. I feel pretty sure there are no errors in my config file. Formatting looks right to me and I haven't gotten any errors about it, but maybe there is something I'm missing? In any case, here is the latest log:
[ytdl-sub] Validating subscriptions...
[ytdl-sub] Beginning subscription download for subs
[ytdl-sub] Subscription full yaml:
presets:
subs:
chapters:
embed_chapters: true
download:
- download_reverse: false
url: '{%bilateral_url(url) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url2) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url3) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url4) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url5) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url6) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url7) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url8) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url9) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url10) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url11) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url12) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url13) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url14) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url15) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url16) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url17) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url18) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url19) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url20) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url21) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url22) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url23) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url24) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url25) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url26) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url27) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url28) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url29) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url30) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url31) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url32) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url33) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url34) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url35) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url36) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url37) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url38) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url39) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url40) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url41) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url42) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url43) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url44) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url45) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url46) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url47) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url48) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url49) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url50) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url51) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url52) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url53) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url54) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url55) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url56) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url57) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url58) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url59) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url60) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url61) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url62) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url63) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url64) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url65) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url66) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url67) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url68) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url69) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url70) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url71) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url72) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url73) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url74) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url75) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url76) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url77) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url78) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url79) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url80) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url81) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url82) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url83) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url84) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url85) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url86) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url87) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url88) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url89) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url90) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url91) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url92) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url93) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url94) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url95) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url96) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url97) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url98) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{ %bilateral_url(url99) }'
ytdl_options:
playlist_items: -1:0:-1
- download_reverse: false
url: '{%bilateral_url(url100) }'
ytdl_options:
playlist_items: -1:0:-1
- playlist_thumbnails:
- name: '{avatar_uncropped_thumbnail_file_name}'
uid: avatar_uncropped
- name: '{banner_uncropped_thumbnail_file_name}'
uid: banner_uncropped
source_thumbnails:
- name: '{avatar_uncropped_thumbnail_file_name}'
uid: avatar_uncropped
- name: '{banner_uncropped_thumbnail_file_name}'
uid: banner_uncropped
url: '{url}'
- url: '{url2}'
- url: '{url3}'
- url: '{url4}'
- url: '{url5}'
- url: '{url6}'
- url: '{url7}'
- url: '{url8}'
- url: '{url9}'
- url: '{url10}'
- url: '{url11}'
- url: '{url12}'
- url: '{url13}'
- url: '{url14}'
- url: '{url15}'
- url: '{url16}'
- url: '{url17}'
- url: '{url18}'
- url: '{url19}'
- url: '{url20}'
- url: '{url21}'
- url: '{url22}'
- url: '{url23}'
- url: '{url24}'
- url: '{url25}'
- url: '{url26}'
- url: '{url27}'
- url: '{url28}'
- url: '{url29}'
- url: '{url30}'
- url: '{url31}'
- url: '{url32}'
- url: '{url33}'
- url: '{url34}'
- url: '{url35}'
- url: '{url36}'
- url: '{url37}'
- url: '{url38}'
- url: '{url39}'
- url: '{url40}'
- url: '{url41}'
- url: '{url42}'
- url: '{url43}'
- url: '{url44}'
- url: '{url45}'
- url: '{url46}'
- url: '{url47}'
- url: '{url48}'
- url: '{url49}'
- url: '{url50}'
- url: '{url51}'
- url: '{url52}'
- url: '{url53}'
- url: '{url54}'
- url: '{url55}'
- url: '{url56}'
- url: '{url57}'
- url: '{url58}'
- url: '{url59}'
- url: '{url60}'
- url: '{url61}'
- url: '{url62}'
- url: '{url63}'
- url: '{url64}'
- url: '{url65}'
- url: '{url66}'
- url: '{url67}'
- url: '{url68}'
- url: '{url69}'
- url: '{url70}'
- url: '{url71}'
- url: '{url72}'
- url: '{url73}'
- url: '{url74}'
- url: '{url75}'
- url: '{url76}'
- url: '{url77}'
- url: '{url78}'
- url: '{url79}'
- url: '{url80}'
- url: '{url81}'
- url: '{url82}'
- url: '{url83}'
- url: '{url84}'
- url: '{url85}'
- url: '{url86}'
- url: '{url87}'
- url: '{url88}'
- url: '{url89}'
- url: '{url90}'
- url: '{url91}'
- url: '{url92}'
- url: '{url93}'
- url: '{url94}'
- url: '{url95}'
- url: '{url96}'
- url: '{url97}'
- url: '{url98}'
- url: '{url99}'
- url: '{url100}'
nfo_tags:
nfo_name: '{episode_file_path}.nfo'
nfo_root: episodedetails
tags:
aired: '{episode_date_standardized}'
episode: '{episode_number}'
genre:
- '{tv_show_genre}'
mpaa: '{episode_content_rating}'
plot: '{episode_plot}'
season: '{season_number}'
title: '{episode_title}'
year: '{episode_year}'
output_directory_nfo_tags:
nfo_name: tvshow.nfo
nfo_root: tvshow
tags:
genre:
- '{tv_show_genre}'
mpaa: '{tv_show_content_rating}'
title: '{tv_show_name}'
output_options:
file_name: '{episode_file_path}.{ext}'
info_json_name: '{episode_file_path}.{info_json_ext}'
maintain_download_archive: true
output_directory: '{tv_show_directory}/{tv_show_name_sanitized}'
thumbnail_name: '{thumbnail_file_name}'
overrides:
'%bilateral_url': "{ \n %if(\n %and(\n enable_bilateral_scraping,\n\
\ subscription_has_download_archive,\n %is_bilateral_url($0)\n \
\ ),\n $0,\n \"\"\n )\n}"
'%is_bilateral_url': '{ %contains( $0, "youtube.com/playlist" ) }'
avatar_uncropped_thumbnail_file_name: '{tv_show_poster_file_name}'
banner_uncropped_thumbnail_file_name: '{tv_show_fanart_file_name}'
enable_bilateral_scraping: true
episode_content_rating: '{tv_show_content_rating}'
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}'
episode_number: '{upload_month}{upload_day_padded}{upload_date_index_padded}'
episode_number_padded: '{upload_month_padded}{upload_day_padded}{upload_date_index_padded}'
episode_plot: '{webpage_url}
{description}'
episode_title: '{title} - {upload_date_standardized}'
episode_year: '{upload_year}'
file_title: '{title_sanitized}'
file_uid: '{uid_sanitized}'
season_directory_name: Season {season_number_padded}
season_number: '{upload_year}'
season_number_padded: '{season_number}'
season_poster_file_name: season{season_number_padded}-poster.jpg
subscription_array: '{ [] }'
subscription_indent_1: '{tv_show_genre_default}'
subscription_indent_2: '{tv_show_content_rating_default}'
subscription_value: ''
subscription_value_10: ''
subscription_value_100: ''
subscription_value_11: ''
subscription_value_12: ''
subscription_value_13: ''
subscription_value_14: ''
subscription_value_15: ''
subscription_value_16: ''
subscription_value_17: ''
subscription_value_18: ''
subscription_value_19: ''
subscription_value_2: ''
subscription_value_20: ''
subscription_value_21: ''
subscription_value_22: ''
subscription_value_23: ''
subscription_value_24: ''
subscription_value_25: ''
subscription_value_26: ''
subscription_value_27: ''
subscription_value_28: ''
subscription_value_29: ''
subscription_value_3: ''
subscription_value_30: ''
subscription_value_31: ''
subscription_value_32: ''
subscription_value_33: ''
subscription_value_34: ''
subscription_value_35: ''
subscription_value_36: ''
subscription_value_37: ''
subscription_value_38: ''
subscription_value_39: ''
subscription_value_4: ''
subscription_value_40: ''
subscription_value_41: ''
subscription_value_42: ''
subscription_value_43: ''
subscription_value_44: ''
subscription_value_45: ''
subscription_value_46: ''
subscription_value_47: ''
subscription_value_48: ''
subscription_value_49: ''
subscription_value_5: ''
subscription_value_50: ''
subscription_value_51: ''
subscription_value_52: ''
subscription_value_53: ''
subscription_value_54: ''
subscription_value_55: ''
subscription_value_56: ''
subscription_value_57: ''
subscription_value_58: ''
subscription_value_59: ''
subscription_value_6: ''
subscription_value_60: ''
subscription_value_61: ''
subscription_value_62: ''
subscription_value_63: ''
subscription_value_64: ''
subscription_value_65: ''
subscription_value_66: ''
subscription_value_67: ''
subscription_value_68: ''
subscription_value_69: ''
subscription_value_7: ''
subscription_value_70: ''
subscription_value_71: ''
subscription_value_72: ''
subscription_value_73: ''
subscription_value_74: ''
subscription_value_75: ''
subscription_value_76: ''
subscription_value_77: ''
subscription_value_78: ''
subscription_value_79: ''
subscription_value_8: ''
subscription_value_80: ''
subscription_value_81: ''
subscription_value_82: ''
subscription_value_83: ''
subscription_value_84: ''
subscription_value_85: ''
subscription_value_86: ''
subscription_value_87: ''
subscription_value_88: ''
subscription_value_89: ''
subscription_value_9: ''
subscription_value_90: ''
subscription_value_91: ''
subscription_value_92: ''
subscription_value_93: ''
subscription_value_94: ''
subscription_value_95: ''
subscription_value_96: ''
subscription_value_97: ''
subscription_value_98: ''
subscription_value_99: ''
thumbnail_file_name: '{episode_file_path}-thumb.jpg'
tv_show_content_rating: '{subscription_indent_2}'
tv_show_content_rating_default: TV-14
tv_show_directory: /mnt/streamy/videos/Subs/
tv_show_fanart_file_name: fanart.jpg
tv_show_genre: Animation
tv_show_genre_default: ytdl-sub
tv_show_name: Filthy Frank
tv_show_poster_file_name: poster.jpg
url: https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
url10: '{subscription_value_10}'
url100: '{subscription_value_100}'
url11: '{subscription_value_11}'
url12: '{subscription_value_12}'
url13: '{subscription_value_13}'
url14: '{subscription_value_14}'
url15: '{subscription_value_15}'
url16: '{subscription_value_16}'
url17: '{subscription_value_17}'
url18: '{subscription_value_18}'
url19: '{subscription_value_19}'
url2: '{subscription_value_2}'
url20: '{subscription_value_20}'
url21: '{subscription_value_21}'
url22: '{subscription_value_22}'
url23: '{subscription_value_23}'
url24: '{subscription_value_24}'
url25: '{subscription_value_25}'
url26: '{subscription_value_26}'
url27: '{subscription_value_27}'
url28: '{subscription_value_28}'
url29: '{subscription_value_29}'
url3: '{subscription_value_3}'
url30: '{subscription_value_30}'
url31: '{subscription_value_31}'
url32: '{subscription_value_32}'
url33: '{subscription_value_33}'
url34: '{subscription_value_34}'
url35: '{subscription_value_35}'
url36: '{subscription_value_36}'
url37: '{subscription_value_37}'
url38: '{subscription_value_38}'
url39: '{subscription_value_39}'
url4: '{subscription_value_4}'
url40: '{subscription_value_40}'
url41: '{subscription_value_41}'
url42: '{subscription_value_42}'
url43: '{subscription_value_43}'
url44: '{subscription_value_44}'
url45: '{subscription_value_45}'
url46: '{subscription_value_46}'
url47: '{subscription_value_47}'
url48: '{subscription_value_48}'
url49: '{subscription_value_49}'
url5: '{subscription_value_5}'
url50: '{subscription_value_50}'
url51: '{subscription_value_51}'
url52: '{subscription_value_52}'
url53: '{subscription_value_53}'
url54: '{subscription_value_54}'
url55: '{subscription_value_55}'
url56: '{subscription_value_56}'
url57: '{subscription_value_57}'
url58: '{subscription_value_58}'
url59: '{subscription_value_59}'
url6: '{subscription_value_6}'
url60: '{subscription_value_60}'
url61: '{subscription_value_61}'
url62: '{subscription_value_62}'
url63: '{subscription_value_63}'
url64: '{subscription_value_64}'
url65: '{subscription_value_65}'
url66: '{subscription_value_66}'
url67: '{subscription_value_67}'
url68: '{subscription_value_68}'
url69: '{subscription_value_69}'
url7: '{subscription_value_7}'
url70: '{subscription_value_70}'
url71: '{subscription_value_71}'
url72: '{subscription_value_72}'
url73: '{subscription_value_73}'
url74: '{subscription_value_74}'
url75: '{subscription_value_75}'
url76: '{subscription_value_76}'
url77: '{subscription_value_77}'
url78: '{subscription_value_78}'
url79: '{subscription_value_79}'
url8: '{subscription_value_8}'
url80: '{subscription_value_80}'
url81: '{subscription_value_81}'
url82: '{subscription_value_82}'
url83: '{subscription_value_83}'
url84: '{subscription_value_84}'
url85: '{subscription_value_85}'
url86: '{subscription_value_86}'
url87: '{subscription_value_87}'
url88: '{subscription_value_88}'
url89: '{subscription_value_89}'
url9: '{subscription_value_9}'
url90: '{subscription_value_90}'
url91: '{subscription_value_91}'
url92: '{subscription_value_92}'
url93: '{subscription_value_93}'
url94: '{subscription_value_94}'
url95: '{subscription_value_95}'
url96: '{subscription_value_96}'
url97: '{subscription_value_97}'
url98: '{subscription_value_98}'
url99: '{subscription_value_99}'
preset:
- _jellyfin_tv_show
- _tv_show_by_date
- _season_by_year
- jellyfin_tv_show_by_date
- season_by_year__episode_by_month_day
- add_subtitles
- include_info_json
- tv_show
subtitles:
allow_auto_generated_subtitles: true
embed_subtitles: true
languages: en
video_tags:
contentRating: '{episode_content_rating}'
date: '{episode_date_standardized}'
episode_id: '{episode_number}'
genre: '{tv_show_genre}'
show: '{tv_show_name}'
synopsis: '{episode_plot}'
title: '{episode_title}'
year: '{episode_year}'
ytdl_options:
break_on_existing: true
[ytdl-sub:ytdl-options] Setting match-filters:
- !is_live & !is_upcoming & !post_live
[ytdl-sub:ytdl-options] Setting breaking-match-filters: []
[ytdl-sub:yt-dlp-downloader] ytdl_options: {'ignoreerrors': True, 'outtmpl': '/mnt/streamy/ytdl-sub/subs/%(id)S.%(ext)s', 'writethumbnail': False, 'ffmpeg_location': '/usr/bin/ffmpeg', 'download_archive': '/mnt/streamy/ytdl-sub/subs/.ytdl-sub-subs-download-archive.json-ytdl-archive', 'match_filter': yt_dlp.utils.match_filter_func(['!is_live & !is_upcoming & !post_live'], []), 'break_on_existing': True, 'skip_download': True, 'writeinfojson': True, 'extract_flat': 'discard'}
[ytdl-sub:yt-dlp] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Downloading webpage
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Redownloading playlist API JSON with unavailable videos
[ytdl-sub:yt-dlp] [download] Downloading playlist: FF Guest Apperances
[ytdl-sub:yt-dlp] [info] Writing playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6.info.json
[ytdl-sub:yt-dlp] [youtube:tab] Playlist FF Guest Apperances: Downloading 1 items of 5
[ytdl-sub:yt-dlp] [download] CnNT88aISu8: Edward Watermelon-hands has already been recorded in the archive
[ytdl-sub:yt-dlp-downloader] ExistingVideoReached, stopping additional downloads. (Can be disable by setting `ytdl_options.break_on_existing` to False).
[ytdl-sub:yt-dlp-downloader] Attempting to get parent metadata from URL https://www.youtube.com/@danielcavanaugh5905
[ytdl-sub:yt-dlp-downloader] ytdl_options: {'ignoreerrors': True, 'outtmpl': '/mnt/streamy/ytdl-sub/subs/%(id)S.%(ext)s', 'writethumbnail': False, 'ffmpeg_location': '/usr/bin/ffmpeg', 'download_archive': '/mnt/streamy/ytdl-sub/subs/.ytdl-sub-subs-download-archive.json-ytdl-archive', 'match_filter': yt_dlp.utils.match_filter_func(['!is_live & !is_upcoming & !post_live'], []), 'break_on_existing': True, 'skip_download': True, 'writeinfojson': True, 'extract_flat': 'discard', 'playlist_items': '0:0'}
[ytdl-sub:yt-dlp] [youtube:tab] Extracting URL: https://www.youtube.com/@danielcavanaugh5905
[ytdl-sub:yt-dlp] [youtube:tab] @danielcavanaugh5905: Downloading webpage
[ytdl-sub:yt-dlp] [youtube:tab] Downloading all uploads of the channel. To download only the videos in a specific tab, pass the tab's URL
[ytdl-sub:yt-dlp] [download] Downloading playlist: Daniel Cavanaugh
[ytdl-sub:yt-dlp] [info] Writing playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/@danielcavanaugh5905.info.json
[ytdl-sub:yt-dlp] [youtube:tab] Playlist Daniel Cavanaugh: Downloading 0 items
[ytdl-sub:yt-dlp] [info] Writing updated playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/@danielcavanaugh5905.info.json
[ytdl-sub:yt-dlp] [download] Finished downloading playlist: Daniel Cavanaugh
[ytdl-sub:yt-dlp-downloader] Adding parent metadata with ids [@danielcavanaugh5905, @danielcavanaugh5905]
[ytdl-sub:downloader] Beginning downloads for https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
[ytdl-sub:yt-dlp-downloader] ytdl_options: {'playlist_items': '-1:0:-1', 'ignoreerrors': True, 'outtmpl': '/mnt/streamy/ytdl-sub/subs/%(id)S.%(ext)s', 'writethumbnail': False, 'ffmpeg_location': '/usr/bin/ffmpeg', 'download_archive': '/mnt/streamy/ytdl-sub/subs/.ytdl-sub-subs-download-archive.json-ytdl-archive', 'match_filter': yt_dlp.utils.match_filter_func(['!is_live & !is_upcoming & !post_live'], []), 'break_on_existing': True, 'skip_download': True, 'writeinfojson': True, 'extract_flat': 'discard'}
[ytdl-sub:yt-dlp] [youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Downloading webpage
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6: Redownloading playlist API JSON with unavailable videos
[ytdl-sub:yt-dlp] [download] Downloading playlist: FF Guest Apperances
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6 page 1: Downloading API JSON
[ytdl-sub:yt-dlp] WARNING: [youtube:tab] Incomplete data received. Retrying (1/3)...
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6 page 1: Downloading API JSON
[ytdl-sub:yt-dlp] WARNING: [youtube:tab] Incomplete data received. Retrying (2/3)...
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6 page 1: Downloading API JSON
[ytdl-sub:yt-dlp] WARNING: [youtube:tab] Incomplete data received. Retrying (3/3)...
[ytdl-sub:yt-dlp] [youtube:tab] PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6 page 1: Downloading API JSON
[ytdl-sub:yt-dlp] WARNING: [youtube:tab] Incomplete data received. Giving up after 3 retries
[ytdl-sub:yt-dlp] [info] Writing playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6.info.json
[ytdl-sub:yt-dlp] [youtube:tab] Playlist FF Guest Apperances: Downloading 1 items of 5
[ytdl-sub:yt-dlp] [download] ybl-u1uq2Co: The Ramen Off - (Feat. FilthyFrank & HowToBasic) has already been recorded in the archive
[ytdl-sub:yt-dlp-downloader] ExistingVideoReached, stopping additional downloads. (Can be disable by setting `ytdl_options.break_on_existing` to False).
[ytdl-sub:yt-dlp-downloader] Attempting to get parent metadata from URL https://www.youtube.com/@danielcavanaugh5905
[ytdl-sub:yt-dlp-downloader] ytdl_options: {'playlist_items': '0:0', 'ignoreerrors': True, 'outtmpl': '/mnt/streamy/ytdl-sub/subs/%(id)S.%(ext)s', 'writethumbnail': False, 'ffmpeg_location': '/usr/bin/ffmpeg', 'download_archive': '/mnt/streamy/ytdl-sub/subs/.ytdl-sub-subs-download-archive.json-ytdl-archive', 'match_filter': yt_dlp.utils.match_filter_func(['!is_live & !is_upcoming & !post_live'], []), 'break_on_existing': True, 'skip_download': True, 'writeinfojson': True, 'extract_flat': 'discard'}
[ytdl-sub:yt-dlp] [youtube:tab] Extracting URL: https://www.youtube.com/@danielcavanaugh5905
[ytdl-sub:yt-dlp] [youtube:tab] @danielcavanaugh5905: Downloading webpage
[ytdl-sub:yt-dlp] [youtube:tab] Downloading all uploads of the channel. To download only the videos in a specific tab, pass the tab's URL
[ytdl-sub:yt-dlp] [download] Downloading playlist: Daniel Cavanaugh
[ytdl-sub:yt-dlp] [info] Writing playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/@danielcavanaugh5905.info.json
[ytdl-sub:yt-dlp] [youtube:tab] Playlist Daniel Cavanaugh: Downloading 0 items
[ytdl-sub:yt-dlp] [info] Writing updated playlist metadata as JSON to: /mnt/streamy/ytdl-sub/subs/@danielcavanaugh5905.info.json
[ytdl-sub:yt-dlp] [download] Finished downloading playlist: Daniel Cavanaugh
[ytdl-sub:yt-dlp-downloader] Adding parent metadata with ids [@danielcavanaugh5905, @danielcavanaugh5905]
[ytdl-sub:downloader] Beginning downloads for https://www.youtube.com/playlist?list=PLdd_1efceN2FP9USkRvE1v7cgVIewjpB6
Can you provide the full log? The last line is right when the actual download begins @GerbertBless
Oddly enough I went back and looked at the log and that is where it ends. Ran it again and the log it just created stops there as well. It also looks to me like the last thing it is trying to download is the channel that created the playlist, which is my google account where I have nothing uploaded. It seems to try and do the playlist first, stops because it sees an existing video file, and then tried to download everything from my channel.
Hmm, can you run manually with --log-level verbose
@GerbertBless and provide the logs from your terminal
Hey,
Sorry for the delay. I noticed that I was also missing age restricted videos in other collections and realized that none of my options were passing through. After looking at my config file more carefully, I found that I placed the yt-dl options under the wrong preset. Basically, I searched for the yt-dl options and just put the options I wanted under the first thing that showed up without checking that there was more than one section where that might apply. Its all working now. My bad
I noticed ytdl-sub is doing something very strange. I have enabled download archives, and without any download archives already created (so a first run for a particular artist), if I set ytdl-sub to download a playlist of 30 videos, it does not download all 30 videos. However, if I then delete the download archive then force ytdl-sub to run again, it will download all 30 videos. For this, I am referring to
subscriptions_music-videos_playlists.yaml
, below.Am I doing something wrong?
Here are my config and subscription files; I'm including everything here just in case they're relevant. I have multiple subscription files because of my experience with #962. I have a cronjob set to work with each subscription file. I am mainly relying on
subscriptions_music-videos_playlists.yaml
to download music videos, but I use the other two subscriptions with different presets in order to make sure new music videos are downloaded from artists' pages and the pages of their music labels. Please excuse the way I've named presets with the word "override," it just helps me understand what is happening.config.yaml
subscriptions_youtube.yaml
subscriptions_music-videos_playlists.yaml
subscriptions_music-videos_artists.yaml
subscriptions_music-videos_labels.yaml