[ffmpeg] Make downloader optional (Fixes #4039)
[youtube-dl] / youtube_dl / postprocessor / ffmpeg.py
index e13deab4b7b1f549a5048dc90c1fb867f69b5b2d..4b93556af7604faf44dd95e28417ce4f89a8799f 100644 (file)
@@ -26,7 +26,7 @@ def get_version(executable):
     try:
         out, err = subprocess.Popen(
             [executable, '-version'],
-            stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
+            stdout=subprocess.PIPE, stderr=subprocess.STDOUT).communicate()
     except OSError:
         return False
     firstline = out.partition(b'\n')[0].decode('ascii', 'ignore')
@@ -42,7 +42,7 @@ class FFmpegPostProcessorError(PostProcessingError):
 
 
 class FFmpegPostProcessor(PostProcessor):
-    def __init__(self, downloader, deletetempfiles=False):
+    def __init__(self, downloader=None, deletetempfiles=False):
         PostProcessor.__init__(self, downloader)
         self._versions = self.get_versions()
         self._deletetempfiles = deletetempfiles
@@ -56,7 +56,8 @@ class FFmpegPostProcessor(PostProcessor):
                 self._versions[self._executable], REQUIRED_VERSION):
             warning = u'Your copy of %s is outdated, update %s to version %s or newer if you encounter any errors.' % (
                 self._executable, self._executable, REQUIRED_VERSION)
-            self._downloader.report_warning(warning)
+            if self._downloader:
+                self._downloader.report_warning(warning)
 
     @staticmethod
     def get_versions():