X-Git-Url: https://jfr.im/git/yt-dlp.git/blobdiff_plain/86e5f3ed2e6e71eb81ea4c9e26288f16119ffd0c..61edf57f8f13f6dfd81154174e647eb5fdd26089:/yt_dlp/extractor/webcaster.py diff --git a/yt_dlp/extractor/webcaster.py b/yt_dlp/extractor/webcaster.py index 374fe35cd..b0865e3e6 100644 --- a/yt_dlp/extractor/webcaster.py +++ b/yt_dlp/extractor/webcaster.py @@ -35,7 +35,7 @@ def _real_extract(self, url): formats = [] for format_id in (None, 'noise'): track_tag = join_nonempty('track', format_id, delim='_') - for track in video.findall('.//iphone/%s' % track_tag): + for track in video.findall(f'.//iphone/{track_tag}'): track_url = track.text if not track_url: continue @@ -50,7 +50,6 @@ def _real_extract(self, url): 'format_note': track.get('title'), }) formats.extend(m3u8_formats) - self._sort_formats(formats) thumbnail = xpath_text(video, './/image', 'thumbnail') @@ -64,27 +63,23 @@ def _real_extract(self, url): class WebcasterFeedIE(InfoExtractor): _VALID_URL = r'https?://bl\.webcaster\.pro/feed/start/free_(?P[^/]+)' + _EMBED_REGEX = [r'<(?:object|a[^>]+class=["\']webcaster-player["\'])[^>]+data(?:-config)?=(["\']).*?config=(?Phttps?://bl\.webcaster\.pro/feed/start/free_.*?)(?:[?&]|\1)'] _TEST = { 'url': 'http://bl.webcaster.pro/feed/start/free_c8cefd240aa593681c8d068cff59f407_hd/q393859/eb173f99dd5f558674dae55f4ba6806d/1480289104', 'only_matching': True, } - @staticmethod - def _extract_url(ie, webpage): - mobj = re.search( - r'<(?:object|a[^>]+class=["\']webcaster-player["\'])[^>]+data(?:-config)?=(["\']).*?config=(?Phttps?://bl\.webcaster\.pro/feed/start/free_.*?)(?:[?&]|\1)', - webpage) - if mobj: - return mobj.group('url') + def _extract_from_webpage(self, url, webpage): + yield from super()._extract_from_webpage(url, webpage) + for secure in (True, False): - video_url = ie._og_search_video_url( - webpage, secure=secure, default=None) + video_url = self._og_search_video_url(webpage, secure=secure, default=None) if video_url: mobj = re.search( r'config=(?Phttps?://bl\.webcaster\.pro/feed/start/free_[^?&=]+)', video_url) if mobj: - return mobj.group('url') + yield self.url_result(mobj.group('url'), self) def _real_extract(self, url): video_id = self._match_id(url)