diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 9f15616fa1..1491f8908a 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -713,7 +713,7 @@ class YoutubeDL(object): self.list_formats(info_dict) return - req_format = self.params.get('format', 'best') + req_format = self.params.get('format') if req_format is None: req_format = 'best' formats_to_download = [] diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 4db97ad3c2..c15e6ef7ec 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -256,7 +256,7 @@ def parseOpts(overrideArguments=None): video_format.add_option('-f', '--format', - action='store', dest='format', metavar='FORMAT', default='best', + action='store', dest='format', metavar='FORMAT', default=None, help='video format code, specify the order of preference using slashes: "-f 22/17/18". "-f mp4" and "-f flv" are also supported. You can also use the special names "best", "bestaudio", and "worst"') video_format.add_option('--all-formats', action='store_const', dest='format', help='download all available video formats', const='all') @@ -624,6 +624,10 @@ def _real_main(argv=None): if opts.default_search not in ('auto', None) and ':' not in opts.default_search: parser.error(u'--default-search invalid; did you forget a colon (:) at the end?') + # Do not download videos when there are audio-only formats + if opts.extractaudio and not opts.keepvideo and opts.format is None: + opts.format = 'bestaudio/best' + # --all-sub automatically sets --write-sub if --write-auto-sub is not given # this was the old behaviour if only --all-sub was given. if opts.allsubtitles and (opts.writeautomaticsub == False):