about summary refs log tree commit diff
path: root/youtube_dl/downloader
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2018-07-08 08:22:56 +0700
committerSergey M․ <dstftw@gmail.com>2018-07-08 08:22:56 +0700
commite06632e3fe25036b804a62469bb18fa4c37e3368 (patch)
tree268427b79b9bcca2b3ac82ddd6f842c0f36d978e /youtube_dl/downloader
parent69fcdb845b9744125161f514cb4166becbae2959 (diff)
downloadyoutube-dl-e06632e3fe25036b804a62469bb18fa4c37e3368.tar.gz
youtube-dl-e06632e3fe25036b804a62469bb18fa4c37e3368.tar.xz
youtube-dl-e06632e3fe25036b804a62469bb18fa4c37e3368.zip
[downloader/dash] Improve error handling (#16927)
Diffstat (limited to 'youtube_dl/downloader')
-rw-r--r--youtube_dl/downloader/dash.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/youtube_dl/downloader/dash.py b/youtube_dl/downloader/dash.py
index 576ece6db..eaa7adf7c 100644
--- a/youtube_dl/downloader/dash.py
+++ b/youtube_dl/downloader/dash.py
@@ -2,7 +2,10 @@ from __future__ import unicode_literals
 
 from .fragment import FragmentFD
 from ..compat import compat_urllib_error
-from ..utils import urljoin
+from ..utils import (
+    DownloadError,
+    urljoin,
+)
 
 
 class DashSegmentsFD(FragmentFD):
@@ -57,6 +60,14 @@ class DashSegmentsFD(FragmentFD):
                     count += 1
                     if count <= fragment_retries:
                         self.report_retry_fragment(err, frag_index, count, fragment_retries)
+                except DownloadError:
+                    # Don't retry fragment if error occurred during HTTP downloading
+                    # itself since it has own retry settings
+                    if not fatal:
+                        self.report_skip_fragment(frag_index)
+                        break
+                    raise
+
             if count > fragment_retries:
                 if not fatal:
                     self.report_skip_fragment(frag_index)