diff options
| -rw-r--r-- | youtube_dl/extractor/ted.py | 30 | 
1 files changed, 16 insertions, 14 deletions
| diff --git a/youtube_dl/extractor/ted.py b/youtube_dl/extractor/ted.py index f27d0e313..06a27fd04 100644 --- a/youtube_dl/extractor/ted.py +++ b/youtube_dl/extractor/ted.py @@ -271,20 +271,22 @@ class TEDIE(InfoExtractor):          }      def _get_subtitles(self, video_id, talk_info): -        languages = [lang['languageCode'] for lang in talk_info.get('languages', [])] -        if languages: -            sub_lang_list = {} -            for l in languages: -                sub_lang_list[l] = [ -                    { -                        'url': 'http://www.ted.com/talks/subtitles/id/%s/lang/%s/format/%s' % (video_id, l, ext), -                        'ext': ext, -                    } -                    for ext in ['ted', 'srt'] -                ] -            return sub_lang_list -        else: -            return {} +        sub_lang_list = {} +        for language in try_get( +                talk_info, +                (lambda x: x['downloads']['languages'], +                 lambda x: x['languages']), list): +            lang_code = language.get('languageCode') or language.get('ianaCode') +            if not lang_code: +                continue +            sub_lang_list[lang_code] = [ +                { +                    'url': 'http://www.ted.com/talks/subtitles/id/%s/lang/%s/format/%s' % (video_id, lang_code, ext), +                    'ext': ext, +                } +                for ext in ['ted', 'srt'] +            ] +        return sub_lang_list      def _watch_info(self, url, name):          webpage = self._download_webpage(url, name) | 
