about summary refs log tree commit diff
path: root/youtube_dl/extractor/ketnet.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-09-28 22:58:25 +0700
committerSergey M․ <dstftw@gmail.com>2016-09-28 22:58:25 +0700
commitf533490bb7b2d25b9c6fe7ccd381ebe2bef7d4f8 (patch)
treee1db62333be28246d7bfebbaac0c95d88c389798 /youtube_dl/extractor/ketnet.py
parent8bfda726c20198b7e68a805967917ef1a79e9b91 (diff)
downloadyoutube-dl-f533490bb7b2d25b9c6fe7ccd381ebe2bef7d4f8.tar.gz
youtube-dl-f533490bb7b2d25b9c6fe7ccd381ebe2bef7d4f8.tar.xz
youtube-dl-f533490bb7b2d25b9c6fe7ccd381ebe2bef7d4f8.zip
[ketnet] Extract mzsource formats (#10770)
Diffstat (limited to 'youtube_dl/extractor/ketnet.py')
-rw-r--r--youtube_dl/extractor/ketnet.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/youtube_dl/extractor/ketnet.py b/youtube_dl/extractor/ketnet.py
index aaf3f807a..eb0a16008 100644
--- a/youtube_dl/extractor/ketnet.py
+++ b/youtube_dl/extractor/ketnet.py
@@ -21,6 +21,10 @@ class KetnetIE(InfoExtractor):
     }, {
         'url': 'https://www.ketnet.be/achter-de-schermen/sien-repeteert-voor-stars-for-life',
         'only_matching': True,
+    }, {
+        # mzsource, geo restricted to Belgium
+        'url': 'https://www.ketnet.be/kijken/nachtwacht/de-bermadoe',
+        'only_matching': True,
     }]
 
     def _real_extract(self, url):
@@ -36,9 +40,25 @@ class KetnetIE(InfoExtractor):
 
         title = config['title']
 
-        formats = self._extract_m3u8_formats(
-            config['source']['hls'], video_id, 'mp4',
-            entry_protocol='m3u8_native', m3u8_id='hls')
+        formats = []
+        for source_key in ('', 'mz'):
+            source = config.get('%ssource' % source_key)
+            if not isinstance(source, dict):
+                continue
+            for format_id, format_url in source.items():
+                if format_id == 'hls':
+                    formats.extend(self._extract_m3u8_formats(
+                        format_url, video_id, 'mp4',
+                        entry_protocol='m3u8_native', m3u8_id=format_id,
+                        fatal=False))
+                elif format_id == 'hds':
+                    formats.extend(self._extract_f4m_formats(
+                        format_url, video_id, f4m_id=format_id, fatal=False))
+                else:
+                    formats.append({
+                        'url': format_url,
+                        'format_id': format_id,
+                    })
         self._sort_formats(formats)
 
         return {