Vidu Task Status Query
curl --request GET \
--url https://www.token-nova.com/v1/videos/{task_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.token-nova.com/v1/videos/{task_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.token-nova.com/v1/videos/{task_id}', 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://www.token-nova.com/v1/videos/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.token-nova.com/v1/videos/{task_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.token-nova.com/v1/videos/{task_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.token-nova.com/v1/videos/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "processing",
"progress": 50,
"created_at": 1712697600,
"size": "1024x1808",
"seconds": "5",
"quality": "standard"
}
{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "completed",
"progress": 100,
"created_at": 1712697600,
"completed_at": 1712697700,
"size": "1024x1808",
"seconds": "5",
"quality": "standard",
"video_url": "https://example.com/video/output.mp4"
}
{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "failed",
"progress": 0,
"created_at": 1712697600,
"completed_at": 1712697650,
"size": "1024x1808",
"error": {
"message": "Generation failed, please try again",
"code": "GENERATION_FAILED"
}
}
OpenAI Format
Vidu Task Status Query
Use GET /v1/videos/{task_id} to query Vidu video task status and results.
GET
https://www.token-nova.com
/
v1
/
videos
/
{task_id}
Vidu Task Status Query
curl --request GET \
--url https://www.token-nova.com/v1/videos/{task_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://www.token-nova.com/v1/videos/{task_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://www.token-nova.com/v1/videos/{task_id}', 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://www.token-nova.com/v1/videos/{task_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://www.token-nova.com/v1/videos/{task_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://www.token-nova.com/v1/videos/{task_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.token-nova.com/v1/videos/{task_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "processing",
"progress": 50,
"created_at": 1712697600,
"size": "1024x1808",
"seconds": "5",
"quality": "standard"
}
{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "completed",
"progress": 100,
"created_at": 1712697600,
"completed_at": 1712697700,
"size": "1024x1808",
"seconds": "5",
"quality": "standard",
"video_url": "https://example.com/video/output.mp4"
}
{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "failed",
"progress": 0,
"created_at": 1712697600,
"completed_at": 1712697650,
"size": "1024x1808",
"error": {
"message": "Generation failed, please try again",
"code": "GENERATION_FAILED"
}
}
Vidu Task Status Query
After submitting a Vidu series task, query it throughGET /v1/videos/{task_id}.
- The query path is
GET /v1/videos/{task_id}. - A successful response returns an OpenAI-style
videoobject. - After the task is completed, you can read the result from
video_url.
Method and Path
GET /v1/videos/{task_id}
Request Example
curl https://www.token-nova.com/v1/videos/video_123 \
-H "Authorization: Bearer YOUR_API_KEY"
import requests
resp = requests.get(
"https://www.token-nova.com/v1/videos/video_123",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(resp.json())
const response = await fetch("https://www.token-nova.com/v1/videos/video_123", {
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
});
console.log(await response.json());
Response Example
{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "processing",
"progress": 50,
"created_at": 1712697600,
"size": "1024x1808",
"seconds": "5",
"quality": "standard"
}
{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "completed",
"progress": 100,
"created_at": 1712697600,
"completed_at": 1712697700,
"size": "1024x1808",
"seconds": "5",
"quality": "standard",
"video_url": "https://example.com/video/output.mp4"
}
{
"id": "video_123",
"object": "video",
"model": "viduq3-pro",
"status": "failed",
"progress": 0,
"created_at": 1712697600,
"completed_at": 1712697650,
"size": "1024x1808",
"error": {
"message": "Generation failed, please try again",
"code": "GENERATION_FAILED"
}
}
Authentication
Authorization: Bearer YOUR_API_KEY
Path Parameters
string
required
Task ID, which is the same as the
id returned by the generation API.Response
string
Task ID.
string
Always
video.string
Model name.
string
Task status. Possible values include
processing (processing), failed (failed), and completed (completed).integer
Progress percentage (0-100).
integer
Creation time (Unix timestamp).
integer
Completion time (Unix timestamp), returned only when the task is completed or failed.
string
Video size, for example
1024x1808.string
Video duration (seconds).
string
Video quality, for example
standard.string
Video download URL, returned only in the
completed status.object
Error information, returned only in the
failed status.string
Error message.
string
Error code.
