From c3291e407a68fdeca3c776d7db023186ba5aefb7 Mon Sep 17 00:00:00 2001 From: Seefs Date: Fri, 27 Feb 2026 18:47:47 +0800 Subject: [PATCH] fix: vertex ai video proxy and task polling improvements --- controller/video_proxy_gemini.go | 9 ++++++++- service/task_polling.go | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/controller/video_proxy_gemini.go b/controller/video_proxy_gemini.go index 4352a9616..0c76e33c7 100644 --- a/controller/video_proxy_gemini.go +++ b/controller/video_proxy_gemini.go @@ -149,7 +149,7 @@ func getVertexVideoURL(channel *model.Channel, task *model.Task) (string, error) if channel == nil || task == nil { return "", fmt.Errorf("invalid channel or task") } - if url := strings.TrimSpace(task.GetResultURL()); url != "" { + if url := strings.TrimSpace(task.GetResultURL()); url != "" && !isTaskProxyContentURL(url, task.TaskID) { return url, nil } if url := extractVertexVideoURLFromTaskData(task); url != "" { @@ -198,6 +198,13 @@ func getVertexVideoURL(channel *model.Channel, task *model.Task) (string, error) return "", fmt.Errorf("vertex video url not found") } +func isTaskProxyContentURL(url string, taskID string) bool { + if strings.TrimSpace(url) == "" || strings.TrimSpace(taskID) == "" { + return false + } + return strings.Contains(url, "/v1/videos/"+taskID+"/content") +} + func getVertexTaskKey(channel *model.Channel, task *model.Task) string { if task != nil { if key := strings.TrimSpace(task.PrivateData.Key); key != "" { diff --git a/service/task_polling.go b/service/task_polling.go index 3c5cab5b0..12395240e 100644 --- a/service/task_polling.go +++ b/service/task_polling.go @@ -421,6 +421,7 @@ func updateVideoSingleTask(ctx context.Context, adaptor TaskPollingAdaptor, ch * } if strings.HasPrefix(taskResult.Url, "data:") { // data: URI (e.g. Vertex base64 encoded video) — keep in Data, not in ResultURL + task.PrivateData.ResultURL = taskcommon.BuildProxyURL(task.TaskID) } else if taskResult.Url != "" { // Direct upstream URL (e.g. Kling, Ali, Doubao, etc.) task.PrivateData.ResultURL = taskResult.Url