Skip to content

๐ŸŽฌ Video Model runway โ€‹

  • 2024.07.27 This site now supports the video model runway
  • runway has no official API; it is obtained through reverse engineering, similar to GPTs
  • Supports text-to-video and image-to-video
  • Three pricing tiers โ€” see Billing
  • How to use: visit https://runway.ddaiai.com and see the Online Test section below

Online Test

  1. Visit https://runway.ddaiai.com (if blocked, try changing the subdomain prefix to suibian)
    2. If it is blocked, you can change the address yourself: https://suibian.ddaiai.com โ€” replace suibian with something else, e.g. https://2025.ddaiai.com, all work

Billing โ€‹

Official Billing โ€‹

openai-hk Billing โ€‹

  • runway-gen2: per request, 2000 credits/request, watermarked
  • runway-gen3: per second, 1200 credits/second, no watermark; $95 plan does not consume credits but limits concurrency
  • runway-gen3-fast: per second, 9000 credits/second, no watermark, almost no wait time; plan credits are consumed with looser concurrency limits
  • runway-gen3-turbo-fast: per second, 4500 credits/second, no watermark, almost no wait time; plan credits are consumed with looser concurrency limits

Setup โ€‹

Runway

Result โ€‹

Sample output Runway

Runway API โ€‹

Create Video Task.gen2 โ€‹

post https://api.openai-hk.com/runway/tasks

Request body

json
{
  "taskType": "gen2",
  "internal": false,
  "options": {
    "name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
    "seconds": 4,
    "gen2Options": {
      "mode": "gen2",
      "seed": 1675247627,
      "interpolate": true,
      "upscale": false,
      "watermark": true,
      "motion_score": 22,
      "use_motion_score": true,
      "use_motion_vectors": false,
      "text_prompt": "An older man playing piano, lit from the side.",
      "image_prompt": "https://url.com ๅฆ‚ๆžœ็•™็ฉบๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค",
      "init_image": "https://url.com ๅฆ‚ๆžœ็•™็ฉบๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค"
    },
    "exploreMode": false,
    "assetGroupName": "Generative Video"
  }
  ,"notify_hook":""
}
{
  "taskType": "gen2",
  "internal": false,
  "options": {
    "name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
    "seconds": 4,
    "gen2Options": {
      "mode": "gen2",
      "seed": 1675247627,
      "interpolate": true,
      "upscale": false,
      "watermark": true,
      "motion_score": 22,
      "use_motion_score": true,
      "use_motion_vectors": false,
      "text_prompt": "An older man playing piano, lit from the side.",
      "image_prompt": "https://url.com ๅฆ‚ๆžœ็•™็ฉบๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค",
      "init_image": "https://url.com ๅฆ‚ๆžœ็•™็ฉบๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค"
    },
    "exploreMode": false,
    "assetGroupName": "Generative Video"
  }
  ,"notify_hook":""
}

Key field descriptions

FieldTypeDescription
taskTypestringVersion: gen2
notify_hookstringCallback URL โ€” the callback format matches the response body
options.secondsintDuration
options.gen2Options.seedintSeed
options.gen2Options.text_promptstringPrompt text
options.gen2Options.image_promptstringReference image โ€” must be a URL obtained via the upload endpoint; remove the field if not used
options.gen2Options.init_imagestringReference image โ€” must be a URL obtained via the upload endpoint; remove the field if not used
  • Note: init_image must use a runway-hosted image URL, otherwise an error will occur

Response body

