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