diff options
-rw-r--r-- | youtube_dl/extractor/xhamster.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/youtube_dl/extractor/xhamster.py b/youtube_dl/extractor/xhamster.py index ef9997ee4..fe13024d5 100644 --- a/youtube_dl/extractor/xhamster.py +++ b/youtube_dl/extractor/xhamster.py @@ -45,6 +45,13 @@ class XHamsterIE(InfoExtractor): else: return mobj.group('server')+'/key='+mobj.group('file') + def extract_mp4_video_url(webpage): + mp4 = re.search(r'<a href=\"(.+?)\" class=\"mp4Play\"',webpage) + if mp4 is None: + return None + else: + return mp4.group(1) + def is_hd(webpage): return webpage.find('<div class=\'icon iconHD\'') != -1 @@ -80,14 +87,25 @@ class XHamsterIE(InfoExtractor): age_limit = self._rta_search(webpage) - video_url = extract_video_url(webpage) hd = is_hd(webpage) + + video_url = extract_video_url(webpage) formats = [{ 'url': video_url, 'ext': determine_ext(video_url), 'format': 'hd' if hd else 'sd', 'format_id': 'hd' if hd else 'sd', }] + + video_mp4_url = extract_mp4_video_url(webpage) + if (not video_mp4_url is None) and (formats[0]['ext'] != 'mp4'): + formats.append( { + 'url': video_mp4_url, + 'ext': 'mp4', + 'format': 'hd' if hd else 'sd', + 'format_id': 'hd' if hd else 'sd', + }) + if not hd: webpage = self._download_webpage(mrss_url+'?hd', video_id) if is_hd(webpage): |