[downloader/fragment] Partially revert 4823ec9f46

Currently, when `--no-continue` is used, yt-dlp will attempt to download
from the first fragment and **append** decrypted fragments to the temp
file (or the actual video file), causing data duplication when resuming
a partially downloaded video.

This fixes the issue by partially reverting the behavior of the fragment
downloader to match its description in the README file.
This commit is contained in:
ClosedPort22 2023-09-11 16:30:26 +09:00
parent a006ce2b27
commit a3406c0325
No known key found for this signature in database

View File

@ -187,9 +187,7 @@ class FragmentFD(FileDownloader):
})
if self.__do_ytdl_file(ctx):
ytdl_file_exists = os.path.isfile(encodeFilename(self.ytdl_filename(ctx['filename'])))
continuedl = self.params.get('continuedl', True)
if continuedl and ytdl_file_exists:
if os.path.isfile(encodeFilename(self.ytdl_filename(ctx['filename']))):
self._read_ytdl_file(ctx)
is_corrupt = ctx.get('ytdl_corrupt') is True
is_inconsistent = ctx['fragment_index'] > 0 and resume_len == 0
@ -203,12 +201,7 @@ class FragmentFD(FileDownloader):
if 'ytdl_corrupt' in ctx:
del ctx['ytdl_corrupt']
self._write_ytdl_file(ctx)
else:
if not continuedl:
if ytdl_file_exists:
self._read_ytdl_file(ctx)
ctx['fragment_index'] = resume_len = 0
self._write_ytdl_file(ctx)
assert ctx['fragment_index'] == 0