diff options
author | James Taylor <user234683@users.noreply.github.com> | 2018-07-11 01:31:44 -0700 |
---|---|---|
committer | James Taylor <user234683@users.noreply.github.com> | 2018-07-11 01:31:44 -0700 |
commit | aea11c407f7be904037183da152c4cdf561cd65e (patch) | |
tree | 5fad52326feee68c3771becee44fdf24ceebca05 /youtube_dl/extractor/__init__.py | |
parent | 2b308ec9f0fd1ba296db7bcdcea9f93aebf6eaa1 (diff) | |
download | yt-local-aea11c407f7be904037183da152c4cdf561cd65e.tar.lz yt-local-aea11c407f7be904037183da152c4cdf561cd65e.tar.xz yt-local-aea11c407f7be904037183da152c4cdf561cd65e.zip |
track custom youtube-dl distribution
Diffstat (limited to 'youtube_dl/extractor/__init__.py')
-rw-r--r-- | youtube_dl/extractor/__init__.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/youtube_dl/extractor/__init__.py b/youtube_dl/extractor/__init__.py new file mode 100644 index 0000000..d5a4418 --- /dev/null +++ b/youtube_dl/extractor/__init__.py @@ -0,0 +1,46 @@ +from __future__ import unicode_literals + +try: + from .lazy_extractors import * + from .lazy_extractors import _ALL_CLASSES + _LAZY_LOADER = True +except ImportError: + _LAZY_LOADER = False + from .extractors import * + + _ALL_CLASSES = [ + klass + for name, klass in globals().items() + if name.endswith('IE') and name != 'GenericIE' + ] + #_ALL_CLASSES.append(GenericIE) + + +def gen_extractor_classes(): + """ Return a list of supported extractors. + The order does matter; the first extractor matched is the one handling the URL. + """ + return _ALL_CLASSES + + +def gen_extractors(): + """ Return a list of an instance of every supported extractor. + The order does matter; the first extractor matched is the one handling the URL. + """ + return [klass() for klass in gen_extractor_classes()] + + +def list_extractors(age_limit): + """ + Return a list of extractors that are suitable for the given age, + sorted by extractor ID. + """ + + return sorted( + filter(lambda ie: ie.is_suitable(age_limit), gen_extractors()), + key=lambda ie: ie.IE_NAME.lower()) + + +def get_info_extractor(ie_name): + """Returns the info extractor class with the given ie_name""" + return globals()[ie_name + 'IE'] |