curl --request POST \
--url https://api.geekidea.ai/v1/videos/clone/{id}/assets/{asset_id}/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"file_id": "file-0192f1c3a7b87c3e9a4f5b6c7d8e9f01"
}
'import requests
url = "https://api.geekidea.ai/v1/videos/clone/{id}/assets/{asset_id}/upload"
payload = { "file_id": "file-0192f1c3a7b87c3e9a4f5b6c7d8e9f01" }
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({file_id: 'file-0192f1c3a7b87c3e9a4f5b6c7d8e9f01'})
};
fetch('https://api.geekidea.ai/v1/videos/clone/{id}/assets/{asset_id}/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "casset_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "video.clone.asset",
"revision_no": 1,
"kind": "image",
"role": "frame",
"slot": "image:s01_first",
"shot_key": "s01",
"subject_key": "cat",
"status": "succeeded",
"selected": true,
"stale": true,
"source": "generated",
"file": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"generation_id": "<string>",
"prompt": "<string>",
"feedback": "<string>",
"error_code": "<string>",
"created_at": 123
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}Upload an image
Replaces a subject sheet or frame with an image uploaded through POST /v1/files. The image becomes a new selected candidate in the slot of asset_id at no charge; dependent assets are marked stale.
curl --request POST \
--url https://api.geekidea.ai/v1/videos/clone/{id}/assets/{asset_id}/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"file_id": "file-0192f1c3a7b87c3e9a4f5b6c7d8e9f01"
}
'import requests
url = "https://api.geekidea.ai/v1/videos/clone/{id}/assets/{asset_id}/upload"
payload = { "file_id": "file-0192f1c3a7b87c3e9a4f5b6c7d8e9f01" }
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({file_id: 'file-0192f1c3a7b87c3e9a4f5b6c7d8e9f01'})
};
fetch('https://api.geekidea.ai/v1/videos/clone/{id}/assets/{asset_id}/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "casset_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "video.clone.asset",
"revision_no": 1,
"kind": "image",
"role": "frame",
"slot": "image:s01_first",
"shot_key": "s01",
"subject_key": "cat",
"status": "succeeded",
"selected": true,
"stale": true,
"source": "generated",
"file": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"generation_id": "<string>",
"prompt": "<string>",
"feedback": "<string>",
"error_code": "<string>",
"created_at": 123
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}{
"error": {
"message": "The model does not exist or you do not have access to it.",
"type": "not_found_error",
"param": "model",
"code": "model_not_found",
"retryable": false,
"errors": [
{
"param": "messages",
"code": "missing_parameter",
"message": "<string>"
}
]
}
}Authorizations
Provide your API key in the Authorization header using Bearer auth
Body
Replaces a subject sheet or frame with an uploaded image.
ID of the image uploaded through POST /v1/files
1"file-0192f1c3a7b87c3e9a4f5b6c7d8e9f01"
Response
OK
An asset candidate: subject sheet, frame, source frame, depth video, shot clip or voiceover. Of the candidates in one slot the selected one is used.
Asset ID
"casset_0192f1c3a7b87c3e9a4f5b6c7d8e9f01"
Always video.clone.asset
"video.clone.asset"
Revision number
1
image / video / audio / depth
image, video, audio, depth "image"
subject / frame / source_frame / motion / clip / voice
"frame"
Slot, e.g. image:s01_first or clip:s01
"image:s01_first"
Shot it belongs to
"s01"
Subject it shows
"cat"
generating / succeeded / failed
generating, succeeded, failed "succeeded"
Whether it is the selected candidate of its slot
An input it was made from (subject sheet, frame or depth video) has changed since
generated / regenerated / uploaded / extracted / dubbed
"generated"
A file with a signed download link.
Show child attributes
Show child attributes
Generation ID of the model call
Prompt
Feedback
Error code when it failed
Creation time (Unix seconds)
