diff options
author | Philipp Hagemeister <[email protected]> | 2014-12-12 12:55:13 +0100 |
---|---|---|
committer | Philipp Hagemeister <[email protected]> | 2014-12-12 12:55:13 +0100 |
commit | 82b34105d301f0aa6897b6695e390324e3722add (patch) | |
tree | 91f06b15d3e1e8cfe6c9f7525edb99914fa42951 | |
parent | 73aeb2dc56068f50e996f2cc08c58db9258b21d4 (diff) | |
download | youtube-dl-82b34105d301f0aa6897b6695e390324e3722add.tar.gz youtube-dl-82b34105d301f0aa6897b6695e390324e3722add.zip |
[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, } |