curl --request GET \
--url https://api.geekidea.ai/v1/videos/clone/{id}/revisions/{no} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.geekidea.ai/v1/videos/clone/{id}/revisions/{no}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.geekidea.ai/v1/videos/clone/{id}/revisions/{no}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "video.clone.revision",
"clone_id": "vclone_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"revision_no": 1,
"base_revision_no": 123,
"status": "waiting_input",
"run": {
"id": "run_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "workflow.run",
"workflow": "geekidea/drama-episode",
"status": "running",
"progress": 40,
"auto_continue": true,
"budget_usd": 123,
"model_cost_usd": 123,
"fee_usd": 123,
"cost_usd": 123,
"held_usd": 123,
"error_code": "<string>",
"steps": [
{
"key": "storyboard",
"status": "succeeded",
"attempt": 1,
"error_code": "workflow_charge_exhausted",
"started_at": 123,
"finished_at": 123,
"confirmed_at": 123
}
],
"created_at": 123,
"finished_at": 123
},
"brief": {},
"understanding": {},
"plan": {},
"shots": [
{
"shot_key": "s01",
"source_start_ms": 0,
"source_end_ms": 3200,
"target_start_ms": 0,
"target_duration_ms": 3200,
"mode": "image_to_video",
"status": "succeeded",
"video": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
}
}
],
"assets": [
{
"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
}
],
"final_video": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"timeline": [
{}
],
"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>"
}
]
}
}Get a revision
Returns the steps, brief, understanding, plan, shots, all asset candidates and the final video of a revision. Regenerated assets that have finished are collected on the way.
curl --request GET \
--url https://api.geekidea.ai/v1/videos/clone/{id}/revisions/{no} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.geekidea.ai/v1/videos/clone/{id}/revisions/{no}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.geekidea.ai/v1/videos/clone/{id}/revisions/{no}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "video.clone.revision",
"clone_id": "vclone_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"revision_no": 1,
"base_revision_no": 123,
"status": "waiting_input",
"run": {
"id": "run_0192f1c3a7b87c3e9a4f5b6c7d8e9f01",
"object": "workflow.run",
"workflow": "geekidea/drama-episode",
"status": "running",
"progress": 40,
"auto_continue": true,
"budget_usd": 123,
"model_cost_usd": 123,
"fee_usd": 123,
"cost_usd": 123,
"held_usd": 123,
"error_code": "<string>",
"steps": [
{
"key": "storyboard",
"status": "succeeded",
"attempt": 1,
"error_code": "workflow_charge_exhausted",
"started_at": 123,
"finished_at": 123,
"confirmed_at": 123
}
],
"created_at": 123,
"finished_at": 123
},
"brief": {},
"understanding": {},
"plan": {},
"shots": [
{
"shot_key": "s01",
"source_start_ms": 0,
"source_end_ms": 3200,
"target_start_ms": 0,
"target_duration_ms": 3200,
"mode": "image_to_video",
"status": "succeeded",
"video": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
}
}
],
"assets": [
{
"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
}
],
"final_video": {
"file_id": "<string>",
"url": "<string>",
"mime": "<string>",
"width": 123,
"height": 123
},
"timeline": [
{}
],
"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
Response
OK
A revision (GET /v1/videos/clone/{id}/revisions/{no}): steps, brief, understanding, plan, shots, assets and final video.
Always video.clone.revision
"video.clone.revision"
Video clone ID
"vclone_0192f1c3a7b87c3e9a4f5b6c7d8e9f01"
Revision number
1
Revision it was created from
producing / waiting_input / completed / failed / cancelled
producing, waiting_input, completed, failed, cancelled "waiting_input"
A workflow run
Show child attributes
Show child attributes
Brief of this revision: request, reference images and models
Show child attributes
Show child attributes
Understanding of the reference video; editable
Show child attributes
Show child attributes
Production plan; editable
Show child attributes
Show child attributes
Shots
Show child attributes
Show child attributes
All asset candidates
Show child attributes
Show child attributes
A file with a signed download link.
Show child attributes
Show child attributes
Timeline of the final video
Show child attributes
Show child attributes
Creation time (Unix seconds)
