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"
}
}Material-Asset erstellen
Lädt ein Seedance-Material-Asset in eine TokenLab-Materialgruppe hoch.
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 und nicht die Quell-URL.
Für library_type: "aigc_avatar" ist group_id optional; TokenLab verwendet oder erstellt die Standard-Gruppe für virtuelle Avatare der Organisation. Für library_type: "liveness_face" ist group_id erforderlich und muss die TokenLab-Gruppe sein, die von Visuelles Verifizierungsergebnis abrufen zurückgegeben wurde.
| Typ | Unterstützte Eingabe |
|---|---|
| Bild | jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif; ≤30 MiB; Breite und Höhe [300, 6000] px; Seitenverhältnis [0.4, 2.5]. |
| Video | mp4, mov; ≤200 MiB. |
| Audio | aac, wav, mp3; ≤15 MiB. |
ACTIVE und prüfen Sie bei einem Verarbeitungsfehler error_message. Weitere Medien- und Gesichtsanforderungen werden während der Verarbeitung geprüft.
Die Erstellung erfolgt asynchron. Fragen Sie Material-Asset abrufen ab, bis der status auf ACTIVE steht. Bei Gruppen für echte Personen wird eine Gruppe einer verifizierten Person zugeordnet; Uploads mit mehreren Gesichtern oder einem Gesicht, das nicht mit der verifizierten Person übereinstimmt, können fehlschlagen.
project_name trennt Ressourcen innerhalb der authentifizierten Organisation. Der Standard ist default; verwenden Sie für zugehörige Gruppen und Assets denselben Wert mit gleicher Groß- und Kleinschreibung. Senden Sie ihn bei POST/PUT im JSON-Body und bei GET/DELETE als Query-Parameter.
Beispielanfrage
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"}'
Beispielantwort
{
"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
}
Autorisierungen
API-Key-Authentifizierung. Erstellen oder verwalten Sie API-Keys unter Dashboard > API > API Keys.
Body
Öffentlich erreichbare Quell-URL für den Import. TokenLab speichert das Material zur späteren Verwendung; verlassen Sie sich nicht auf diese URL als langfristige Materialadresse.
Optionaler Anzeigename, der mit dem Material-Asset gespeichert wird.
1 - 128Image, Video, Audio Material-Bibliotheksklasse. aigc_avatar ist für virtuelle Avatar-Materialien. liveness_face ist für verifizierte Materialien echter Personen.
aigc_avatar, liveness_face TokenLab Materialgruppen-ID. Erforderlich für liveness_face-Materialien; optional für aigc_avatar.
Projektbereich für das Material-Asset. Assets und Gruppen sind innerhalb der authentifizierten Organisation nach Projekt isoliert.
1 - 128Optionale Client-Metadaten, die mit dem Material-Asset gespeichert werden.
Antwort
Material-Asset erstellt
TokenLab Material-Asset-ID. Verwenden Sie diese als material_asset_id, nachdem das Asset den Status ACTIVE erreicht hat.
seedance.material_asset aigc_avatar, liveness_face Image, Video, Audio PROCESSING, ACTIVE, FAILED, DELETED True, wenn das Asset aktiv und nicht gelöscht ist.
TokenLab Materialgruppen-ID, zu der dieses Material-Asset gehört.
Projektbereich für dieses Material-Asset.
Öffentlich sicherer terminaler Verarbeitungsfehler. Permanente Quellvalidierungsfehler beinhalten die abgelehnte Dimensionsbeschränkung.
Unix-Zeitstempel, zu dem der Material-Asset-Datensatz erstellt wurde.
Unix-Zeitstempel, zu dem der Material-Asset-Datensatz zuletzt aktualisiert wurde.