From f141fefab73d96a6dd2c927f56d0b86253991c02 Mon Sep 17 00:00:00 2001 From: Yen Chi Hsuan Date: Thu, 14 Apr 2016 14:06:05 +0800 Subject: [PATCH] [karrierevideos] Fix extraction The server serves malformed header "Content Type: text/xml" for the XML request (it should be Content-Type but not Content Type). Python 3.x, which uses email.feedparser rejects such headers. As a result, Content-Encoding header is not parsed, so the returned content is kept not decompressed, and thus XML parsing error. --- youtube_dl/extractor/karrierevideos.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/youtube_dl/extractor/karrierevideos.py b/youtube_dl/extractor/karrierevideos.py index 2cb04e533..c05263e61 100644 --- a/youtube_dl/extractor/karrierevideos.py +++ b/youtube_dl/extractor/karrierevideos.py @@ -52,9 +52,12 @@ def _real_extract(self, url): video_id = self._search_regex( r'/config/video/(.+?)\.xml', webpage, 'video id') + # Server returns malformed headers + # Force Accept-Encoding: * to prevent gzipped results playlist = self._download_xml( 'http://www.karrierevideos.at/player-playlist.xml.php?p=%s' % video_id, - video_id, transform_source=fix_xml_ampersands) + video_id, transform_source=fix_xml_ampersands, + headers={'Accept-Encoding': '*'}) NS_MAP = { 'jwplayer': 'http://developer.longtailvideo.com/trac/wiki/FlashFormats'