> ## Content Index
> Fetch the complete content index at: https://openbeam.world/llms.txt
> Use this file to discover other available public pages before exploring further.

# Record a run and download its data
- URL: https://openbeam.world/docs/record-and-download-data/
- Published: 2026-10-05T16:15:10.000Z
- Updated: 2026-10-05T16:15:10.000Z
- Description: Record a session with the video, your controls and the engine data on one clock, then watch it or download the data bundle.
- Author: Beshoy Hanna
- Tags: #docs

A recording keeps three things from your session on one clock: the video, every input you send (keys, mouse, gamepad) and the engine data the game reports. Recording runs alongside the game, so it never slows the simulation or the stream.

## Record

1. In the player, move the pointer to the top of the tab and choose **Record**. The button shows that it is recording.
2. Choose it again to stop and save. A recording also stops when the session ends; what it holds is saved.

A recording stops on its own before its video reaches 8 GB, or if the stream changes size or codec. Everything up to that point is kept.

## Find your recordings

- **In the player:** open **Content**. Recordings are listed under *This session* and *Earlier session*.
- **On the dashboard:** open **Recordings**. Each recording appears once it is saved.

From either list you can play the video and download the data. On the dashboard you can also delete a recording, which removes its video and data from storage for good. The video can take a moment to become available after you stop recording.

## What the download contains

The video, `preview.mp4`, is the stream's own frames at the session's frame rate, saved without re-encoding. The data bundle is a `.zip` with these files:

| File           | What it holds                                                                                                                               |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| recording.json | The codec, the clock, counts of frames, inputs and engine samples, anything that was dropped, and why the recording stopped.                |
| frames.jsonl   | One line per video frame: its index in preview.mp4, its time t\_ns, whether it is a keyframe, and any frames lost before it.                |
| input.jsonl    | One line per input event: its time, the frame it arrived during, and the event (key, mouse move or button, scroll, text, gamepad or touch). |
| engine.jsonl   | The engine samples the game sent, each with the frame it belongs to.                                                                        |
| manifest.json  | Each file's size and SHA-256 checksum, the video included.                                                                                  |

## Line the tables up

Join the tables on `t_ns`. A frame's time is when it left the encoder, so its picture shows the game about a frame or two earlier. Frames arrive about 16.7 ms apart at 60 fps, give or take about 10 ms; smooth the timeline yourself if you need even spacing.

An AI app connected over MCP can also start and stop recordings. See [OpenBeam MCP tools](https://openbeam.world/docs/openbeam-mcp-tools/).