youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit 4d9be98dbce0d060adeb1748d2a40848efc40e6d
parent 67379078264fa1538ba6f3387873981f9cee3ab5
Author: MikeCol <MikeCol@gmx.net>
Date:   Mon, 27 Jan 2014 07:42:30 +0100

Malemotion extractor

Diffstat:
Myoutube_dl/extractor/__init__.py | 1+
Ayoutube_dl/extractor/malemotion.py | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py @@ -115,6 +115,7 @@ from .lynda import ( LyndaCourseIE ) from .macgamestore import MacGameStoreIE +from .malemotion import MalemotionIE from .mdr import MDRIE from .metacafe import MetacafeIE from .metacritic import MetacriticIE diff --git a/youtube_dl/extractor/malemotion.py 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, + }