about summary refs log tree commit diff
path: root/youtube_dl/extractor/bbc.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2019-02-24 21:01:25 +0700
committerSergey M․ <dstftw@gmail.com>2019-02-24 21:01:25 +0700
commitf0228f56fb2441510aa966ba9298e388b209cde1 (patch)
treee33a218bffb1dfd0e36379be8cd6412224fd917a /youtube_dl/extractor/bbc.py
parent8c80603f1adea843d96c0598b902106c7a3efb7f (diff)
downloadyoutube-dl-f0228f56fb2441510aa966ba9298e388b209cde1.tar.gz
youtube-dl-f0228f56fb2441510aa966ba9298e388b209cde1.tar.xz
youtube-dl-f0228f56fb2441510aa966ba9298e388b209cde1.zip
[bbccouk] Make subtitles non fatal (#19651)
Diffstat (limited to 'youtube_dl/extractor/bbc.py')
-rw-r--r--youtube_dl/extractor/bbc.py12
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] = [
                 {