]> jfr.im git - yt-dlp.git/commitdiff
[hls] Fix unapplied byte_range for EXT-X-MAP fragment
authorfelix <redacted>
Thu, 21 Apr 2022 16:22:03 +0000 (18:22 +0200)
committerpukkandan <redacted>
Mon, 2 May 2022 01:50:08 +0000 (07:20 +0530)
Cherry-picked from #3302
Authored by: fstirlitz

yt_dlp/downloader/hls.py

index 694c843f30acf2ffeef313b90e325f731fc5b39e..f65f91f4fbc14196873618730d0e0e07f1d407c1 100644 (file)
@@ -191,6 +191,14 @@ def is_ad_fragment_end(s):
                     if extra_query:
                         frag_url = update_url_query(frag_url, extra_query)
 
+                    if map_info.get('BYTERANGE'):
+                        splitted_byte_range = map_info.get('BYTERANGE').split('@')
+                        sub_range_start = int(splitted_byte_range[1]) if len(splitted_byte_range) == 2 else byte_range['end']
+                        byte_range = {
+                            'start': sub_range_start,
+                            'end': sub_range_start + int(splitted_byte_range[0]),
+                        }
+
                     fragments.append({
                         'frag_index': frag_index,
                         'url': frag_url,
@@ -200,14 +208,6 @@ def is_ad_fragment_end(s):
                     })
                     media_sequence += 1
 
-                    if map_info.get('BYTERANGE'):
-                        splitted_byte_range = map_info.get('BYTERANGE').split('@')
-                        sub_range_start = int(splitted_byte_range[1]) if len(splitted_byte_range) == 2 else byte_range['end']
-                        byte_range = {
-                            'start': sub_range_start,
-                            'end': sub_range_start + int(splitted_byte_range[0]),
-                        }
-
                 elif line.startswith('#EXT-X-KEY'):
                     decrypt_url = decrypt_info.get('URI')
                     decrypt_info = parse_m3u8_attributes(line[11:])