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