diff options
Diffstat (limited to 'youtube_dl')
| -rw-r--r-- | youtube_dl/extractor/__init__.py | 3 | ||||
| -rw-r--r-- | youtube_dl/extractor/academicearth.py | 36 | ||||
| -rw-r--r-- | youtube_dl/extractor/common.py | 2 | 
3 files changed, 39 insertions, 2 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py index 2761b5439..7f2f8806e 100644 --- a/youtube_dl/extractor/__init__.py +++ b/youtube_dl/extractor/__init__.py @@ -1,6 +1,7 @@ -from .appletrailers import AppleTrailersIE +from .academicearth import AcademicEarthCourseIE  from .addanime import AddAnimeIE  from .anitube import AnitubeIE +from .appletrailers import AppleTrailersIE  from .archiveorg import ArchiveOrgIE  from .ard import ARDIE  from .arte import ( diff --git a/youtube_dl/extractor/academicearth.py b/youtube_dl/extractor/academicearth.py new file mode 100644 index 000000000..5045e7332 --- /dev/null +++ b/youtube_dl/extractor/academicearth.py @@ -0,0 +1,36 @@ +import datetime +import json +import re + +from .common import InfoExtractor +from ..utils import ( +    remove_start, +) + + +class AcademicEarthCourseIE(InfoExtractor): +    _VALID_URL = r'^https?://(?:www\.)?academicearth\.org/courses/(?P<id>[^?#/]+)' +    IE_NAME = u'AcademicEarth:Course' + +    def _real_extract(self, url): +        m = re.match(self._VALID_URL, url) +        playlist_id = m.group('id') + +        webpage = self._download_webpage(url, playlist_id) +        title = self._html_search_regex( +            r'<h1 class="playlist-name">(.*?)</h1>', webpage, u'title') +        description = self._html_search_regex( +            r'<p class="excerpt">(.*?)</p>', +            webpage, u'description', fatal=False) +        urls = re.findall( +            r'<h3 class="lecture-title"><a target="_blank" href="([^"]+)">', +            webpage) +        entries = [self.url_result(u) for u in urls] + +        return { +            '_type': 'playlist', +            'id': playlist_id, +            'title': title, +            'description': description, +            'entries': entries, +        } diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 11b6ed524..1fc0624a3 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -295,7 +295,7 @@ class InfoExtractor(object):                  mobj = re.search(p, string, flags)                  if mobj: break -        if sys.stderr.isatty() and os.name != 'nt': +        if os.name != 'nt' and sys.stderr.isatty():              _name = u'\033[0;34m%s\033[0m' % name          else:              _name = name  | 
