]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/__init__.py
[extractor] Use classmethod/property where possible
[yt-dlp.git] / yt_dlp / extractor / __init__.py
index 506ffe87cedc6a9b70e7f93a92ac9f2d7d6608fa..afd3d05ac8f076022e9309f8baa2a01dfa739aa4 100644 (file)
@@ -37,11 +37,17 @@ def gen_extractors():
     return [klass() for klass in gen_extractor_classes()]
 
 
-def list_extractors(age_limit):
+def list_extractor_classes(age_limit=None):
     """Return a list of extractors that are suitable for the given age, sorted by extractor name"""
-    return sorted(filter(
-        lambda ie: ie.is_suitable(age_limit),
-        gen_extractors()), key=lambda ie: ie.IE_NAME.lower())
+    yield from sorted(filter(
+        lambda ie: ie.is_suitable(age_limit) and ie != GenericIE,  # noqa: F405
+        gen_extractor_classes()), key=lambda ie: ie.IE_NAME.lower())
+    yield GenericIE  # noqa: F405
+
+
+def list_extractors(age_limit=None):
+    """Return a list of extractor instances that are suitable for the given age, sorted by extractor name"""
+    return [ie() for ie in list_extractor_classes(age_limit)]
 
 
 def get_info_extractor(ie_name):