{"record":{"id":"35e7fc1c65189cc2","repo":"ytdl-org/youtube-dl","slug":"ffprobe-avprobe-and-ffmpeg-avconv-not-found-pleas","errorCode":null,"errorMessage":"ffprobe/avprobe and ffmpeg/avconv not found. Please install one.","messagePattern":"ffprobe/avprobe and ffmpeg/avconv not found\\. Please install one\\.","errorType":"exception","errorClass":"PostProcessingError","httpStatus":null,"severity":"error","filePath":"youtube_dl/postprocessor/ffmpeg.py","lineNumber":159,"sourceCode":"    @property\n    def available(self):\n        return self.basename is not None\n\n    @property\n    def executable(self):\n        return self._paths[self.basename]\n\n    @property\n    def probe_available(self):\n        return self.probe_basename is not None\n\n    @property\n    def probe_executable(self):\n        return self._paths[self.probe_basename]\n\n    def get_audio_codec(self, path):\n        if not self.probe_available and not self.available:\n            raise PostProcessingError('ffprobe/avprobe and ffmpeg/avconv not found. Please install one.')\n        try:\n            if self.probe_available:\n                cmd = [\n                    encodeFilename(self.probe_executable, True),\n                    encodeArgument('-show_streams')]\n            else:\n                cmd = [\n                    encodeFilename(self.executable, True),\n                    encodeArgument('-i')]\n            cmd.append(encodeFilename(self._ffmpeg_filename_argument(path), True))\n            if self._downloader.params.get('verbose', False):\n                self._downloader.to_screen(\n                    '[debug] %s command line: %s' % (self.basename, shell_quote(cmd)))\n            handle = subprocess.Popen(\n                cmd, stderr=subprocess.PIPE,\n                stdout=subprocess.PIPE, stdin=subprocess.PIPE)\n            stdout_data, stderr_data = process_communicate_or_kill(handle)\n            expected_ret = 0 if self.probe_available else 1","sourceCodeStart":141,"sourceCodeEnd":177,"githubUrl":"https://github.com/ytdl-org/youtube-dl/blob/956b8c585591b401a543e409accb163eeaaa1193/youtube_dl/postprocessor/ffmpeg.py#L141-L177","documentation":"Raised by FFmpegPostProcessor.get_audio_codec when neither ffprobe/avprobe (probe_available) nor ffmpeg/avconv (available) can be located. get_audio_codec needs at least one of them to inspect the file's streams; with none present it raises before attempting anything else.","triggerScenarios":"Running audio extraction (-x) without ffmpeg/ffprobe installed; ffprobe exists but is not executable or misnamed; --ffmpeg-location set to a directory that contains neither binary.","commonSituations":"Same class of environment issues as error 492: missing PATH entries in CI/cron, snap/flatpak installs, Windows without ffmpeg on PATH, or partial installs that have ffmpeg but no ffprobe while a broken path check disables both.","solutions":["Install the full ffmpeg suite (it ships ffprobe together with ffmpeg)","Point --ffmpeg-location at the directory containing both ffmpeg and ffprobe","Verify both run: 'ffmpeg -version' and 'ffprobe -version' in the invoking shell","If installing separately, make sure ffprobe is executable and named ffprobe/avprobe on PATH"],"exampleFix":"# before\nyoutube-dl -x URL --ffmpeg-location /tmp/ffmpeg-only-dir\n# after (directory with BOTH ffmpeg and ffprobe)\nyoutube-dl -x URL --ffmpeg-location /usr/local/ffmpeg/bin","handlingStrategy":"validation","validationCode":"import shutil\n\ndef can_probe_audio_codec():\n    probe = shutil.which('ffprobe') or shutil.which('avprobe')\n    main = shutil.which('ffmpeg') or shutil.which('avconv')\n    return bool(probe or main)\n\nif opts.get('extractaudio') and not can_probe_audio_codec():\n    raise SystemExit('ffmpeg/ffprobe required for audio extraction')","typeGuard":null,"tryCatchPattern":"try:\n    ydl.download([url])\nexcept PostProcessingError as e:\n    if 'ffprobe/avprobe and ffmpeg/avconv not found' in str(e):\n    # environment problem, fail fast with actionable message\n        raise SystemExit('Install the ffmpeg suite (includes ffprobe) or set --ffmpeg-location')","preventionTips":["Install the ffmpeg package completely so ffprobe ships alongside ffmpeg","Point --ffmpeg-location at the directory containing both binaries","Check executable bits when copying binaries manually"],"tags":["ffmpeg","ffprobe","dependency","postprocessor"],"backgroundTag":null,"analyzedSha":"956b8c585591b401a543e409accb163eeaaa1193","analyzedAt":"2026-08-14T18:59:47.863Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}