json
{
	"task": {
		"id": "fc4a68aa-4280-42cb-b55c-e1d9a64960e0",
		"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
		"image": null,
		"createdAt": "2024-07-26T16:40:43.864Z",
		"updatedAt": "2024-07-26T16:40:43.894Z",
		"taskType": "gen2",
		"options": {
			"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
			"seconds": 4,
			"gen2Options": {
				"mode": "gen2",
				"seed": 1675247627,
				"interpolate": true,
				"upscale": false,
				"watermark": true,
				"motion_score": 22,
				"use_motion_score": true,
				"use_motion_vectors": false,
				"text_prompt": "An older man playing piano, lit from the side.",
				"image_prompt": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc",
				"init_image": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc"
			},
			"exploreMode": false,
			"assetGroupName": "Generative Video",
			"recordingEnabled": true
		},
		"status": "PENDING",
		"error": null,
		"progressText": null,
		"progressRatio": null,
		"estimatedTimeToStartSeconds": 2.526315789473684,
		"artifacts": [],
		"sharedAsset": null
	}
}
{
	"task": {
		"id": "fc4a68aa-4280-42cb-b55c-e1d9a64960e0",
		"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
		"image": null,
		"createdAt": "2024-07-26T16:40:43.864Z",
		"updatedAt": "2024-07-26T16:40:43.894Z",
		"taskType": "gen2",
		"options": {
			"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
			"seconds": 4,
			"gen2Options": {
				"mode": "gen2",
				"seed": 1675247627,
				"interpolate": true,
				"upscale": false,
				"watermark": true,
				"motion_score": 22,
				"use_motion_score": true,
				"use_motion_vectors": false,
				"text_prompt": "An older man playing piano, lit from the side.",
				"image_prompt": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc",
				"init_image": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc"
			},
			"exploreMode": false,
			"assetGroupName": "Generative Video",
			"recordingEnabled": true
		},
		"status": "PENDING",
		"error": null,
		"progressText": null,
		"progressRatio": null,
		"estimatedTimeToStartSeconds": 2.526315789473684,
		"artifacts": [],
		"sharedAsset": null
	}
}

The task.id is the TaskID used for task queries.

Create Video Task.gen3 โ€‹

post https://api.openai-hk.com/runway/tasks

Request body

json
{
  "taskType": "europa",
  "internal": false,
  "options": {
    "name": "Gen-3 Alpha  2275386909",
    "seconds": 5,
    "text_prompt": "Handheld camera moving fast, flashlight light, in a white old wall in a old alley at night a black graffiti that spells 'openai-hk'",
    "seed": 2275386909,
    "exploreMode": true,
    "watermark": false,
    "enhance_prompt": true,
    "width": 1280,
    "height": 768,
    "assetGroupName": "Generative Video",
    "init_image": "้€š่ฟ‡ไธŠไผ ๆŽฅๅฃ่Žทๅพ—็š„ๅ›พ็‰‡้“พๆŽฅ httpsๅผ€ๅคด๏ผŒๅฆ‚ๆžœๆฒกๆœ‰ๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค",
    "resolution": "720p",
	"image_as_end_frame": false
  }
  ,"notify_hook":""
}
{
  "taskType": "europa",
  "internal": false,
  "options": {
    "name": "Gen-3 Alpha  2275386909",
    "seconds": 5,
    "text_prompt": "Handheld camera moving fast, flashlight light, in a white old wall in a old alley at night a black graffiti that spells 'openai-hk'",
    "seed": 2275386909,
    "exploreMode": true,
    "watermark": false,
    "enhance_prompt": true,
    "width": 1280,
    "height": 768,
    "assetGroupName": "Generative Video",
    "init_image": "้€š่ฟ‡ไธŠไผ ๆŽฅๅฃ่Žทๅพ—็š„ๅ›พ็‰‡้“พๆŽฅ httpsๅผ€ๅคด๏ผŒๅฆ‚ๆžœๆฒกๆœ‰ๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค",
    "resolution": "720p",
	"image_as_end_frame": false
  }
  ,"notify_hook":""
}

Key field descriptions

FieldTypeDescription
taskTypestringValue europa for gen3; gen3a_turbo for gen3 turbo
notify_hookstringCallback URL โ€” the callback format matches the response body
options.secondsintDuration
options.seedintSeed
options.text_promptstringPrompt text
options.exploreModebooleantrue for runway-gen3; false for runway-gen3-fast
options.init_imagestringReference image โ€” must be a URL obtained via the upload endpoint; remove the field if not used; gen3 turbo requires an image
options.image_as_end_framebooltrue to use as the last frame; default is first frame

Response body

json

