How to download only subtitles of videos using youtube-dl
Solution 1:
There is an option, clearly mentioned in the documention:
Subtitle Options:
--write-sub Write subtitle file
--write-auto-sub Write automatic subtitle file (YouTube only)
--all-subs Download all the available subtitles of the video
--list-subs List all available subtitles for the video
--sub-format FORMAT Subtitle format, accepts formats preference, for example: "srt" or "ass/srt/best"
--sub-lang LANGS Languages of the subtitles to download (optional) separated by commas, use IETF language tags like 'en,pt'
So for example, to list all subs for a video:
youtube-dl --list-subs https://www.youtube.com/watch?v=Ye8mB6VsUHw
To download all subs, but not the video:
youtube-dl --all-subs --skip-download https://www.youtube.com/watch?v=Ye8mB6VsUHw
Solution 2:
Or you can only download one subtitle
youtube-dl --write-sub --sub-lang en --skip-download URL
Solution 3:
just run the following command
youtube-dl --write-auto-sub --convert-subs=srt --skip-download URL
For example you are downloading
https://www.youtube.com/watch?v=example. with title "example"
--convert=srt
will output to a file named example.en.srt
where en
stands for English es
for Spanish etc.
The file will have something like this:
00:00:04.259 --> 00:00:05.259
>> I’m Elon Musk.
00:00:05.259 --> 00:00:06.669
>> What is your claim to fame?
00:00:06.669 --> 00:00:07.669
>> I’m the founder of
00:00:07.669 --> 00:00:08.669
Tesla.com.
OPTIONAL - If you need the text to be cleaned up you can use python to clean it a little:
import re
bad_words = ['-->','</c>']
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(">>"), 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.
Solution 4:
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.
Usage
Click the links to see screenshots of steps 1 and 2.
-
Paste the URL in the Google subtitles text box and click Read.
-
Choose the language by selecting the appropriate check box provided and press Go.
-
View the destination folder that was input in the SRT subtitles textbox to locate the SRT files.