mirror of
https://codeberg.org/polarisfm/youtube-dl
synced 2024-11-22 08:34:32 +01:00
Added --yes-overwrites option.
This commit is contained in:
parent
049c0486bb
commit
a295d779ad
@ -237,6 +237,8 @@ Alternatively, refer to the [developer instructions](#developer-instructions) fo
|
||||
characters, and avoid "&" and spaces in
|
||||
filenames
|
||||
-w, --no-overwrites Do not overwrite files
|
||||
--yes-overwrites Overwrite all video and metadata files.
|
||||
This option includes --no-continue.
|
||||
-c, --continue Force resume of partially downloaded files.
|
||||
By default, youtube-dl will resume
|
||||
downloads if possible.
|
||||
|
@ -166,6 +166,7 @@ class YoutubeDL(object):
|
||||
restrictfilenames: Do not allow "&" and spaces in file names
|
||||
ignoreerrors: Do not stop on download errors.
|
||||
force_generic_extractor: Force downloader to use the generic extractor
|
||||
overwrites: Overwrite all video and metadata files.
|
||||
nooverwrites: Prevent overwriting files.
|
||||
playliststart: Playlist item to start at.
|
||||
playlistend: Playlist item to end at.
|
||||
@ -631,6 +632,13 @@ class YoutubeDL(object):
|
||||
except UnicodeEncodeError:
|
||||
self.to_screen('[download] The file has already been downloaded')
|
||||
|
||||
def report_file_delete(self, file_name):
|
||||
"""Report that existing file will be deleted."""
|
||||
try:
|
||||
self.to_screen('Deleting already existent file %s' % file_name)
|
||||
except UnicodeEncodeError:
|
||||
self.to_screen('Deleting already existent file')
|
||||
|
||||
def prepare_filename(self, info_dict):
|
||||
"""Generate the output filename."""
|
||||
try:
|
||||
@ -1903,11 +1911,15 @@ class YoutubeDL(object):
|
||||
'Requested formats are incompatible for merge and will be merged into mkv.')
|
||||
# Ensure filename always has a correct extension for successful merge
|
||||
filename = '%s.%s' % (filename_wo_ext, info_dict['ext'])
|
||||
if os.path.exists(encodeFilename(filename)):
|
||||
file_exists = os.path.exists(encodeFilename(filename))
|
||||
if not self.params.get('overwrites', False) and file_exists:
|
||||
self.to_screen(
|
||||
'[download] %s has already been downloaded and '
|
||||
'merged' % filename)
|
||||
else:
|
||||
if file_exists:
|
||||
self.report_file_delete(filename)
|
||||
os.remove(encodeFilename(filename))
|
||||
for f in requested_formats:
|
||||
new_info = dict(info_dict)
|
||||
new_info.update(f)
|
||||
@ -1922,6 +1934,11 @@ class YoutubeDL(object):
|
||||
info_dict['__postprocessors'] = postprocessors
|
||||
info_dict['__files_to_merge'] = downloaded
|
||||
else:
|
||||
# Delete existing file with --yes-overwrites
|
||||
if self.params.get('overwrites', False):
|
||||
if os.path.exists(encodeFilename(filename)):
|
||||
self.report_file_delete(filename)
|
||||
os.remove(encodeFilename(filename))
|
||||
# Just a single file
|
||||
success = dl(filename, info_dict)
|
||||
except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
|
||||
|
@ -174,6 +174,11 @@ def _real_main(argv=None):
|
||||
opts.max_sleep_interval = opts.sleep_interval
|
||||
if opts.ap_mso and opts.ap_mso not in MSO_INFO:
|
||||
parser.error('Unsupported TV Provider, use --ap-list-mso to get a list of supported TV Providers')
|
||||
if opts.overwrites:
|
||||
if opts.nooverwrites:
|
||||
parser.error('--yes-overwrites conflicts with --no-overwrites')
|
||||
# --yes-overwrites implies --no-continue
|
||||
opts.continue_dl = False
|
||||
|
||||
def parse_retries(retries):
|
||||
if retries in ('inf', 'infinite'):
|
||||
@ -347,6 +352,7 @@ def _real_main(argv=None):
|
||||
'force_generic_extractor': opts.force_generic_extractor,
|
||||
'ratelimit': opts.ratelimit,
|
||||
'nooverwrites': opts.nooverwrites,
|
||||
'overwrites': opts.overwrites,
|
||||
'retries': opts.retries,
|
||||
'fragment_retries': opts.fragment_retries,
|
||||
'skip_unavailable_fragments': opts.skip_unavailable_fragments,
|
||||
|
@ -717,6 +717,10 @@ def parseOpts(overrideArguments=None):
|
||||
'-w', '--no-overwrites',
|
||||
action='store_true', dest='nooverwrites', default=False,
|
||||
help='Do not overwrite files')
|
||||
filesystem.add_option(
|
||||
'--yes-overwrites',
|
||||
action='store_true', dest='overwrites', default=False,
|
||||
help='Overwrite all video and metadata files. This option includes --no-continue.')
|
||||
filesystem.add_option(
|
||||
'-c', '--continue',
|
||||
action='store_true', dest='continue_dl', default=True,
|
||||
|
Loading…
Reference in New Issue
Block a user