From 5de3ece2256584732a4b2c74a499f36577c42008 Mon Sep 17 00:00:00 2001 From: Philipp Hagemeister Date: Thu, 11 Jul 2013 16:16:02 +0200 Subject: [PATCH] [brightcove] fix on Python 2.6 --- youtube_dl/extractor/brightcove.py | 6 +++--- youtube_dl/utils.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) 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 @@ def _build_brighcove_url(cls, object_str): 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 @@ def write_json_file(obj, fn): 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: