41

How do I download videos from YouTube with subtitles / captions?

I'd tried by using youtube-dl, with --write-srt --str-lang flags but I always get:

WARNING: video has no closed captions.

6
  • 1
    Well, does the video have closed captions? I cannot reproduce this issue for videos that have the CC sign available. Which video are you trying to download? Does it work with this one?
    – slhck
    Commented Oct 7, 2012 at 20:31
  • Yes. Have the CC sign. For video that you have posted it worked fine. But for all that I had tried before it does not work, e.g for this video: youtube.com/watch?v=RHy9_RQbrnQ I get: WARNING: video has no closed captions unlike as you can see into youtube page. `
    – Jack
    Commented Oct 8, 2012 at 0:29
  • See exaclty what I have tried: python youtube-dl --write-srt --srt-lang en http://www.youtube.com/watch?v=RHy9_RQbrnQ [youtube] Setting language [youtube] RHy9_RQbrnQ: Downloading video webpage [youtube] RHy9_RQbrnQ: Downloading video info webpage [youtube] RHy9_RQbrnQ: Extracting video information [youtube] RHy9_RQbrnQ: Downloading video subtitles WARNING: video has no closed captions
    – Jack
    Commented Oct 8, 2012 at 0:31
  • Quite interesting is to check subtitles with --list-subs.
    – pevik
    Commented Feb 20, 2016 at 12:54
  • 1
    if you're on a LTS distribution, ensure you use an uo-to-date version of youtube-dl, the TLS apt package on ubuntu:14.04 for example, does not work with generated closed captions, but that current pip release version does (sudo pip install -U youtube-dl) Commented Apr 24, 2016 at 6:43

3 Answers 3

57

Make sure the video you're trying to download has actual subtitles uploaded from the owner.

You can then use, for example:

youtube-dl --write-srt --sub-lang en 'http://www.youtube.com/watch?v=RHy9_RQbrnQ'

There is also an option to download the automatically generated subtitle files, using --write-auto-sub.

See the youtube-dl documentation.

3
  • 2
    Is there no way to download the one translated by youtube?
    – Jack
    Commented Oct 27, 2013 at 21:11
  • Not that I'm aware of, no. There appear to be some programs for downloading subtitles (like Google2SRT mentioned in the other answers), but those are all for the "real" closed captions.
    – slhck
    Commented Oct 27, 2013 at 22:01
  • This doesn't work as of August 2015, please fix. Commented Aug 2, 2015 at 8:17
9

If you want a free, easy-to-use program with a simple GUI, there's Google 2 SRT.

It detects all the available languages and converts to SRT, SSA or SUB.

enter image description here

1
1

You did not specify what kind of subtitles you want to download.

If you want regular youtube subtitles in .SRT format (the most widely supported by players) then you would use (assuming you need English subs):

youtube-dl --convert-subs srt --write-sub -sub-lang en <YOUTUBE_VIDEO_ID>

If you want auto-generated youtube subtitles then you need to use instead:

youtube-dl --convert-subs srt --write-auto-sub --sub-lang en <YOUTUBE_VIDEO_ID>
#                             ^^^^^^^^^^^^^^^^

To list available subtitle languages use:

youtube-dl --list-subs <YOUTUBE_VIDEO_ID>

Once you have identified the languages you want you can request multiple subs with e.g.:

youtube-dl --convert-subs srt --write-sub --sub-lang="en,de,es,zh,zh-CN,zh-TW,zh-HK,zh-Hans,zh-Hant" <YOUTUBE_VIDEO_ID>"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .