diff options
| -rw-r--r-- | youtube_dl/extractor/aol.py | 49 | ||||
| -rw-r--r-- | youtube_dl/extractor/engadget.py | 8 | ||||
| -rw-r--r-- | youtube_dl/extractor/fivemin.py | 15 | 
3 files changed, 32 insertions, 40 deletions
| diff --git a/youtube_dl/extractor/aol.py b/youtube_dl/extractor/aol.py index 47f8e4157..185ee3693 100644 --- a/youtube_dl/extractor/aol.py +++ b/youtube_dl/extractor/aol.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from .fivemin import FiveMinIE  class AolIE(InfoExtractor): @@ -42,31 +41,31 @@ class AolIE(InfoExtractor):      def _real_extract(self, url):          mobj = re.match(self._VALID_URL, url)          video_id = mobj.group('id') -          playlist_id = mobj.group('playlist_id') -        if playlist_id and not self._downloader.params.get('noplaylist'): -            self.to_screen('Downloading playlist %s - add --no-playlist to just download video %s' % (playlist_id, video_id)) +        if not playlist_id or self._downloader.params.get('noplaylist'): +            return self.url_result('5min:%s' % video_id) + +        self.to_screen('Downloading playlist %s - add --no-playlist to just download video %s' % (playlist_id, video_id)) -            webpage = self._download_webpage(url, playlist_id) -            title = self._html_search_regex( -                r'<h1 class="video-title[^"]*">(.+?)</h1>', webpage, 'title') -            playlist_html = self._search_regex( -                r"(?s)<ul\s+class='video-related[^']*'>(.*?)</ul>", webpage, -                'playlist HTML') -            entries = [{ -                '_type': 'url', -                'url': 'aol-video:%s' % m.group('id'), -                'ie_key': 'Aol', -            } for m in re.finditer( -                r"<a\s+href='.*videoid=(?P<id>[0-9]+)'\s+class='video-thumb'>", -                playlist_html)] +        webpage = self._download_webpage(url, playlist_id) +        title = self._html_search_regex( +            r'<h1 class="video-title[^"]*">(.+?)</h1>', webpage, 'title') +        playlist_html = self._search_regex( +            r"(?s)<ul\s+class='video-related[^']*'>(.*?)</ul>", webpage, +            'playlist HTML') +        entries = [{ +            '_type': 'url', +            'url': 'aol-video:%s' % m.group('id'), +            'ie_key': 'Aol', +        } for m in re.finditer( +            r"<a\s+href='.*videoid=(?P<id>[0-9]+)'\s+class='video-thumb'>", +            playlist_html)] -            return { -                '_type': 'playlist', -                'id': playlist_id, -                'display_id': mobj.group('playlist_display_id'), -                'title': title, -                'entries': entries, -            } +        return { +            '_type': 'playlist', +            'id': playlist_id, +            'display_id': mobj.group('playlist_display_id'), +            'title': title, +            'entries': entries, +        } -        return FiveMinIE._build_result(video_id) diff --git a/youtube_dl/extractor/engadget.py b/youtube_dl/extractor/engadget.py index 92ada81d2..4ea37ebd9 100644 --- a/youtube_dl/extractor/engadget.py +++ b/youtube_dl/extractor/engadget.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from .fivemin import FiveMinIE  from ..utils import (      url_basename,  ) @@ -27,11 +26,10 @@ class EngadgetIE(InfoExtractor):      }      def _real_extract(self, url): -        mobj = re.match(self._VALID_URL, url) -        video_id = mobj.group('id') +        video_id = self._match_id(url)          if video_id is not None: -            return FiveMinIE._build_result(video_id) +            return self.url_result('5min:%s' % video_id)          else:              title = url_basename(url)              webpage = self._download_webpage(url, title) @@ -39,5 +37,5 @@ class EngadgetIE(InfoExtractor):              return {                  '_type': 'playlist',                  'title': title, -                'entries': [FiveMinIE._build_result(id) for id in ids] +                'entries': [self.url_result('5min:%s' % vid) for vid in ids]              } diff --git a/youtube_dl/extractor/fivemin.py b/youtube_dl/extractor/fivemin.py index f9c127ce6..5b24b921c 100644 --- a/youtube_dl/extractor/fivemin.py +++ b/youtube_dl/extractor/fivemin.py @@ -1,11 +1,11 @@  from __future__ import unicode_literals -import re -  from .common import InfoExtractor -from ..utils import ( +from ..compat import (      compat_str,      compat_urllib_parse, +) +from ..utils import (      ExtractorError,  ) @@ -13,7 +13,7 @@ from ..utils import (  class FiveMinIE(InfoExtractor):      IE_NAME = '5min'      _VALID_URL = r'''(?x) -        (?:https?://[^/]*?5min\.com/Scripts/PlayerSeed\.js\?(.*?&)?playList=| +        (?:https?://[^/]*?5min\.com/Scripts/PlayerSeed\.js\?(?:.*?&)?playList=|              5min:)          (?P<id>\d+)          ''' @@ -41,13 +41,8 @@ class FiveMinIE(InfoExtractor):          },      ] -    @classmethod -    def _build_result(cls, video_id): -        return cls.url_result('5min:%s' % video_id, cls.ie_key()) -      def _real_extract(self, url): -        mobj = re.match(self._VALID_URL, url) -        video_id = mobj.group('id') +        video_id = self._match_id(url)          embed_url = 'https://embed.5min.com/playerseed/?playList=%s' % video_id          embed_page = self._download_webpage(embed_url, video_id,                                              'Downloading embed page') | 
