检索视频
Retrieve a video generation result. Returns the video file if completed, or a status if the request is still processing.
Authentication: This endpoint accepts either a Bearer API key or a SIGN-IN-WITH-X header for x402 wallet-based authentication. The legacy X-Sign-In-With-X header is also accepted during migration. When using x402, a 402 Payment Required response indicates insufficient balance and includes top-up instructions.
curl --request POST \
--url https://api.venice.ai/api/v1/video/retrieve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "video-model-123",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": false
}
'import requests
url = "https://api.venice.ai/api/v1/video/retrieve"
payload = {
"model": "video-model-123",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'video-model-123',
queue_id: '123e4567-e89b-12d3-a456-426614174000',
delete_media_on_completion: false
})
};
fetch('https://api.venice.ai/api/v1/video/retrieve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.venice.ai/api/v1/video/retrieve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'video-model-123',
'queue_id' => '123e4567-e89b-12d3-a456-426614174000',
'delete_media_on_completion' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.venice.ai/api/v1/video/retrieve"
payload := strings.NewReader("{\n \"model\": \"video-model-123\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.venice.ai/api/v1/video/retrieve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"video-model-123\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.ai/api/v1/video/retrieve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"video-model-123\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "PROCESSING",
"average_execution_time": 145000,
"execution_duration": 53200
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": {
"message": "The selected model provider rejected this request due to its content policies. Credits have been refunded. Try using wan-2-7-text-to-video instead.",
"type": "provider_content_policy",
"credits_refunded": true,
"recommended_model": "wan-2-7-text-to-video"
}
}{
"error": "<string>"
}{
"error": "<string>"
}/video/queue 返回的 download_url 下载(而非通过此端点以二进制方式返回)。有关下载链接的工作方式、重试机制及可选的 DELETE,请参阅私有下载链接。
授权
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
请求体
The ID of the model used for video generation.
"video-model-123"
The ID of the video generation request.
"123e4567-e89b-12d3-a456-426614174000"
If true, the video media will be deleted from storage after the request is completed. If false, you can use the complete endpoint to remove the media once you have successfully downloaded the video.
false
响应
Video file if completed, or processing status if still in progress
The status of the video generation request.
PROCESSING, COMPLETED "PROCESSING"
The estimated execution time of the video generation request in milliseconds (P80).
145000
The current duration of the video generation request in milliseconds.
53200
curl --request POST \
--url https://api.venice.ai/api/v1/video/retrieve \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "video-model-123",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": false
}
'import requests
url = "https://api.venice.ai/api/v1/video/retrieve"
payload = {
"model": "video-model-123",
"queue_id": "123e4567-e89b-12d3-a456-426614174000",
"delete_media_on_completion": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'video-model-123',
queue_id: '123e4567-e89b-12d3-a456-426614174000',
delete_media_on_completion: false
})
};
fetch('https://api.venice.ai/api/v1/video/retrieve', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.venice.ai/api/v1/video/retrieve",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'video-model-123',
'queue_id' => '123e4567-e89b-12d3-a456-426614174000',
'delete_media_on_completion' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.venice.ai/api/v1/video/retrieve"
payload := strings.NewReader("{\n \"model\": \"video-model-123\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.venice.ai/api/v1/video/retrieve")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"video-model-123\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.venice.ai/api/v1/video/retrieve")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"video-model-123\",\n \"queue_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"delete_media_on_completion\": false\n}"
response = http.request(request)
puts response.read_body{
"status": "PROCESSING",
"average_execution_time": 145000,
"execution_duration": 53200
}{
"error": "<string>",
"details": {
"_errors": [],
"field": {
"_errors": [
"Field is required"
]
}
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": {
"message": "The selected model provider rejected this request due to its content policies. Credits have been refunded. Try using wan-2-7-text-to-video instead.",
"type": "provider_content_policy",
"credits_refunded": true,
"recommended_model": "wan-2-7-text-to-video"
}
}{
"error": "<string>"
}{
"error": "<string>"
}