1#### Settings
2
3# Video Output Storage under ZDR
4
5Under Zero Data Retention (ZDR), generated videos must be stored in user-supplied storage. Until storage is configured, the video tools in Grok Build will return an error.
6
7To set this up, configure an S3-compatible bucket and set the following in `~/.grok/managed_config.toml`. Grok Build presigns an upload URL for each generation and passes it to the API, so the video lands directly in your bucket and is never stored by xAI:
8
9```toml
10[tools.zdr_video_output_s3]
11bucket = ""
12endpoint = ""
13region = ""
14
15[tools.zdr_video_output_s3.read_write]
16access_key_id = ""
17secret_access_key = ""
18
19[tools.zdr_video_output_s3.read_only]
20access_key_id = ""
21secret_access_key = ""
22```
23
24| Key | Required | Description |
25| --- | --- | --- |
26| `bucket` | yes | Bucket name for generated videos. |
27| `endpoint` | yes | S3-compatible endpoint URL (AWS S3, Cloudflare R2, MinIO, …). |
28| `region` | yes | Bucket region. |
29| `key_prefix` | no | Object key prefix (default `grok-videos/`). |
30| `expires_secs` | no | Presigned-URL lifetime in seconds (default `900`, minimum enforced). |
31| `read_write` | yes | Credentials used to presign the upload URL. |
32| `read_only` | no | Optional credentials used to presign a playback/download URL; omit to manage retrieval yourself. |
33
34Only the presigned URLs leave the machine — the credentials themselves are never sent to xAI. Restart Grok Build after changing the config for it to take effect.
35
36Note: Video tools will be enabled if the privacy setting is off (`/privacy`).