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