curl --request POST \
--url https://api.tokenlab.sh/v1/videos/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"asset_url": "https://example.com/reference.png",
"asset_name": "Front view",
"asset_type": "Image",
"library_type": "aigc_avatar",
"group_id": "group-20260720123456-vrt01"
}
'{
"id": "asset-20260720123456-qn7wr",
"object": "seedance.material_asset",
"group_id": "group-20260720123456-vrt01",
"library_type": "aigc_avatar",
"asset_name": "Front view",
"asset_type": "Image",
"status": "PROCESSING",
"ready": false,
"error_message": null,
"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"
}
}Materyal Varlığı Oluştur
Bir Seedance materyal varlığını TokenLab materyal grubuna yükler.
curl --request POST \
--url https://api.tokenlab.sh/v1/videos/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"asset_url": "https://example.com/reference.png",
"asset_name": "Front view",
"asset_type": "Image",
"library_type": "aigc_avatar",
"group_id": "group-20260720123456-vrt01"
}
'{
"id": "asset-20260720123456-qn7wr",
"object": "seedance.material_asset",
"group_id": "group-20260720123456-vrt01",
"library_type": "aigc_avatar",
"asset_name": "Front view",
"asset_type": "Image",
"status": "PROCESSING",
"ready": false,
"error_message": null,
"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"
}
}id değerini kullanın.
library_type: "aigc_avatar" için group_id isteğe bağlıdır; TokenLab, organizasyonun varsayılan sanal avatar grubunu kullanır veya oluşturur. library_type: "liveness_face" için group_id zorunludur ve Görsel doğrulama sonucunu al tarafından döndürülen TokenLab grubu olmalıdır.
| Tür | Desteklenen girdi |
|---|---|
| Görsel | jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif; ≤30 MiB; genişlik ve yükseklik [300, 6000] px; en-boy oranı [0.4, 2.5]. |
| Video | mp4, mov; ≤200 MiB. |
| Ses | aac, wav, mp3; ≤15 MiB. |
ACTIVE durumunu bekleyin, işlem başarısızsa error_message alanına bakın. Diğer medya ve yüz koşulları işlem sırasında doğrulanır.
Oluşturma işlemi asenkrondur. status değeri ACTIVE olana kadar Materyal Varlığını Getir uç noktasını sorgulayın. Gerçek kişi grupları için, bir grup doğrulanmış bir kişiyle eşleşir; birden fazla yüz içeren veya doğrulanmış kişiyle eşleşmeyen yüzlere sahip yüklemeler başarısız olabilir.
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 \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"library_type":"aigc_avatar","group_id":"group-20260720123456-vrt01","asset_url":"https://example.com/reference.png","asset_type":"Image","asset_name":"Front view","project_name":"default"}'
Örnek Yanıt
{
"id": "asset-20260720123456-qn7wr",
"object": "seedance.material_asset",
"project_name": "default",
"group_id": "group-20260720123456-vrt01",
"library_type": "aigc_avatar",
"asset_name": "Front view",
"asset_type": "Image",
"status": "PROCESSING",
"ready": false,
"error_message": null,
"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
İçe aktarılacak, herkese açık kaynak URL'si. TokenLab materyali daha sonra kullanmak üzere saklar; bu URL'yi uzun vadeli materyal adresi olarak kullanmayın.
Materyal varlığıyla birlikte saklanan isteğe bağlı görünen ad.
1 - 128Image, Video, Audio Materyal kütüphanesi sınıfı. aigc_avatar sanal avatar materyalleri içindir. liveness_face doğrulanmış gerçek kişi materyalleri içindir.
aigc_avatar, liveness_face TokenLab materyal grup kimliği. liveness_face materyalleri için zorunludur; aigc_avatar için isteğe bağlıdır.
Materyal varlığı için proje kapsamı. Varlıklar ve gruplar, kimliği doğrulanmış organizasyon içinde projeye göre izole edilir.
1 - 128Materyal varlığıyla saklanan isteğe bağlı istemci meta verileri.
Yanıt
Materyal varlığı oluşturuldu
TokenLab materyal varlık kimliği. Varlık ACTIVE durumuna geçtikten sonra bunu material_asset_id olarak kullanın.
seedance.material_asset aigc_avatar, liveness_face Image, Video, Audio PROCESSING, ACTIVE, FAILED, DELETED Varlık aktif olduğunda ve silinmediğinde True değerini alır.
Bu materyal varlığına sahip olan TokenLab materyal grup kimliği.
Bu materyal varlığı için proje kapsamı.
Herkese açık terminal işleme hatası. Kalıcı kaynak doğrulama hataları, reddedilen boyut kısıtlamasını içerir.
Materyal varlık kaydının oluşturulduğu Unix zaman damgası.
Materyal varlık kaydının en son güncellendiği Unix zaman damgası.