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