youtube-dl/youtube_dl/extractor
Jaime Marquínez Ferrándiz a504ced097 Improve subtitles support
For each language the extractor builds a list with the available formats sorted (like for video formats), then YoutubeDL selects one of them using the '--sub-format' option which now allows giving the format preferences (for example 'ass/srt/best').
For each format the 'url' field can be set so that we only download the contents if needed, or if the contents needs to be processed (like in crunchyroll) the 'data' field can be used.

The reasons for this change are:
* We weren't checking that the format given with '--sub-format' was available, checking it in each extractor would be repetitive.
* It allows to easily support giving a format preference.
* The subtitles were automatically downloaded in the extractor, but I think that if you use for example the '--dump-json' option you want to finish as fast as possible.

Currently only the ted extractor has been updated, but the old system still works.
2015-02-16 21:51:03 +01:00
..
__init__.py [history] Add extractor (Closes #4934) 2015-02-15 04:57:52 +06:00
abc7news.py
abc.py
academicearth.py
addanime.py
adobetv.py
adultswim.py
aftenposten.py [aftenposten] Add extractor (Closes #4863) 2015-02-07 01:46:54 +06:00
aftonbladet.py [aftonbladet] Modernize 2015-02-03 10:18:32 +01:00
aljazeera.py
allocine.py
alphaporno.py
anitube.py
anysex.py
aol.py
aparat.py Use _family_friendly_search for determining age_limit 2015-02-08 17:45:38 +02:00
appletrailers.py
archiveorg.py
ard.py [ard] Remove deleted video test case 2015-02-01 12:00:47 +01:00
arte.py
atresplayer.py
atttechchannel.py
audiomack.py
azubu.py
bambuser.py [bambuser] Fix 'uploader_id' extraction (fixes #4944) 2015-02-13 11:36:33 +01:00
bandcamp.py [bandcamp] Correct variable name 2015-02-10 01:37:14 +01:00
bbccouk.py [bbccouk] Fix fallback to legacy playlist 2015-02-15 16:32:38 +06:00
beeg.py [beeg] fix test 2015-02-14 13:42:42 +01:00
behindkink.py
bet.py
bild.py
bilibili.py
blinkx.py
bliptv.py
bloomberg.py
bpb.py
br.py
breakcom.py
brightcove.py [brightcove] Fix up more generically invalid XML (Fixes #4849) 2015-02-02 23:47:14 +01:00
buzzfeed.py
byutv.py
c56.py
camdemy.py [camdemy] Fix _VALID_URL 2015-02-13 20:10:42 +06:00
canal13cl.py
canalc2.py
canalplus.py [canalplus] Add support for itele.fr URLs (Closes #4931) 2015-02-11 16:21:52 +02:00
cbs.py
cbsnews.py
ccc.py [ccc] Add new extractor (Fixes #4890) 2015-02-10 05:42:41 +01:00
ceskatelevize.py
channel9.py
chilloutzone.py
cinchcast.py
clipfish.py
cliphunter.py
clipsyndicate.py
cloudy.py
clubic.py
cmt.py
cnet.py
cnn.py
collegehumor.py
collegerama.py
comcarcoff.py
comedycentral.py Fix flake8 errors 2015-01-31 10:51:39 +01:00
common.py Improve subtitles support 2015-02-16 21:51:03 +01:00
commonmistakes.py [commonmistakes] Detect BOMs at the beginning of URLs 2015-02-10 01:40:55 +01:00
condenast.py
cracked.py
criterion.py
crunchyroll.py
cspan.py
ctsnews.py
dailymotion.py
daum.py
dbtv.py
dctp.py [dctptv] Skip rtmp download 2015-02-11 22:10:33 +06:00
deezer.py
defense.py Remove unused imports 2015-02-01 15:08:50 +01:00
dfb.py
discovery.py
divxstage.py
dotsub.py [dotsub] Fix extraction and modernize 2015-02-11 22:33:03 +06:00
drbonanza.py
dreisat.py
dropbox.py
drtuber.py [drtuber] Add one more title regex 2015-02-14 18:50:13 +06:00
drtv.py [drtv] Extract material id (Closes #4814) 2015-02-02 21:11:25 +06:00
dump.py
dvtv.py
ebaumsworld.py
echomsk.py
ehow.py
eighttracks.py
einthusan.py
eitb.py
ellentv.py
elpais.py
empflix.py [empflix] Rewrite in terms of tnaflix 2014-09-03 21:08:36 +07:00
engadget.py
eporner.py
eroprofile.py
escapist.py [escapist] Filter video differently (Fixes #4919) 2015-02-10 15:55:51 +01:00
everyonesmixtape.py
exfm.py
expotv.py
extremetube.py
facebook.py
faz.py
fc2.py
firedrive.py
firstpost.py [firstpost] Modernize 2015-02-10 05:28:48 +01:00
firsttv.py Remove unused imports 2015-02-14 22:19:58 +01:00
fivemin.py
fktv.py
flickr.py
folketinget.py
fourtube.py
foxgay.py
foxnews.py
franceculture.py [franceculture] Rewrite for new HTML scheme (Fixes #4853) 2015-02-03 10:17:13 +01:00
franceinter.py
francetv.py [france2.fr:generation-quoi] Modernize 2015-02-01 15:06:55 +01:00
freesound.py
freespeech.py
freevideo.py
funnyordie.py
gamekings.py [gamekings] Support videos from news pages 2015-02-08 23:12:59 +06:00
gameone.py
gamespot.py
gamestar.py
gametrailers.py
gdcvault.py
generic.py [generic] Improve SBS detection (Fixes #4899) 2015-02-09 14:46:10 +01:00
giantbomb.py
giga.py
glide.py
globo.py [globo] Properly extract m3u8 formats (#4346 #4832) 2015-02-01 04:36:24 +06:00
godtube.py
goldenmoustache.py
golem.py
googleplus.py
googlesearch.py
gorillavid.py
goshgay.py Use _family_friendly_search for determining age_limit 2015-02-08 17:45:38 +02:00
grooveshark.py
groupon.py
hark.py
hearthisat.py
heise.py
hellporno.py
helsinki.py
hentaistigma.py
historicfilms.py [historicfilms] Add extractor (Closes #4825) 2015-02-02 20:52:37 +06:00
history.py [history] Add extractor (Closes #4934) 2015-02-15 04:57:52 +06:00
hitbox.py
hornbunny.py
hostingbulk.py
hotnewhiphop.py
howcast.py
howstuffworks.py
huffpost.py
hypem.py
iconosquare.py
ign.py
imdb.py
ina.py
infoq.py
instagram.py
internetvideoarchive.py
iprima.py
ivi.py
izlesene.py Use _family_friendly_search for determining age_limit 2015-02-08 17:45:38 +02:00
jadorecettepub.py
jeuxvideo.py
jove.py
jpopsukitv.py
jukebox.py
kankan.py [kankan] Modernize 2015-02-01 15:03:55 +01:00
karaoketv.py
keek.py
keezmovies.py [keezmovies] Fix extraction and modernize test 2015-02-01 15:13:44 +01:00
khanacademy.py
kickstarter.py
kontrtube.py
krasview.py
ku6.py
la7.py Remove unused imports 2015-02-01 15:08:50 +01:00
laola1tv.py
lifenews.py
liveleak.py
livestream.py
lnkgo.py
lrt.py
lynda.py
m6.py
macgamestore.py [macgamestore] Modernize 2015-02-01 15:08:33 +01:00
mailru.py
malemotion.py
mdr.py
metacafe.py
metacritic.py
mgoon.py
minhateca.py
ministrygrid.py
mit.py
mitele.py
mixcloud.py [mixcloud] Fix extraction (Closes #4862) 2015-02-04 19:47:55 +06:00
mlb.py
moevideo.py
mofosex.py
mojvideo.py
moniker.py
mooshare.py
morningstar.py
motherless.py
motorsport.py
movieclips.py
moviezine.py
movshare.py
mpora.py [mpora] Modernize 2015-02-01 11:58:37 +01:00
mtv.py [mtv] Modernize and clean up test 2015-02-01 12:08:21 +01:00
muenchentv.py
musicplayon.py
musicvault.py
muzu.py
myspace.py
myspass.py
myvideo.py
myvidster.py
naver.py
nba.py
nbc.py Remove unused imports 2015-02-14 22:19:58 +01:00
ndr.py
ndtv.py
nerdcubed.py [nerdcubed] Modernize test definition 2015-02-01 12:11:20 +01:00
nerdist.py [nerdist] Add new extractor (Fixes #4851) 2015-02-02 23:38:35 +01:00
netzkino.py
newgrounds.py
newstube.py
nextmedia.py
nfb.py
nfl.py [nfl] Add support for articles pages (fixes #4848) 2015-02-02 23:17:00 +01:00
nhl.py [nhl:news] Add extractor (Closes #4805) 2015-01-30 23:12:27 +06:00
niconico.py
ninegag.py
noco.py
normalboots.py [normalboots] Remove unused import 2015-02-02 23:38:45 +01:00
nosvideo.py
novamov.py
nowness.py
nowvideo.py
npo.py [npo:radio] Move to extractor to common npo place and add extractor for fragments 2015-02-13 01:36:54 +06:00
nrk.py
ntvde.py [n-tv.de] Use native m3u8 as best format 2015-02-02 21:57:48 +01:00
ntvru.py [ntvru] Adapt to new direct delivery and modernize (Closes #4918) 2015-02-10 21:35:34 +06:00
nuvid.py Fix imports and general cleanup 2014-12-13 12:35:45 +01:00
nytimes.py
oktoberfesttv.py
ooyala.py
openfilm.py
orf.py
parliamentliveuk.py
patreon.py
pbs.py
phoenix.py
photobucket.py
planetaplay.py
played.py
playfm.py
playvid.py
podomatic.py
pornhd.py [pornhd] Fix extraction (fixes #4915) 2015-02-10 03:41:31 +01:00
pornhub.py
pornotube.py
pornoxo.py
promptfile.py
prosiebensat1.py
pyvideo.py
quickvid.py
radiobremen.py
radiode.py
radiofrance.py
rai.py
rbmaradio.py
redtube.py
restudy.py
reverbnation.py
ringtv.py [ringtv] Modernize test definition 2015-02-01 15:21:02 +01:00
ro220.py
rottentomatoes.py [rottentomatoes] Modernize test definition 2015-02-01 12:11:14 +01:00
roxwel.py
rtbf.py
rte.py
rtl2.py
rtlnl.py
rtlnow.py [rtlnow] Add test for @mmue's extension (#4908) 2015-02-09 10:47:19 +01:00
rtp.py [rtp] Construct regular HTTP download URLs (#4882) 2015-02-06 23:00:54 +02:00
rts.py [rts] Fix f4m and m3u8 extraction (Closes #4873) 2015-02-05 22:17:50 +06:00
rtve.py [rtve] Recognize mobile urls (fixes #4823) 2015-01-30 23:46:55 +01:00
ruhd.py
rutube.py
rutv.py [rutv] Extract all m3u8 formats 2015-02-01 23:48:23 +06:00
sapo.py
savefrom.py
sbs.py
scivee.py
screencast.py
screencastomatic.py
screenwavemedia.py
servingsys.py [servingsys] Modernize 2015-02-01 15:18:52 +01:00
sexu.py
sexykarma.py
shared.py
sharesix.py
sina.py [sina] Modernize and simplify 2015-02-01 15:16:35 +01:00
slideshare.py
slutload.py
smotri.py
snotr.py
sockshare.py
sohu.py
soundcloud.py [soundcloud:set] Fix test definition 2015-02-01 15:24:38 +01:00
soundgasm.py
southpark.py
space.py
spankwire.py
spiegel.py
spiegeltv.py
spike.py Fix flake8 errors 2015-01-31 10:51:39 +01:00
sport5.py
sportbox.py
sportdeutschland.py
srmediathek.py
stanfordoc.py
steam.py
streamcloud.py
streamcz.py [streamcz] Fix extraction (Closes #4940) 2015-02-14 17:48:04 +02:00
streetvoice.py
subtitles.py
sunporno.py [sunporno] Keep old video regex just in case 2015-02-14 18:33:52 +06:00
svtplay.py [svtplay] Correct test case 2015-02-09 16:05:01 +01:00
swrmediathek.py
syfy.py
sztvhu.py
tagesschau.py
tapely.py
tass.py
teachertube.py
teachingchannel.py
teamcoco.py [teamcoco] Fix video id extraction 2015-02-11 15:47:19 +02:00
techtalks.py
ted.py Improve subtitles support 2015-02-16 21:51:03 +01:00
telebruxelles.py
telecinco.py
telemb.py
teletask.py [teletask] Fix test definition 2015-02-01 15:25:33 +01:00
tenplay.py
testtube.py
testurl.py
tf1.py
theonion.py
theplatform.py [theplatform] Add URL sign capability 2015-02-15 04:56:12 +06:00
thesixtyone.py
thisav.py
thvideo.py
tinypic.py
tlc.py
tmz.py
tnaflix.py
toutv.py [toutv] Modernize test definition 2015-02-01 15:01:33 +01:00
toypics.py
traileraddict.py
trilulilu.py [trilulilu] Add support for videos without category in the URL (Closes #4067) 2015-02-09 17:00:05 +02:00
trutube.py
tube8.py
tudou.py
tumblr.py
tunein.py
turbo.py
tutv.py
tvigle.py [tvigle] Add support for cloud URLs (Closes #4887) 2015-02-06 21:15:01 +06:00
tvp.py
tvplay.py
tweakers.py [tweakers] Switch extraction to xspf playlist, extract all formats and meta (#4881) 2015-02-06 03:23:42 +06:00
twentyfourvideo.py
twitch.py
ubu.py
udemy.py
unistra.py
urort.py
ustream.py
vbox7.py
veehd.py
veoh.py
vesti.py
vevo.py [vevo] Restore SMIL support (#3656) 2015-02-02 22:48:12 +01:00
vgtv.py
vh1.py
vice.py
viddler.py
videobam.py
videodetective.py
videofyme.py
videolecturesnet.py
videomega.py
videopremium.py
videott.py
videoweed.py
vidme.py
vidzi.py
vier.py
viki.py
vimeo.py [vimeo:album] Add support for album passwords (Fixes #4917) 2015-02-10 04:53:21 +01:00
vimple.py
vine.py
vk.py
vodlocker.py
vporn.py
vrt.py
vube.py
vuclip.py
vulture.py
walla.py
washingtonpost.py [washingtonpost] Catch more UUIDs 2015-01-30 15:53:58 +01:00
wat.py
wayofthemaster.py
wdr.py [wdr] Complete test definition 2015-02-01 15:27:16 +01:00
webofstories.py
weibo.py
wimp.py
wistia.py
worldstarhiphop.py
wrzuta.py
wsj.py [wsj] Add new extractor (Fixes #4854) 2015-02-03 10:58:28 +01:00
xbef.py
xboxclips.py
xhamster.py
xminus.py
xnxx.py
xtube.py
xuite.py
xvideos.py
xxxymovies.py
yahoo.py
yesjapan.py
ynet.py
youjizz.py
youku.py
youporn.py
yourupload.py
youtube.py [youtube] Extract average rating (closes #2362) 2015-02-11 18:39:31 +01:00
zdf.py
zingmp3.py