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