[tweakers] Use _extract_xspf_playlist

This commit is contained in:
Sergey M․ 2015-08-09 19:15:00 +06:00
parent 3a30508b94
commit f32143469f

View File

@ -25,41 +25,7 @@ class TweakersIE(InfoExtractor):
} }
def _real_extract(self, url): def _real_extract(self, url):
video_id = self._match_id(url) playlist_id = self._match_id(url)
entries = self._extract_xspf_playlist(
playlist = self._download_xml( 'https://tweakers.net/video/s1playlist/%s/playlist.xspf' % playlist_id, playlist_id)
'https://tweakers.net/video/s1playlist/%s/playlist.xspf' % video_id, return self.playlist_result(entries, playlist_id)
video_id)
NS_MAP = {
'xspf': 'http://xspf.org/ns/0/',
's1': 'http://static.streamone.nl/player/ns/0',
}
track = playlist.find(xpath_with_ns('./xspf:trackList/xspf:track', NS_MAP))
title = xpath_text(
track, xpath_with_ns('./xspf:title', NS_MAP), 'title')
description = xpath_text(
track, xpath_with_ns('./xspf:annotation', NS_MAP), 'description')
thumbnail = xpath_text(
track, xpath_with_ns('./xspf:image', NS_MAP), 'thumbnail')
duration = float_or_none(
xpath_text(track, xpath_with_ns('./xspf:duration', NS_MAP), 'duration'),
1000)
formats = [{
'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))),
} for location in track.findall(xpath_with_ns('./xspf:location', NS_MAP))]
return {
'id': video_id,
'title': title,
'description': description,
'thumbnail': thumbnail,
'duration': duration,
'formats': formats,
}