aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2015-07-16 01:14:08 +0600
committerSergey M․ <dstftw@gmail.com>2015-07-16 01:14:08 +0600
commit97f4aecfc1c5fd446e1d3edd37e49aafe246fe0b (patch)
treed42d254932c686c4854d9ec3a23cd0bf85799c6e
parent2af0f87c8b56567e0254aae7a1ccbedb04413b1c (diff)
[extractor/common] Handle malformed f4m manifests
-rw-r--r--youtube_dl/extractor/common.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py
index 3a396c0b0..f8a5ecced 100644
--- a/youtube_dl/extractor/common.py
+++ b/youtube_dl/extractor/common.py
@@ -28,6 +28,7 @@ from ..utils import (
clean_html,
compiled_regex_type,
ExtractorError,
+ fix_xml_ampersands,
float_or_none,
int_or_none,
RegexNotFoundError,
@@ -837,7 +838,10 @@ class InfoExtractor(object):
def _extract_f4m_formats(self, manifest_url, video_id, preference=None, f4m_id=None):
manifest = self._download_xml(
manifest_url, video_id, 'Downloading f4m manifest',
- 'Unable to download f4m manifest')
+ 'Unable to download f4m manifest',
+ # Some manifests may be malformed, e.g. prosiebensat1 generated manifests
+ # (see https://github.com/rg3/youtube-dl/issues/6215#issuecomment-121704244)
+ transform_source=lambda s: fix_xml_ampersands(s).strip())
formats = []
manifest_version = '1.0'