]> jfr.im git - yt-dlp.git/commitdiff
Merge branch 'ondemandkorea' of https://github.com/julien-hadleyjack/youtube-dl into...
authorTom-Oliver Heidel <redacted>
Sun, 6 Sep 2020 02:02:43 +0000 (04:02 +0200)
committerTom-Oliver Heidel <redacted>
Sun, 6 Sep 2020 02:02:43 +0000 (04:02 +0200)
youtube_dlc/extractor/ondemandkorea.py

index df1ce3c1db1eaa22d03609ddb55748e404b1f4a9..cc3c587bc452922160f13517196e916d2dd9c846 100644 (file)
 class OnDemandKoreaIE(InfoExtractor):
     _VALID_URL = r'https?://(?:www\.)?ondemandkorea\.com/(?P<id>[^/]+)\.html'
     _GEO_COUNTRIES = ['US', 'CA']
-    _TEST = {
-        'url': 'http://www.ondemandkorea.com/ask-us-anything-e43.html',
+    _TESTS = [{
+        'url': 'https://www.ondemandkorea.com/ask-us-anything-e43.html',
         'info_dict': {
             'id': 'ask-us-anything-e43',
             'ext': 'mp4',
-            'title': 'Ask Us Anything : E43',
+            'title': 'Ask Us Anything : Gain, Ji Soo - 09/24/2016',
+            'description': 'A talk show/game show with a school theme where celebrity guests appear as “transfer students.”',
             'thumbnail': r're:^https?://.*\.jpg$',
         },
         'params': {
             'skip_download': 'm3u8 download'
         }
-    }
+    }, {
+        'url': 'https://www.ondemandkorea.com/confession-e01-1.html',
+        'info_dict': {
+            'id': 'confession-e01-1',
+            'ext': 'mp4',
+            'title': 'Confession : E01',
+            'description': 'Choi Do-hyun, a criminal attorney, is the son of a death row convict. Ever since Choi Pil-su got arrested for murder, Do-hyun has wanted to solve his ',
+            'thumbnail': r're:^https?://.*\.jpg$',
+            'subtitles': {
+                'English': 'mincount:1',
+            },
+        },
+        'params': {
+            'skip_download': 'm3u8 download'
+        }
+    }]
 
     def _real_extract(self, url):
         video_id = self._match_id(url)
@@ -44,11 +60,18 @@ def _real_extract(self, url):
                 'This video is only available to ODK PLUS members.',
                 expected=True)
 
-        title = self._og_search_title(webpage)
+        if 'ODK PREMIUM Members Only' in webpage:
+            raise ExtractorError(
+                'This video is only available to ODK PREMIUM members.',
+                expected=True)
+
+        title = self._search_regex(
+            r'class=["\']episode_title["\'][^>]*>([^<]+)',
+            webpage, 'episode_title', fatal=False) or self._og_search_title(webpage)
 
         jw_config = self._parse_json(
             self._search_regex(
-                r'(?s)jwplayer\(([\'"])(?:(?!\1).)+\1\)\.setup\s*\((?P<options>.+?)\);',
+                r'(?s)odkPlayer\.init.*?(?P<options>{[^;]+}).*?;',
                 webpage, 'jw config', group='options'),
             video_id, transform_source=js_to_json)
         info = self._parse_jwplayer_data(
@@ -57,6 +80,7 @@ def _real_extract(self, url):
 
         info.update({
             'title': title,
-            'thumbnail': self._og_search_thumbnail(webpage),
+            'description': self._og_search_description(webpage),
+            'thumbnail': self._og_search_thumbnail(webpage)
         })
         return info