{
    "task": {
        "id": "3320e8b1-dc89-41b5-ba1e-0452ae8055e0",
        "name": "Gen-3 Alpha  3914885184",
        "image": null,
        "createdAt": "2024-07-27T01:16:12.096Z",
        "updatedAt": "2024-07-27T01:16:12.140Z",
        "taskType": "gen3a",
        "options": {
            "name": "Gen-3 Alpha  3914885184",
            "seconds": 5,
            "text_prompt": "Handheld camera moving fast, flashlight light, in a white old wall in a old alley at night a black graffiti that spells 'openai-hk'.",
            "seed": 3914885184,
            "exploreMode": true,
            "watermark": false,
            "enhance_prompt": true,
            "width": 1280,
            "height": 768,
            "assetGroupName": "Generative Video",
            "recordingEnabled": true
        },
        "status": "PENDING",
        "error": null,
        "progressText": null,
        "progressRatio": null,
        "estimatedTimeToStartSeconds": 1.0526315789473684,
        "artifacts": [],
        "sharedAsset": null
    }
}

{
    "task": {
        "id": "3320e8b1-dc89-41b5-ba1e-0452ae8055e0",
        "name": "Gen-3 Alpha  3914885184",
        "image": null,
        "createdAt": "2024-07-27T01:16:12.096Z",
        "updatedAt": "2024-07-27T01:16:12.140Z",
        "taskType": "gen3a",
        "options": {
            "name": "Gen-3 Alpha  3914885184",
            "seconds": 5,
            "text_prompt": "Handheld camera moving fast, flashlight light, in a white old wall in a old alley at night a black graffiti that spells 'openai-hk'.",
            "seed": 3914885184,
            "exploreMode": true,
            "watermark": false,
            "enhance_prompt": true,
            "width": 1280,
            "height": 768,
            "assetGroupName": "Generative Video",
            "recordingEnabled": true
        },
        "status": "PENDING",
        "error": null,
        "progressText": null,
        "progressRatio": null,
        "estimatedTimeToStartSeconds": 1.0526315789473684,
        "artifacts": [],
        "sharedAsset": null
    }
}

The task.id is the TaskID used for task queries.

Create Video Task from Video.gen3 โ€‹

Request body

json
{
  "taskType": "europa",
  "internal": false,
  "options": {
    "name": "Gen-3 Alpha  3370505664",
    "seconds": 10,
    "text_prompt": "็พŽๅฅณ่ˆž่นˆ",
    "seed": 3370505664,
    "exploreMode": true,
    "watermark": false,
    "enhance_prompt": true,
    "video_prompt": "https://d2jqrm6oza8nb6.cloudfront.net/previews/bf87aed7-1bb4-4d5c-b53d-bd1d948d9720.mp4?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNTgyMjcxNGYzM2Q2ZDM2ZSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyOTk4NzIwMH0.pRuWeQd6sD-1EkF15oUr21FMwjsOs011Nekep-mSTfg",
    "structure_transformation": 0.3,
    "width": 1280,
    "height": 768,
    "assetGroupName": "Generative Video"
  }
}
{
  "taskType": "europa",
  "internal": false,
  "options": {
    "name": "Gen-3 Alpha  3370505664",
    "seconds": 10,
    "text_prompt": "็พŽๅฅณ่ˆž่นˆ",
    "seed": 3370505664,
    "exploreMode": true,
    "watermark": false,
    "enhance_prompt": true,
    "video_prompt": "https://d2jqrm6oza8nb6.cloudfront.net/previews/bf87aed7-1bb4-4d5c-b53d-bd1d948d9720.mp4?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNTgyMjcxNGYzM2Q2ZDM2ZSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyOTk4NzIwMH0.pRuWeQd6sD-1EkF15oUr21FMwjsOs011Nekep-mSTfg",
    "structure_transformation": 0.3,
    "width": 1280,
    "height": 768,
    "assetGroupName": "Generative Video"
  }
}

Key field descriptions

FieldTypeDescription
taskTypestringValue europa for gen3; gen3a_turbo for gen3 turbo
notify_hookstringCallback URL โ€” the callback format matches the response body
options.secondsintDuration
options.seedintSeed
options.text_promptstringPrompt text
options.exploreModebooleantrue for runway-gen3; false for runway-gen3-fast
options.video_promptstringReference video โ€” must be a URL obtained via the upload endpoint; remove the field if not used; gen3 turbo requires an image or video
  • Note: video_prompt must use a URL obtained through the upload endpoint to get a runway-hosted address, otherwise an error will occur

Response body: see Create Video Task.gen3

The task.id is the TaskID used for task queries.

Task Query โ€‹

get https://api.openai-hk.com/runway/tasks/{TaskID}

