[options] PEP8 and simpler --merge-output-format handling (#4673)
[ytdl] / youtube_dl / extractor / __init__.py
1 from __future__ import unicode_literals
2
3 from .abc import ABCIE
4 from .academicearth import AcademicEarthCourseIE
5 from .addanime import AddAnimeIE
6 from .adobetv import AdobeTVIE
7 from .adultswim import AdultSwimIE
8 from .aftonbladet import AftonbladetIE
9 from .aljazeera import AlJazeeraIE
10 from .alphaporno import AlphaPornoIE
11 from .anitube import AnitubeIE
12 from .anysex import AnySexIE
13 from .aol import AolIE
14 from .allocine import AllocineIE
15 from .aparat import AparatIE
16 from .appletrailers import AppleTrailersIE
17 from .archiveorg import ArchiveOrgIE
18 from .ard import ARDIE, ARDMediathekIE
19 from .arte import (
20     ArteTvIE,
21     ArteTVPlus7IE,
22     ArteTVCreativeIE,
23     ArteTVConcertIE,
24     ArteTVFutureIE,
25     ArteTVDDCIE,
26     ArteTVEmbedIE,
27 )
28 from .atresplayer import AtresPlayerIE
29 from .audiomack import AudiomackIE
30 from .auengine import AUEngineIE
31 from .azubu import AzubuIE
32 from .bambuser import BambuserIE, BambuserChannelIE
33 from .bandcamp import BandcampIE, BandcampAlbumIE
34 from .bbccouk import BBCCoUkIE
35 from .beeg import BeegIE
36 from .behindkink import BehindKinkIE
37 from .bet import BetIE
38 from .bild import BildIE
39 from .bilibili import BiliBiliIE
40 from .blinkx import BlinkxIE
41 from .bliptv import BlipTVIE, BlipTVUserIE
42 from .bloomberg import BloombergIE
43 from .bpb import BpbIE
44 from .br import BRIE
45 from .breakcom import BreakIE
46 from .brightcove import BrightcoveIE
47 from .buzzfeed import BuzzFeedIE
48 from .byutv import BYUtvIE
49 from .c56 import C56IE
50 from .canal13cl import Canal13clIE
51 from .canalplus import CanalplusIE
52 from .canalc2 import Canalc2IE
53 from .cbs import CBSIE
54 from .cbsnews import CBSNewsIE
55 from .ceskatelevize import CeskaTelevizeIE
56 from .channel9 import Channel9IE
57 from .chilloutzone import ChilloutzoneIE
58 from .cinchcast import CinchcastIE
59 from .clipfish import ClipfishIE
60 from .cliphunter import CliphunterIE
61 from .clipsyndicate import ClipsyndicateIE
62 from .cloudy import CloudyIE
63 from .clubic import ClubicIE
64 from .cmt import CMTIE
65 from .cnet import CNETIE
66 from .cnn import (
67     CNNIE,
68     CNNBlogsIE,
69     CNNArticleIE,
70 )
71 from .collegehumor import CollegeHumorIE
72 from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE
73 from .comcarcoff import ComCarCoffIE
74 from .commonmistakes import CommonMistakesIE
75 from .condenast import CondeNastIE
76 from .cracked import CrackedIE
77 from .criterion import CriterionIE
78 from .crunchyroll import (
79     CrunchyrollIE,
80     CrunchyrollShowPlaylistIE
81 )
82 from .cspan import CSpanIE
83 from .dailymotion import (
84     DailymotionIE,
85     DailymotionPlaylistIE,
86     DailymotionUserIE,
87 )
88 from .daum import DaumIE
89 from .dbtv import DBTVIE
90 from .deezer import DeezerPlaylistIE
91 from .dfb import DFBIE
92 from .dotsub import DotsubIE
93 from .dreisat import DreiSatIE
94 from .drtuber import DrTuberIE
95 from .drtv import DRTVIE
96 from .dvtv import DVTVIE
97 from .dump import DumpIE
98 from .defense import DefenseGouvFrIE
99 from .discovery import DiscoveryIE
100 from .divxstage import DivxStageIE
101 from .dropbox import DropboxIE
102 from .ebaumsworld import EbaumsWorldIE
103 from .echomsk import EchoMskIE
104 from .ehow import EHowIE
105 from .eighttracks import EightTracksIE
106 from .einthusan import EinthusanIE
107 from .eitb import EitbIE
108 from .ellentv import (
109     EllenTVIE,
110     EllenTVClipsIE,
111 )
112 from .elpais import ElPaisIE
113 from .empflix import EMPFlixIE
114 from .engadget import EngadgetIE
115 from .eporner import EpornerIE
116 from .eroprofile import EroProfileIE
117 from .escapist import EscapistIE
118 from .everyonesmixtape import EveryonesMixtapeIE
119 from .exfm import ExfmIE
120 from .expotv import ExpoTVIE
121 from .extremetube import ExtremeTubeIE
122 from .facebook import FacebookIE
123 from .faz import FazIE
124 from .fc2 import FC2IE
125 from .firedrive import FiredriveIE
126 from .firstpost import FirstpostIE
127 from .firsttv import FirstTVIE
128 from .fivemin import FiveMinIE
129 from .fktv import (
130     FKTVIE,
131     FKTVPosteckeIE,
132 )
133 from .flickr import FlickrIE
134 from .folketinget import FolketingetIE
135 from .fourtube import FourTubeIE
136 from .foxgay import FoxgayIE
137 from .foxnews import FoxNewsIE
138 from .franceculture import FranceCultureIE
139 from .franceinter import FranceInterIE
140 from .francetv import (
141     PluzzIE,
142     FranceTvInfoIE,
143     FranceTVIE,
144     GenerationQuoiIE,
145     CultureboxIE,
146 )
147 from .freesound import FreesoundIE
148 from .freespeech import FreespeechIE
149 from .freevideo import FreeVideoIE
150 from .funnyordie import FunnyOrDieIE
151 from .gamekings import GamekingsIE
152 from .gameone import (
153     GameOneIE,
154     GameOnePlaylistIE,
155 )
156 from .gamespot import GameSpotIE
157 from .gamestar import GameStarIE
158 from .gametrailers import GametrailersIE
159 from .gdcvault import GDCVaultIE
160 from .generic import GenericIE
161 from .giantbomb import GiantBombIE
162 from .giga import GigaIE
163 from .glide import GlideIE
164 from .globo import GloboIE
165 from .godtube import GodTubeIE
166 from .goldenmoustache import GoldenMoustacheIE
167 from .golem import GolemIE
168 from .googleplus import GooglePlusIE
169 from .googlesearch import GoogleSearchIE
170 from .gorillavid import GorillaVidIE
171 from .goshgay import GoshgayIE
172 from .grooveshark import GroovesharkIE
173 from .groupon import GrouponIE
174 from .hark import HarkIE
175 from .heise import HeiseIE
176 from .hellporno import HellPornoIE
177 from .helsinki import HelsinkiIE
178 from .hentaistigma import HentaiStigmaIE
179 from .hitbox import HitboxIE, HitboxLiveIE
180 from .hornbunny import HornBunnyIE
181 from .hostingbulk import HostingBulkIE
182 from .hotnewhiphop import HotNewHipHopIE
183 from .howcast import HowcastIE
184 from .howstuffworks import HowStuffWorksIE
185 from .huffpost import HuffPostIE
186 from .hypem import HypemIE
187 from .iconosquare import IconosquareIE
188 from .ign import IGNIE, OneUPIE
189 from .imdb import (
190     ImdbIE,
191     ImdbListIE
192 )
193 from .ina import InaIE
194 from .infoq import InfoQIE
195 from .instagram import InstagramIE, InstagramUserIE
196 from .internetvideoarchive import InternetVideoArchiveIE
197 from .iprima import IPrimaIE
198 from .ivi import (
199     IviIE,
200     IviCompilationIE
201 )
202 from .izlesene import IzleseneIE
203 from .jadorecettepub import JadoreCettePubIE
204 from .jeuxvideo import JeuxVideoIE
205 from .jove import JoveIE
206 from .jukebox import JukeboxIE
207 from .jpopsukitv import JpopsukiIE
208 from .kankan import KankanIE
209 from .keezmovies import KeezMoviesIE
210 from .khanacademy import KhanAcademyIE
211 from .kickstarter import KickStarterIE
212 from .keek import KeekIE
213 from .kontrtube import KontrTubeIE
214 from .krasview import KrasViewIE
215 from .ku6 import Ku6IE
216 from .la7 import LA7IE
217 from .laola1tv import Laola1TvIE
218 from .lifenews import LifeNewsIE
219 from .liveleak import LiveLeakIE
220 from .livestream import (
221     LivestreamIE,
222     LivestreamOriginalIE,
223     LivestreamShortenerIE,
224 )
225 from .lrt import LRTIE
226 from .lynda import (
227     LyndaIE,
228     LyndaCourseIE
229 )
230 from .m6 import M6IE
231 from .macgamestore import MacGameStoreIE
232 from .mailru import MailRuIE
233 from .malemotion import MalemotionIE
234 from .mdr import MDRIE
235 from .metacafe import MetacafeIE
236 from .metacritic import MetacriticIE
237 from .mgoon import MgoonIE
238 from .minhateca import MinhatecaIE
239 from .ministrygrid import MinistryGridIE
240 from .mit import TechTVMITIE, MITIE, OCWMITIE
241 from .mitele import MiTeleIE
242 from .mixcloud import MixcloudIE
243 from .mlb import MLBIE
244 from .mpora import MporaIE
245 from .moevideo import MoeVideoIE
246 from .mofosex import MofosexIE
247 from .mojvideo import MojvideoIE
248 from .moniker import MonikerIE
249 from .mooshare import MooshareIE
250 from .morningstar import MorningstarIE
251 from .motherless import MotherlessIE
252 from .motorsport import MotorsportIE
253 from .movieclips import MovieClipsIE
254 from .moviezine import MoviezineIE
255 from .movshare import MovShareIE
256 from .mtv import (
257     MTVIE,
258     MTVServicesEmbeddedIE,
259     MTVIggyIE,
260 )
261 from .muenchentv import MuenchenTVIE
262 from .musicplayon import MusicPlayOnIE
263 from .musicvault import MusicVaultIE
264 from .muzu import MuzuTVIE
265 from .myspace import MySpaceIE, MySpaceAlbumIE
266 from .myspass import MySpassIE
267 from .myvideo import MyVideoIE
268 from .myvidster import MyVidsterIE
269 from .naver import NaverIE
270 from .nba import NBAIE
271 from .nbc import (
272     NBCIE,
273     NBCNewsIE,
274 )
275 from .ndr import NDRIE
276 from .ndtv import NDTVIE
277 from .netzkino import NetzkinoIE
278 from .nerdcubed import NerdCubedFeedIE
279 from .newgrounds import NewgroundsIE
280 from .newstube import NewstubeIE
281 from .nfb import NFBIE
282 from .nfl import NFLIE
283 from .nhl import NHLIE, NHLVideocenterIE
284 from .niconico import NiconicoIE, NiconicoPlaylistIE
285 from .ninegag import NineGagIE
286 from .noco import NocoIE
287 from .normalboots import NormalbootsIE
288 from .nosvideo import NosVideoIE
289 from .novamov import NovaMovIE
290 from .nowness import NownessIE
291 from .nowvideo import NowVideoIE
292 from .npo import (
293     NPOIE,
294     TegenlichtVproIE,
295 )
296 from .nrk import (
297     NRKIE,
298     NRKTVIE,
299 )
300 from .ntv import NTVIE
301 from .nytimes import NYTimesIE
302 from .nuvid import NuvidIE
303 from .oktoberfesttv import OktoberfestTVIE
304 from .ooyala import OoyalaIE
305 from .openfilm import OpenFilmIE
306 from .orf import (
307     ORFTVthekIE,
308     ORFOE1IE,
309     ORFFM4IE,
310 )
311 from .parliamentliveuk import ParliamentLiveUKIE
312 from .patreon import PatreonIE
313 from .pbs import PBSIE
314 from .phoenix import PhoenixIE
315 from .photobucket import PhotobucketIE
316 from .planetaplay import PlanetaPlayIE
317 from .played import PlayedIE
318 from .playfm import PlayFMIE
319 from .playvid import PlayvidIE
320 from .podomatic import PodomaticIE
321 from .pornhd import PornHdIE
322 from .pornhub import PornHubIE
323 from .pornotube import PornotubeIE
324 from .pornoxo import PornoXOIE
325 from .promptfile import PromptFileIE
326 from .prosiebensat1 import ProSiebenSat1IE
327 from .pyvideo import PyvideoIE
328 from .quickvid import QuickVidIE
329 from .radiode import RadioDeIE
330 from .radiobremen import RadioBremenIE
331 from .radiofrance import RadioFranceIE
332 from .rai import RaiIE
333 from .rbmaradio import RBMARadioIE
334 from .redtube import RedTubeIE
335 from .restudy import RestudyIE
336 from .reverbnation import ReverbNationIE
337 from .ringtv import RingTVIE
338 from .ro220 import Ro220IE
339 from .rottentomatoes import RottenTomatoesIE
340 from .roxwel import RoxwelIE
341 from .rtbf import RTBFIE
342 from .rtlnl import RtlXlIE
343 from .rtlnow import RTLnowIE
344 from .rtp import RTPIE
345 from .rts import RTSIE
346 from .rtve import RTVEALaCartaIE, RTVELiveIE
347 from .ruhd import RUHDIE
348 from .rutube import (
349     RutubeIE,
350     RutubeChannelIE,
351     RutubeEmbedIE,
352     RutubeMovieIE,
353     RutubePersonIE,
354 )
355 from .rutv import RUTVIE
356 from .sapo import SapoIE
357 from .savefrom import SaveFromIE
358 from .sbs import SBSIE
359 from .scivee import SciVeeIE
360 from .screencast import ScreencastIE
361 from .screencastomatic import ScreencastOMaticIE
362 from .screenwavemedia import CinemassacreIE, ScreenwaveMediaIE, TeamFourIE
363 from .servingsys import ServingSysIE
364 from .sexu import SexuIE
365 from .sexykarma import SexyKarmaIE
366 from .shared import SharedIE
367 from .sharesix import ShareSixIE
368 from .sina import SinaIE
369 from .slideshare import SlideshareIE
370 from .slutload import SlutloadIE
371 from .smotri import (
372     SmotriIE,
373     SmotriCommunityIE,
374     SmotriUserIE,
375     SmotriBroadcastIE,
376 )
377 from .snotr import SnotrIE
378 from .sockshare import SockshareIE
379 from .sohu import SohuIE
380 from .soundcloud import (
381     SoundcloudIE,
382     SoundcloudSetIE,
383     SoundcloudUserIE,
384     SoundcloudPlaylistIE
385 )
386 from .soundgasm import SoundgasmIE
387 from .southpark import (
388     SouthParkIE,
389     SouthparkDeIE,
390 )
391 from .space import SpaceIE
392 from .spankwire import SpankwireIE
393 from .spiegel import SpiegelIE, SpiegelArticleIE
394 from .spiegeltv import SpiegeltvIE
395 from .spike import SpikeIE
396 from .sport5 import Sport5IE
397 from .sportbox import SportBoxIE
398 from .sportdeutschland import SportDeutschlandIE
399 from .srmediathek import SRMediathekIE
400 from .stanfordoc import StanfordOpenClassroomIE
401 from .steam import SteamIE
402 from .streamcloud import StreamcloudIE
403 from .streamcz import StreamCZIE
404 from .sunporno import SunPornoIE
405 from .swrmediathek import SWRMediathekIE
406 from .syfy import SyfyIE
407 from .sztvhu import SztvHuIE
408 from .tagesschau import TagesschauIE
409 from .tapely import TapelyIE
410 from .tass import TassIE
411 from .teachertube import (
412     TeacherTubeIE,
413     TeacherTubeUserIE,
414 )
415 from .teachingchannel import TeachingChannelIE
416 from .teamcoco import TeamcocoIE
417 from .techtalks import TechTalksIE
418 from .ted import TEDIE
419 from .telebruxelles import TeleBruxellesIE
420 from .telecinco import TelecincoIE
421 from .telemb import TeleMBIE
422 from .teletask import TeleTaskIE
423 from .tenplay import TenPlayIE
424 from .testurl import TestURLIE
425 from .tf1 import TF1IE
426 from .theonion import TheOnionIE
427 from .theplatform import ThePlatformIE
428 from .thesixtyone import TheSixtyOneIE
429 from .thisav import ThisAVIE
430 from .tinypic import TinyPicIE
431 from .tlc import TlcIE, TlcDeIE
432 from .tmz import TMZIE
433 from .tnaflix import TNAFlixIE
434 from .thvideo import (
435     THVideoIE,
436     THVideoPlaylistIE
437 )
438 from .toutv import TouTvIE
439 from .toypics import ToypicsUserIE, ToypicsIE
440 from .traileraddict import TrailerAddictIE
441 from .trilulilu import TriluliluIE
442 from .trutube import TruTubeIE
443 from .tube8 import Tube8IE
444 from .tudou import TudouIE
445 from .tumblr import TumblrIE
446 from .tunein import TuneInIE
447 from .turbo import TurboIE
448 from .tutv import TutvIE
449 from .tvigle import TvigleIE
450 from .tvp import TvpIE
451 from .tvplay import TVPlayIE
452 from .twentyfourvideo import TwentyFourVideoIE
453 from .twitch import TwitchIE
454 from .ubu import UbuIE
455 from .udemy import (
456     UdemyIE,
457     UdemyCourseIE
458 )
459 from .unistra import UnistraIE
460 from .urort import UrortIE
461 from .ustream import UstreamIE, UstreamChannelIE
462 from .vbox7 import Vbox7IE
463 from .veehd import VeeHDIE
464 from .veoh import VeohIE
465 from .vesti import VestiIE
466 from .vevo import VevoIE
467 from .vgtv import VGTVIE
468 from .vh1 import VH1IE
469 from .vice import ViceIE
470 from .viddler import ViddlerIE
471 from .videobam import VideoBamIE
472 from .videodetective import VideoDetectiveIE
473 from .videolecturesnet import VideoLecturesNetIE
474 from .videofyme import VideofyMeIE
475 from .videomega import VideoMegaIE
476 from .videopremium import VideoPremiumIE
477 from .videott import VideoTtIE
478 from .videoweed import VideoWeedIE
479 from .vidme import VidmeIE
480 from .vidzi import VidziIE
481 from .vier import VierIE, VierVideosIE
482 from .vimeo import (
483     VimeoIE,
484     VimeoAlbumIE,
485     VimeoChannelIE,
486     VimeoGroupsIE,
487     VimeoLikesIE,
488     VimeoReviewIE,
489     VimeoUserIE,
490     VimeoWatchLaterIE,
491 )
492 from .vimple import VimpleIE
493 from .vine import (
494     VineIE,
495     VineUserIE,
496 )
497 from .viki import VikiIE
498 from .vk import (
499     VKIE,
500     VKUserVideosIE,
501 )
502 from .vodlocker import VodlockerIE
503 from .vporn import VpornIE
504 from .vrt import VRTIE
505 from .vube import VubeIE
506 from .vuclip import VuClipIE
507 from .vulture import VultureIE
508 from .walla import WallaIE
509 from .washingtonpost import WashingtonPostIE
510 from .wat import WatIE
511 from .wayofthemaster import WayOfTheMasterIE
512 from .wdr import (
513     WDRIE,
514     WDRMobileIE,
515     WDRMausIE,
516 )
517 from .webofstories import WebOfStoriesIE
518 from .weibo import WeiboIE
519 from .wimp import WimpIE
520 from .wistia import WistiaIE
521 from .worldstarhiphop import WorldStarHipHopIE
522 from .wrzuta import WrzutaIE
523 from .xbef import XBefIE
524 from .xboxclips import XboxClipsIE
525 from .xhamster import XHamsterIE
526 from .xminus import XMinusIE
527 from .xnxx import XNXXIE
528 from .xvideos import XVideosIE
529 from .xtube import XTubeUserIE, XTubeIE
530 from .xxxymovies import XXXYMoviesIE
531 from .yahoo import (
532     YahooIE,
533     YahooSearchIE,
534 )
535 from .yesjapan import YesJapanIE
536 from .ynet import YnetIE
537 from .youjizz import YouJizzIE
538 from .youku import YoukuIE
539 from .youporn import YouPornIE
540 from .yourupload import YourUploadIE
541 from .youtube import (
542     YoutubeIE,
543     YoutubeChannelIE,
544     YoutubeFavouritesIE,
545     YoutubeHistoryIE,
546     YoutubePlaylistIE,
547     YoutubeRecommendedIE,
548     YoutubeSearchDateIE,
549     YoutubeSearchIE,
550     YoutubeSearchURLIE,
551     YoutubeShowIE,
552     YoutubeSubscriptionsIE,
553     YoutubeTruncatedIDIE,
554     YoutubeTruncatedURLIE,
555     YoutubeUserIE,
556     YoutubeWatchLaterIE,
557 )
558 from .zdf import ZDFIE, ZDFChannelIE
559 from .zingmp3 import (
560     ZingMp3SongIE,
561     ZingMp3AlbumIE,
562 )
563
564 _ALL_CLASSES = [
565     klass
566     for name, klass in globals().items()
567     if name.endswith('IE') and name != 'GenericIE'
568 ]
569 _ALL_CLASSES.append(GenericIE)
570
571
572 def gen_extractors():
573     """ Return a list of an instance of every supported extractor.
574     The order does matter; the first extractor matched is the one handling the URL.
575     """
576     return [klass() for klass in _ALL_CLASSES]
577
578
579 def list_extractors(age_limit):
580     """
581     Return a list of extractors that are suitable for the given age,
582     sorted by extractor ID.
583     """
584
585     return sorted(
586         filter(lambda ie: ie.is_suitable(age_limit), gen_extractors()),
587         key=lambda ie: ie.IE_NAME.lower())
588
589
590 def get_info_extractor(ie_name):
591     """Returns the info extractor class with the given ie_name"""
592     return globals()[ie_name + 'IE']