projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
dfd42a4
)
[downloader/f4m] Fix malformed manifests (Closes #7823)
author
Sergey M․
<dstftw@gmail.com>
Thu, 10 Dec 2015 16:59:50 +0000
(22:59 +0600)
committer
Sergey M․
<dstftw@gmail.com>
Thu, 10 Dec 2015 16:59:50 +0000
(22:59 +0600)
youtube_dl/downloader/f4m.py
patch
|
blob
|
history
diff --git
a/youtube_dl/downloader/f4m.py
b/youtube_dl/downloader/f4m.py
index 6170cc1552194104ea1f029ec9b54c2b051e7a9c..7819a91dcb2f5108b0c6690f05cc6579d2d4362c 100644
(file)
--- a/
youtube_dl/downloader/f4m.py
+++ b/
youtube_dl/downloader/f4m.py
@@
-15,6
+15,7
@@
from ..compat import (
)
from ..utils import (
encodeFilename,
)
from ..utils import (
encodeFilename,
+ fix_xml_ampersands,
sanitize_open,
struct_pack,
struct_unpack,
sanitize_open,
struct_pack,
struct_unpack,
@@
-288,7
+289,10
@@
class F4mFD(FragmentFD):
self.to_screen('[%s] Downloading f4m manifest' % self.FD_NAME)
urlh = self.ydl.urlopen(man_url)
man_url = urlh.geturl()
self.to_screen('[%s] Downloading f4m manifest' % self.FD_NAME)
urlh = self.ydl.urlopen(man_url)
man_url = urlh.geturl()
- manifest = urlh.read()
+ # Some manifests may be malformed, e.g. prosiebensat1 generated manifests
+ # (see https://github.com/rg3/youtube-dl/issues/6215#issuecomment-121704244
+ # and https://github.com/rg3/youtube-dl/issues/7823)
+ manifest = fix_xml_ampersands(urlh.read()).strip()
doc = compat_etree_fromstring(manifest)
formats = [(int(f.attrib.get('bitrate', -1)), f)
doc = compat_etree_fromstring(manifest)
formats = [(int(f.attrib.get('bitrate', -1)), f)