Merge remote-tracking branch 'yasoob/master'
[youtube-dl] / youtube_dl / extractor / __init__.py
index 15270abe75cffef450d830a58dabc90f372521a8..b4a1c20e9489042f6876b1c98fb0d1589dfcfce4 100644 (file)
-from .extractor.ard import ARDIE
-from .extractor.arte import ArteTvIE
-from .extractor.bandcamp import BandcampIE
-from .extractor.bliptv import BlipTVIE, BlipTVUserIE
-from .extractor.comedycentral import ComedyCentralIE
-from .extractor.collegehumor import CollegeHumorIE
-from .extractor.dailymotion import DailymotionIE
-from .extractor.depositfiles import DepositFilesIE
-from .extractor.eighttracks import EightTracksIE
-from .extractor.escapist import EscapistIE
-from .extractor.facebook import FacebookIE
-from .extractor.flickr import FlickrIE
-from .extractor.funnyordie import FunnyOrDieIE
-from .extractor.gametrailers import GametrailersIE
-from .extractor.generic import GenericIE
-from .extractor.googleplus import GooglePlusIE
-from .extractor.googlesearch import GoogleSearchIE
-from .extractor.howcast import HowcastIE
-from .extractor.hypem import HypemIE
-from .extractor.ina import InaIE
-from .extractor.infoq import InfoQIE
-from .extractor.justintv import JustinTVIE
-from .extractor.keek import KeekIE
-from .extractor.liveleak import LiveLeakIE
-from .extractor.metacafe import MetacafeIE
-from .extractor.mixcloud import MixcloudIE
-from .extractor.mtv import MTVIE
-from .extractor.myspass import MySpassIE
-from .extractor.myvideo import MyVideoIE
-from .extractor.nba import NBAIE
-from .extractor.statigram import StatigramIE
-from .extractor.photobucket import PhotobucketIE
-from .extractor.pornotube import PornotubeIE
-from .extractor.rbmaradio import RBMARadioIE
-from .extractor.redtube import RedTubeIE
-from .extractor.soundcloud import SoundcloudIE, SoundcloudSetIE
-from .extractor.spiegel import SpiegelIE
-from .extractor.stanfordoc import StanfordOpenClassroomIE
-from .extractor.steam import SteamIE
-from .extractor.teamcoco import TeamcocoIE
-from .extractor.ted import TEDIE
-from .extractor.tumblr import TumblrIE
-from .extractor.ustream import UstreamIE
-from .extractor.vbox7 import Vbox7IE
-from .extractor.vimeo import VimeoIE
-from .extractor.vine import VineIE
-from .extractor.worldstarhiphop import WorldStarHipHopIE
-from .extractor.xnxx import XNXXIE
-from .extractor.xhamster import XHamsterIE
-from .extractor.xvideos import XVideosIE
-from .extractor.yahoo import YahooIE, YahooSearchIE
-from .extractor.youjizz import YouJizzIE
-from .extractor.youku import YoukuIE
-from .extractor.youporn import YouPornIE
-from .extractor.youtube import YoutubeIE, YoutubePlaylistIE, YoutubeSearchIE, YoutubeUserIE, YoutubeChannelIE
-from .extractor.zdf import ZDFIE
+from .archiveorg import ArchiveOrgIE
+from .ard import ARDIE
+from .arte import ArteTvIE
+from .auengine import AUEngineIE
+from .bandcamp import BandcampIE
+from .bliptv import BlipTVIE, BlipTVUserIE
+from .breakcom import BreakIE
+from .brightcove import BrightcoveIE
+from .canalplus import CanalplusIE
+from .collegehumor import CollegeHumorIE
+from .comedycentral import ComedyCentralIE
+from .condenast import CondeNastIE
+from .criterion import CriterionIE
+from .cspan import CSpanIE
+from .dailymotion import DailymotionIE
+from .depositfiles import DepositFilesIE
+from .dotsub import DotsubIE
+from .dreisat import DreiSatIE
+from .ehow import EHowIE
+from .eighttracks import EightTracksIE
+from .escapist import EscapistIE
+from .exfm import ExfmIE
+from .facebook import FacebookIE
+from .flickr import FlickrIE
+from .freesound import FreesoundIE
+from .funnyordie import FunnyOrDieIE
+from .gamespot import GameSpotIE
+from .gametrailers import GametrailersIE
+from .generic import GenericIE
+from .googleplus import GooglePlusIE
+from .googlesearch import GoogleSearchIE
+from .hotnewhiphop import HotNewHipHopIE
+from .howcast import HowcastIE
+from .hypem import HypemIE
+from .ign import IGNIE, OneUPIE
+from .ina import InaIE
+from .infoq import InfoQIE
+from .instagram import InstagramIE
+from .jukebox import JukeboxIE
+from .justintv import JustinTVIE
+from .keek import KeekIE
+from .liveleak import LiveLeakIE
+from .livestream import LivestreamIE
+from .metacafe import MetacafeIE
+from .mixcloud import MixcloudIE
+from .mtv import MTVIE
+from .myspass import MySpassIE
+from .myvideo import MyVideoIE
+from .nba import NBAIE
+from .photobucket import PhotobucketIE
+from .pornotube import PornotubeIE
+from .rbmaradio import RBMARadioIE
+from .redtube import RedTubeIE
+from .ringtv import RingTVIE
+from .sina import SinaIE
+from .soundcloud import SoundcloudIE, SoundcloudSetIE
+from .spiegel import SpiegelIE
+from .stanfordoc import StanfordOpenClassroomIE
+from .statigram import StatigramIE
+from .steam import SteamIE
+from .teamcoco import TeamcocoIE
+from .ted import TEDIE
+from .tf1 import TF1IE
+from .thisav import ThisAVIE
+from .traileraddict import TrailerAddictIE
+from .tudou import TudouIE
+from .tumblr import TumblrIE
+from .tutv import TutvIE
+from .ustream import UstreamIE
+from .vbox7 import Vbox7IE
+from .veoh import VeohIE
+from .vevo import VevoIE
+from .vimeo import VimeoIE
+from .vine import VineIE
+from .c56 import C56IE
+from .wat import WatIE
+from .weibo import WeiboIE
+from .wimp import WimpIE
+from .worldstarhiphop import WorldStarHipHopIE
+from .xhamster import XHamsterIE
+from .xnxx import XNXXIE
+from .xvideos import XVideosIE
+from .yahoo import YahooIE, YahooSearchIE
+from .youjizz import YouJizzIE
+from .youku import YoukuIE
+from .youporn import YouPornIE
+from .youtube import (
+    YoutubeIE,
+    YoutubePlaylistIE,
+    YoutubeSearchIE,
+    YoutubeUserIE,
+    YoutubeChannelIE,
+    YoutubeShowIE,
+    YoutubeSubscriptionsIE,
+)
+from .zdf import ZDFIE
+
+
+_ALL_CLASSES = [
+    klass
+    for name, klass in globals().items()
+    if name.endswith('IE') and name != 'GenericIE'
+]
+_ALL_CLASSES.append(GenericIE)
 
 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 [
-        YoutubePlaylistIE(),
-        YoutubeChannelIE(),
-        YoutubeUserIE(),
-        YoutubeSearchIE(),
-        YoutubeIE(),
-        MetacafeIE(),
-        DailymotionIE(),
-        GoogleSearchIE(),
-        PhotobucketIE(),
-        YahooIE(),
-        YahooSearchIE(),
-        DepositFilesIE(),
-        FacebookIE(),
-        BlipTVIE(),
-        BlipTVUserIE(),
-        VimeoIE(),
-        MyVideoIE(),
-        ComedyCentralIE(),
-        EscapistIE(),
-        CollegeHumorIE(),
-        XVideosIE(),
-        SoundcloudSetIE(),
-        SoundcloudIE(),
-        InfoQIE(),
-        MixcloudIE(),
-        StanfordOpenClassroomIE(),
-        MTVIE(),
-        YoukuIE(),
-        XNXXIE(),
-        YouJizzIE(),
-        PornotubeIE(),
-        YouPornIE(),
-        GooglePlusIE(),
-        ArteTvIE(),
-        NBAIE(),
-        WorldStarHipHopIE(),
-        JustinTVIE(),
-        FunnyOrDieIE(),
-        SteamIE(),
-        UstreamIE(),
-        RBMARadioIE(),
-        EightTracksIE(),
-        KeekIE(),
-        TEDIE(),
-        MySpassIE(),
-        SpiegelIE(),
-        LiveLeakIE(),
-        ARDIE(),
-        ZDFIE(),
-        TumblrIE(),
-        BandcampIE(),
-        RedTubeIE(),
-        InaIE(),
-        HowcastIE(),
-        VineIE(),
-        FlickrIE(),
-        TeamcocoIE(),
-        XHamsterIE(),
-        HypemIE(),
-        Vbox7IE(),
-        GametrailersIE(),
-        StatigramIE(),
-        GenericIE()
-    ]
+    return [klass() for klass in _ALL_CLASSES]
 
 def get_info_extractor(ie_name):
     """Returns the info extractor class with the given ie_name"""