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