diff options
| -rw-r--r-- | youtube_dl/extractor/generic.py | 7 | ||||
| -rw-r--r-- | youtube_dl/extractor/openload.py | 8 | 
2 files changed, 15 insertions, 0 deletions
| diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py index 40201f311..a23486620 100644 --- a/youtube_dl/extractor/generic.py +++ b/youtube_dl/extractor/generic.py @@ -80,6 +80,7 @@ from .piksel import PikselIE  from .videa import VideaIE  from .twentymin import TwentyMinutenIE  from .ustream import UstreamIE +from .openload import OpenloadIE  class GenericIE(InfoExtractor): @@ -2431,6 +2432,12 @@ class GenericIE(InfoExtractor):              return _playlist_from_matches(                  twentymin_urls, ie=TwentyMinutenIE.ie_key()) +        # Look for Openload embeds +        openload_urls = OpenloadIE._extract_urls(webpage) +        if openload_urls: +            return _playlist_from_matches( +                openload_urls, ie=OpenloadIE.ie_key()) +          # Looking for http://schema.org/VideoObject          json_ld = self._search_json_ld(              webpage, video_id, default={}, expected_type='VideoObject') diff --git a/youtube_dl/extractor/openload.py b/youtube_dl/extractor/openload.py index 3d4ad7dca..4893ade5d 100644 --- a/youtube_dl/extractor/openload.py +++ b/youtube_dl/extractor/openload.py @@ -1,6 +1,8 @@  # coding: utf-8  from __future__ import unicode_literals +import re +  from .common import InfoExtractor  from ..compat import compat_chr  from ..utils import ( @@ -56,6 +58,12 @@ class OpenloadIE(InfoExtractor):          'only_matching': True,      }] +    @staticmethod +    def _extract_urls(webpage): +        return re.findall( +            r'<iframe[^>]+src=["\']((?:https?://)?(?:openload\.(?:co|io)|oload\.tv)/embed/[a-zA-Z0-9-_]+)', +            webpage) +      def _real_extract(self, url):          video_id = self._match_id(url)          webpage = self._download_webpage('https://openload.co/embed/%s/' % video_id, video_id) | 
