aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dlc
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dlc')
-rw-r--r--youtube_dlc/YoutubeDL.py12
-rw-r--r--youtube_dlc/__init__.py1
-rw-r--r--youtube_dlc/options.py9
3 files changed, 18 insertions, 4 deletions
diff --git a/youtube_dlc/YoutubeDL.py b/youtube_dlc/YoutubeDL.py
index 97e4f451f..8fe608fc9 100644
--- a/youtube_dlc/YoutubeDL.py
+++ b/youtube_dlc/YoutubeDL.py
@@ -166,6 +166,8 @@ class YoutubeDL(object):
forcejson: Force printing info_dict as JSON.
dump_single_json: Force printing the info_dict of the whole playlist
(or video) as a single JSON line.
+ force_write_download_archive: Force writing download archive regardless of
+ 'skip_download' or 'simulate'.
simulate: Do not download the video files.
format: Video format code. see "FORMAT SELECTION" for more details.
format_sort: How to sort the video formats. see "Sorting Formats" for more details.
@@ -1856,8 +1858,11 @@ class YoutubeDL(object):
# Forced printings
self.__forced_printings(info_dict, filename, incomplete=False)
- # Do nothing else if in simulate mode
if self.params.get('simulate', False):
+ if self.params.get('force_write_download_archive', False):
+ self.record_download_archive(info_dict)
+
+ # Do nothing else if in simulate mode
return
if filename is None:
@@ -2188,7 +2193,10 @@ class YoutubeDL(object):
except (PostProcessingError) as err:
self.report_error('postprocessing: %s' % str(err))
return
- self.record_download_archive(info_dict)
+ must_record_download_archive = True
+
+ if must_record_download_archive or self.params.get('force_write_download_archive', False):
+ self.record_download_archive(info_dict)
def download(self, url_list):
"""Download a given list of URLs."""
diff --git a/youtube_dlc/__init__.py b/youtube_dlc/__init__.py
index d183016b6..4f57ac6a8 100644
--- a/youtube_dlc/__init__.py
+++ b/youtube_dlc/__init__.py
@@ -349,6 +349,7 @@ def _real_main(argv=None):
'forceformat': opts.getformat,
'forcejson': opts.dumpjson or opts.print_json,
'dump_single_json': opts.dump_single_json,
+ 'force_write_download_archive': opts.force_write_download_archive,
'simulate': opts.simulate or any_getting,
'skip_download': opts.skip_download,
'format': opts.format,
diff --git a/youtube_dlc/options.py b/youtube_dlc/options.py
index bd85abd3a..e85006a87 100644
--- a/youtube_dlc/options.py
+++ b/youtube_dlc/options.py
@@ -682,8 +682,13 @@ def parseOpts(overrideArguments=None):
verbosity.add_option(
'--print-json',
action='store_true', dest='print_json', default=False,
- help='Be quiet and print the video information as JSON (video is still being downloaded).',
- )
+ help='Be quiet and print the video information as JSON (video is still being downloaded).')
+ verbosity.add_option(
+ '--force-write-download-archive', '--force-write-archive', '--force-download-archive',
+ action='store_true', dest='force_write_download_archive', default=False,
+ help=(
+ 'Force download archive entries to be written as far as no errors occur,'
+ 'even if -s or another simulation switch is used.'))
verbosity.add_option(
'--newline',
action='store_true', dest='progress_with_newline', default=False,