[extractor/generic] Support relative URIs in _parse_xspf

<location> can have relative URIs, not just absolute.
This commit is contained in:
Ricardo Constantino 2018-03-07 21:31:53 +00:00 committed by Sergey M․
parent 178ee88319
commit 96b8b9abae
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
4 changed files with 82 additions and 4 deletions

View file

@ -1700,9 +1700,9 @@ class InfoExtractor(object):
'Unable to download xspf manifest', fatal=fatal)
if xspf is False:
return []
return self._parse_xspf(xspf, playlist_id)
return self._parse_xspf(xspf, playlist_id, base_url(playlist_url))
def _parse_xspf(self, playlist, playlist_id):
def _parse_xspf(self, playlist, playlist_id, playlist_base_url=''):
NS_MAP = {
'xspf': 'http://xspf.org/ns/0/',
's1': 'http://static.streamone.nl/player/ns/0',
@ -1720,7 +1720,7 @@ class InfoExtractor(object):
xpath_text(track, xpath_with_ns('./xspf:duration', NS_MAP), 'duration'), 1000)
formats = [{
'url': location.text,
'url': urljoin(playlist_base_url, location.text),
'format_id': location.get(xpath_with_ns('s1:label', NS_MAP)),
'width': int_or_none(location.get(xpath_with_ns('s1:width', NS_MAP))),
'height': int_or_none(location.get(xpath_with_ns('s1:height', NS_MAP))),