aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/extractor/webcaster.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-08-01 06:53:25 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-08-02 01:08:16 +0530
commitbfd973ece3369c593b5e82a88cc16de80088a73e (patch)
tree6a61140e44f412d16ece6794b5b3e4ead4905b3c /yt_dlp/extractor/webcaster.py
parent1e8fe57e5cd0f33f940df87430d75e1230ec5b7a (diff)
downloadhypervideo-pre-bfd973ece3369c593b5e82a88cc16de80088a73e.tar.lz
hypervideo-pre-bfd973ece3369c593b5e82a88cc16de80088a73e.tar.xz
hypervideo-pre-bfd973ece3369c593b5e82a88cc16de80088a73e.zip
[extractors] Use new framework for existing embeds (#4307)
`Brightcove` is difficult to migrate because it's subclasses may depend on the signature of the current functions. So it is left as-is for now Note: Tests have not been migrated
Diffstat (limited to 'yt_dlp/extractor/webcaster.py')
-rw-r--r--yt_dlp/extractor/webcaster.py16
1 files changed, 6 insertions, 10 deletions
diff --git a/yt_dlp/extractor/webcaster.py b/yt_dlp/extractor/webcaster.py
index 374fe35cd..a66a5f8c5 100644
--- a/yt_dlp/extractor/webcaster.py
+++ b/yt_dlp/extractor/webcaster.py
@@ -64,27 +64,23 @@ class WebcasterIE(InfoExtractor):
class WebcasterFeedIE(InfoExtractor):
_VALID_URL = r'https?://bl\.webcaster\.pro/feed/start/free_(?P<id>[^/]+)'
+ _EMBED_REGEX = [r'<(?:object|a[^>]+class=["\']webcaster-player["\'])[^>]+data(?:-config)?=(["\']).*?config=(?P<url>https?://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=(?P<url>https?://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=(?P<url>https?://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)