diff options
author | dirkf <fieldhouse@gmx.net> | 2023-03-11 12:17:00 +0000 |
---|---|---|
committer | dirkf <fieldhouse@gmx.net> | 2023-03-14 16:23:20 +0000 |
commit | baa6c5e95cb307e7d716645780ff8aef22de6aca (patch) | |
tree | 419f4f2cd94ac6f2b3fa8fb60483b8bb933a658c /youtube_dl/downloader/dash.py | |
parent | 5c985d4f81a43ada75dafb23233e7fe39913907a (diff) |
[FragmentFD] Respect `--no-continue`
* discard partial fragment on `--no-continue`
* continue with correct progress display otherwise
Resolves #21467
Diffstat (limited to 'youtube_dl/downloader/dash.py')
-rw-r--r-- | youtube_dl/downloader/dash.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/youtube_dl/downloader/dash.py b/youtube_dl/downloader/dash.py index c6d674bc6..cc30485f8 100644 --- a/youtube_dl/downloader/dash.py +++ b/youtube_dl/downloader/dash.py @@ -38,8 +38,7 @@ class DashSegmentsFD(FragmentFD): # In DASH, the first segment contains necessary headers to # generate a valid MP4 file, so always abort for the first segment fatal = i == 0 or not skip_unavailable_fragments - count = 0 - while count <= fragment_retries: + for count in range(fragment_retries + 1): try: fragment_url = fragment.get('url') if not fragment_url: @@ -57,9 +56,8 @@ class DashSegmentsFD(FragmentFD): # is usually enough) thus allowing to download the whole file successfully. # To be future-proof we will retry all fragments that fail with any # HTTP error. - count += 1 - if count <= fragment_retries: - self.report_retry_fragment(err, frag_index, count, fragment_retries) + if count < fragment_retries: + self.report_retry_fragment(err, frag_index, count + 1, fragment_retries) except DownloadError: # Don't retry fragment if error occurred during HTTP downloading # itself since it has own retry settings @@ -68,7 +66,7 @@ class DashSegmentsFD(FragmentFD): break raise - if count > fragment_retries: + if count >= fragment_retries: if not fatal: self.report_skip_fragment(frag_index) continue |