diff options
| -rwxr-xr-x | youtube_dl/InfoExtractors.py | 44 | ||||
| -rw-r--r-- | youtube_dl/extractor/xvideos.py | 43 | 
2 files changed, 44 insertions, 43 deletions
| diff --git a/youtube_dl/InfoExtractors.py b/youtube_dl/InfoExtractors.py index 789fd147c..8fcd19ca2 100755 --- a/youtube_dl/InfoExtractors.py +++ b/youtube_dl/InfoExtractors.py @@ -37,54 +37,12 @@ from .extractor.statigram import StatigramIE  from .extractor.photobucket import PhotobucketIE  from .extractor.soundcloud import SoundcloudIE, SoundcloudSetIE  from .extractor.vimeo import VimeoIE +from .extractor.xvideos import XVideosIE  from .extractor.yahoo import YahooIE, YahooSearchIE  from .extractor.youtube import YoutubeIE, YoutubePlaylistIE, YoutubeSearchIE, YoutubeUserIE, YoutubeChannelIE  from .extractor.zdf import ZDFIE -class XVideosIE(InfoExtractor): -    """Information extractor for xvideos.com""" - -    _VALID_URL = r'^(?:https?://)?(?:www\.)?xvideos\.com/video([0-9]+)(?:.*)' -    IE_NAME = u'xvideos' - -    def _real_extract(self, url): -        mobj = re.match(self._VALID_URL, url) -        if mobj is None: -            raise ExtractorError(u'Invalid URL: %s' % url) -        video_id = mobj.group(1) - -        webpage = self._download_webpage(url, video_id) - -        self.report_extraction(video_id) - -        # Extract video URL -        video_url = compat_urllib_parse.unquote(self._search_regex(r'flv_url=(.+?)&', -            webpage, u'video URL')) - -        # Extract title -        video_title = self._html_search_regex(r'<title>(.*?)\s+-\s+XVID', -            webpage, u'title') - -        # Extract video thumbnail -        video_thumbnail = self._search_regex(r'http://(?:img.*?\.)xvideos.com/videos/thumbs/[a-fA-F0-9]+/[a-fA-F0-9]+/[a-fA-F0-9]+/[a-fA-F0-9]+/([a-fA-F0-9.]+jpg)', -            webpage, u'thumbnail', fatal=False) - -        info = { -            'id': video_id, -            'url': video_url, -            'uploader': None, -            'upload_date': None, -            'title': video_title, -            'ext': 'flv', -            'thumbnail': video_thumbnail, -            'description': None, -        } - -        return [info] - - -  class InfoQIE(InfoExtractor):      """Information extractor for infoq.com""" diff --git a/youtube_dl/extractor/xvideos.py b/youtube_dl/extractor/xvideos.py new file mode 100644 index 000000000..8b3cb3930 --- /dev/null +++ b/youtube_dl/extractor/xvideos.py @@ -0,0 +1,43 @@ +import re + +from .common import InfoExtractor +from ..utils import ( +    compat_urllib_parse, +) + + +class XVideosIE(InfoExtractor): +    _VALID_URL = r'^(?:https?://)?(?:www\.)?xvideos\.com/video([0-9]+)(?:.*)' + +    def _real_extract(self, url): +        mobj = re.match(self._VALID_URL, url) +        video_id = mobj.group(1) + +        webpage = self._download_webpage(url, video_id) + +        self.report_extraction(video_id) + +        # Extract video URL +        video_url = compat_urllib_parse.unquote(self._search_regex(r'flv_url=(.+?)&', +            webpage, u'video URL')) + +        # Extract title +        video_title = self._html_search_regex(r'<title>(.*?)\s+-\s+XVID', +            webpage, u'title') + +        # Extract video thumbnail +        video_thumbnail = self._search_regex(r'http://(?:img.*?\.)xvideos.com/videos/thumbs/[a-fA-F0-9]+/[a-fA-F0-9]+/[a-fA-F0-9]+/[a-fA-F0-9]+/([a-fA-F0-9.]+jpg)', +            webpage, u'thumbnail', fatal=False) + +        info = { +            'id': video_id, +            'url': video_url, +            'uploader': None, +            'upload_date': None, +            'title': video_title, +            'ext': 'flv', +            'thumbnail': video_thumbnail, +            'description': None, +        } + +        return [info] | 
