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