mirror of
https://github.com/ytdl-org/youtube-dl.git
synced 2024-11-25 19:52:11 +00:00
Merge pull request #5523 from jaimeMF/remove-format-limit
Remove the --max-quality option
This commit is contained in:
commit
40b96352c9
7 changed files with 2 additions and 59 deletions
|
@ -188,7 +188,6 @@ which means you can modify it, redistribute it or use it however you like.
|
||||||
-f, --format FORMAT Video format code, see the "FORMAT SELECTION" for all the info
|
-f, --format FORMAT Video format code, see the "FORMAT SELECTION" for all the info
|
||||||
--all-formats Download all available video formats
|
--all-formats Download all available video formats
|
||||||
--prefer-free-formats Prefer free video formats unless a specific one is requested
|
--prefer-free-formats Prefer free video formats unless a specific one is requested
|
||||||
--max-quality FORMAT Highest quality format to download
|
|
||||||
-F, --list-formats List all available formats
|
-F, --list-formats List all available formats
|
||||||
--youtube-skip-dash-manifest Do not download the DASH manifest on YouTube videos
|
--youtube-skip-dash-manifest Do not download the DASH manifest on YouTube videos
|
||||||
--merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv.Ignored if no
|
--merge-output-format FORMAT If a merge is required (e.g. bestvideo+bestaudio), output to given container format. One of mkv, mp4, ogg, webm, flv.Ignored if no
|
||||||
|
@ -324,9 +323,9 @@ YouTube changed their playlist format in March 2014 and later on, so you'll need
|
||||||
|
|
||||||
If you have installed youtube-dl with a package manager, pip, setup.py or a tarball, please use that to update. Note that Ubuntu packages do not seem to get updated anymore. Since we are not affiliated with Ubuntu, there is little we can do. Feel free to [report bugs](https://bugs.launchpad.net/ubuntu/+source/youtube-dl/+filebug) to the [Ubuntu packaging guys](mailto:ubuntu-motu@lists.ubuntu.com?subject=outdated%20version%20of%20youtube-dl) - all they have to do is update the package to a somewhat recent version. See above for a way to update.
|
If you have installed youtube-dl with a package manager, pip, setup.py or a tarball, please use that to update. Note that Ubuntu packages do not seem to get updated anymore. Since we are not affiliated with Ubuntu, there is little we can do. Feel free to [report bugs](https://bugs.launchpad.net/ubuntu/+source/youtube-dl/+filebug) to the [Ubuntu packaging guys](mailto:ubuntu-motu@lists.ubuntu.com?subject=outdated%20version%20of%20youtube-dl) - all they have to do is update the package to a somewhat recent version. See above for a way to update.
|
||||||
|
|
||||||
### Do I always have to pass in `--max-quality FORMAT`, or `-citw`?
|
### Do I always have to pass `-citw`?
|
||||||
|
|
||||||
By default, youtube-dl intends to have the best options (incidentally, if you have a convincing case that these should be different, [please file an issue where you explain that](https://yt-dl.org/bug)). Therefore, it is unnecessary and sometimes harmful to copy long option strings from webpages. In particular, `--max-quality` *limits* the video quality (so if you want the best quality, do NOT pass it in), and the only option out of `-citw` that is regularly useful is `-i`.
|
By default, youtube-dl intends to have the best options (incidentally, if you have a convincing case that these should be different, [please file an issue where you explain that](https://yt-dl.org/bug)). Therefore, it is unnecessary and sometimes harmful to copy long option strings from webpages. In particular, the only option out of `-citw` that is regularly useful is `-i`.
|
||||||
|
|
||||||
### Can you please put the -b option back?
|
### Can you please put the -b option back?
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
"forcetitle": false,
|
"forcetitle": false,
|
||||||
"forceurl": false,
|
"forceurl": false,
|
||||||
"format": "best",
|
"format": "best",
|
||||||
"format_limit": null,
|
|
||||||
"ignoreerrors": false,
|
"ignoreerrors": false,
|
||||||
"listformats": null,
|
"listformats": null,
|
||||||
"logtostderr": false,
|
"logtostderr": false,
|
||||||
|
|
|
@ -101,39 +101,6 @@ class TestFormatSelection(unittest.TestCase):
|
||||||
downloaded = ydl.downloaded_info_dicts[0]
|
downloaded = ydl.downloaded_info_dicts[0]
|
||||||
self.assertEqual(downloaded['ext'], 'flv')
|
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):
|
def test_format_selection(self):
|
||||||
formats = [
|
formats = [
|
||||||
{'format_id': '35', 'ext': 'mp4', 'preference': 1, 'url': TEST_URL},
|
{'format_id': '35', 'ext': 'mp4', 'preference': 1, 'url': TEST_URL},
|
||||||
|
|
|
@ -64,7 +64,6 @@ from .utils import (
|
||||||
sanitize_path,
|
sanitize_path,
|
||||||
std_headers,
|
std_headers,
|
||||||
subtitles_filename,
|
subtitles_filename,
|
||||||
takewhile_inclusive,
|
|
||||||
UnavailableVideoError,
|
UnavailableVideoError,
|
||||||
url_basename,
|
url_basename,
|
||||||
version_tuple,
|
version_tuple,
|
||||||
|
@ -135,7 +134,6 @@ class YoutubeDL(object):
|
||||||
(or video) as a single JSON line.
|
(or video) as a single JSON line.
|
||||||
simulate: Do not download the video files.
|
simulate: Do not download the video files.
|
||||||
format: Video format code. See options.py for more information.
|
format: Video format code. See options.py for more information.
|
||||||
format_limit: Highest quality format to try.
|
|
||||||
outtmpl: Template for output names.
|
outtmpl: Template for output names.
|
||||||
restrictfilenames: Do not allow "&" and spaces in file names
|
restrictfilenames: Do not allow "&" and spaces in file names
|
||||||
ignoreerrors: Do not stop on download errors.
|
ignoreerrors: Do not stop on download errors.
|
||||||
|
@ -1068,12 +1066,6 @@ class YoutubeDL(object):
|
||||||
full_format_info.update(format)
|
full_format_info.update(format)
|
||||||
format['http_headers'] = self._calc_headers(full_format_info)
|
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
|
# TODO Central sorting goes here
|
||||||
|
|
||||||
if formats[0] is not info_dict:
|
if formats[0] is not info_dict:
|
||||||
|
|
|
@ -283,7 +283,6 @@ def _real_main(argv=None):
|
||||||
'simulate': opts.simulate or any_getting,
|
'simulate': opts.simulate or any_getting,
|
||||||
'skip_download': opts.skip_download,
|
'skip_download': opts.skip_download,
|
||||||
'format': opts.format,
|
'format': opts.format,
|
||||||
'format_limit': opts.format_limit,
|
|
||||||
'listformats': opts.listformats,
|
'listformats': opts.listformats,
|
||||||
'outtmpl': outtmpl,
|
'outtmpl': outtmpl,
|
||||||
'autonumber_size': opts.autonumber_size,
|
'autonumber_size': opts.autonumber_size,
|
||||||
|
|
|
@ -331,10 +331,6 @@ def parseOpts(overrideArguments=None):
|
||||||
'--prefer-free-formats',
|
'--prefer-free-formats',
|
||||||
action='store_true', dest='prefer_free_formats', default=False,
|
action='store_true', dest='prefer_free_formats', default=False,
|
||||||
help='Prefer free video formats unless a specific one is requested')
|
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(
|
video_format.add_option(
|
||||||
'-F', '--list-formats',
|
'-F', '--list-formats',
|
||||||
action='store_true', dest='listformats',
|
action='store_true', dest='listformats',
|
||||||
|
|
|
@ -1128,15 +1128,6 @@ def shell_quote(args):
|
||||||
return ' '.join(quoted_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):
|
def smuggle_url(url, data):
|
||||||
""" Pass additional data in a URL for internal use. """
|
""" Pass additional data in a URL for internal use. """
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue