diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-28 14:03:27 +0100 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-28 14:03:27 +0100 | 
| commit | 0f2c0d335b14ba1596e6608db7a6f29a0d9e1c86 (patch) | |
| tree | b67fab3359d1f3b88e4746995913af4b6625b976 | |
| parent | bd3749ed693ae96becd3832f20e765e1efe01476 (diff) | |
[YoutubeDL] Use the InfoExtractor._download_webpage method for getting the subtitles
It handles encodings better, for example for 'http://www.npo.nl/nos-journaal/14-02-2015/POW_00942207'
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 76fc394bc..74e426168 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1300,17 +1300,18 @@ class YoutubeDL(object):              # subtitles download errors are already managed as troubles in relevant IE              # that way it will silently go on when used with unsupporting IE              subtitles = info_dict['requested_subtitles'] +            ie = self.get_info_extractor(info_dict['extractor_key'])              for sub_lang, sub_info in subtitles.items():                  sub_format = sub_info['ext']                  if sub_info.get('data') is not None:                      sub_data = sub_info['data']                  else:                      try: -                        uf = self.urlopen(sub_info['url']) -                        sub_data = uf.read().decode('utf-8') -                    except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err: +                        sub_data = ie._download_webpage( +                            sub_info['url'], info_dict['id'], note=False) +                    except ExtractorError as err:                          self.report_warning('Unable to download subtitle for "%s": %s' % -                                            (sub_lang, compat_str(err))) +                                            (sub_lang, compat_str(err.cause)))                          continue                  try:                      sub_filename = subtitles_filename(filename, sub_lang, sub_format) | 
