I'm confused as to why this question is so popular. What's the use case for downloading subtitles from a YouTube video that all these people have in mind? Why would YouTube subtitles - which in many cases are non-existent or automatically generated - be any more useful than a proper subtitle file?
– PrometheusNov 12 '18 at 2:49

Maybe because he already downloaded the videos, and doesn't want to download them again, just wants to download the subtitles now because he didn't get them before. That's why I'm using this option.
– spacefacedMay 8 at 1:11

I gave the docs a fair look and didn't find the --skip-download option which is hidden under Verbosity / Simulation Options. Glad @fivetech asked this question, or I may still be stuck.
– ZazAug 7 '16 at 19:04

Another simple way to download subtitles from YouTube is to download Google2SRT. Google2SRT is a free, open source program for Windows, Mac and Linux that is able to download, save and convert multiple subtitles from YouTube videos.

Thanks so much, jegadesh! Google2SRT is just what I needed to download auto-generated closed captions/subtitles from YouTube, since youtube-dl does not handle them properly (instead returning foo has no subtitles).
– Miles WolbeFeb 4 '18 at 6:31

2

@miles-wolbe I'd appreciate it if you could mention a YouTube video where youtube-dl failed.
– nakiMar 19 '19 at 7:37

OPTIONAL - If you need the text to be cleaned up you can use python to clean it a little:

import re
bad_words = ['-->']
with open('example.en.vtt') as oldfile, open('newfile.txt', 'w') as newfile:
for line in oldfile:
if not any(bad_word in line for bad_word in bad_words):
newfile.write(line)
with open('newfile.txt') as result:
uniqlines = set(result.readlines())
with open('sub_out.txt', 'w') as rmdup:
mylst = map(lambda each: each.strip("&gt;&gt;"), uniqlines)
print(mylst)
rmdup.writelines(set(mylst))

Output newfile.txt:

I’m Elon Musk.
What is your claim to fame?
I’m the founder of
Tesla.com.