diff options
Diffstat (limited to 'yt_dlp/extractor')
-rw-r--r-- | yt_dlp/extractor/common.py | 4 | ||||
-rw-r--r-- | yt_dlp/extractor/rutube.py | 2 | ||||
-rw-r--r-- | yt_dlp/extractor/youtube.py | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 31356111b..734651193 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -458,6 +458,8 @@ class InfoExtractor(object): @classmethod def suitable(cls, url): """Receives a URL and returns True if suitable for this IE.""" + # This function must import everything it needs (except other extractors), + # so that lazy_extractors works correctly return cls._match_valid_url(url) is not None @classmethod @@ -622,7 +624,7 @@ class InfoExtractor(object): @classmethod def ie_key(cls): """A string for getting the InfoExtractor with get_info_extractor""" - return compat_str(cls.__name__[:-2]) + return cls.__name__[:-2] @property def IE_NAME(self): diff --git a/yt_dlp/extractor/rutube.py b/yt_dlp/extractor/rutube.py index 01529315f..d027412c4 100644 --- a/yt_dlp/extractor/rutube.py +++ b/yt_dlp/extractor/rutube.py @@ -297,6 +297,8 @@ class RutubePlaylistIE(RutubePlaylistBaseIE): @classmethod def suitable(cls, url): + from ..utils import int_or_none, parse_qs + if not super(RutubePlaylistIE, cls).suitable(url): return False params = parse_qs(url) diff --git a/yt_dlp/extractor/youtube.py b/yt_dlp/extractor/youtube.py index 15e0f8adb..236f5809a 100644 --- a/yt_dlp/extractor/youtube.py +++ b/yt_dlp/extractor/youtube.py @@ -1837,8 +1837,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor): @classmethod def suitable(cls, url): - # Hack for lazy extractors until more generic solution is implemented - # (see #28780) from ..utils import parse_qs qs = parse_qs(url) |