Add an extractor for PBS (closes #870 and #873)
[youtube-dl] / youtube_dl / extractor / __init__.py
1 from .archiveorg import ArchiveOrgIE
2 from .ard import ARDIE
3 from .arte import ArteTvIE
4 from .auengine import AUEngineIE
5 from .bandcamp import BandcampIE
6 from .bliptv import BlipTVIE, BlipTVUserIE
7 from .breakcom import BreakIE
8 from .brightcove import BrightcoveIE
9 from .canalplus import CanalplusIE
10 from .collegehumor import CollegeHumorIE
11 from .comedycentral import ComedyCentralIE
12 from .condenast import CondeNastIE
13 from .criterion import CriterionIE
14 from .cspan import CSpanIE
15 from .dailymotion import DailymotionIE, DailymotionPlaylistIE
16 from .depositfiles import DepositFilesIE
17 from .dotsub import DotsubIE
18 from .dreisat import DreiSatIE
19 from .ehow import EHowIE
20 from .eighttracks import EightTracksIE
21 from .escapist import EscapistIE
22 from .exfm import ExfmIE
23 from .facebook import FacebookIE
24 from .flickr import FlickrIE
25 from .freesound import FreesoundIE
26 from .funnyordie import FunnyOrDieIE
27 from .gamespot import GameSpotIE
28 from .gametrailers import GametrailersIE
29 from .generic import GenericIE
30 from .googleplus import GooglePlusIE
31 from .googlesearch import GoogleSearchIE
32 from .hotnewhiphop import HotNewHipHopIE
33 from .howcast import HowcastIE
34 from .hypem import HypemIE
35 from .ign import IGNIE, OneUPIE
36 from .ina import InaIE
37 from .infoq import InfoQIE
38 from .instagram import InstagramIE
39 from .jukebox import JukeboxIE
40 from .justintv import JustinTVIE
41 from .kankan import KankanIE
42 from .keek import KeekIE
43 from .liveleak import LiveLeakIE
44 from .livestream import LivestreamIE
45 from .metacafe import MetacafeIE
46 from .mixcloud import MixcloudIE
47 from .mtv import MTVIE
48 from .muzu import MuzuTVIE
49 from .myspass import MySpassIE
50 from .myvideo import MyVideoIE
51 from .nba import NBAIE
52 from .ooyala import OoyalaIE
53 from .pbs import PBSIE
54 from .photobucket import PhotobucketIE
55 from .pornotube import PornotubeIE
56 from .rbmaradio import RBMARadioIE
57 from .redtube import RedTubeIE
58 from .ringtv import RingTVIE
59 from .roxwel import RoxwelIE
60 from .rtlnow import RTLnowIE
61 from .sina import SinaIE
62 from .slashdot import SlashdotIE
63 from .soundcloud import SoundcloudIE, SoundcloudSetIE
64 from .spiegel import SpiegelIE
65 from .stanfordoc import StanfordOpenClassroomIE
66 from .statigram import StatigramIE
67 from .steam import SteamIE
68 from .teamcoco import TeamcocoIE
69 from .ted import TEDIE
70 from .tf1 import TF1IE
71 from .thisav import ThisAVIE
72 from .traileraddict import TrailerAddictIE
73 from .tudou import TudouIE
74 from .tumblr import TumblrIE
75 from .tutv import TutvIE
76 from .ustream import UstreamIE
77 from .vbox7 import Vbox7IE
78 from .veoh import VeohIE
79 from .vevo import VevoIE
80 from .videofyme import VideofyMeIE
81 from .vimeo import VimeoIE, VimeoChannelIE
82 from .vine import VineIE
83 from .c56 import C56IE
84 from .wat import WatIE
85 from .weibo import WeiboIE
86 from .wimp import WimpIE
87 from .worldstarhiphop import WorldStarHipHopIE
88 from .xhamster import XHamsterIE
89 from .xnxx import XNXXIE
90 from .xvideos import XVideosIE
91 from .yahoo import YahooIE, YahooSearchIE
92 from .youjizz import YouJizzIE
93 from .youku import YoukuIE
94 from .youporn import YouPornIE
95 from .youtube import (
96     YoutubeIE,
97     YoutubePlaylistIE,
98     YoutubeSearchIE,
99     YoutubeUserIE,
100     YoutubeChannelIE,
101     YoutubeShowIE,
102     YoutubeSubscriptionsIE,
103     YoutubeRecommendedIE,
104     YoutubeWatchLaterIE,
105     YoutubeFavouritesIE,
106 )
107 from .zdf import ZDFIE
108
109
110 _ALL_CLASSES = [
111     klass
112     for name, klass in globals().items()
113     if name.endswith('IE') and name != 'GenericIE'
114 ]
115 _ALL_CLASSES.append(GenericIE)
116
117 def gen_extractors():
118     """ Return a list of an instance of every supported extractor.
119     The order does matter; the first extractor matched is the one handling the URL.
120     """
121     return [klass() for klass in _ALL_CLASSES]
122
123 def get_info_extractor(ie_name):
124     """Returns the info extractor class with the given ie_name"""
125     return globals()[ie_name+'IE']