aboutsummaryrefslogtreecommitdiff
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.xz
[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)