From: Philipp Hagemeister Date: Thu, 11 Jul 2013 14:16:02 +0000 (+0200) Subject: [brightcove] fix on Python 2.6 X-Git-Url: http://git.oshgnacknak.de/?a=commitdiff_plain;h=5de3ece2256584732a4b2c74a499f36577c42008;p=youtube-dl [brightcove] fix on Python 2.6 --- diff --git a/youtube_dl/extractor/brightcove.py b/youtube_dl/extractor/brightcove.py index 68ee5292b..c784ba785 100644 --- a/youtube_dl/extractor/brightcove.py +++ b/youtube_dl/extractor/brightcove.py @@ -24,13 +24,13 @@ class BrightcoveIE(InfoExtractor): object_doc = xml.etree.ElementTree.fromstring(object_str) assert u'BrightcoveExperience' in object_doc.attrib['class'] params = {'flashID': object_doc.attrib['id'], - 'playerID': object_doc.find('./param[@name="playerID"]').attrib['value'], + 'playerID': find_xpath_attr(object_doc, './param', 'name', 'playerID').attrib['value'], } - playerKey = object_doc.find('./param[@name="playerKey"]') + playerKey = find_xpath_attr(object_doc, './param', 'name', 'playerKey') # Not all pages define this value if playerKey is not None: params['playerKey'] = playerKey.attrib['value'] - videoPlayer = object_doc.find('./param[@name="@videoPlayer"]') + videoPlayer = find_xpath_attr(object_doc, './param', 'name', '@videoPlayer') if videoPlayer is not None: params['@videoPlayer'] = videoPlayer.attrib['value'] data = compat_urllib_parse.urlencode(params) diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 76fa2950c..31db1bf8c 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -201,8 +201,8 @@ else: if sys.version_info >= (2,7): def find_xpath_attr(node, xpath, key, val): """ Find the xpath xpath[@key=val] """ - assert re.match(r'^[a-z]+$', key) - assert re.match(r'^[a-z]*$', val) + assert re.match(r'^[a-zA-Z]+$', key) + assert re.match(r'^[a-zA-Z@]*$', val) expr = xpath + u"[@%s='%s']" % (key, val) return node.find(expr) else: