X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fdownloader%2Fexternal.py;h=daedf66de0016076a579ce15d53ca71b39cfceb6;hb=91ee320bfaa279571b27bf44730c8677ff2b3980;hp=a4fdf1af8053a2d3215cdbcc2f2333ba61d7807c;hpb=f34294fa0c0097cea7f6388d5d691d5a54950491;p=youtube-dl diff --git a/youtube_dl/downloader/external.py b/youtube_dl/downloader/external.py index a4fdf1af8..daedf66de 100644 --- a/youtube_dl/downloader/external.py +++ b/youtube_dl/downloader/external.py @@ -6,7 +6,7 @@ import sys import re from .common import FileDownloader -from ..postprocessor.ffmpeg import FFmpegPostProcessor +from ..postprocessor.ffmpeg import FFmpegPostProcessor, EXT_TO_OUT_FORMATS from ..compat import compat_str from ..utils import ( cli_option, @@ -53,7 +53,7 @@ class ExternalFD(FileDownloader): @classmethod def available(cls): - return check_executable(cls.get_basename(), cls.available_opt) + return check_executable(cls.get_basename(), [cls.AVAILABLE_OPT]) @classmethod def supports(cls, info_dict): @@ -86,7 +86,7 @@ class ExternalFD(FileDownloader): class CurlFD(ExternalFD): - available_opt = ['-V'] + AVAILABLE_OPT = '-V' def _make_cmd(self, tmpfilename, info_dict): cmd = [self.exe, '--location', '-o', tmpfilename] @@ -101,7 +101,7 @@ class CurlFD(ExternalFD): class AxelFD(ExternalFD): - available_opt = ['-V'] + AVAILABLE_OPT = '-V' def _make_cmd(self, tmpfilename, info_dict): cmd = [self.exe, '-o', tmpfilename] @@ -113,7 +113,7 @@ class AxelFD(ExternalFD): class WgetFD(ExternalFD): - available_opt = ['--version'] + AVAILABLE_OPT = '--version' def _make_cmd(self, tmpfilename, info_dict): cmd = [self.exe, '-O', tmpfilename, '-nv', '--no-cookies'] @@ -128,7 +128,7 @@ class WgetFD(ExternalFD): class Aria2cFD(ExternalFD): - available_opt = ['-v'] + AVAILABLE_OPT = '-v' def _make_cmd(self, tmpfilename, info_dict): cmd = [self.exe, '-c'] @@ -162,7 +162,7 @@ class HttpieFD(ExternalFD): class FFmpegFD(ExternalFD): @classmethod def supports(cls, info_dict): - return info_dict['protocol'] in ('http', 'https', 'ftp', 'ftps', 'm3u8', 'rtsp', 'rtmp', 'mms') + return info_dict['protocol'] in ('http', 'https', 'ftp', 'ftps', 'm3u8', 'rtsp', 'rtmp', 'mms') and not info_dict.get('requested_formats') @classmethod def available(cls): @@ -197,7 +197,7 @@ class FFmpegFD(ExternalFD): else: args += ['-f', 'mp4', '-bsf:a', 'aac_adtstoasc'] else: - args += ['-f', info_dict['ext']] + args += ['-f', EXT_TO_OUT_FORMATS.get(info_dict['ext'], info_dict['ext'])] args = [encodeArgument(opt) for opt in args] args.append(encodeFilename(ffpp._ffmpeg_filename_argument(tmpfilename), True))