shell
curl --request GET \
  --url https://api.openai-hk.com/runway/tasks/fc4a68aa-4280-42cb-b55c-e1d9a64960e0 \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json'
curl --request GET \
  --url https://api.openai-hk.com/runway/tasks/fc4a68aa-4280-42cb-b55c-e1d9a64960e0 \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json'

Response body

json
{
	"task": {
		"id": "fc4a68aa-4280-42cb-b55c-e1d9a64960e0",
		"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
		"image": null,
		"createdAt": "2024-07-26T16:40:43.864Z",
		"updatedAt": "2024-07-26T16:42:04.782Z",
		"taskType": "gen2",
		"options": {
			"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
			"seconds": 4,
			"gen2Options": {
				"mode": "gen2",
				"seed": 1675247627,
				"interpolate": true,
				"upscale": false,
				"watermark": true,
				"motion_score": 22,
				"use_motion_score": true,
				"use_motion_vectors": false,
				"text_prompt": "An older man playing piano, lit from the side.",
				"image_prompt": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc",
				"init_image": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc"
			},
			"exploreMode": false,
			"assetGroupName": "Generative Video",
			"recordingEnabled": true
		},
		"status": "SUCCEEDED",
		"error": null,
		"progressText": null,
		"progressRatio": "1",
		"estimatedTimeToStartSeconds": null,
		"artifacts": [
			{
				"id": "3c33bee5-5d50-4a6d-bb7d-a690496ca2ce",
				"createdAt": "2024-07-26T16:42:04.734Z",
				"updatedAt": "2024-07-26T16:42:04.734Z",
				"userId": 17792681,
				"createdBy": 17792681,
				"taskId": "fc4a68aa-4280-42cb-b55c-e1d9a64960e0",
				"parentAssetGroupId": "bffe20f1-b5c6-4bc1-a32f-bb71c8148adc",
				"filename": "Gen-2 1675247627, An older man playing, y3jpg, M 5.mp4",
				"url": "https://dnznrvs05pmza.cloudfront.net/9773beb4-39c0-417f-9f4e-f2fd6dc213d5.mp4?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNTI1MjM4NDI3NDcyZWM1NCIsImJ1Y2tldCI6InJ1bndheS10YXNrLWFydGlmYWN0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.5wlX55clcZqVVzGi48i-ReAB3tpJSkpTRcw6WL8GclQ",
				"fileSize": "1340124",
				"isDirectory": false,
				"previewUrls": [
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/3312f869-e2c2-480d-85eb-5c06490a6171.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNjE0ZGEwYjBjNzNhYTkzNSIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.jiuoC4Ev5KFglJUEtwKYMyGbtoIMec1GUhSe_y8kx-w",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/25d1070f-71b7-45ae-ae57-b4fb5c7e0086.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiZmE2MmNjYjdkZjg1MDlkOCIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.tmc-uu0TVBixnJYTjC5mQCVxgBvaK4ppEV2N7BjKzxE",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/0c13dd88-d14d-49ed-bea4-f526fd820311.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiZGZiOTEwMGVmNTkzMzFkOCIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.9eqVp2pTCmI8SUuYga3slh-wqp5Fe2ndRPFhpiJ9IPQ",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/6a997662-f054-41ec-a124-2402002bc50f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNjNjOTA1ODRjMjM3ZGU2MyIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.oxQiSRQWhdOwPrdh--K4D3Jdh-KxCEASGwt7_zKWMNE",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/a5483fec-5c29-40c1-8317-73330c6865b7.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiYTQ1NTM0NDc0ODViMzcwZSIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.3_b5AzPdEWPah140L4WETz4ANaoEkN8GESkexhdREDo"
				],
				"private": true,
				"privateInTeam": true,
				"deleted": false,
				"reported": false,
				"metadata": {
					"frameRate": 24,
					"duration": 4,
					"dimensions": [
						512,
						1792
					],
					"size": {
						"width": 512,
						"height": 1792
					}
				},
				"favorite": false
			}
		],
		"sharedAsset": null
	}
}
{
	"task": {
		"id": "fc4a68aa-4280-42cb-b55c-e1d9a64960e0",
		"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
		"image": null,
		"createdAt": "2024-07-26T16:40:43.864Z",
		"updatedAt": "2024-07-26T16:42:04.782Z",
		"taskType": "gen2",
		"options": {
			"name": "Gen-2 1675247627, An older man playing, y3jpg, M 5",
			"seconds": 4,
			"gen2Options": {
				"mode": "gen2",
				"seed": 1675247627,
				"interpolate": true,
				"upscale": false,
				"watermark": true,
				"motion_score": 22,
				"use_motion_score": true,
				"use_motion_vectors": false,
				"text_prompt": "An older man playing piano, lit from the side.",
				"image_prompt": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc",
				"init_image": "https://d2jqrm6oza8nb6.cloudfront.net/previews/8bbcaa07-509e-467e-af6e-1fa8f21bff3f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNGExOWNhOTE3M2FlMGM5NSIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.EajrIuHWvNutCTsT6moNFO8PBhCUiYj7H5KF2E3WwOc"
			},
			"exploreMode": false,
			"assetGroupName": "Generative Video",
			"recordingEnabled": true
		},
		"status": "SUCCEEDED",
		"error": null,
		"progressText": null,
		"progressRatio": "1",
		"estimatedTimeToStartSeconds": null,
		"artifacts": [
			{
				"id": "3c33bee5-5d50-4a6d-bb7d-a690496ca2ce",
				"createdAt": "2024-07-26T16:42:04.734Z",
				"updatedAt": "2024-07-26T16:42:04.734Z",
				"userId": 17792681,
				"createdBy": 17792681,
				"taskId": "fc4a68aa-4280-42cb-b55c-e1d9a64960e0",
				"parentAssetGroupId": "bffe20f1-b5c6-4bc1-a32f-bb71c8148adc",
				"filename": "Gen-2 1675247627, An older man playing, y3jpg, M 5.mp4",
				"url": "https://dnznrvs05pmza.cloudfront.net/9773beb4-39c0-417f-9f4e-f2fd6dc213d5.mp4?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNTI1MjM4NDI3NDcyZWM1NCIsImJ1Y2tldCI6InJ1bndheS10YXNrLWFydGlmYWN0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMjEyNDgwMH0.5wlX55clcZqVVzGi48i-ReAB3tpJSkpTRcw6WL8GclQ",
				"fileSize": "1340124",
				"isDirectory": false,
				"previewUrls": [
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/3312f869-e2c2-480d-85eb-5c06490a6171.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNjE0ZGEwYjBjNzNhYTkzNSIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.jiuoC4Ev5KFglJUEtwKYMyGbtoIMec1GUhSe_y8kx-w",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/25d1070f-71b7-45ae-ae57-b4fb5c7e0086.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiZmE2MmNjYjdkZjg1MDlkOCIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.tmc-uu0TVBixnJYTjC5mQCVxgBvaK4ppEV2N7BjKzxE",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/0c13dd88-d14d-49ed-bea4-f526fd820311.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiZGZiOTEwMGVmNTkzMzFkOCIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.9eqVp2pTCmI8SUuYga3slh-wqp5Fe2ndRPFhpiJ9IPQ",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/6a997662-f054-41ec-a124-2402002bc50f.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiNjNjOTA1ODRjMjM3ZGU2MyIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.oxQiSRQWhdOwPrdh--K4D3Jdh-KxCEASGwt7_zKWMNE",
					"https://dnf8butk8bbsy.cloudfront.net/task_artifact_previews/a5483fec-5c29-40c1-8317-73330c6865b7.jpg?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiYTQ1NTM0NDc0ODViMzcwZSIsImJ1Y2tldCI6InJ1bndheS11cGxvYWRzLXByb2QiLCJzdGFnZSI6InByb2QiLCJleHAiOjE3MjIxMjQ4MDB9.3_b5AzPdEWPah140L4WETz4ANaoEkN8GESkexhdREDo"
				],
				"private": true,
				"privateInTeam": true,
				"deleted": false,
				"reported": false,
				"metadata": {
					"frameRate": 24,
					"duration": 4,
					"dimensions": [
						512,
						1792
					],
					"size": {
						"width": 512,
						"height": 1792
					}
				},
				"favorite": false
			}
		],
		"sharedAsset": null
	}
}

