[downloader/mhtml] Fix fragments with absolute urls (#3044)

Authored-by: coletdjnz
This commit is contained in:
coletdev 2022-03-14 11:03:40 +13:00 committed by GitHub
parent 17322130a9
commit b3edc8068e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 3 deletions

View file

@ -166,7 +166,11 @@ def real_download(self, filename, info_dict):
if (i + 1) <= ctx['fragment_index']:
continue
fragment_url = urljoin(fragment_base_url, fragment['path'])
fragment_url = fragment.get('url')
if not fragment_url:
assert fragment_base_url
fragment_url = urljoin(fragment_base_url, fragment['path'])
success, frag_content = self._download_fragment(ctx, fragment_url, info_dict)
if not success:
continue

View file

@ -187,7 +187,7 @@ def _extract_video(self, video_id, catalogue=None):
'protocol': 'mhtml',
'url': 'about:invalid',
'fragments': [{
'path': sheet,
'url': sheet,
# XXX: not entirely accurate; each spritesheet seems to be
# a 10×10 grid of thumbnails corresponding to approximately
# 2 seconds of the video; the last spritesheet may be shorter

View file

@ -3208,7 +3208,7 @@ def _extract_storyboard(self, player_responses, duration):
'width': width,
'height': height,
'fragments': [{
'path': url.replace('$M', str(j)),
'url': url.replace('$M', str(j)),
'duration': min(fragment_duration, duration - (j * fragment_duration)),
} for j in range(math.ceil(fragment_count))],
}