[tv4] Add new extractor (Closes #4839) (Closes #2103)
[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 .radiode import RadioDeIE
368 from .radiobremen import RadioBremenIE
369 from .radiofrance import RadioFranceIE
370 from .rai import RaiIE
371 from .rbmaradio import RBMARadioIE
372 from .redtube import RedTubeIE
373 from .restudy import RestudyIE
374 from .reverbnation import ReverbNationIE
375 from .ringtv import RingTVIE
376 from .ro220 import Ro220IE
377 from .rottentomatoes import RottenTomatoesIE
378 from .roxwel import RoxwelIE
379 from .rtbf import RTBFIE
380 from .rte import RteIE
381 from .rtlnl import RtlNlIE
382 from .rtlnow import RTLnowIE
383 from .rtl2 import RTL2IE
384 from .rtp import RTPIE
385 from .rts import RTSIE
386 from .rtve import RTVEALaCartaIE, RTVELiveIE
387 from .ruhd import RUHDIE
388 from .rutube import (
389     RutubeIE,
390     RutubeChannelIE,
391     RutubeEmbedIE,
392     RutubeMovieIE,
393     RutubePersonIE,
394 )
395 from .rutv import RUTVIE
396 from .sandia import SandiaIE
397 from .sapo import SapoIE
398 from .savefrom import SaveFromIE
399 from .sbs import SBSIE
400 from .scivee import SciVeeIE
401 from .screencast import ScreencastIE
402 from .screencastomatic import ScreencastOMaticIE
403 from .screenwavemedia import CinemassacreIE, ScreenwaveMediaIE, TeamFourIE
404 from .servingsys import ServingSysIE
405 from .sexu import SexuIE
406 from .sexykarma import SexyKarmaIE
407 from .shared import SharedIE
408 from .sharesix import ShareSixIE
409 from .sina import SinaIE
410 from .slideshare import SlideshareIE
411 from .slutload import SlutloadIE
412 from .smotri import (
413     SmotriIE,
414     SmotriCommunityIE,
415     SmotriUserIE,
416     SmotriBroadcastIE,
417 )
418 from .snotr import SnotrIE
419 from .sockshare import SockshareIE
420 from .sohu import SohuIE
421 from .soundcloud import (
422     SoundcloudIE,
423     SoundcloudSetIE,
424     SoundcloudUserIE,
425     SoundcloudPlaylistIE
426 )
427 from .soundgasm import SoundgasmIE
428 from .southpark import (
429     SouthParkIE,
430     SouthparkDeIE,
431 )
432 from .space import SpaceIE
433 from .spankwire import SpankwireIE
434 from .spiegel import SpiegelIE, SpiegelArticleIE
435 from .spiegeltv import SpiegeltvIE
436 from .spike import SpikeIE
437 from .sport5 import Sport5IE
438 from .sportbox import SportBoxIE
439 from .sportdeutschland import SportDeutschlandIE
440 from .srmediathek import SRMediathekIE
441 from .stanfordoc import StanfordOpenClassroomIE
442 from .steam import SteamIE
443 from .streamcloud import StreamcloudIE
444 from .streamcz import StreamCZIE
445 from .streetvoice import StreetVoiceIE
446 from .sunporno import SunPornoIE
447 from .svtplay import SVTPlayIE
448 from .swrmediathek import SWRMediathekIE
449 from .syfy import SyfyIE
450 from .sztvhu import SztvHuIE
451 from .tagesschau import TagesschauIE
452 from .tapely import TapelyIE
453 from .tass import TassIE
454 from .teachertube import (
455     TeacherTubeIE,
456     TeacherTubeUserIE,
457 )
458 from .teachingchannel import TeachingChannelIE
459 from .teamcoco import TeamcocoIE
460 from .techtalks import TechTalksIE
461 from .ted import TEDIE
462 from .telebruxelles import TeleBruxellesIE
463 from .telecinco import TelecincoIE
464 from .telemb import TeleMBIE
465 from .teletask import TeleTaskIE
466 from .tenplay import TenPlayIE
467 from .testurl import TestURLIE
468 from .testtube import TestTubeIE
469 from .tf1 import TF1IE
470 from .theonion import TheOnionIE
471 from .theplatform import ThePlatformIE
472 from .thesixtyone import TheSixtyOneIE
473 from .thisav import ThisAVIE
474 from .tinypic import TinyPicIE
475 from .tlc import TlcIE, TlcDeIE
476 from .tmz import TMZIE
477 from .tnaflix import TNAFlixIE
478 from .thvideo import (
479     THVideoIE,
480     THVideoPlaylistIE
481 )
482 from .toutv import TouTvIE
483 from .toypics import ToypicsUserIE, ToypicsIE
484 from .traileraddict import TrailerAddictIE
485 from .trilulilu import TriluliluIE
486 from .trutube import TruTubeIE
487 from .tube8 import Tube8IE
488 from .tudou import TudouIE
489 from .tumblr import TumblrIE
490 from .tunein import TuneInIE
491 from .turbo import TurboIE
492 from .tutv import TutvIE
493 from .tv4 import TV4IE
494 from .tvigle import TvigleIE
495 from .tvp import TvpIE, TvpSeriesIE
496 from .tvplay import TVPlayIE
497 from .tweakers import TweakersIE
498 from .twentyfourvideo import TwentyFourVideoIE
499 from .twitch import (
500     TwitchVideoIE,
501     TwitchChapterIE,
502     TwitchVodIE,
503     TwitchProfileIE,
504     TwitchPastBroadcastsIE,
505     TwitchBookmarksIE,
506     TwitchStreamIE,
507 )
508 from .ubu import UbuIE
509 from .udemy import (
510     UdemyIE,
511     UdemyCourseIE
512 )
513 from .unistra import UnistraIE
514 from .urort import UrortIE
515 from .ustream import UstreamIE, UstreamChannelIE
516 from .vbox7 import Vbox7IE
517 from .veehd import VeeHDIE
518 from .veoh import VeohIE
519 from .vesti import VestiIE
520 from .vevo import VevoIE
521 from .vgtv import VGTVIE
522 from .vh1 import VH1IE
523 from .vice import ViceIE
524 from .viddler import ViddlerIE
525 from .videobam import VideoBamIE
526 from .videodetective import VideoDetectiveIE
527 from .videolecturesnet import VideoLecturesNetIE
528 from .videofyme import VideofyMeIE
529 from .videomega import VideoMegaIE
530 from .videopremium import VideoPremiumIE
531 from .videott import VideoTtIE
532 from .videoweed import VideoWeedIE
533 from .vidme import VidmeIE
534 from .vidzi import VidziIE
535 from .vier import VierIE, VierVideosIE
536 from .vimeo import (
537     VimeoIE,
538     VimeoAlbumIE,
539     VimeoChannelIE,
540     VimeoGroupsIE,
541     VimeoLikesIE,
542     VimeoReviewIE,
543     VimeoUserIE,
544     VimeoWatchLaterIE,
545 )
546 from .vimple import VimpleIE
547 from .vine import (
548     VineIE,
549     VineUserIE,
550 )
551 from .viki import VikiIE
552 from .vk import (
553     VKIE,
554     VKUserVideosIE,
555 )
556 from .vodlocker import VodlockerIE
557 from .vporn import VpornIE
558 from .vrt import VRTIE
559 from .vube import VubeIE
560 from .vuclip import VuClipIE
561 from .vulture import VultureIE
562 from .walla import WallaIE
563 from .washingtonpost import WashingtonPostIE
564 from .wat import WatIE
565 from .wayofthemaster import WayOfTheMasterIE
566 from .wdr import (
567     WDRIE,
568     WDRMobileIE,
569     WDRMausIE,
570 )
571 from .webofstories import WebOfStoriesIE
572 from .weibo import WeiboIE
573 from .wimp import WimpIE
574 from .wistia import WistiaIE
575 from .worldstarhiphop import WorldStarHipHopIE
576 from .wrzuta import WrzutaIE
577 from .wsj import WSJIE
578 from .xbef import XBefIE
579 from .xboxclips import XboxClipsIE
580 from .xhamster import XHamsterIE
581 from .xminus import XMinusIE
582 from .xnxx import XNXXIE
583 from .xvideos import XVideosIE
584 from .xtube import XTubeUserIE, XTubeIE
585 from .xuite import XuiteIE
586 from .xxxymovies import XXXYMoviesIE
587 from .yahoo import (
588     YahooIE,
589     YahooSearchIE,
590 )
591 from .yam import YamIE
592 from .yesjapan import YesJapanIE
593 from .ynet import YnetIE
594 from .youjizz import YouJizzIE
595 from .youku import YoukuIE
596 from .youporn import YouPornIE
597 from .yourupload import YourUploadIE
598 from .youtube import (
599     YoutubeIE,
600     YoutubeChannelIE,
601     YoutubeFavouritesIE,
602     YoutubeHistoryIE,
603     YoutubePlaylistIE,
604     YoutubeRecommendedIE,
605     YoutubeSearchDateIE,
606     YoutubeSearchIE,
607     YoutubeSearchURLIE,
608     YoutubeShowIE,
609     YoutubeSubscriptionsIE,
610     YoutubeTruncatedIDIE,
611     YoutubeTruncatedURLIE,
612     YoutubeUserIE,
613     YoutubeWatchLaterIE,
614 )
615 from .zdf import ZDFIE, ZDFChannelIE
616 from .zingmp3 import (
617     ZingMp3SongIE,
618     ZingMp3AlbumIE,
619 )
620
621 _ALL_CLASSES = [
622     klass
623     for name, klass in globals().items()
624     if name.endswith('IE') and name != 'GenericIE'
625 ]
626 _ALL_CLASSES.append(GenericIE)
627
628
629 def gen_extractors():
630     """ Return a list of an instance of every supported extractor.
631     The order does matter; the first extractor matched is the one handling the URL.
632     """
633     return [klass() for klass in _ALL_CLASSES]
634
635
636 def list_extractors(age_limit):
637     """
638     Return a list of extractors that are suitable for the given age,
639     sorted by extractor ID.
640     """
641
642     return sorted(
643         filter(lambda ie: ie.is_suitable(age_limit), gen_extractors()),
644         key=lambda ie: ie.IE_NAME.lower())
645
646
647 def get_info_extractor(ie_name):
648     """Returns the info extractor class with the given ie_name"""
649     return globals()[ie_name + 'IE']