{"record":{"id":"c372b2052b0bdd5c","repo":"BerriAI/litellm","slug":"video-list-is-not-supported-by-vertex-ai-veo-use","errorCode":null,"errorMessage":"Video list is not supported by Vertex AI Veo. Use the operations endpoint directly if you need to list operations.","messagePattern":"Video list is not supported by Vertex AI Veo\\. Use the operations endpoint directly if you need to list operations\\.","errorType":"exception","errorClass":"NotImplementedError","httpStatus":null,"severity":"error","filePath":"litellm/llms/vertex_ai/videos/transformation.py","lineNumber":610,"sourceCode":"        custom_llm_provider: str | None = None,\n    ) -> VideoObject:\n        \"\"\"Video remix is not supported.\"\"\"\n        raise NotImplementedError(\"Video remix is not supported by Vertex AI Veo.\")\n\n    def transform_video_list_request(\n        self,\n        api_base: str,\n        litellm_params: GenericLiteLLMParams,\n        headers: dict,\n        after: str | None = None,\n        limit: int | None = None,\n        order: str | None = None,\n        extra_query: dict[str, object] | None = None,\n    ) -> tuple[str, dict]:\n        \"\"\"\n        Video list is not supported by Veo API.\n        \"\"\"\n        raise NotImplementedError(\n            \"Video list is not supported by Vertex AI Veo. \"\n            \"Use the operations endpoint directly if you need to list operations.\"\n        )\n\n    def transform_video_list_response(\n        self,\n        raw_response: httpx.Response,\n        logging_obj: LiteLLMLoggingObj,\n        custom_llm_provider: str | None = None,\n    ) -> dict[str, str]:\n        \"\"\"Video list is not supported.\"\"\"\n        raise NotImplementedError(\"Video list is not supported by Vertex AI Veo.\")\n\n    def transform_video_delete_request(\n        self,\n        video_id: str,\n        api_base: str,\n        litellm_params: GenericLiteLLMParams,","sourceCodeStart":592,"sourceCodeEnd":628,"githubUrl":"https://github.com/BerriAI/litellm/blob/77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8/litellm/llms/vertex_ai/videos/transformation.py#L592-L628","documentation":"Raised by VertexVeoConfig.transform_video_list_request. Veo exposes predictLongRunning operations rather than a pageable video collection, so LiteLLM's video_list operation has no Vertex AI implementation and raises NotImplementedError, directing you to the Google operations endpoint.","triggerScenarios":"Calling litellm.video_list(custom_llm_provider=\"vertex_ai\") or GET /v1/videos with the vertex provider.","commonSituations":"Porting a provider-agnostic video gallery/listing UI to Vertex AI; code that lists videos before deleting them; assuming all providers implement the full video CRUD surface.","solutions":["Track Veo video/operation IDs returned by video_generation in your own store instead of listing","Query Google's Vertex AI operations endpoint (projects/{project}/locations/{loc}/operations) directly with your credentials","Disable the list feature for vertex_ai in your provider capability map"],"exampleFix":"# before\nvideos = litellm.video_list(custom_llm_provider=\"vertex_ai\")\n\n# after\nops = list(\n  f\"https://{loc}-aiplatform.googleapis.com/v1/projects/{project}/locations/{loc}/operations\"\n)  # call with OAuth token; poll/inspect operations yourself\n","handlingStrategy":"validation","validationCode":"LIST_CAPABLE_PROVIDERS = {\"openai\", \"runwayml\"}  # vertex_ai intentionally absent\n\nif provider not in LIST_CAPABLE_PROVIDERS:\n    raise FeatureUnavailable(f\"{provider} has no video list API\")","typeGuard":"def provider_supports_video_list(provider: str) -> bool:\n    return provider in {\"openai\", \"runwayml\"}","tryCatchPattern":"try:\n    litellm.video_list(custom_llm_provider=provider)\nexcept NotImplementedError:\n    if provider == \"vertex_ai\":\n        videos = query_google_operations_endpoint(project, location)  # direct REST call\n    else:\n        raise","preventionTips":["Persist Veo video/operation IDs at generation time instead of listing later","For Vertex AI, talk to the operations REST endpoint directly when enumeration is truly needed"],"tags":["vertex-ai","veo","video-list","notimplementederror","unsupported-operation"],"backgroundTag":"unsupported-operation","analyzedSha":"77b7c6c40c0c5aa5fbcb1d6a1825ac39ca8829b8","analyzedAt":"2026-08-18T11:44:31.656Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}