{"record":{"id":"8a5bc96062194df6","repo":"calesthio/OpenMontage","slug":"each-local-reference-audio-clip-must-be-2-to-max","errorCode":null,"errorMessage":"each local reference audio clip must be 2 to {max_seconds} seconds","messagePattern":"each local reference audio clip must be 2 to (.+?) seconds","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"tools/video/seedance_ark.py","lineNumber":1187,"sourceCode":"                    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\n        except (OSError, ValueError, subprocess.SubprocessError) as exc:\n            raise ValueError(f\"failed to probe local reference audio: {path}\") from exc\n        if not 2 <= duration <= max_seconds:\n            raise ValueError(\n                f\"each local reference audio clip must be 2 to {max_seconds} seconds\"\n            )\n        return duration\n\n    @staticmethod\n    def _is_remote_or_asset(value: str) -> bool:\n        return value.startswith((\"https://\", \"http://\", \"asset://\"))\n\n    def _validate_remote_refs(self, refs: list[Any], label: str) -> None:\n        for ref in refs:\n            value = str(ref)\n            if not value.startswith((\"https://\", \"http://\", \"asset://\")):\n                raise ValueError(\n                    f\"{label} must be a public/signed URL or asset:// ID; \"\n                    \"Ark does not document video Base64 or local paths\"\n                )\n\n    def _validate_optional_parameters(self, payload: dict[str, Any]) -> None:","sourceCodeStart":1169,"sourceCodeEnd":1205,"githubUrl":"https://github.com/calesthio/OpenMontage/blob/95e1c3d0ab93482159818560f6a8c8e866b9139f/tools/video/seedance_ark.py#L1169-L1205","documentation":"Error \"each local reference audio clip must be 2 to {max_seconds} seconds\" thrown in calesthio/OpenMontage.","triggerScenarios":"A local reference audio clip's probed duration falls outside the allowed 2-to-max_seconds range.","commonSituations":"See trigger scenarios.","solutions":["Trim or extend the audio clip so its duration is between 2 and the stated maximum seconds.","Use ffmpeg to cut the clip: `ffmpeg -i in.mp3 -t <seconds> out.mp3`."],"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"}