aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2014-02-21 16:59:10 +0100
committerJaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com>2014-02-21 16:59:10 +0100
commitf7300c5c90a99d234a2c7a6d70f5b5baa9d35046 (patch)
tree64220815f5e1399a23b7b0a312a0395adcc64263
parent3489b7d26c727dac604cf9ece562139372da9bb7 (diff)
downloadyoutube-dl-f7300c5c90a99d234a2c7a6d70f5b5baa9d35046.tar.xz
[generic] Fix on python 2.6
`ParseError` is not available, it raises `xml.parsers.expat.ExpatError`. The webpage needs to be encoded.
-rw-r--r--youtube_dl/extractor/generic.py5
-rw-r--r--youtube_dl/utils.py5
2 files changed, 8 insertions, 2 deletions
diff --git a/youtube_dl/extractor/generic.py b/youtube_dl/extractor/generic.py
index 30160d59d..9a2e54d14 100644
--- a/youtube_dl/extractor/generic.py
+++ b/youtube_dl/extractor/generic.py
@@ -13,6 +13,7 @@ from ..utils import (
compat_urllib_parse,
compat_urllib_request,
compat_urlparse,
+ compat_xml_parse_error,
ExtractorError,
HEADRequest,
@@ -241,10 +242,10 @@ class GenericIE(InfoExtractor):
# Is it an RSS feed?
try:
- doc = xml.etree.ElementTree.fromstring(webpage)
+ doc = xml.etree.ElementTree.fromstring(webpage.encode('utf-8'))
if doc.tag == 'rss':
return self._extract_rss(url, video_id, doc)
- except xml.etree.ElementTree.ParseError:
+ except compat_xml_parse_error:
pass
# it's tempting to parse this further, but you would
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 057cd20d1..471516b8f 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -174,6 +174,11 @@ try:
except NameError:
compat_chr = chr
+try:
+ from xml.etree.ElementTree import ParseError as compat_xml_parse_error
+except ImportError: # Python 2.6
+ from xml.parsers.expat import ExpatError as compat_xml_parse_error
+
def compat_ord(c):
if type(c) is int: return c
else: return ord(c)