瀏覽代碼

Remove the --max-quality option

It doesn't work well with 'bestvideo' and 'bestaudio' because they are usually before the max quality.
Format filters should be used instead, they are more flexible and don't require the requested quality to exist for each video.
tags/2015.04.28
Jaime Marquínez Ferrándiz 9 年之前
父節點
當前提交
9f3fa89f7c
共有 6 個文件被更改,包括 0 次插入56 次删除
  1. +0
    -1
      test/parameters.json
  2. +0
    -33
      test/test_YoutubeDL.py
  3. +0
    -8
      youtube_dl/YoutubeDL.py
  4. +0
    -1
      youtube_dl/__init__.py
  5. +0
    -4
      youtube_dl/options.py
  6. +0
    -9
      youtube_dl/utils.py

+ 0
- 1
test/parameters.json 查看文件

@@ -8,7 +8,6 @@
"forcetitle": false,
"forceurl": false,
"format": "best",
"format_limit": null,
"ignoreerrors": false,
"listformats": null,
"logtostderr": false,


+ 0
- 33
test/test_YoutubeDL.py 查看文件

@@ -101,39 +101,6 @@ class TestFormatSelection(unittest.TestCase):
downloaded = ydl.downloaded_info_dicts[0]
self.assertEqual(downloaded['ext'], 'flv')

def test_format_limit(self):
formats = [
{'format_id': 'meh', 'url': 'http://example.com/meh', 'preference': 1},
{'format_id': 'good', 'url': 'http://example.com/good', 'preference': 2},
{'format_id': 'great', 'url': 'http://example.com/great', 'preference': 3},
{'format_id': 'excellent', 'url': 'http://example.com/exc', 'preference': 4},
]
info_dict = _make_result(formats)

ydl = YDL()
ydl.process_ie_result(info_dict)
downloaded = ydl.downloaded_info_dicts[0]
self.assertEqual(downloaded['format_id'], 'excellent')

ydl = YDL({'format_limit': 'good'})
assert ydl.params['format_limit'] == 'good'
ydl.process_ie_result(info_dict.copy())
downloaded = ydl.downloaded_info_dicts[0]
self.assertEqual(downloaded['format_id'], 'good')

ydl = YDL({'format_limit': 'great', 'format': 'all'})
ydl.process_ie_result(info_dict.copy())
self.assertEqual(ydl.downloaded_info_dicts[0]['format_id'], 'meh')
self.assertEqual(ydl.downloaded_info_dicts[1]['format_id'], 'good')
self.assertEqual(ydl.downloaded_info_dicts[2]['format_id'], 'great')
self.assertTrue('3' in ydl.msgs[0])

ydl = YDL()
ydl.params['format_limit'] = 'excellent'
ydl.process_ie_result(info_dict.copy())
downloaded = ydl.downloaded_info_dicts[0]
self.assertEqual(downloaded['format_id'], 'excellent')

def test_format_selection(self):
formats = [
{'format_id': '35', 'ext': 'mp4', 'preference': 1, 'url': TEST_URL},


+ 0
- 8
youtube_dl/YoutubeDL.py 查看文件

@@ -64,7 +64,6 @@ from .utils import (
sanitize_path,
std_headers,
subtitles_filename,
takewhile_inclusive,
UnavailableVideoError,
url_basename,
version_tuple,
@@ -135,7 +134,6 @@ class YoutubeDL(object):
(or video) as a single JSON line.
simulate: Do not download the video files.
format: Video format code. See options.py for more information.
format_limit: Highest quality format to try.
outtmpl: Template for output names.
restrictfilenames: Do not allow "&" and spaces in file names
ignoreerrors: Do not stop on download errors.
@@ -1068,12 +1066,6 @@ class YoutubeDL(object):
full_format_info.update(format)
format['http_headers'] = self._calc_headers(full_format_info)

format_limit = self.params.get('format_limit', None)
if format_limit:
formats = list(takewhile_inclusive(
lambda f: f['format_id'] != format_limit, formats
))

# TODO Central sorting goes here

if formats[0] is not info_dict:


+ 0
- 1
youtube_dl/__init__.py 查看文件

@@ -283,7 +283,6 @@ def _real_main(argv=None):
'simulate': opts.simulate or any_getting,
'skip_download': opts.skip_download,
'format': opts.format,
'format_limit': opts.format_limit,
'listformats': opts.listformats,
'outtmpl': outtmpl,
'autonumber_size': opts.autonumber_size,


+ 0
- 4
youtube_dl/options.py 查看文件

@@ -331,10 +331,6 @@ def parseOpts(overrideArguments=None):
'--prefer-free-formats',
action='store_true', dest='prefer_free_formats', default=False,
help='Prefer free video formats unless a specific one is requested')
video_format.add_option(
'--max-quality',
action='store', dest='format_limit', metavar='FORMAT',
help='Highest quality format to download')
video_format.add_option(
'-F', '--list-formats',
action='store_true', dest='listformats',


+ 0
- 9
youtube_dl/utils.py 查看文件

@@ -1109,15 +1109,6 @@ def shell_quote(args):
return ' '.join(quoted_args)


def takewhile_inclusive(pred, seq):
""" Like itertools.takewhile, but include the latest evaluated element
(the first element so that Not pred(e)) """
for e in seq:
yield e
if not pred(e):
return


def smuggle_url(url, data):
""" Pass additional data in a URL for internal use. """



Loading…
取消
儲存