mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-10-31 17:53:11 +00:00 
			
		
		
		
	Add the option "--write-auto-sub" to download automatic subtitles from Youtube
Now automatic subtitles are only downloaded if the option is given. (closes #903)
This commit is contained in:
		
							parent
							
								
									81b42336ad
								
							
						
					
					
						commit
						b004821fa9
					
				| @ -100,7 +100,7 @@ class TestYoutubeSubtitles(unittest.TestCase): | ||||
|         self.assertEqual(info_dict, None) | ||||
|     def test_youtube_automatic_captions(self): | ||||
|         DL = FakeYDL() | ||||
|         DL.params['writesubtitles'] = True | ||||
|         DL.params['writeautomaticsub'] = True | ||||
|         DL.params['subtitleslang'] = 'it' | ||||
|         IE = YoutubeIE(DL) | ||||
|         info_dict = IE.extract('8YoUxe5ncPo') | ||||
|  | ||||
| @ -72,6 +72,7 @@ class YoutubeDL(object): | ||||
|     writeinfojson:     Write the video description to a .info.json file | ||||
|     writethumbnail:    Write the thumbnail image to a file | ||||
|     writesubtitles:    Write the video subtitles to a file | ||||
|     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) | ||||
| @ -474,7 +475,7 @@ class YoutubeDL(object): | ||||
|                 self.report_error(u'Cannot write description file ' + descfn) | ||||
|                 return | ||||
| 
 | ||||
|         if self.params.get('writesubtitles', False) and 'subtitles' in info_dict and info_dict['subtitles']: | ||||
|         if (self.params.get('writesubtitles', False) or self.params.get('writeautomaticsub')) and 'subtitles' in info_dict and info_dict['subtitles']: | ||||
|             # subtitles download errors are already managed as troubles in relevant IE | ||||
|             # that way it will silently go on when used with unsupporting IE | ||||
|             subtitle = info_dict['subtitles'][0] | ||||
|  | ||||
| @ -191,6 +191,9 @@ def parseOpts(overrideArguments=None): | ||||
|     video_format.add_option('--write-sub', '--write-srt', | ||||
|             action='store_true', dest='writesubtitles', | ||||
|             help='write subtitle file (currently youtube only)', default=False) | ||||
|     video_format.add_option('--write-auto-sub', '--write-automatic-sub', | ||||
|             action='store_true', dest='writeautomaticsub', | ||||
|             help='write automatic subtitle file (currently youtube only)', default=False) | ||||
|     video_format.add_option('--only-sub', | ||||
|             action='store_true', dest='skip_download', | ||||
|             help='[deprecated] alias of --skip-download', default=False) | ||||
| @ -537,6 +540,7 @@ def _real_main(argv=None): | ||||
|         'writeinfojson': opts.writeinfojson, | ||||
|         'writethumbnail': opts.writethumbnail, | ||||
|         'writesubtitles': opts.writesubtitles, | ||||
|         'writeautomaticsub': opts.writeautomaticsub, | ||||
|         'allsubtitles': opts.allsubtitles, | ||||
|         'listsubtitles': opts.listsubtitles, | ||||
|         'subtitlesformat': opts.subtitlesformat, | ||||
|  | ||||
| @ -454,13 +454,12 @@ class YoutubeIE(InfoExtractor): | ||||
|             if video_subtitles: | ||||
|                 (sub_error, sub_lang, sub) = video_subtitles[0] | ||||
|                 if sub_error: | ||||
|                     # We try with the automatic captions | ||||
|                     self._downloader.report_warning(sub_error) | ||||
|          | ||||
|         if self._downloader.params.get('writeautomaticsub', False): | ||||
|             video_subtitles = self._request_automatic_caption(video_id, video_webpage) | ||||
|                     (sub_error_auto, sub_lang, sub) = video_subtitles[0] | ||||
|                     if sub is not None: | ||||
|                         pass | ||||
|                     else: | ||||
|                         # We report the original error | ||||
|             (sub_error, sub_lang, sub) = video_subtitles[0] | ||||
|             if sub_error: | ||||
|                 self._downloader.report_warning(sub_error) | ||||
| 
 | ||||
|         if self._downloader.params.get('allsubtitles', False): | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
						Jaime Marquínez Ferrándiz