Documentation Products Updated

Capture artifacts

What Quikap writes to disk for each capture, how QuikapStudio reads it, and how the format is versioned so that old and new versions of the two programs keep working together.

An artifact is a folder

Every capture Quikap takes is written to a folder of its own, on your disk:

<artifact>/
├─ manifest.json          what this is: schema version, id, when, kind, source, content
├─ source/
│  ├─ still.*             a still, or
│  ├─ tiles/<level>/…     a large capture as tiles with mip levels, or
│  └─ recording.*         a recording
├─ telemetry/
│  ├─ cursor.cbor         the cursor's movement, kept apart from the pixels
│  └─ clicks.cbor         the clicks
├─ audio/
├─ thumbnails/
└─ metadata/
   ├─ panorama.json       how a panorama was stitched, with its confidence
   └─ displays.json       the displays as they were, with their scale factors

The folder is written to a temporary location and moved into place in one step when it is complete, so that QuikapStudio never sees a half-written capture. Artifacts inherit your user account's permissions and nobody else's.

The manifest

manifest.json is validated against a published JSON Schema (draft 2020-12). It names the schema version, the artifact's id, when it was taken, its kind (still, panorama or recording), the source (platform, capture backend, the logical and pixel bounds, the DPI scale) and the content (the file, its type and size, the tile manifest for a tiled capture, the duration of a recording). Unknown fields are kept and ignored; a required field that is missing or of the wrong type rejects the manifest whole rather than guessing.

What is never in an artifact

Keyboard input is recorded only when you explicitly switch it on for a recording; it is never captured by default. Window titles, the names of other programs, their command lines and access tokens are not written into an artifact unless a feature needs them and you chose that feature. The provenance an artifact carries is what is needed to render it the same way again, and no more.

Versioning

The manifest schema and the control protocol are versioned separately, and each program says which versions it reads and writes when the two connect. Fields are added, not changed; a change that breaks older readers is a new major version with migration code in QuikapStudio. Both programs are tested against the versions before them, so that an older Quikap and a newer Studio, or the other way round, keep working together.

Opening an artifact with something else

It is a folder of ordinary files: a PNG, a video, JSON and CBOR. You can open it with anything that reads those. The schema is published with the source of both programs.