Extend Video.extend โ€‹

post https://api.openai-hk.com/runway/tasks

Request body

json
{
  "taskType": "europa",
  "internal": false,
  "options": {
    "name": "Gen-3 Alpha  2275386909",
    "seconds": 5,
    "text_prompt": "Handheld camera moving fast, flashlight light, in a white old wall in a old alley at night a black graffiti that spells 'openai-hk'",
    "seed": 2275386909,
    "exploreMode": true,
    "watermark": false,
    "enhance_prompt": true,
    "width": 1280,
    "height": 768,
    "assetGroupName": "Generative Video",
    "init_image": "้€š่ฟ‡ไธŠไผ ๆŽฅๅฃ่Žทๅพ—็š„ๅ›พ็‰‡้“พๆŽฅ httpsๅผ€ๅคด๏ผŒๅฆ‚ๆžœๆฒกๆœ‰ๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค",
    "resolution": "720p",
	"extended_from_task_id": "7748161e-adea-42e6-8480-0adddb149706",
    "init_video": "https://dnznrvs05pmza.cloudfront.net/2e7681cd-0028-4458-8bca-515987575ec2.mp4?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiN2NiOGNmYmJlOWZmN2IzNiIsImJ1Y2tldCI6InJ1bndheS10YXNrLWFydGlmYWN0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyNTU4MDgwMH0.qQJNR5NUjR7C2KCbAI6fZ6LqD4DENRaLm6KOJLiJWRw"
  }
}
{
  "taskType": "europa",
  "internal": false,
  "options": {
    "name": "Gen-3 Alpha  2275386909",
    "seconds": 5,
    "text_prompt": "Handheld camera moving fast, flashlight light, in a white old wall in a old alley at night a black graffiti that spells 'openai-hk'",
    "seed": 2275386909,
    "exploreMode": true,
    "watermark": false,
    "enhance_prompt": true,
    "width": 1280,
    "height": 768,
    "assetGroupName": "Generative Video",
    "init_image": "้€š่ฟ‡ไธŠไผ ๆŽฅๅฃ่Žทๅพ—็š„ๅ›พ็‰‡้“พๆŽฅ httpsๅผ€ๅคด๏ผŒๅฆ‚ๆžœๆฒกๆœ‰ๅฟ…้กปๆŠŠๅญ—ๆฎตๅˆ ้™ค",
    "resolution": "720p",
	"extended_from_task_id": "7748161e-adea-42e6-8480-0adddb149706",
    "init_video": "https://dnznrvs05pmza.cloudfront.net/2e7681cd-0028-4458-8bca-515987575ec2.mp4?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiN2NiOGNmYmJlOWZmN2IzNiIsImJ1Y2tldCI6InJ1bndheS10YXNrLWFydGlmYWN0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyNTU4MDgwMH0.qQJNR5NUjR7C2KCbAI6fZ6LqD4DENRaLm6KOJLiJWRw"
  }
}

For other key fields, see Create Video Task.gen3. Only the extension-specific fields are described below.

FieldTypeDescription
options.extended_from_task_idstringTask ID of the video to extend
options.init_videostringURL of the video to extend

The response body is the same as Create Video Task.gen3.

Upload.A Pre-report to Get Credentials โ€‹

post https://api.openai-hk.com/runway/uploads

shell
curl --request POST \
  --url https://api.openai-hk.com/runway/uploads \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json' \
  --data '{
  "filename": "163-q.jpeg",
  "numberOfParts": 1,
  "type": "DATASET_PREVIEW"
}'
curl --request POST \
  --url https://api.openai-hk.com/runway/uploads \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json' \
  --data '{
  "filename": "163-q.jpeg",
  "numberOfParts": 1,
  "type": "DATASET_PREVIEW"
}'

Request body

json
{
  "filename": "163-q.jpeg",
  "numberOfParts": 1,
  "type": "DATASET_PREVIEW"
}
{
  "filename": "163-q.jpeg",
  "numberOfParts": 1,
  "type": "DATASET_PREVIEW"
}

Response body

json
{
	"id": "4e806398-cd0a-48c6-9ac8-6322ed693785",
	"uploadUrls": [
		"https://runway-datasets.s3.us-east-1.amazonaws.com/previews/38636c93-c137-4eb7-b983-450f7d0871b1.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIA5PY5AQY4YNAEKQFK%2F20240726%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240726T164242Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAEaCXVzLWVhc3QtMSJHMEUCIGzXIRC8eW6QRXb4UfI3mGuXHYJhn9WsCLpfOQEdgqiuAiEA2oimEh028yuECo%2B2WoxRZSjgMHfLqNX84uszilG6JKYq8gMI2v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAEGgw5MjcyMzY5MTY3OTMiDA9mkwGgaSsTQPwikirGA%2BtDGpYH%2FYnSinCTWmnBNbWbKYm01FbTXVXEQhqAHkqpHJ7v8ByDZzIRGmCiqj3k%2BYqYgxkYllH41hrntSCESbM9ci0M3hqypsBCDDReH%2BdEFhG20eOvx4NbnNu8DO34EcTr0XEuHvFhfBB07yBZ%2FkRfyFWAhGrn8FTbfVvTfZONoGr2fNqo31NU%2F%2Bnar%2FToszgHpweA2lVBlZlN5WFFWTSP%2FX77K%2BLW0%2BZr57J%2FzFXrWQG9Vtty9A%2Fbr%2BwcVDO9gv%2FLcRUvs8vUPxxAX5%2ByZ51f%2B8MQvENP0sV7lABj6zYhMYGl2FJO8ASo05T1zGgUod448yE7CkveenR7Jst1%2BmB%2FsD7GcY3HdctBQUYCrodcNOP1m4o51KykFZuwWnhhVx9FG53KalpwPBANgea8%2BXSLTY%2FsjPYITAOWgCoSJ%2FShEYMeJC6T3yxJC04PoBqXAP31hu10koCK7yqWYzNH89BQ4UW8cTriixI8wgAJCmaCCg1Dm3xiJAAznPw7dnPaJdNCjiIik8tM1GBgXkqwTYWzpCJBeSnQVeeBpbxd7RwGib8V3jhawYCfyIa01iw%2B7ZX9C8y3PXi2ncub4VZGj3DfafHIbacwhaCPtQY6pQGelWlBM5Ftg4cdnKOGC6wZboGLp%2BvcU5RCw9j9MoKSrZFA2iQEl2Atnxb5CKrEBZCahy1MJI6kE%2BGQ0hNv4AwLCUvlyWIn9zcdHa162I6hFDccAkkLsr%2FQUT5sgkxqQhH6OzkdOub4sPaRXIIJbWHDqa73nd1xVScVhRvd8GP9ip8cxK0wFitt%2Fu04zr7PuMWIg8I85pEK%2FHu63XLvs5zYyZj5GMc%3D&X-Amz-Signature=c3053c853994e21fb4b9f34d2c5595129344b1ed2606dc953beeb120888c6e19&X-Amz-SignedHeaders=host&x-id=PutObject"
	],
	"uploadHeaders": {
		"Content-Type": "image/jpeg"
	}
}
{
	"id": "4e806398-cd0a-48c6-9ac8-6322ed693785",
	"uploadUrls": [
		"https://runway-datasets.s3.us-east-1.amazonaws.com/previews/38636c93-c137-4eb7-b983-450f7d0871b1.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIA5PY5AQY4YNAEKQFK%2F20240726%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240726T164242Z&X-Amz-Expires=86400&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEAEaCXVzLWVhc3QtMSJHMEUCIGzXIRC8eW6QRXb4UfI3mGuXHYJhn9WsCLpfOQEdgqiuAiEA2oimEh028yuECo%2B2WoxRZSjgMHfLqNX84uszilG6JKYq8gMI2v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAEGgw5MjcyMzY5MTY3OTMiDA9mkwGgaSsTQPwikirGA%2BtDGpYH%2FYnSinCTWmnBNbWbKYm01FbTXVXEQhqAHkqpHJ7v8ByDZzIRGmCiqj3k%2BYqYgxkYllH41hrntSCESbM9ci0M3hqypsBCDDReH%2BdEFhG20eOvx4NbnNu8DO34EcTr0XEuHvFhfBB07yBZ%2FkRfyFWAhGrn8FTbfVvTfZONoGr2fNqo31NU%2F%2Bnar%2FToszgHpweA2lVBlZlN5WFFWTSP%2FX77K%2BLW0%2BZr57J%2FzFXrWQG9Vtty9A%2Fbr%2BwcVDO9gv%2FLcRUvs8vUPxxAX5%2ByZ51f%2B8MQvENP0sV7lABj6zYhMYGl2FJO8ASo05T1zGgUod448yE7CkveenR7Jst1%2BmB%2FsD7GcY3HdctBQUYCrodcNOP1m4o51KykFZuwWnhhVx9FG53KalpwPBANgea8%2BXSLTY%2FsjPYITAOWgCoSJ%2FShEYMeJC6T3yxJC04PoBqXAP31hu10koCK7yqWYzNH89BQ4UW8cTriixI8wgAJCmaCCg1Dm3xiJAAznPw7dnPaJdNCjiIik8tM1GBgXkqwTYWzpCJBeSnQVeeBpbxd7RwGib8V3jhawYCfyIa01iw%2B7ZX9C8y3PXi2ncub4VZGj3DfafHIbacwhaCPtQY6pQGelWlBM5Ftg4cdnKOGC6wZboGLp%2BvcU5RCw9j9MoKSrZFA2iQEl2Atnxb5CKrEBZCahy1MJI6kE%2BGQ0hNv4AwLCUvlyWIn9zcdHa162I6hFDccAkkLsr%2FQUT5sgkxqQhH6OzkdOub4sPaRXIIJbWHDqa73nd1xVScVhRvd8GP9ip8cxK0wFitt%2Fu04zr7PuMWIg8I85pEK%2FHu63XLvs5zYyZj5GMc%3D&X-Amz-Signature=c3053c853994e21fb4b9f34d2c5595129344b1ed2606dc953beeb120888c6e19&X-Amz-SignedHeaders=host&x-id=PutObject"
	],
	"uploadHeaders": {
		"Content-Type": "image/jpeg"
	}
}

