diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 2750fc8f9..03543c607 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -1,6 +1,7 @@ from .ard import ARDIE from .arte import ArteTvIE +from .auengine import AuengineIE from .bandcamp import BandcampIE from .bliptv import BlipTVIE, BlipTVUserIE from .breakcom import BreakIE @@ -136,6 +137,7 @@ def gen_extractors(): TudouIE(), CSpanIE(), WimpIE(), + AuengineIE(), GenericIE() ] diff --git a/youtube_dl/extractor/auengine.py b/youtube_dl/extractor/auengine.py new file mode 100644 index 000000000..40ea5ec95 --- /dev/null +++ b/youtube_dl/extractor/auengine.py @@ -0,0 +1,36 @@ +import os.path +import re +import urllib +import urlparse + +from .common import InfoExtractor + +class AuengineIE(InfoExtractor): + _VALID_URL = r'(?:http://)?(?:www\.)?auengine\.com/embed.php\?.*?file=([^&]+).*?' + + def _real_extract(self, url): + mobj = re.match(self._VALID_URL, url) + video_id = mobj.group(1) + webpage = self._download_webpage(url, video_id) + title = self._html_search_regex(r'(?P<title>.+?)', + webpage, u'title') + title = title.strip() + links = re.findall(r'[^A-Za-z0-9]?(?:file|url):\s*["\'](http[^\'"&]*)', webpage) + links = [urllib.unquote(l) for l in links] + for link in links: + root, pathext = os.path.splitext(urlparse.urlparse(link).path) + if pathext == '.png': + thumbnail = link + elif pathext == '.mp4': + url = link + ext = pathext + if ext == title[-len(ext):]: + title = title[:-len(ext)] + ext = ext[1:] + return [{ + 'id': video_id, + 'url': url, + 'ext': ext, + 'title': title, + 'thumbnail': thumbnail, + }]