calesthio/OpenMontage · error · ValueError

Candidate {candidate.clip_id} has no download_url

Error message

Candidate {candidate.clip_id} has no download_url

What it means

Error "Candidate {candidate.clip_id} has no download_url" thrown in calesthio/OpenMontage.

Source

Thrown at tools/video/stock_sources/unsplash.py:76

            headers=self._headers(),
            timeout=30,
        )
        r.raise_for_status()
        data = r.json()
        results = data.get("results") or []

        out: list[Candidate] = []
        for photo in results:
            cand = _photo_to_candidate(photo, filters)
            if cand is not None:
                out.append(cand)
        return out

    def download(self, candidate: Candidate, out_path: Path) -> Path:
        import requests  # lazy

        if not candidate.download_url:
            raise ValueError(f"Candidate {candidate.clip_id} has no download_url")

        out_path = Path(out_path)
        out_path.parent.mkdir(parents=True, exist_ok=True)

        with requests.get(
            candidate.download_url,
            stream=True,
            timeout=180,
            headers={"User-Agent": _USER_AGENT},
        ) as r:
            r.raise_for_status()
            with open(out_path, "wb") as f:
                for chunk in r.iter_content(chunk_size=1 << 16):
                    if chunk:
                        f.write(chunk)
        return out_path

    def _headers(self) -> dict[str, str]:

View on GitHub (pinned to 95e1c3d0ab)

Solutions

  1. Select a different candidate that has a download_url.
  2. Re-run the Unsplash search; entries without download links usually indicate an incomplete API response.

When it happens

Trigger: An Unsplash stock candidate is selected for download but has no download_url in its metadata.

Common situations: See trigger scenarios.


AI-assisted analysis of calesthio/OpenMontage@95e1c3d0ab (2026-08-15). Data as JSON: /api/errors/c30f6504b8d9159b. Report an issue: GitHub.