projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
3711304
)
[downloader/f4m] get the redirected f4m_url and handle url query string properly
author
remitamine
<remitamine@gmail.com>
Thu, 10 Sep 2015 19:49:43 +0000
(20:49 +0100)
committer
Sergey M․
<dstftw@gmail.com>
Sat, 24 Oct 2015 14:05:46 +0000
(20:05 +0600)
youtube_dl/downloader/f4m.py
patch
|
blob
|
history
diff --git
a/youtube_dl/downloader/f4m.py
b/youtube_dl/downloader/f4m.py
index 174180db5bd4e5e42fca7a9feecdf8af4ea5e155..b8db6bf9b221d2eb83c521a73a8c031ba12491db 100644
(file)
--- a/
youtube_dl/downloader/f4m.py
+++ b/
youtube_dl/downloader/f4m.py
@@
-11,6
+11,7
@@
from .fragment import FragmentFD
from ..compat import (
compat_urlparse,
compat_urllib_error,
from ..compat import (
compat_urlparse,
compat_urllib_error,
+ compat_urllib_parse_urlparse,
)
from ..utils import (
encodeFilename,
)
from ..utils import (
encodeFilename,
@@
-285,7
+286,9
@@
class F4mFD(FragmentFD):
man_url = info_dict['url']
requested_bitrate = info_dict.get('tbr')
self.to_screen('[%s] Downloading f4m manifest' % self.FD_NAME)
man_url = info_dict['url']
requested_bitrate = info_dict.get('tbr')
self.to_screen('[%s] Downloading f4m manifest' % self.FD_NAME)
- manifest = self.ydl.urlopen(man_url).read()
+ urlh = self.ydl.urlopen(man_url)
+ man_url = urlh.geturl()
+ manifest = urlh.read()
doc = etree.fromstring(manifest)
formats = [(int(f.attrib.get('bitrate', -1)), f)
doc = etree.fromstring(manifest)
formats = [(int(f.attrib.get('bitrate', -1)), f)
@@
-329,20
+332,22
@@
class F4mFD(FragmentFD):
if not live:
write_metadata_tag(dest_stream, metadata)
if not live:
write_metadata_tag(dest_stream, metadata)
+ base_url_parsed = compat_urllib_parse_urlparse(base_url)
+
self._start_frag_download(ctx)
frags_filenames = []
while fragments_list:
seg_i, frag_i = fragments_list.pop(0)
name = 'Seg%d-Frag%d' % (seg_i, frag_i)
self._start_frag_download(ctx)
frags_filenames = []
while fragments_list:
seg_i, frag_i = fragments_list.pop(0)
name = 'Seg%d-Frag%d' % (seg_i, frag_i)
- url
= base_url + name
+ url
_parsed = base_url_parsed._replace(path=base_url_parsed.path + name)
if akamai_pv:
if akamai_pv:
- url
+= '?' + akamai_pv.strip(';'
)
+ url
_parsed = url_parsed._replace(query=url_parsed.query + akamai_pv.strip(';')
)
if info_dict.get('extra_param_to_segment_url'):
if info_dict.get('extra_param_to_segment_url'):
- url
+= info_dict.get('extra_param_to_segment_url'
)
+ url
_parsed = url_parsed._replace(query=url_parsed.query + info_dict.get('extra_param_to_segment_url')
)
frag_filename = '%s-%s' % (ctx['tmpfilename'], name)
try:
frag_filename = '%s-%s' % (ctx['tmpfilename'], name)
try:
- success = ctx['dl'].download(frag_filename, {'url': url})
+ success = ctx['dl'].download(frag_filename, {'url': url
_parsed.geturl()
})
if not success:
return False
(down, frag_sanitized) = sanitize_open(frag_filename, 'rb')
if not success:
return False
(down, frag_sanitized) = sanitize_open(frag_filename, 'rb')