{"record":{"id":"beac440be01864b2","repo":"BerriAI/litellm","slug":"video-support-download-is-not-supported-for-custo","errorCode":null,"errorMessage":"video support download is not supported for {custom_llm_provider}","messagePattern":"video support download is not supported for (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/videos/main.py","lineNumber":333,"sourceCode":"        litellm_call_id: Final[str | None] = kwargs.get(\"litellm_call_id\", None)\n        _is_async: Final = kwargs.pop(\"async_call\", False) is True\n\n        # Try to decode provider from video_id if not explicitly provided\n        if custom_llm_provider is None:\n            decoded: Final = decode_video_id_with_provider(video_id)\n            custom_llm_provider = decoded.get(\"custom_llm_provider\") or \"openai\"\n\n        # get llm provider logic\n        litellm_params: Final = GenericLiteLLMParams(**kwargs)\n\n        # get provider config\n        video_provider_config: Final[BaseVideoConfig | None] = ProviderConfigManager.get_provider_video_config(\n            model=None,\n            provider=litellm.LlmProviders(custom_llm_provider),\n        )\n\n        if video_provider_config is None:\n            raise ValueError(f\"video support download is not supported for {custom_llm_provider}\")\n\n        local_vars.update(kwargs)\n        # For video content download, we don't need complex optional parameter handling\n        # Just pass the basic parameters that are relevant for content download\n        video_content_request_params: Final[dict] = {\n            \"video_id\": video_id,\n        }\n\n        # Pre Call logging\n        litellm_logging_obj.update_from_kwargs(\n            kwargs=kwargs,\n            model=\"\",\n            user=kwargs.get(\"user\"),\n            optional_params=dict(video_content_request_params),\n            litellm_params={\n                \"litellm_call_id\": litellm_call_id,\n                **video_content_request_params,\n            },","sourceCodeStart":315,"sourceCodeEnd":351,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/videos/main.py#L315-L351","documentation":"Provider-support check in video download: decoding video_id (or the explicit argument) resolved a provider with no video download implementation, so the content fetch is rejected before any HTTP call.","triggerScenarios":"Thrown at litellm/videos/main.py:333 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Use a provider that supports downloading generated videos, or implement it in a custom provider wrapper for {custom_llm_provider}."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}