diff options
author | MikeCol <MikeCol@gmx.net> | 2014-01-27 07:42:30 +0100 |
---|---|---|
committer | Philipp Hagemeister <phihag@phihag.de> | 2014-01-27 07:43:02 +0100 |
commit | 4d9be98dbce0d060adeb1748d2a40848efc40e6d (patch) | |
tree | 506cbaec8def42d4ab1fb9be1788c518b0af40f9 /youtube_dl/extractor/malemotion.py | |
parent | 67379078264fa1538ba6f3387873981f9cee3ab5 (diff) |
Malemotion extractor
Diffstat (limited to 'youtube_dl/extractor/malemotion.py')
-rw-r--r-- | youtube_dl/extractor/malemotion.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/youtube_dl/extractor/malemotion.py b/youtube_dl/extractor/malemotion.py new file mode 100644 index 000000000..62e99091d --- /dev/null +++ b/youtube_dl/extractor/malemotion.py @@ -0,0 +1,58 @@ +from __future__ import unicode_literals + +import re + +from .common import InfoExtractor +from ..utils import ( + compat_urllib_parse, +) + +class MalemotionIE(InfoExtractor): + _VALID_URL = r'^(?:https?://)?malemotion\.com/video/(.+?)\.(?P<id>.+?)(#|$)' + _TEST = { + 'url': 'http://malemotion.com/video/bien-dur.10ew', + 'file': '10ew.mp4', + 'md5': 'b3cc49f953b107e4a363cdff07d100ce', + 'info_dict': { + "title": "Bien dur", + "age_limit": 18, + } + } + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group("id") + + 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'<source type="video/mp4" src="(.+?)"', webpage, 'video URL')) + + # Extract title + video_title = self._html_search_regex( + r'<title>(.*?)</title', webpage, 'title') + + # Extract video thumbnail + video_thumbnail = self._search_regex( + r'<video .+?poster="(.+?)"', webpage, 'thumbnail', fatal=False) + + formats = [{ + 'url': video_url, + 'ext': 'mp4', + 'format_id': 'mp4', + 'preference': 1, + }] + + return { + 'id': video_id, + 'formats': formats, + 'uploader': None, + 'upload_date': None, + 'title': video_title, + 'thumbnail': video_thumbnail, + 'description': None, + 'age_limit': 18, + } |