Exporting · The events file

ManualExporting

The events file

Every export comes with a JSON file that tells, second by second, what happened in the video: each click, each zoom, each annotation and each cut. A person can skim it, and a model can read the whole recording from it.

Reference

Where it is

Each export writes <name>.events.json beside the video in ~/Movies/Kirocast/Exports: an MP4, a GIF, an Export for AI or a Talk mode take. When the project has a transcript, <name>.transcript.json sits beside it, on the same clock.

The file explains itself: its top-level fields spell out the units and what each kind of annotation means, so a model can read it on its own.

Time and position

  • t is seconds into the exported video, to the millisecond. Cuts and speed changes are already applied: a click inside a part you cut is left out, and a click in a sped-up clip lands where it plays.
  • endT appears on events that last, such as a zoom or an annotation. Instant events, such as a click, have only t.
  • x and y run from 0 to 1, from the top-left corner of the area you recorded, before zoom and padding. x 0.5, y 0.5 is the centre of what you recorded, whatever the export’s framing.
  • rect is an area in the same units: x and y for its top-left corner, plus width and height.

When two events share a t, the cause comes first: the click, then the zoom it triggered.

Every kind of event

{ "endT": 18.4, "sourceEnd": 18.4, "sourceStart": 0, "speed": 1, "t": 0, "track": "clip", "type": "fragment" },
{ "button": "left", "clickCount": 1, "t": 2.4, "track": "cursor", "type": "click", "x": 0.42, "y": 0.31 },
{ "endT": 3.1, "factor": 2, "t": 2.4, "track": "zoom", "transition": "smooth", "type": "zoomIn" },
{ "t": 2.4, "track": "position", "type": "focusPoint", "x": 0.42, "y": 0.31 }
EventWhat it saysFields
clip · fragmentOne clip of the edited timeline, from t to endTsourceStart and sourceEnd (seconds in the original recording), speed
cursor · clickA mouse clickx, y, button (left, right or other), clickCount (2 for a double-click)
zoom · zoomIn / zoomOutThe view zooms in or back out, reaching factor at endTfactor, transition (smooth or linear)
position · focusPointThe point the zoom centres onx, y
effects · focusA Smart Annotation around an arearect, optional target
effects · tapTapA Tap Tap cue on a pointx, y, optional target
effects · maskA privacy blur over an arearect, blurRadius
overlay · cameraBubbleWhere the camera bubble sits, for the whole videorect

Pointer movement between clicks stays out of the file, which keeps it short enough to read in one go.

Zooms in an Export for AI or Talk mode video

These videos always show the whole recorded area. Their events file still lists the project’s zooms, as a record of what you meant to bring forward; the frames themselves stay at full view, so positions map straight onto them.

Clicks and annotations

A click is something that happened on screen. An effect is something you added to guide the viewer’s eye. The file keeps the two apart: clicks live on the cursor track, and every effect carries "interaction": false, so a reader never takes an annotation for a click.

{ "attentionPriority": "high", "endT": 11.75, "intent": "highlight_target", "interaction": false,
  "rect": { "height": 0.12, "width": 0.2, "x": 0.35, "y": 0.22 },
  "t": 8.75, "target": { "kind": "button", "label": "Export" }, "track": "effects", "type": "focus" }
EffectintentattentionPriorityMeaning
focushighlight_targethighLook at what’s inside rect; the cue is centred on its middle.
tapTapread_thishighRead this; it matters. Points at x, y.
maskobscure_contentlowPrivate content, blurred. It points at nothing.

target names what an annotation points at: a kind (text, button, icon, image, region or unknown) and, usually, a label. It is filled in when Kirocast knows the answer: from macOS Accessibility when you circle something in Talk mode, or from the agent that placed the annotation. When it is absent, the video shows what the annotation covers.

For how an agent reads this file alongside the transcript and the video, see What your agent receives.

Less explaining.
More showing.

Your next good idea deserves a clear recording.

Download for macOS

Apple silicon · macOS 15 or later · Export requires a license