__init__.py 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595
  1. from __future__ import unicode_literals
  2. from .abc import ABCIE
  3. from .academicearth import AcademicEarthCourseIE
  4. from .addanime import AddAnimeIE
  5. from .adobetv import AdobeTVIE
  6. from .adultswim import AdultSwimIE
  7. from .aftonbladet import AftonbladetIE
  8. from .aljazeera import AlJazeeraIE
  9. from .alphaporno import AlphaPornoIE
  10. from .anitube import AnitubeIE
  11. from .anysex import AnySexIE
  12. from .aol import AolIE
  13. from .allocine import AllocineIE
  14. from .aparat import AparatIE
  15. from .appletrailers import AppleTrailersIE
  16. from .archiveorg import ArchiveOrgIE
  17. from .ard import ARDIE, ARDMediathekIE
  18. from .arte import (
  19. ArteTvIE,
  20. ArteTVPlus7IE,
  21. ArteTVCreativeIE,
  22. ArteTVConcertIE,
  23. ArteTVFutureIE,
  24. ArteTVDDCIE,
  25. ArteTVEmbedIE,
  26. )
  27. from .atresplayer import AtresPlayerIE
  28. from .atttechchannel import ATTTechChannelIE
  29. from .audiomack import AudiomackIE, AudiomackAlbumIE
  30. from .auengine import AUEngineIE
  31. from .azubu import AzubuIE
  32. from .bambuser import BambuserIE, BambuserChannelIE
  33. from .bandcamp import BandcampIE, BandcampAlbumIE
  34. from .bbccouk import BBCCoUkIE
  35. from .beeg import BeegIE
  36. from .behindkink import BehindKinkIE
  37. from .bet import BetIE
  38. from .bild import BildIE
  39. from .bilibili import BiliBiliIE
  40. from .blinkx import BlinkxIE
  41. from .bliptv import BlipTVIE, BlipTVUserIE
  42. from .bloomberg import BloombergIE
  43. from .bpb import BpbIE
  44. from .br import BRIE
  45. from .breakcom import BreakIE
  46. from .brightcove import BrightcoveIE
  47. from .buzzfeed import BuzzFeedIE
  48. from .byutv import BYUtvIE
  49. from .c56 import C56IE
  50. from .canal13cl import Canal13clIE
  51. from .canalplus import CanalplusIE
  52. from .canalc2 import Canalc2IE
  53. from .cbs import CBSIE
  54. from .cbsnews import CBSNewsIE
  55. from .ceskatelevize import CeskaTelevizeIE
  56. from .channel9 import Channel9IE
  57. from .chilloutzone import ChilloutzoneIE
  58. from .cinchcast import CinchcastIE
  59. from .clipfish import ClipfishIE
  60. from .cliphunter import CliphunterIE
  61. from .clipsyndicate import ClipsyndicateIE
  62. from .cloudy import CloudyIE
  63. from .clubic import ClubicIE
  64. from .cmt import CMTIE
  65. from .cnet import CNETIE
  66. from .cnn import (
  67. CNNIE,
  68. CNNBlogsIE,
  69. CNNArticleIE,
  70. )
  71. from .collegehumor import CollegeHumorIE
  72. from .comedycentral import ComedyCentralIE, ComedyCentralShowsIE
  73. from .comcarcoff import ComCarCoffIE
  74. from .commonmistakes import CommonMistakesIE
  75. from .condenast import CondeNastIE
  76. from .cracked import CrackedIE
  77. from .criterion import CriterionIE
  78. from .crunchyroll import (
  79. CrunchyrollIE,
  80. CrunchyrollShowPlaylistIE
  81. )
  82. from .cspan import CSpanIE
  83. from .dailymotion import (
  84. DailymotionIE,
  85. DailymotionPlaylistIE,
  86. DailymotionUserIE,
  87. )
  88. from .daum import DaumIE
  89. from .dbtv import DBTVIE
  90. from .deezer import DeezerPlaylistIE
  91. from .dfb import DFBIE
  92. from .dotsub import DotsubIE
  93. from .dreisat import DreiSatIE
  94. from .drtuber import DrTuberIE
  95. from .drtv import DRTVIE
  96. from .dvtv import DVTVIE
  97. from .dump import DumpIE
  98. from .defense import DefenseGouvFrIE
  99. from .discovery import DiscoveryIE
  100. from .divxstage import DivxStageIE
  101. from .dropbox import DropboxIE
  102. from .ebaumsworld import EbaumsWorldIE
  103. from .echomsk import EchoMskIE
  104. from .ehow import EHowIE
  105. from .eighttracks import EightTracksIE
  106. from .einthusan import EinthusanIE
  107. from .eitb import EitbIE
  108. from .ellentv import (
  109. EllenTVIE,
  110. EllenTVClipsIE,
  111. )
  112. from .elpais import ElPaisIE
  113. from .empflix import EMPFlixIE
  114. from .engadget import EngadgetIE
  115. from .eporner import EpornerIE
  116. from .eroprofile import EroProfileIE
  117. from .escapist import EscapistIE
  118. from .everyonesmixtape import EveryonesMixtapeIE
  119. from .exfm import ExfmIE
  120. from .expotv import ExpoTVIE
  121. from .extremetube import ExtremeTubeIE
  122. from .facebook import FacebookIE
  123. from .faz import FazIE
  124. from .fc2 import FC2IE
  125. from .firedrive import FiredriveIE
  126. from .firstpost import FirstpostIE
  127. from .firsttv import FirstTVIE
  128. from .fivemin import FiveMinIE
  129. from .fktv import (
  130. FKTVIE,
  131. FKTVPosteckeIE,
  132. )
  133. from .flickr import FlickrIE
  134. from .folketinget import FolketingetIE
  135. from .fourtube import FourTubeIE
  136. from .foxgay import FoxgayIE
  137. from .foxnews import FoxNewsIE
  138. from .franceculture import FranceCultureIE
  139. from .franceinter import FranceInterIE
  140. from .francetv import (
  141. PluzzIE,
  142. FranceTvInfoIE,
  143. FranceTVIE,
  144. GenerationQuoiIE,
  145. CultureboxIE,
  146. )
  147. from .freesound import FreesoundIE
  148. from .freespeech import FreespeechIE
  149. from .freevideo import FreeVideoIE
  150. from .funnyordie import FunnyOrDieIE
  151. from .gamekings import GamekingsIE
  152. from .gameone import (
  153. GameOneIE,
  154. GameOnePlaylistIE,
  155. )
  156. from .gamespot import GameSpotIE
  157. from .gamestar import GameStarIE
  158. from .gametrailers import GametrailersIE
  159. from .gdcvault import GDCVaultIE
  160. from .generic import GenericIE
  161. from .giantbomb import GiantBombIE
  162. from .giga import GigaIE
  163. from .glide import GlideIE
  164. from .globo import GloboIE
  165. from .godtube import GodTubeIE
  166. from .goldenmoustache import GoldenMoustacheIE
  167. from .golem import GolemIE
  168. from .googleplus import GooglePlusIE
  169. from .googlesearch import GoogleSearchIE
  170. from .gorillavid import GorillaVidIE
  171. from .goshgay import GoshgayIE
  172. from .grooveshark import GroovesharkIE
  173. from .groupon import GrouponIE
  174. from .hark import HarkIE
  175. from .heise import HeiseIE
  176. from .hellporno import HellPornoIE
  177. from .helsinki import HelsinkiIE
  178. from .hentaistigma import HentaiStigmaIE
  179. from .hitbox import HitboxIE, HitboxLiveIE
  180. from .hornbunny import HornBunnyIE
  181. from .hostingbulk import HostingBulkIE
  182. from .hotnewhiphop import HotNewHipHopIE
  183. from .howcast import HowcastIE
  184. from .howstuffworks import HowStuffWorksIE
  185. from .huffpost import HuffPostIE
  186. from .hypem import HypemIE
  187. from .iconosquare import IconosquareIE
  188. from .ign import IGNIE, OneUPIE
  189. from .imdb import (
  190. ImdbIE,
  191. ImdbListIE
  192. )
  193. from .ina import InaIE
  194. from .infoq import InfoQIE
  195. from .instagram import InstagramIE, InstagramUserIE
  196. from .internetvideoarchive import InternetVideoArchiveIE
  197. from .iprima import IPrimaIE
  198. from .ivi import (
  199. IviIE,
  200. IviCompilationIE
  201. )
  202. from .izlesene import IzleseneIE
  203. from .jadorecettepub import JadoreCettePubIE
  204. from .jeuxvideo import JeuxVideoIE
  205. from .jove import JoveIE
  206. from .jukebox import JukeboxIE
  207. from .jpopsukitv import JpopsukiIE
  208. from .kankan import KankanIE
  209. from .karaoketv import KaraoketvIE
  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. _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. def gen_extractors():
  572. """ Return a list of an instance of every supported extractor.
  573. The order does matter; the first extractor matched is the one handling the URL.
  574. """
  575. return [klass() for klass in _ALL_CLASSES]
  576. def list_extractors(age_limit):
  577. """
  578. Return a list of extractors that are suitable for the given age,
  579. sorted by extractor ID.
  580. """
  581. return sorted(
  582. filter(lambda ie: ie.is_suitable(age_limit), gen_extractors()),
  583. key=lambda ie: ie.IE_NAME.lower())
  584. def get_info_extractor(ie_name):
  585. """Returns the info extractor class with the given ie_name"""
  586. return globals()[ie_name + 'IE']