{"record":{"id":"749de7091e937357","repo":"calesthio/OpenMontage","slug":"noaa-download-failed-for-detail-url-e","errorCode":null,"errorMessage":"NOAA download failed for {detail_url}: {e}","messagePattern":"NOAA download failed for (.+?): (.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"tools/video/stock_sources/noaa.py","lineNumber":183,"sourceCode":"\n            # Look for YouTube embeds\n            if not download_url:\n                for iframe in soup.select(\"iframe[src]\"):\n                    src = iframe.get(\"src\", \"\")\n                    if \"youtube\" in src or \"vimeo\" in src:\n                        _log.warning(\"NOAA video is embedded from %s — cannot download directly\", src)\n                        raise ValueError(f\"Video is embedded from external platform: {src}\")\n\n            if not download_url:\n                raise ValueError(f\"Could not find video URL on NOAA page: {detail_url}\")\n\n            if not download_url.startswith(\"http\"):\n                download_url = f\"https://www.noaa.gov{download_url}\"\n\n            return self._stream_download(download_url, out_path)\n\n        except Exception as e:\n            raise RuntimeError(f\"NOAA download failed for {detail_url}: {e}\") from e\n\n    def _stream_download(self, url: str, out_path: Path) -> Path:\n        import requests\n\n        with requests.get(\n            url, stream=True, timeout=180,\n            headers={\"User-Agent\": \"OpenMontage/1.0\"},\n        ) as r:\n            r.raise_for_status()\n            with open(out_path, \"wb\") as f:\n                for chunk in r.iter_content(chunk_size=1 << 16):\n                    if chunk:\n                        f.write(chunk)\n        return out_path\n","sourceCodeStart":165,"sourceCodeEnd":198,"githubUrl":"https://github.com/calesthio/OpenMontage/blob/95e1c3d0ab93482159818560f6a8c8e866b9139f/tools/video/stock_sources/noaa.py#L165-L198","documentation":"Error \"NOAA download failed for {detail_url}: {e}\" thrown in calesthio/OpenMontage.","triggerScenarios":"The HTTP download of a NOAA stock clip fails with a network or response error.","commonSituations":"See trigger scenarios.","solutions":["Retry the download; if it fails again, fetch the file manually from the detail page.","Check network access to the NOAA host — some CDNs block non-browser user agents."],"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"}