]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/whowatch.py
[ie/orf:on] Improve extraction (#9677)
[yt-dlp.git] / yt_dlp / extractor / whowatch.py
index 8080f289aa9c1d6ca259e8b74ea3254eb7ed4dfe..f2808cd9fc83de6ce01b3a52694e63fd1fb020be 100644 (file)
@@ -1,10 +1,8 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 from .common import InfoExtractor
 from ..utils import (
     int_or_none,
     qualities,
+    try_call,
     try_get,
     ExtractorError,
 )
@@ -26,10 +24,10 @@ def _real_extract(self, url):
         metadata = self._download_json('https://api.whowatch.tv/lives/%s' % video_id, video_id)
         live_data = self._download_json('https://api.whowatch.tv/lives/%s/play' % video_id, video_id)
 
-        title = try_get(None, (
-            lambda x: live_data['share_info']['live_title'][1:-1],
-            lambda x: metadata['live']['title'],
-        ), compat_str)
+        title = try_call(
+            lambda: live_data['share_info']['live_title'][1:-1],
+            lambda: metadata['live']['title'],
+            expected_type=str)
 
         hls_url = live_data.get('hls_url')
         if not hls_url:
@@ -47,8 +45,7 @@ def _real_extract(self, url):
 
             if hls_url:
                 hls_fmts = self._extract_m3u8_formats(
-                    hls_url, video_id, ext='mp4', entry_protocol='m3u8',
-                    m3u8_id='hls-%s' % name, quality=quality)
+                    hls_url, video_id, ext='mp4', m3u8_id='hls-%s' % name, quality=quality)
                 formats.extend(hls_fmts)
             else:
                 hls_fmts = []
@@ -71,10 +68,8 @@ def _real_extract(self, url):
 
         # This contains the same formats as the above manifests and is used only as a fallback
         formats.extend(self._extract_m3u8_formats(
-            hls_url, video_id, ext='mp4', entry_protocol='m3u8',
-            m3u8_id='hls'))
+            hls_url, video_id, ext='mp4', m3u8_id='hls'))
         self._remove_duplicate_formats(formats)
-        self._sort_formats(formats)
 
         uploader_url = try_get(metadata, lambda x: x['live']['user']['user_path'], compat_str)
         if uploader_url: