diff options
| -rw-r--r-- | youtube_dl/extractor/eporner.py | 29 | 
1 files changed, 23 insertions, 6 deletions
diff --git a/youtube_dl/extractor/eporner.py b/youtube_dl/extractor/eporner.py index 6926fcda3..522aa3d63 100644 --- a/youtube_dl/extractor/eporner.py +++ b/youtube_dl/extractor/eporner.py @@ -11,12 +11,13 @@ from ..utils import (  class EpornerIE(InfoExtractor): -    _VALID_URL = r'https?://(?:www\.)?eporner\.com/hd-porn/(?P<id>\d+)/(?P<title_dash>[\w-]+)/?' +    _VALID_URL = r'https?://(?:www\.)?eporner\.com/hd-porn/(?P<id>\d+)/(?P<display_id>[\w-]+)'      _TEST = {          'url': 'http://www.eporner.com/hd-porn/95008/Infamous-Tiffany-Teen-Strip-Tease-Video/',          'md5': '3b427ae4b9d60619106de3185c2987cd',          'info_dict': {              'id': '95008', +            'display_id': 'Infamous-Tiffany-Teen-Strip-Tease-Video',              'ext': 'flv',              'title': 'Infamous Tiffany Teen Strip Tease Video',              'duration': 194, @@ -28,7 +29,9 @@ class EpornerIE(InfoExtractor):      def _real_extract(self, url):          mobj = re.match(self._VALID_URL, url)          video_id = mobj.group('id') -        webpage = self._download_webpage(url, video_id) +        display_id = mobj.group('display_id') + +        webpage = self._download_webpage(url, display_id)          title = self._html_search_regex(              r'<title>(.*?) - EPORNER', webpage, 'title') @@ -37,9 +40,22 @@ class EpornerIE(InfoExtractor):              webpage, 'redirect_code')          redirect_url = 'http://www.eporner.com/config5/%s/%s' % (video_id, redirect_code)          player_code = self._download_webpage( -            redirect_url, video_id, note='Downloading player config') -        video_url = self._html_search_regex( -            r'file: "(.*?)",', player_code, 'video_url') +            redirect_url, display_id, note='Downloading player config') + +        sources = self._search_regex( +            r'(?s)sources\s*:\s*\[\s*({.+?})\s*\]', player_code, 'sources') + +        formats = [] +        for video_url, format_id in re.findall(r'file\s*:\s*"([^"]+)",\s*label\s*:\s*"([^"]+)"', sources): +            fmt = { +                'url': video_url, +                'format_id': format_id, +            } +            m = re.search(r'^(\d+)', format_id) +            if m: +                fmt['height'] = int(m.group(1)) +            formats.append(fmt) +        self._sort_formats(formats)          duration = parse_duration(self._search_regex(              r'class="mbtim">([0-9:]+)</div>', webpage, 'duration', @@ -50,9 +66,10 @@ class EpornerIE(InfoExtractor):          return {              'id': video_id, -            'url': video_url, +            'display_id': display_id,              'title': title,              'duration': duration,              'view_count': view_count, +            'formats': formats,              'age_limit': self._rta_search(webpage),          }  | 
