fd.add_progress_hook(ph)
return fd.real_download(filename, info_dict)
- def is_ad_fragment(s):
- return (s.startswith('#ANVATO-SEGMENT-INFO') and 'type=ad' in s or
- s.startswith('#UPLYNK-SEGMENT') and s.endswith(',ad'))
+ def is_ad_fragment_start(s):
+ return (s.startswith('#ANVATO-SEGMENT-INFO') and 'type=ad' in s
+ or s.startswith('#UPLYNK-SEGMENT') and s.endswith(',ad'))
+
+ def is_ad_fragment_end(s):
+ return (s.startswith('#ANVATO-SEGMENT-INFO') and 'type=master' in s
+ or s.startswith('#UPLYNK-SEGMENT') and s.endswith(',segment'))
media_frags = 0
ad_frags = 0
if not line:
continue
if line.startswith('#'):
- if is_ad_fragment(line):
- ad_frags += 1
+ if is_ad_fragment_start(line):
ad_frag_next = True
+ elif is_ad_fragment_end(line):
+ ad_frag_next = False
continue
if ad_frag_next:
- ad_frag_next = False
+ ad_frags += 1
continue
media_frags += 1
if line:
if not line.startswith('#'):
if ad_frag_next:
- ad_frag_next = False
continue
frag_index += 1
if frag_index <= ctx['fragment_index']:
except compat_urllib_error.HTTPError as err:
# Unavailable (possibly temporary) fragments may be served.
# First we try to retry then either skip or abort.
- # See https://github.com/rg3/youtube-dl/issues/10165,
- # https://github.com/rg3/youtube-dl/issues/10448).
+ # See https://github.com/ytdl-org/youtube-dl/issues/10165,
+ # https://github.com/ytdl-org/youtube-dl/issues/10448).
count += 1
if count <= fragment_retries:
self.report_retry_fragment(err, frag_index, count, fragment_retries)
'start': sub_range_start,
'end': sub_range_start + int(splitted_byte_range[0]),
}
- elif is_ad_fragment(line):
+ elif is_ad_fragment_start(line):
ad_frag_next = True
+ elif is_ad_fragment_end(line):
+ ad_frag_next = False
self._finish_frag_download(ctx)