{"record":{"id":"5d2219d150ee69a5","repo":"calesthio/OpenMontage","slug":"ffprobe-is-required-to-validate-local-reference-au","errorCode":null,"errorMessage":"ffprobe is required to validate local reference audio","messagePattern":"ffprobe is required to validate local reference audio","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"tools/video/seedance_ark.py","lineNumber":1165,"sourceCode":"        # Windows does not allow ffprobe to reopen a NamedTemporaryFile while\n        # Python still holds the file handle. Close it before probing, then\n        # remove it explicitly on every path.\n        with tempfile.NamedTemporaryFile(suffix=suffix, delete=False) as temp:\n            temp.write(decoded)\n            temp.flush()\n            temp_path = Path(temp.name)\n        try:\n            return self._probe_local_audio_duration(temp_path, max_seconds=max_seconds)\n        finally:\n            temp_path.unlink(missing_ok=True)\n\n    @staticmethod\n    def _probe_local_audio_duration(path: Path, *, max_seconds: int = 15) -> float:\n        if not path.is_file():\n            raise ValueError(f\"local audio file does not exist: {path}\")\n        ffprobe = shutil.which(\"ffprobe\")\n        if not ffprobe:\n            raise ValueError(\"ffprobe is required to validate local reference audio\")\n        try:\n            proc = subprocess.run(\n                [\n                    ffprobe,\n                    \"-v\",\n                    \"error\",\n                    \"-show_entries\",\n                    \"format=duration\",\n                    \"-of\",\n                    \"default=noprint_wrappers=1:nokey=1\",\n                    str(path),\n                ],\n                capture_output=True,\n                text=True,\n                timeout=10,\n                check=False,\n            )\n            duration = float(proc.stdout.strip()) if proc.returncode == 0 else 0","sourceCodeStart":1147,"sourceCodeEnd":1183,"githubUrl":"https://github.com/calesthio/OpenMontage/blob/95e1c3d0ab93482159818560f6a8c8e866b9139f/tools/video/seedance_ark.py#L1147-L1183","documentation":"Error \"ffprobe is required to validate local reference audio\" thrown in calesthio/OpenMontage.","triggerScenarios":"ffprobe is not installed or not on PATH while validating a local reference audio clip.","commonSituations":"See trigger scenarios.","solutions":["Install ffmpeg (which provides ffprobe) via your package manager, e.g. `apt install ffmpeg` or `brew install ffmpeg`.","Or reference the audio by URL/asset ID so no local probing is needed."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"95e1c3d0ab93482159818560f6a8c8e866b9139f","analyzedAt":"2026-08-15T06:31:20.014Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}