diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2014-12-12 12:55:13 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2014-12-12 12:55:13 +0100 | 
| commit | 82b34105d301f0aa6897b6695e390324e3722add (patch) | |
| tree | 91f06b15d3e1e8cfe6c9f7525edb99914fa42951 | |
| parent | 73aeb2dc56068f50e996f2cc08c58db9258b21d4 (diff) | |
[goshgay] Fix extraction
| -rw-r--r-- | youtube_dl/extractor/goshgay.py | 47 | 
1 files changed, 21 insertions, 26 deletions
| diff --git a/youtube_dl/extractor/goshgay.py b/youtube_dl/extractor/goshgay.py index ccf65c2c3..b116d251d 100644 --- a/youtube_dl/extractor/goshgay.py +++ b/youtube_dl/extractor/goshgay.py @@ -2,22 +2,25 @@  from __future__ import unicode_literals  from .common import InfoExtractor -from ..compat import compat_urlparse +from ..compat import ( +    compat_parse_qs, +)  from ..utils import ( -    ExtractorError, +    parse_duration,  )  class GoshgayIE(InfoExtractor):      _VALID_URL = r'https?://www\.goshgay\.com/video(?P<id>\d+?)($|/)'      _TEST = { -        'url': 'http://www.goshgay.com/video4116282', -        'md5': '268b9f3c3229105c57859e166dd72b03', +        'url': 'http://www.goshgay.com/video299069/diesel_sfw_xxx_video', +        'md5': '027fcc54459dff0feb0bc06a7aeda680',          'info_dict': { -            'id': '4116282', +            'id': '299069',              'ext': 'flv', -            'title': 'md5:089833a4790b5e103285a07337f245bf', -            'thumbnail': 're:http://.*\.jpg', +            'title': 'DIESEL SFW XXX Video', +            'thumbnail': 're:^http://.*\.jpg$', +            'duration': 79,              'age_limit': 18,          }      } @@ -26,33 +29,25 @@ class GoshgayIE(InfoExtractor):          video_id = self._match_id(url)          webpage = self._download_webpage(url, video_id) -        title = self._og_search_title(webpage) -        thumbnail = self._og_search_thumbnail(webpage) +        title = self._html_search_regex( +            r'<h2>(.*?)<', webpage, 'title') +        duration = parse_duration(self._html_search_regex( +            r'<span class="duration">\s*-?\s*(.*?)</span>', +            webpage, 'duration', fatal=False))          family_friendly = self._html_search_meta(              'isFamilyFriendly', webpage, default='false') -        config_url = self._search_regex( -            r"'config'\s*:\s*'([^']+)'", webpage, 'config URL') - -        config = self._download_xml( -            config_url, video_id, 'Downloading player config XML') - -        if config is None: -            raise ExtractorError('Missing config XML') -        if config.tag != 'config': -            raise ExtractorError('Missing config attribute') -        fns = config.findall('file') -        if len(fns) < 1: -            raise ExtractorError('Missing media URI') -        video_url = fns[0].text -        url_comp = compat_urlparse.urlparse(url) -        ref = "%s://%s%s" % (url_comp[0], url_comp[1], url_comp[2]) +        flashvars = compat_parse_qs(self._html_search_regex( +            r'<embed.+?id="flash-player-embed".+?flashvars="([^"]+)"', +            webpage, 'flashvars')) +        thumbnail = flashvars.get('url_bigthumb', [None])[0] +        video_url = flashvars['flv_url'][0]          return {              'id': video_id,              'url': video_url,              'title': title,              'thumbnail': thumbnail, -            'http_referer': ref, +            'duration': duration,              'age_limit': 0 if family_friendly == 'true' else 18,          } | 
