forked from DRMTalks/devine
Remove 5-attempt loop from DASH and HLS Downloads
These are unnecessary now as all downloaders have retry functionality built-in.
This commit is contained in:
parent
cc4900a2ed
commit
e8e3d4a90f
|
@ -519,30 +519,22 @@ class DASH:
|
|||
if DOWNLOAD_CANCELLED.is_set():
|
||||
raise KeyboardInterrupt()
|
||||
|
||||
attempts = 1
|
||||
while True:
|
||||
try:
|
||||
if bytes_range:
|
||||
# aria2(c) doesn't support byte ranges, use python-requests
|
||||
downloader_ = requests_downloader
|
||||
headers_ = dict(**headers, Range=f"bytes={bytes_range}")
|
||||
else:
|
||||
downloader_ = downloader
|
||||
headers_ = headers
|
||||
downloader_(
|
||||
uri=url,
|
||||
out=out_path,
|
||||
headers=headers_,
|
||||
cookies=cookies,
|
||||
proxy=proxy,
|
||||
segmented=True
|
||||
)
|
||||
break
|
||||
except Exception as e:
|
||||
if DOWNLOAD_CANCELLED.is_set() or attempts == 5:
|
||||
raise e
|
||||
time.sleep(2)
|
||||
attempts += 1
|
||||
if bytes_range:
|
||||
# aria2(c) doesn't support byte ranges, use python-requests
|
||||
downloader_ = requests_downloader
|
||||
headers_ = dict(**headers, Range=f"bytes={bytes_range}")
|
||||
else:
|
||||
downloader_ = downloader
|
||||
headers_ = headers
|
||||
|
||||
downloader_(
|
||||
uri=url,
|
||||
out=out_path,
|
||||
headers=headers_,
|
||||
cookies=cookies,
|
||||
proxy=proxy,
|
||||
segmented=True
|
||||
)
|
||||
|
||||
# fix audio decryption on ATVP by fixing the sample description index
|
||||
# TODO: Should this be done in the video data or the init data?
|
||||
|
|
|
@ -422,33 +422,25 @@ class HLS:
|
|||
if DOWNLOAD_LICENCE_ONLY.is_set():
|
||||
return -1
|
||||
|
||||
attempts = 1
|
||||
while True:
|
||||
try:
|
||||
headers_ = session.headers
|
||||
if segment.byterange:
|
||||
# aria2(c) doesn't support byte ranges, use python-requests
|
||||
downloader_ = requests_downloader
|
||||
previous_range_offset = range_offset.get()
|
||||
byte_range = HLS.calculate_byte_range(segment.byterange, previous_range_offset)
|
||||
range_offset.put(byte_range.split("-")[0])
|
||||
headers_["Range"] = f"bytes={byte_range}"
|
||||
else:
|
||||
downloader_ = downloader
|
||||
downloader_(
|
||||
uri=urljoin(segment.base_uri, segment.uri),
|
||||
out=out_path,
|
||||
headers=headers_,
|
||||
cookies=session.cookies,
|
||||
proxy=proxy,
|
||||
segmented=True
|
||||
)
|
||||
break
|
||||
except Exception as e:
|
||||
if DOWNLOAD_CANCELLED.is_set() or attempts == 5:
|
||||
raise e
|
||||
time.sleep(2)
|
||||
attempts += 1
|
||||
headers_ = session.headers
|
||||
if segment.byterange:
|
||||
# aria2(c) doesn't support byte ranges, use python-requests
|
||||
downloader_ = requests_downloader
|
||||
previous_range_offset = range_offset.get()
|
||||
byte_range = HLS.calculate_byte_range(segment.byterange, previous_range_offset)
|
||||
range_offset.put(byte_range.split("-")[0])
|
||||
headers_["Range"] = f"bytes={byte_range}"
|
||||
else:
|
||||
downloader_ = downloader
|
||||
|
||||
downloader_(
|
||||
uri=urljoin(segment.base_uri, segment.uri),
|
||||
out=out_path,
|
||||
headers=headers_,
|
||||
cookies=session.cookies,
|
||||
proxy=proxy,
|
||||
segmented=True
|
||||
)
|
||||
|
||||
download_size = out_path.stat().st_size
|
||||
|
||||
|
|
Loading…
Reference in New Issue