The id obtained here is used in step C; uploadUrls is used in step B.

Upload.B Execute Upload โ€‹

js
let res = await fetch( d.uploadUrls[0] //uploadUrls from step A
, {
        method: 'PUT',
        body: file, // file to upload
        headers: {
            'Content-Type': d.uploadHeaders["Content-Type"], //uploadHeaders from step A
            'Accept': '/',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection': 'keep-alive'
        }
    }) ;
let res = await fetch( d.uploadUrls[0] //uploadUrls from step A
, {
        method: 'PUT',
        body: file, // file to upload
        headers: {
            'Content-Type': d.uploadHeaders["Content-Type"], //uploadHeaders from step A
            'Accept': '/',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection': 'keep-alive'
        }
    }) ;

A 200 response means success.

Upload.C Complete Report โ€‹

post https://api.openai-hk.com/runway/uploads/{id}/complete

shell
curl --request POST \
  --url https://api.openai-hk.com/runway/uploads/4e806398-cd0a-48c6-9ac8-6322ed693785/complete \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json' \
  --data '{"parts":[{"PartNumber":1,"ETag":"ca3b00c313b6fd9a5c48889ad16f7d5e"}]}'
curl --request POST \
  --url https://api.openai-hk.com/runway/uploads/4e806398-cd0a-48c6-9ac8-6322ed693785/complete \
  --header 'Authorization: Bearer hk-your-key' \
  --header 'content-type: application/json' \
  --data '{"parts":[{"PartNumber":1,"ETag":"ca3b00c313b6fd9a5c48889ad16f7d5e"}]}'

Request body

json
{
  "parts": [
    {
      "PartNumber": 1,
      "ETag": "can be any value"
    }
  ]
}
{
  "parts": [
    {
      "PartNumber": 1,
      "ETag": "can be any value"
    }
  ]
}

Response body

json
{
	"url": "https://d2jqrm6oza8nb6.cloudfront.net/previews/384cf95c-13e5-4dd5-9c29-680d81ddfd60?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiMTU2OGIzZDIyMTZmMzIxYyIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMTM0NzIwMH0.mAdwPycvWvUXjfIgrDEmZth7t2yghokMnwMVmlHhVss"
}
{
	"url": "https://d2jqrm6oza8nb6.cloudfront.net/previews/384cf95c-13e5-4dd5-9c29-680d81ddfd60?_jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlIYXNoIjoiMTU2OGIzZDIyMTZmMzIxYyIsImJ1Y2tldCI6InJ1bndheS1kYXRhc2V0cyIsInN0YWdlIjoicHJvZCIsImV4cCI6MTcyMTM0NzIwMH0.mAdwPycvWvUXjfIgrDEmZth7t2yghokMnwMVmlHhVss"
}

The image URL url is time-limited โ€” save it promptly.