From 65cceef8f4d0fc4679f98331adb933bd028c3670 Mon Sep 17 00:00:00 2001 From: Ismael Mejia Date: Wed, 26 Jun 2013 11:28:47 +0200 Subject: [PATCH] Added support for additional vtt subtitle format (WebVTT) in youtube-dl. --- README.md | 2 +- test/test_youtube_subtitles.py | 10 +++++++++- youtube_dl/YoutubeDL.py | 2 +- youtube_dl/__init__.py | 2 +- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7d190249d..e43332724 100644 --- a/README.md +++ b/README.md @@ -121,7 +121,7 @@ which means you can modify it, redistribute it or use it however you like. video (currently youtube only) --list-subs lists all available subtitles for the video (currently youtube only) - --sub-format FORMAT subtitle format [srt/sbv] (default=srt) + --sub-format FORMAT subtitle format [srt/sbv/vtt] (default=srt) (currently youtube only) --sub-lang LANG language of the subtitles to download (optional) use IETF language tags like 'en' diff --git a/test/test_youtube_subtitles.py b/test/test_youtube_subtitles.py index dad15de37..5814e13d4 100644 --- a/test/test_youtube_subtitles.py +++ b/test/test_youtube_subtitles.py @@ -84,7 +84,7 @@ class TestYoutubeSubtitles(unittest.TestCase): info_dict = IE.extract('QRS8MkLhQmM') subtitles = info_dict[0]['subtitles'] self.assertEqual(len(subtitles), 13) - def test_youtube_subtitles_format(self): + def test_youtube_subtitles_sbv_format(self): DL = FakeYDL() DL.params['writesubtitles'] = True DL.params['subtitlesformat'] = 'sbv' @@ -92,6 +92,14 @@ class TestYoutubeSubtitles(unittest.TestCase): info_dict = IE.extract('QRS8MkLhQmM') sub = info_dict[0]['subtitles'][0] self.assertEqual(md5(sub[2]), '13aeaa0c245a8bed9a451cb643e3ad8b') + def test_youtube_subtitles_vtt_format(self): + DL = FakeYDL() + DL.params['writesubtitles'] = True + DL.params['subtitlesformat'] = 'vtt' + IE = YoutubeIE(DL) + info_dict = IE.extract('QRS8MkLhQmM') + sub = info_dict[0]['subtitles'][0] + self.assertEqual(md5(sub[2]), '356cdc577fde0c6783b9b822e7206ff7') def test_youtube_list_subtitles(self): DL = FakeYDL() DL.params['listsubtitles'] = True diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index e9a24a95a..4abcbbeac 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -75,7 +75,7 @@ class YoutubeDL(object): writeautomaticsub: Write the automatic subtitles to a file allsubtitles: Downloads all the subtitles of the video listsubtitles: Lists all available subtitles for the video - subtitlesformat: Subtitle format [sbv/srt] (default=srt) + subtitlesformat: Subtitle format [srt/sbt/vtt] (default=srt) subtitleslang: Language of the subtitles to download keepvideo: Keep the video file after post-processing daterange: A DateRange object, download only if the upload_date is in the range. diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 42abb8358..6a8fc5e96 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -205,7 +205,7 @@ def parseOpts(overrideArguments=None): help='lists all available subtitles for the video (currently youtube only)', default=False) video_format.add_option('--sub-format', action='store', dest='subtitlesformat', metavar='FORMAT', - help='subtitle format [srt/sbv] (default=srt) (currently youtube only)', default='srt') + help='subtitle format [srt/sbv/vtt] (default=srt) (currently youtube only)', default='srt') video_format.add_option('--sub-lang', '--srt-lang', action='store', dest='subtitleslang', metavar='LANG', help='language of the subtitles to download (optional) use IETF language tags like \'en\'')