diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2014-01-07 06:23:41 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2014-01-07 06:23:41 +0100 | 
| commit | d70ad093af56330d19eabe54483cbbd44b1bf6c1 (patch) | |
| tree | b712aa68c300233f65c340a306289cbf97a720af | |
| parent | 2a2e2770cc216e3a0d29eb3d164b62bc97938176 (diff) | |
Move check_executable into a helper ufnction
| -rw-r--r-- | youtube_dl/postprocessor/ffmpeg.py | 9 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 10 | 
2 files changed, 12 insertions, 7 deletions
| diff --git a/youtube_dl/postprocessor/ffmpeg.py b/youtube_dl/postprocessor/ffmpeg.py index 91434d970..a7fe5f346 100644 --- a/youtube_dl/postprocessor/ffmpeg.py +++ b/youtube_dl/postprocessor/ffmpeg.py @@ -7,6 +7,7 @@ import time  from .common import AudioConversionError, PostProcessor  from ..utils import ( +    check_executable,      compat_subprocess_get_DEVNULL,      encodeFilename,      PostProcessingError, @@ -27,14 +28,8 @@ class FFmpegPostProcessor(PostProcessor):      @staticmethod      def detect_executables(): -        def executable(exe): -            try: -                subprocess.Popen([exe, '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() -            except OSError: -                return False -            return exe          programs = ['avprobe', 'avconv', 'ffmpeg', 'ffprobe'] -        return dict((program, executable(program)) for program in programs) +        return dict((program, check_executable(program, ['-version'])) for program in programs)      def run_ffmpeg_multiple_files(self, input_paths, out_path, opts):          if not self._exes['ffmpeg'] and not self._exes['avconv']: diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index a509f8e2f..73fe1ad0a 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1151,3 +1151,13 @@ def parse_duration(s):  def prepend_extension(filename, ext):      name, real_ext = os.path.splitext(filename)       return u'{0}.{1}{2}'.format(name, ext, real_ext) + + +def check_executable(exe, args=[]): +    """ Checks if the given binary is installed somewhere in PATH, and returns its name. +    args can be a list of arguments for a short output (like -version) """ +    try: +        subprocess.Popen([exe] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate() +    except OSError: +        return False +    return exe | 
