diff options
| author | remitamine <remitamine@gmail.com> | 2015-12-28 19:15:14 +0100 | 
|---|---|---|
| committer | remitamine <remitamine@gmail.com> | 2015-12-28 19:15:14 +0100 | 
| commit | 39d60b715a75e92d169167876bb07424301c0b67 (patch) | |
| tree | 7a9dd6db08c841ce02150f7957baad5511487b5a | |
| parent | 54537cdfb3da7a64967f07df86042ffca761d937 (diff) | |
| parent | d497a201cab0eb588e9b7f75494f5494c9663e67 (diff) | |
Merge pull request #7769 from remitamine/sort
[common] lower (m3u8,rtmp,rtsp) format preference only if required program is not available
| -rw-r--r-- | youtube_dl/extractor/common.py | 11 | 
1 files changed, 5 insertions, 6 deletions
| diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index 3d39781a4..34a28c126 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -18,7 +18,6 @@ from ..compat import (      compat_http_client,      compat_urllib_error,      compat_urllib_parse, -    compat_urllib_parse_urlparse,      compat_urlparse,      compat_str,      compat_etree_fromstring, @@ -43,6 +42,7 @@ from ..utils import (      url_basename,      xpath_text,      xpath_with_ns, +    determine_protocol,  ) @@ -778,14 +778,12 @@ class InfoExtractor(object):              preference = f.get('preference')              if preference is None: -                proto = f.get('protocol') -                if proto is None: -                    proto = compat_urllib_parse_urlparse(f.get('url', '')).scheme - -                preference = 0 if proto in ['http', 'https'] else -0.1 +                preference = 0                  if f.get('ext') in ['f4f', 'f4m']:  # Not yet supported                      preference -= 0.5 +            proto_preference = 0 if determine_protocol(f) in ['http', 'https'] else -0.1 +              if f.get('vcodec') == 'none':  # audio only                  if self._downloader.params.get('prefer_free_formats'):                      ORDER = ['aac', 'mp3', 'm4a', 'webm', 'ogg', 'opus'] @@ -816,6 +814,7 @@ class InfoExtractor(object):                  f.get('vbr') if f.get('vbr') is not None else -1,                  f.get('height') if f.get('height') is not None else -1,                  f.get('width') if f.get('width') is not None else -1, +                proto_preference,                  ext_preference,                  f.get('abr') if f.get('abr') is not None else -1,                  audio_ext_preference, | 
