diff options
| author | Sergey M․ <dstftw@gmail.com> | 2019-02-24 21:01:25 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2019-02-24 21:01:25 +0700 | 
| commit | f0228f56fb2441510aa966ba9298e388b209cde1 (patch) | |
| tree | e33a218bffb1dfd0e36379be8cd6412224fd917a | |
| parent | 8c80603f1adea843d96c0598b902106c7a3efb7f (diff) | |
[bbccouk] Make subtitles non fatal (#19651)
| -rw-r--r-- | youtube_dl/extractor/bbc.py | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/youtube_dl/extractor/bbc.py b/youtube_dl/extractor/bbc.py index eac9a5a46..13340ec64 100644 --- a/youtube_dl/extractor/bbc.py +++ b/youtube_dl/extractor/bbc.py @@ -1,8 +1,9 @@  # coding: utf-8  from __future__ import unicode_literals -import re  import itertools +import re +import xml  from .common import InfoExtractor  from ..utils import ( @@ -17,6 +18,7 @@ from ..utils import (      parse_iso8601,      try_get,      unescapeHTML, +    url_or_none,      urlencode_postdata,      urljoin,  ) @@ -310,7 +312,13 @@ class BBCCoUkIE(InfoExtractor):      def _get_subtitles(self, media, programme_id):          subtitles = {}          for connection in self._extract_connections(media): -            captions = self._download_xml(connection.get('href'), programme_id, 'Downloading captions') +            cc_url = url_or_none(connection.get('href')) +            if not cc_url: +                continue +            captions = self._download_xml( +                cc_url, programme_id, 'Downloading captions', fatal=False) +            if not isinstance(captions, xml.etree.ElementTree.Element): +                continue              lang = captions.get('{http://www.w3.org/XML/1998/namespace}lang', 'en')              subtitles[lang] = [                  {  | 
