commit: 6e65a2a67e075ae8f3e4fe03c732d7772d36f5e1
parent f8c7bed133fe729a9e26f23e5685559e3fa12eb1
Author: Stefan Pöschel <basicmaster@users.noreply.github.com>
Date: Fri, 18 Sep 2020 00:26:56 +0200
[downloader/hls] Fix incorrect end byte in Range HTTP header for media segments with EXT-X-BYTERANGE (#24512) (closes #14748)
The end of the byte range is the first byte that is NOT part of the to
be downloaded range. So don't include it into the requested HTTP
download range, as this additional byte leads to a broken TS packet and
subsequently to e.g. visible video corruption.
Fixes #14748.
Diffstat:
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/youtube_dl/downloader/hls.py b/youtube_dl/downloader/hls.py
@@ -141,7 +141,7 @@ class HlsFD(FragmentFD):
count = 0
headers = info_dict.get('http_headers', {})
if byte_range:
- headers['Range'] = 'bytes=%d-%d' % (byte_range['start'], byte_range['end'])
+ headers['Range'] = 'bytes=%d-%d' % (byte_range['start'], byte_range['end'] - 1)
while count <= fragment_retries:
try:
success, frag_content = self._download_fragment(