diff options
| author | Sergey M․ <dstftw@gmail.com> | 2016-01-30 18:28:38 +0600 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2016-01-30 18:28:38 +0600 | 
| commit | 8ab3fe81d84cb541eac3af73404e71d979967dcf (patch) | |
| tree | ddfc934e7832ed238c26e75345f700384958382b | |
| parent | c1406299959b780e7b86b567bd4eeecc8556dce0 (diff) | |
[downloader/f4m] Prefer bootstrap url attribute over inline bootstrap info
| -rw-r--r-- | youtube_dl/downloader/f4m.py | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/youtube_dl/downloader/f4m.py b/youtube_dl/downloader/f4m.py index aaf0c49c8..f8da04f69 100644 --- a/youtube_dl/downloader/f4m.py +++ b/youtube_dl/downloader/f4m.py @@ -273,15 +273,21 @@ class F4mFD(FragmentFD):          return fragments_list      def _parse_bootstrap_node(self, node, base_url): -        if node.text is None: +        # Sometimes non empty inline bootstrap info can be specified along +        # with bootstrap url attribute (e.g. dummy inline bootstrap info +        # contains whitespace characters in [1]). We will prefer bootstrap +        # url over inline bootstrap info when present. +        # 1. http://live-1-1.rutube.ru/stream/1024/HDS/SD/C2NKsS85HQNckgn5HdEmOQ/1454167650/S-s604419906/move/four/dirs/upper/1024-576p.f4m +        bootstrap_url = node.get('url') +        if bootstrap_url:              bootstrap_url = compat_urlparse.urljoin( -                base_url, node.attrib['url']) +                base_url, bootstrap_url)              boot_info = self._get_bootstrap_from_url(bootstrap_url)          else:              bootstrap_url = None              bootstrap = base64.b64decode(node.text.encode('ascii'))              boot_info = read_bootstrap_info(bootstrap) -        return (boot_info, bootstrap_url) +        return boot_info, bootstrap_url      def real_download(self, filename, info_dict):          man_url = info_dict['url'] | 
