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