Option --break-per-input
to apply --break-on... to each input URL
This commit is contained in:
parent
5e5be0c0b2
commit
b222c27145
3 changed files with 16 additions and 1 deletions
|
@ -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)
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue