Timelines

Update project timeline

Replaces a saved project's active timeline with a Kaitoi Timeline Document v1 using optimistic concurrency. Use Idempotency-Key so network retries can replay the saved response. This replaces the whole project timeline; if the project currently has multiple timeline scenes, they are collapsed to the single timeline contained in the document.

put/api/v1/projects/{project_id}/timeline

Request

  • Base URL: https://api.studio.kaitoi.io (the document declares no server; this is the origin it was published from)
  • URL: https://api.studio.kaitoi.io/api/v1/projects/{project_id}/timeline
  • Auth: HTTP bearer

Path parameters

project_idstring required

Headers

Idempotency-Keystring nullable
authorizationstring nullable

Request body

expectedVersioninteger required

Last project version observed by the client.

documentobject required

Kaitoi Timeline Document v1 JSON to apply.

Example request

{
  "document": {
    "kaitoiType": "timeline",
    "name": "Timeline",
    "timeline": {
      "clips": [
        {
          "duration": 3,
          "filename": "hero.png",
          "id": "clip-1",
          "name": "Hero",
          "opacity": 100,
          "startTime": 0,
          "storageType": "data",
          "trackId": "track-1",
          "transform": {
            "rotation": 0,
            "scale": 100,
            "x": 0,
            "y": 0
          },
          "trimEnd": 0,
          "trimStart": 0,
          "type": "image",
          "volume": 100
        }
      ],
      "currentTime": 0,
      "frameRate": 30,
      "playheadPosition": 0,
      "projectDuration": 60,
      "projectResolution": {
        "height": 1080,
        "isAutoDetected": true,
        "width": 1920
      },
      "selectedClipIds": [],
      "selectedTrackId": "track-1",
      "tracks": [
        {
          "height": 60,
          "id": "track-1",
          "locked": false,
          "mutedAudio": false,
          "mutedVideo": false,
          "name": "Track 1",
          "volume": 1
        }
      ],
      "zoom": 100
    },
    "version": 1
  },
  "expectedVersion": 7
}

Response

Saved project timeline document and summary.

projectIdstring required

Stable project identifier.

versioninteger required

New optimistic concurrency version after the write.

mode'replace' required

Apply mode used for this write.

documentobject required

Resulting project timeline exported as Kaitoi Timeline Document v1.

Example response

{
  "document": {
    "kaitoiType": "timeline",
    "name": "Timeline",
    "timeline": {
      "clips": [
        {
          "duration": 3,
          "filename": "hero.png",
          "id": "clip-1",
          "name": "Hero",
          "opacity": 100,
          "startTime": 0,
          "storageType": "data",
          "trackId": "track-1",
          "transform": {
            "rotation": 0,
            "scale": 100,
            "x": 0,
            "y": 0
          },
          "trimEnd": 0,
          "trimStart": 0,
          "type": "image",
          "volume": 100
        }
      ],
      "currentTime": 0,
      "frameRate": 30,
      "playheadPosition": 0,
      "projectDuration": 60,
      "projectResolution": {
        "height": 1080,
        "isAutoDetected": true,
        "width": 1920
      },
      "selectedClipIds": [],
      "selectedTrackId": "track-1",
      "tracks": [
        {
          "height": 60,
          "id": "track-1",
          "locked": false,
          "mutedAudio": false,
          "mutedVideo": false,
          "name": "Track 1",
          "volume": 1
        }
      ],
      "zoom": 100
    },
    "version": 1
  },
  "mode": "replace",
  "projectId": "proj_123",
  "summary": {
    "clipCount": 1,
    "durationSeconds": 60,
    "trackCount": 1
  },
  "version": 8
}

Changes

No recorded changes to this operation across all 1 revision of this API.