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"
}
}비디오 및 자료
머티리얼 에셋 생성
Seedance 머티리얼 에셋을 TokenLab 머티리얼 그룹에 업로드합니다.
POST
/
v1
/
videos
/
assets
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"
}
}공개적으로 접근 가능한 소스 URL을 Seedance 머티리얼 그룹으로 가져옵니다. TokenLab은 나중에 사용할 수 있도록 머티리얼을 저장합니다. 생성 시에는 소스 URL이 아닌 반환된 머티리얼 에셋
TokenLab은 소스 URL, 미디어 유형, 파일 크기와 읽을 수 있는 이미지 크기를 확인합니다. 가져오기 접수가 준비 완료를 뜻하지는 않습니다.
id를 사용하십시오.
library_type: "aigc_avatar"의 경우 group_id는 선택 사항이며, TokenLab은 조직의 기본 가상 아바타 그룹을 사용하거나 생성합니다. library_type: "liveness_face"의 경우 group_id는 필수이며, 시각 인증 결과 조회에서 반환된 TokenLab 그룹이어야 합니다.
| 유형 | 지원되는 입력 |
|---|---|
| 이미지 | jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif; ≤30 MiB; 너비 및 높이 [300, 6000] px; 가로세로 비율 [0.4, 2.5]. |
| 비디오 | mp4, mov; ≤200 MiB. |
| 오디오 | aac, wav, mp3; ≤15 MiB. |
ACTIVE를 기다리고 처리 실패 시 error_message를 확인하세요. 나머지 미디어 및 얼굴 조건은 처리 중에 검증됩니다.
생성 과정은 비동기식으로 진행됩니다. status가 ACTIVE가 될 때까지 머티리얼 에셋 가져오기을 폴링하십시오. 실존 인물 그룹의 경우, 하나의 그룹은 한 명의 인증된 인물과 매핑됩니다. 여러 얼굴이 포함되어 있거나 인증된 인물과 일치하지 않는 얼굴이 포함된 경우 업로드가 실패할 수 있습니다.
project_name은 인증된 조직 내 리소스를 분리합니다. 기본값은 default이며 관련 그룹과 소재에는 대소문자를 구분하는 동일한 값을 사용하세요. POST/PUT은 JSON 본문에, GET/DELETE는 쿼리 매개변수에 지정합니다.
요청 예시
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"}'
응답 예시
{
"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
}
인증
API 키 인증입니다. Dashboard > API > API Keys에서 API 키를 생성하거나 관리하십시오.
본문
application/json
가져올 수 있는 공개 소스 URL입니다. TokenLab은 나중에 사용할 수 있도록 자료를 저장하지만, 이 URL을 장기적인 자료 주소로 의존하지 마십시오.
자료 에셋과 함께 저장되는 선택적 표시 이름입니다.
Required string length:
1 - 128사용 가능한 옵션:
Image, Video, Audio 자료 라이브러리 클래스입니다. aigc_avatar는 가상 아바타 자료용이며, liveness_face는 검증된 실사용자 자료용입니다.
사용 가능한 옵션:
aigc_avatar, liveness_face TokenLab 자료 그룹 ID입니다. liveness_face 자료에는 필수이며, aigc_avatar에는 선택 사항입니다.
자료 에셋에 대한 프로젝트 범위입니다. 에셋과 그룹은 인증된 조직 내의 프로젝트별로 격리됩니다.
Required string length:
1 - 128자료 에셋과 함께 저장되는 선택적 클라이언트 메타데이터입니다.
응답
자료 에셋 생성됨
TokenLab 자료 에셋 ID입니다. 에셋이 ACTIVE 상태가 된 후 material_asset_id로 사용하십시오.
사용 가능한 옵션:
seedance.material_asset 사용 가능한 옵션:
aigc_avatar, liveness_face 사용 가능한 옵션:
Image, Video, Audio 사용 가능한 옵션:
PROCESSING, ACTIVE, FAILED, DELETED 에셋이 활성 상태이고 삭제되지 않은 경우 true입니다.
이 자료 에셋을 소유한 TokenLab 자료 그룹 ID입니다.
이 자료 에셋에 대한 프로젝트 범위입니다.
공개 가능한 최종 처리 오류입니다. 영구적인 소스 유효성 검사 실패에는 거부된 크기 제약 조건 등이 포함됩니다.
자료 에셋 레코드가 생성된 Unix 타임스탬프입니다.
자료 에셋 레코드가 마지막으로 업데이트된 Unix 타임스탬프입니다.