Seedance malzeme varlık grubu oluştur
curl --request POST \
--url https://api.tokenlab.sh/v1/videos/assets/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"library_type": "aigc_avatar",
"group_name": "Product references",
"description": "Yeniden kullanılabilir ürün çekimleri"
}
'import requests
url = "https://api.tokenlab.sh/v1/videos/assets/groups"
payload = {
"library_type": "aigc_avatar",
"group_name": "Product references",
"description": "Yeniden kullanılabilir ürün çekimleri"
}
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({
library_type: 'aigc_avatar',
group_name: 'Product references',
description: 'Yeniden kullanılabilir ürün çekimleri'
})
};
fetch('https://api.tokenlab.sh/v1/videos/assets/groups', 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.tokenlab.sh/v1/videos/assets/groups",
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([
'library_type' => 'aigc_avatar',
'group_name' => 'Product references',
'description' => 'Yeniden kullanılabilir ürün çekimleri'
]),
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.tokenlab.sh/v1/videos/assets/groups"
payload := strings.NewReader("{\n \"library_type\": \"aigc_avatar\",\n \"group_name\": \"Product references\",\n \"description\": \"Yeniden kullanılabilir ürün çekimleri\"\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.tokenlab.sh/v1/videos/assets/groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"library_type\": \"aigc_avatar\",\n \"group_name\": \"Product references\",\n \"description\": \"Yeniden kullanılabilir ürün çekimleri\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tokenlab.sh/v1/videos/assets/groups")
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 \"library_type\": \"aigc_avatar\",\n \"group_name\": \"Product references\",\n \"description\": \"Yeniden kullanılabilir ürün çekimleri\"\n}"
response = http.request(request)
puts response.read_body{
"id": "group-20260720123456-vrt01",
"object": "seedance.material_asset_group",
"library_type": "aigc_avatar",
"group_name": "Product references",
"description": "Yeniden kullanılabilir ürün çekimleri",
"status": "ACTIVE",
"metadata": null,
"created_at": 1782998400000
}{
"error": {
"message": "model: Model is required",
"type": "invalid_request_error",
"param": "model"
},
"validation_errors": [
{
"field": "model",
"message": "Model is required"
}
]
}{
"error": {
"message": "Invalid API key provided",
"type": "invalid_api_key"
}
}{
"error": {
"message": "<string>",
"type": "unauthorized",
"code": "<string>",
"param": "<string>",
"model": "<string>",
"did_you_mean": "<string>",
"suggestions": [
{
"id": "<string>"
}
],
"alternatives": [
{
"id": "<string>",
"status": "<string>",
"tags": [
"<string>"
]
}
],
"hint": "<string>",
"retry_after": 123,
"retryable": true,
"balance_usd": 123,
"estimated_cost_usd": 123,
"supported_operations": [
"<string>"
],
"supported_parameters": [
"<string>"
],
"required_selectors": [
"<string>"
],
"optional_selectors": [
"<string>"
],
"allowed_resolutions": [
"<string>"
],
"allowed_durations": [
"<string>"
],
"allowed_aspect_ratios": [
"<string>"
],
"prompt_max_characters": 123,
"recommended_request": {},
"request_endpoint": "<string>",
"request_shape_mode": "<string>",
"status_mode": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "An internal error occurred",
"type": "server_error"
}
}{
"error": {
"message": "Seedance material library request failed",
"type": "server_error",
"code": "seedance_material_library_request_failed"
}
}Video ve materyaller
Materyal Varlık Grubu Oluştur
Bir Seedance sanal avatar materyal grubu oluşturur.
POST
/
v1
/
videos
/
assets
/
groups
Seedance malzeme varlık grubu oluştur
curl --request POST \
--url https://api.tokenlab.sh/v1/videos/assets/groups \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"library_type": "aigc_avatar",
"group_name": "Product references",
"description": "Yeniden kullanılabilir ürün çekimleri"
}
'import requests
url = "https://api.tokenlab.sh/v1/videos/assets/groups"
payload = {
"library_type": "aigc_avatar",
"group_name": "Product references",
"description": "Yeniden kullanılabilir ürün çekimleri"
}
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({
library_type: 'aigc_avatar',
group_name: 'Product references',
description: 'Yeniden kullanılabilir ürün çekimleri'
})
};
fetch('https://api.tokenlab.sh/v1/videos/assets/groups', 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.tokenlab.sh/v1/videos/assets/groups",
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([
'library_type' => 'aigc_avatar',
'group_name' => 'Product references',
'description' => 'Yeniden kullanılabilir ürün çekimleri'
]),
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.tokenlab.sh/v1/videos/assets/groups"
payload := strings.NewReader("{\n \"library_type\": \"aigc_avatar\",\n \"group_name\": \"Product references\",\n \"description\": \"Yeniden kullanılabilir ürün çekimleri\"\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.tokenlab.sh/v1/videos/assets/groups")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"library_type\": \"aigc_avatar\",\n \"group_name\": \"Product references\",\n \"description\": \"Yeniden kullanılabilir ürün çekimleri\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tokenlab.sh/v1/videos/assets/groups")
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 \"library_type\": \"aigc_avatar\",\n \"group_name\": \"Product references\",\n \"description\": \"Yeniden kullanılabilir ürün çekimleri\"\n}"
response = http.request(request)
puts response.read_body{
"id": "group-20260720123456-vrt01",
"object": "seedance.material_asset_group",
"library_type": "aigc_avatar",
"group_name": "Product references",
"description": "Yeniden kullanılabilir ürün çekimleri",
"status": "ACTIVE",
"metadata": null,
"created_at": 1782998400000
}{
"error": {
"message": "model: Model is required",
"type": "invalid_request_error",
"param": "model"
},
"validation_errors": [
{
"field": "model",
"message": "Model is required"
}
]
}{
"error": {
"message": "Invalid API key provided",
"type": "invalid_api_key"
}
}{
"error": {
"message": "<string>",
"type": "unauthorized",
"code": "<string>",
"param": "<string>",
"model": "<string>",
"did_you_mean": "<string>",
"suggestions": [
{
"id": "<string>"
}
],
"alternatives": [
{
"id": "<string>",
"status": "<string>",
"tags": [
"<string>"
]
}
],
"hint": "<string>",
"retry_after": 123,
"retryable": true,
"balance_usd": 123,
"estimated_cost_usd": 123,
"supported_operations": [
"<string>"
],
"supported_parameters": [
"<string>"
],
"required_selectors": [
"<string>"
],
"optional_selectors": [
"<string>"
],
"allowed_resolutions": [
"<string>"
],
"allowed_durations": [
"<string>"
],
"allowed_aspect_ratios": [
"<string>"
],
"prompt_max_characters": 123,
"recommended_request": {},
"request_endpoint": "<string>",
"request_shape_mode": "<string>",
"status_mode": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "An internal error occurred",
"type": "server_error"
}
}{
"error": {
"message": "Seedance material library request failed",
"type": "server_error",
"code": "seedance_material_library_request_failed"
}
}Bir
library_type: "aigc_avatar" materyal grubu oluşturun. Bu uç noktayı; sanal avatarlar, ürünler, stiller ve gerçek kişi doğrulaması gerektirmeyen diğer yeniden kullanılabilir referanslar için kullanın.
Yeni gerçek kişi materyal grupları, Görsel doğrulama oturumu oluştur aracılığıyla oluşturulur ve bu uç nokta ile doğrudan oluşturulamazlar.
project_name, kimliği doğrulanmış organizasyon içindeki kaynakları ayırır. Varsayılanı default değeridir; ilgili grup ve varlıklarda büyük/küçük harfe duyarlı aynı değeri kullanın. POST/PUT için JSON gövdesinde, GET/DELETE için sorgu parametresi olarak gönderin.
Örnek İstek
curl https://api.tokenlab.sh/v1/videos/assets/groups \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"library_type":"aigc_avatar","group_name":"Product references","description":"Reusable product shots","project_name":"default"}'
Örnek Yanıt
{
"id": "group-20260720123456-vrt01",
"object": "seedance.material_asset_group",
"project_name": "default",
"library_type": "aigc_avatar",
"group_name": "Product references",
"description": "Reusable product shots",
"status": "ACTIVE",
"metadata": null,
"created_at": 1782998400000
}
Yetkilendirmeler
API Anahtarı kimlik doğrulaması. API anahtarlarını Dashboard > API > API Keys bölümünden oluşturun veya yönetin.
Gövde
application/json
Materyal grubu için isteğe bağlı görünen ad.
Required string length:
1 - 128Maximum string length:
500Materyal kütüphanesi sınıfı. Doğrudan oluşturma aigc_avatar'ı destekler. liveness_face gruplarını CreateVisualValidateSession ve ardından GetVisualValidateResult kullanarak oluşturun.
Mevcut seçenekler:
aigc_avatar, liveness_face Materyal grubu için proje kapsamı.
Required string length:
1 - 128Yanıt
Malzeme varlık grubu oluşturuldu
TokenLab materyal grubu kimliği. Materyalleri yüklerken group_id olarak kullanın.
Mevcut seçenekler:
seedance.material_asset_group Mevcut seçenekler:
aigc_avatar, liveness_face Bu materyal grubu için proje kapsamı.