{
  "schemaVersion": 2,
  "id": "export",
  "title": "Export a backup",
  "video": "export.mp4",
  "poster": "export-poster.jpg",
  "captions": "export.vtt",
  "srt": "export.srt",
  "subtitleLog": "export.json",
  "sourceMaster": "output/video-masters/export.mp4",
  "fps": 30,
  "frameIndexConvention": "zero-based; start inclusive, end exclusive",
  "width": 1280,
  "height": 1040,
  "screenHeight": 800,
  "frameCount": 1054,
  "durationSeconds": 35.13333333333333,
  "captionsBurnedIn": true,
  "audioTracks": 1,
  "exampleDate": "2026-09-24",
  "capture": "Live Chromium Page.startScreencast frames; resampled to constant frame rate without cutting or speeding up actions.",
  "nativeDialogs": "OS file pickers are not captured. Cues explicitly identify file-selection steps.",
  "demoNote": null,
  "cues": [
    {
      "id": "export-01",
      "helpStep": 1,
      "stepTitle": "Find Export backup",
      "text": "Find Export backup at the bottom of the desktop sidebar.",
      "narrationText": "Find Export backup at the bottom of the desktop sidebar.",
      "startFrame": 0,
      "endFrameExclusive": 119,
      "startSeconds": 0.0,
      "endSeconds": 3.966666666666667,
      "actions": [
        {
          "action": "highlight",
          "target": "#export"
        }
      ],
      "originalStartFrame": 0,
      "originalEndFrameExclusive": 119,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/export-01.mp3",
        "taskId": "ee4a8d61-093c-434b-bdc7-8d5af403112b",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 4800,
        "endSampleExclusive": 160838,
        "startSeconds": 0.1,
        "endSeconds": 3.350791666666667,
        "startFrame": 3,
        "endFrameExclusive": 101,
        "sourceSha256": "05877b93a6d34776f412b0c7cf6af9af33d885165e1dad33758b73e2e17d94f2"
      }
    },
    {
      "id": "export-02",
      "helpStep": 2,
      "stepTitle": "Download the backup",
      "text": "Select Export backup to download all saved tasks as a JSON file.",
      "narrationText": "Select Export backup to download all saved tasks as a JSON file.",
      "startFrame": 119,
      "endFrameExclusive": 250,
      "startSeconds": 3.966666666666667,
      "endSeconds": 8.333333333333334,
      "actions": [
        {
          "action": "download-backup"
        },
        {
          "action": "click",
          "target": "#export"
        }
      ],
      "originalStartFrame": 119,
      "originalEndFrameExclusive": 250,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/export-02.mp3",
        "taskId": "78c336e3-693c-479d-8242-a9d9f6d3209d",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 195200,
        "endSampleExclusive": 391362,
        "startSeconds": 4.066666666666666,
        "endSeconds": 8.153375,
        "startFrame": 122,
        "endFrameExclusive": 245,
        "sourceSha256": "69ae9ef5a2d64dd1ecfa6f62086e8c0bde0cc04046fae6a153a13125197d6f5b"
      }
    },
    {
      "id": "export-03",
      "helpStep": 3,
      "stepTitle": "Check and store the file",
      "text": "Open the saved JSON from your downloads. Here is the actual file from this recording.",
      "narrationText": "Open the saved JSON from your downloads. Here is the actual file from this recording.",
      "startFrame": 250,
      "endFrameExclusive": 415,
      "startSeconds": 8.333333333333334,
      "endSeconds": 13.833333333333334,
      "actions": [
        {
          "action": "demo-fixture",
          "description": "Open the actual downloaded JSON file in the browser."
        }
      ],
      "originalStartFrame": 250,
      "originalEndFrameExclusive": 415,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/export-03.mp3",
        "taskId": "fa9a4328-6889-4dd5-817f-295447377078",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 404800,
        "endSampleExclusive": 632170,
        "startSeconds": 8.433333333333334,
        "endSeconds": 13.170208333333333,
        "startFrame": 253,
        "endFrameExclusive": 396,
        "sourceSha256": "e211dbcbd4fde3c7727d7748690bc7850063d1f69023477e2af9ceb82fc2b698"
      }
    },
    {
      "id": "export-04",
      "helpStep": 3,
      "stepTitle": "Check and store the file",
      "text": "The file contains all saved tasks. Keep a copy somewhere you can find later.",
      "narrationText": "The file contains all saved tasks. Keep a copy somewhere you can find later.",
      "startFrame": 415,
      "endFrameExclusive": 565,
      "startSeconds": 13.833333333333334,
      "endSeconds": 18.833333333333332,
      "actions": [],
      "originalStartFrame": 415,
      "originalEndFrameExclusive": 565,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/export-04.mp3",
        "taskId": "93a575e0-d217-42df-99c1-9e8d8ad6e389",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 668800,
        "endSampleExclusive": 887254,
        "startSeconds": 13.933333333333334,
        "endSeconds": 18.484458333333333,
        "startFrame": 418,
        "endFrameExclusive": 555,
        "sourceSha256": "2339dc843745dba9857d1ad0d3cbb6db7b13a2735bd58f1c892f28aa7f58bdf7"
      }
    },
    {
      "id": "export-05",
      "helpStep": 4,
      "stepTitle": "Use the backup on another browser or device",
      "text": "To move data, open Today List in the destination browser and import that backup.",
      "narrationText": "To move data, open Today List in the destination browser and import that backup.",
      "startFrame": 565,
      "endFrameExclusive": 721,
      "startSeconds": 18.833333333333332,
      "endSeconds": 24.033333333333335,
      "actions": [
        {
          "action": "highlight",
          "target": "#import"
        }
      ],
      "originalStartFrame": 565,
      "originalEndFrameExclusive": 721,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/export-05.mp3",
        "taskId": "5848ebaa-0f38-4af2-87d5-2d2aa5315e0a",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 908800,
        "endSampleExclusive": 1127254,
        "startSeconds": 18.933333333333334,
        "endSeconds": 23.484458333333333,
        "startFrame": 568,
        "endFrameExclusive": 705,
        "sourceSha256": "16b10447f38956c98a896cf89c4b8fa4b9db4af539a7db6cf248daa7b9535d16"
      }
    },
    {
      "id": "export-06",
      "helpStep": 4,
      "stepTitle": "Use the backup on another browser or device",
      "text": "The device file chooser is outside this recording. Select your Today List JSON backup.",
      "narrationText": "The device file chooser is outside this recording. Select your Today List JSON backup.",
      "startFrame": 721,
      "endFrameExclusive": 887,
      "startSeconds": 24.033333333333335,
      "endSeconds": 29.566666666666666,
      "actions": [
        {
          "action": "choose-file",
          "name": "today-list-example.json",
          "note": "Native operating-system chooser is outside browser screencast."
        }
      ],
      "originalStartFrame": 721,
      "originalEndFrameExclusive": 887,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/export-06.mp3",
        "taskId": "7212c605-79a0-4a05-a272-a67033f771b1",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 1158400,
        "endSampleExclusive": 1408061,
        "startSeconds": 24.133333333333333,
        "endSeconds": 29.334604166666665,
        "startFrame": 724,
        "endFrameExclusive": 881,
        "sourceSha256": "e6c1dfb8bfb8f40bedc4198c210c312e2bb4a7decef647b5e8e91e3afaf62ec5"
      }
    },
    {
      "id": "export-07",
      "helpStep": 4,
      "stepTitle": "Use the backup on another browser or device",
      "text": "This example uses the same workspace, so matching task IDs are kept without duplicates.",
      "narrationText": "This example uses the same workspace, so matching task IDs are kept without duplicates.",
      "startFrame": 887,
      "endFrameExclusive": 1054,
      "startSeconds": 29.566666666666666,
      "endSeconds": 35.13333333333333,
      "actions": [
        {
          "action": "highlight",
          "target": "#toast"
        }
      ],
      "originalStartFrame": 887,
      "originalEndFrameExclusive": 1054,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/export-07.mp3",
        "taskId": "b44e9ce8-ddeb-4906-9748-da83c80f2903",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 1424000,
        "endSampleExclusive": 1671432,
        "startSeconds": 29.666666666666668,
        "endSeconds": 34.8215,
        "startFrame": 890,
        "endFrameExclusive": 1045,
        "sourceSha256": "1a2261da1c8a4edf168471e733bc0db9ea891ff52b8c67d5d3072724630ba977"
      }
    }
  ],
  "subtitleBoundaryEncoding": "ASS cue boundaries quantized down to centiseconds to align exactly with the logged 30 fps frames.",
  "videoSha256": "71b8f00022481753e790dfd234bf8d32e8a1e4bb504c74fc79b2006d16fea98d",
  "masterSha256": "3195492f7c4d8496cb55647b15c0c7c1db1139e1fd5c99b3164098652811f80b",
  "controlsClearancePixels": 128,
  "originalFrameCount": 1054,
  "addedNarrationHoldFrames": 0,
  "narration": {
    "voice": "Niki",
    "language": "en",
    "description": "Friendly American narration",
    "generatedSpeech": true,
    "model": "eleven_multilingual_v2",
    "generationSpeed": 1.05,
    "sampleRate": 48000,
    "codec": "AAC",
    "audioFile": "export-narration.m4a",
    "trackMaster": "output/narration/tracks/export.wav",
    "alignment": "Each original cue plays at its original pace. End-frame holds extend cues when needed for natural speech, with 100 ms lead-in and at least 150 ms end clearance. Audio is never truncated or sped up.",
    "timingConvention": "Audio sample indices at 48000 Hz are exact; covering video frame ranges are rounded outward."
  }
}
