]> git.bitcoin.ninja Git - youtube-dl/commitdiff
[DBTV:generic] Add support for embeds
authorDéstin Reed <trox1972@users.noreply.github.com>
Wed, 17 Aug 2016 10:45:24 +0000 (12:45 +0200)
committerSergey M․ <dstftw@gmail.com>
Thu, 18 Aug 2016 14:29:27 +0000 (21:29 +0700)
youtube_dl/extractor/dbtv.py
youtube_dl/extractor/generic.py

index caff8842e9432f5737f7fee247c943c4a0685920..73dba5e2aea481afa536bc24dc8dc0b936fb30e0 100644 (file)
@@ -38,6 +38,12 @@ class DBTVIE(InfoExtractor):
         'only_matching': True,
     }]
 
+    @staticmethod
+    def _extract_urls(webpage):
+        return [url for _, url in re.findall(
+            r'<iframe[^>]+src=(["\'])((?:https?:)?//(?:www\.)?dbtv\.no/lazyplayer/\d+.*?)\1',
+            webpage)]
+
     def _real_extract(self, url):
         video_id, display_id = re.match(self._VALID_URL, url).groups()
 
index 197ab95319419d29971979b94464aa191ef04a04..1b71f7ac8e42cfd06b1b554636170973ec242886 100644 (file)
@@ -73,6 +73,7 @@ from .eagleplatform import EaglePlatformIE
 from .facebook import FacebookIE
 from .soundcloud import SoundcloudIE
 from .vbox7 import Vbox7IE
+from .dbtv import DBTVIE
 
 
 class GenericIE(InfoExtractor):
@@ -1386,6 +1387,11 @@ class GenericIE(InfoExtractor):
             },
             'add_ie': [Vbox7IE.ie_key()],
         },
+        {
+            # DBTV embeds
+            'url': 'http://www.dagbladet.no/2016/02/23/nyheter/nordlys/ski/troms/ver/43254897/',
+            'playlist_mincount': 3,
+        },
         # {
         #     # TODO: find another test
         #     # http://schema.org/VideoObject
@@ -2257,6 +2263,11 @@ class GenericIE(InfoExtractor):
         if vbox7_url:
             return self.url_result(vbox7_url, Vbox7IE.ie_key())
 
+        # Look for DBTV embeds
+        dbtv_urls = DBTVIE._extract_urls(webpage)
+        if dbtv_urls:
+            return _playlist_from_matches(dbtv_urls, ie=DBTVIE.ie_key())
+
         # Looking for http://schema.org/VideoObject
         json_ld = self._search_json_ld(
             webpage, video_id, default={}, expected_type='VideoObject')