youtube-dl

Another place where youtube-dl lives on
git clone git://git.oshgnacknak.de/youtube-dl.git
Log | Files | Refs | README | LICENSE

commit d70ad093af56330d19eabe54483cbbd44b1bf6c1
parent 2a2e2770cc216e3a0d29eb3d164b62bc97938176
Author: Philipp Hagemeister <phihag@phihag.de>
Date:   Tue,  7 Jan 2014 06:23:41 +0100

Move check_executable into a helper ufnction

Diffstat:
Myoutube_dl/postprocessor/ffmpeg.py | 9++-------
Myoutube_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 @@ -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 @@ -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