Option --break-per-input to apply --break-on... to each input URL

This commit is contained in:
pukkandan 2021-11-29 02:41:55 +05:30
parent 5e5be0c0b2
commit b222c27145
No known key found for this signature in database
GPG key ID: 0F00D95A001F4698
3 changed files with 16 additions and 1 deletions

View file

@ -310,6 +310,8 @@ class YoutubeDL(object):
file that is in the archive. file that is in the archive.
break_on_reject: Stop the download process when encountering a video that break_on_reject: Stop the download process when encountering a video that
has been filtered out. has been filtered out.
break_per_url: Whether break_on_reject and break_on_existing
should act on each input URL as opposed to for the entire queue
cookiefile: File name where cookies should be read from and dumped to cookiefile: File name where cookies should be read from and dumped to
cookiesfrombrowser: A tuple containing the name of the browser and the profile cookiesfrombrowser: A tuple containing the name of the browser and the profile
name/path from where cookies are loaded. name/path from where cookies are loaded.
@ -2968,9 +2970,13 @@ class YoutubeDL(object):
res = func(*args, **kwargs) res = func(*args, **kwargs)
except UnavailableVideoError as e: except UnavailableVideoError as e:
self.report_error(e) self.report_error(e)
except DownloadCancelled as e: except MaxDownloadsReached as e:
self.to_screen(f'[info] {e}') self.to_screen(f'[info] {e}')
raise raise
except DownloadCancelled as e:
self.to_screen(f'[info] {e}')
if not self.params.get('break_per_url'):
raise
else: else:
if self.params.get('dump_single_json', False): if self.params.get('dump_single_json', False):
self.post_extract(res) self.post_extract(res)

View file

@ -701,6 +701,7 @@ def _real_main(argv=None):
'download_archive': download_archive_fn, 'download_archive': download_archive_fn,
'break_on_existing': opts.break_on_existing, 'break_on_existing': opts.break_on_existing,
'break_on_reject': opts.break_on_reject, 'break_on_reject': opts.break_on_reject,
'break_per_url': opts.break_per_url,
'skip_playlist_after_errors': opts.skip_playlist_after_errors, 'skip_playlist_after_errors': opts.skip_playlist_after_errors,
'cookiefile': opts.cookiefile, 'cookiefile': opts.cookiefile,
'cookiesfrombrowser': opts.cookiesfrombrowser, 'cookiesfrombrowser': opts.cookiesfrombrowser,

View file

@ -449,6 +449,14 @@ def parseOpts(overrideArguments=None):
'--break-on-reject', '--break-on-reject',
action='store_true', dest='break_on_reject', default=False, action='store_true', dest='break_on_reject', default=False,
help='Stop the download process when encountering a file that has been filtered out') help='Stop the download process when encountering a file that has been filtered out')
selection.add_option(
'--break-per-input',
action='store_true', dest='break_per_url', default=False,
help='Make --break-on-existing and --break-on-reject act only on the current input URL')
selection.add_option(
'--no-break-per-input',
action='store_false', dest='break_per_url',
help='--break-on-existing and --break-on-reject terminates the entire download queue')
selection.add_option( selection.add_option(
'--skip-playlist-after-errors', metavar='N', '--skip-playlist-after-errors', metavar='N',
dest='skip_playlist_after_errors', default=None, type=int, dest='skip_playlist_after_errors', default=None, type=int,