|
@ -34,24 +34,14 @@ class DHMIE(InfoExtractor): |
|
|
}] |
|
|
}] |
|
|
|
|
|
|
|
|
def _real_extract(self, url): |
|
|
def _real_extract(self, url): |
|
|
video_id = self._match_id(url) |
|
|
|
|
|
|
|
|
playlist_id = self._match_id(url) |
|
|
|
|
|
|
|
|
webpage = self._download_webpage(url, video_id) |
|
|
|
|
|
|
|
|
webpage = self._download_webpage(url, playlist_id) |
|
|
|
|
|
|
|
|
playlist_url = self._search_regex( |
|
|
playlist_url = self._search_regex( |
|
|
r"file\s*:\s*'([^']+)'", webpage, 'playlist url') |
|
|
r"file\s*:\s*'([^']+)'", webpage, 'playlist url') |
|
|
|
|
|
|
|
|
playlist = self._download_xml(playlist_url, video_id) |
|
|
|
|
|
|
|
|
|
|
|
track = playlist.find( |
|
|
|
|
|
'./{http://xspf.org/ns/0/}trackList/{http://xspf.org/ns/0/}track') |
|
|
|
|
|
|
|
|
|
|
|
video_url = xpath_text( |
|
|
|
|
|
track, './{http://xspf.org/ns/0/}location', |
|
|
|
|
|
'video url', fatal=True) |
|
|
|
|
|
thumbnail = xpath_text( |
|
|
|
|
|
track, './{http://xspf.org/ns/0/}image', |
|
|
|
|
|
'thumbnail') |
|
|
|
|
|
|
|
|
entries = self._extract_xspf_playlist(playlist_url, playlist_id) |
|
|
|
|
|
|
|
|
title = self._search_regex( |
|
|
title = self._search_regex( |
|
|
[r'dc:title="([^"]+)"', r'<title> »([^<]+)</title>'], |
|
|
[r'dc:title="([^"]+)"', r'<title> »([^<]+)</title>'], |
|
@ -63,11 +53,10 @@ class DHMIE(InfoExtractor): |
|
|
r'<em>Length\s*</em>\s*:\s*</strong>([^<]+)', |
|
|
r'<em>Length\s*</em>\s*:\s*</strong>([^<]+)', |
|
|
webpage, 'duration', default=None)) |
|
|
webpage, 'duration', default=None)) |
|
|
|
|
|
|
|
|
return { |
|
|
|
|
|
'id': video_id, |
|
|
|
|
|
'url': video_url, |
|
|
|
|
|
|
|
|
entries[0].update({ |
|
|
'title': title, |
|
|
'title': title, |
|
|
'description': description, |
|
|
'description': description, |
|
|
'duration': duration, |
|
|
'duration': duration, |
|
|
'thumbnail': thumbnail, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
return self.playlist_result(entries, playlist_id) |