return None
if format_spec == 'best' or format_spec is None:
- return available_formats[-1]
+ audiovideo_formats = [
+ f for f in available_formats
+ if f.get('vcodec') != 'none' and f.get('acodec') != 'none']
+ if audiovideo_formats:
+ return audiovideo_formats[-1]
+ # for audio only urls, 'best' selects the best audio format
+ elif all(f.get('acodec') != 'none' for f in available_formats):
+ return available_formats[-1]
elif format_spec == 'worst':
audiovideo_formats = [
f for f in available_formats
requested_formats = info_dict['requested_formats']
if self.params.get('merge_output_format') is None and not compatible_formats(requested_formats):
filename = os.path.splitext(filename)[0] + '.mkv'
- self.report_warning('You have requested formats uncompatible for merge. '
+ self.report_warning('You have requested formats incompatible for merge. '
'The formats will be merged into mkv')
if os.path.exists(encodeFilename(filename)):
self.to_screen(