---
read_when:
    - Додавання або змінення захоплення зображення з камери на платформах Node
    - Розширення доступних агенту робочих процесів із тимчасовими файлами MEDIA
summary: Знімання камерою на вузлах iOS, Android, macOS і Linux для фотографій і коротких відеокліпів
title: Знімання камерою
x-i18n:
    generated_at: "2026-07-16T18:12:23Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: 8fff8302863b63209222d87b350238dd2f01e18d06ce1783036b3cefaca14020
    source_path: nodes/camera.md
    workflow: 16
---

OpenClaw підтримує знімання камерою для робочих процесів агента на спарених вузлах **iOS**, **Android**, **macOS** і **Linux**: знімання фотографії (`jpg`) або короткого відеокліпу (`mp4`, з необов’язковим аудіо) через Gateway `node.invoke`.

Будь-який доступ до камери контролюється користувацьким налаштуванням для кожної платформи.

## Вузол iOS

### Користувацьке налаштування iOS

- Вкладка iOS Settings → **Camera** → **Allow Camera** (`camera.enabled`).
  - Типове значення: **увімкнено** (відсутній ключ вважається ввімкненим).
  - Коли вимкнено: команди `camera.*` повертають `CAMERA_DISABLED`.

### Команди iOS (через Gateway `node.invoke`)

- `camera.list`
  - Корисне навантаження відповіді: `devices` — масив `{ id, name, position, deviceType }`.

- `camera.snap`
  - Параметри:
    - `facing`: `front|back` (типове значення: `front`)
    - `maxWidth`: число (необов’язково; типове значення `1600`)
    - `quality`: `0..1` (необов’язково; типове значення `0.9`, обмежується до `[0.05, 1.0]`)
    - `format`: наразі `jpg`
    - `delayMs`: число (необов’язково; типове значення `0`, внутрішньо обмежується до `10000`)
    - `deviceId`: рядок (необов’язково; з `camera.list`)
  - Корисне навантаження відповіді: `format: "jpg"`, `base64`, `width`, `height`.
  - Захист корисного навантаження: фотографії повторно стискаються, щоб розмір закодованого в base64 корисного навантаження не перевищував 5MB.

- `camera.clip`
  - Параметри:
    - `facing`: `front|back` (типове значення: `front`)
    - `durationMs`: число (типове значення `3000`, обмежується до `[250, 60000]`)
    - `includeAudio`: логічне значення (типове значення `true`)
    - `format`: наразі `mp4`
    - `deviceId`: рядок (необов’язково; з `camera.list`)
  - Корисне навантаження відповіді: `format: "mp4"`, `base64`, `durationMs`, `hasAudio`.

### Вимога активного режиму для iOS

Як і `canvas.*`, вузол iOS дозволяє команди `camera.*` лише в **активному режимі**. Фонові виклики повертають `NODE_BACKGROUND_UNAVAILABLE`.

### Допоміжний засіб CLI

Найпростіше отримати медіафайли за допомогою допоміжного засобу CLI, який записує декодовані медіадані в тимчасовий файл і виводить шлях до збереженого файлу.

```bash
openclaw nodes camera snap --node <id>                 # типово: обидві камери, передня й задня (2 рядки MEDIA)
openclaw nodes camera snap --node <id> --facing front
openclaw nodes camera clip --node <id> --duration 3000
openclaw nodes camera clip --node <id> --no-audio
```

`nodes camera snap` має типове значення `--facing both`, знімаючи одночасно передньою та задньою камерами, щоб надати агенту обидва ракурси; передайте `--device-id` з одним явно вказаним напрямком (`both` відхиляється, коли встановлено `--device-id`). Вихідні файли є тимчасовими (у каталозі тимчасових файлів ОС), якщо не створити власну обгортку.

## Вузол Android

### Користувацьке налаштування Android

- Панель Android Settings → **Camera** → **Allow Camera** (`camera.enabled`).
  - **У нових інсталяціях типово вимкнено.** Наявні інсталяції, створені до появи цього налаштування, мігруються до стану **увімкнено**, щоб після оновлення непомітно не втрачався доступ до камери, який раніше працював.
  - Коли вимкнено: команди `camera.*` повертають `CAMERA_DISABLED: enable Camera in Settings`.

### Дозволи

- `CAMERA` потрібен для `camera.snap` і `camera.clip`; якщо дозвіл відсутній або відхилений, повертається `CAMERA_PERMISSION_REQUIRED`.
- `RECORD_AUDIO` потрібен для `camera.clip`, коли `includeAudio` має значення `true`; якщо дозвіл відсутній або відхилений, повертається `MIC_PERMISSION_REQUIRED`.

Застосунок за можливості запитує дозволи під час виконання.

### Вимога активного режиму для Android

Як і `canvas.*`, вузол Android дозволяє команди `camera.*` лише в **активному режимі**. Фонові виклики повертають `NODE_BACKGROUND_UNAVAILABLE: command requires foreground`.

### Команди Android (через Gateway `node.invoke`)

- `camera.list`
  - Корисне навантаження відповіді: `devices` — масив `{ id, name, position, deviceType }`.

- `camera.snap`
  - Параметри: `facing` (`front|back`, типове значення `front`), `quality` (типове значення `0.95`, обмежується до `[0.1, 1.0]`), `maxWidth` (типове значення `1600`), `deviceId` (необов’язково; невідомий ідентифікатор спричиняє помилку `INVALID_REQUEST`).
  - Корисне навантаження відповіді: `format: "jpg"`, `base64`, `width`, `height`.
  - Захист корисного навантаження: дані повторно стискаються, щоб розмір base64 не перевищував 5MB (той самий ліміт, що й в iOS).

- `camera.clip`
  - Параметри: `facing` (типове значення `front`), `durationMs` (типове значення `3000`, обмежується до `[200, 60000]`), `includeAudio` (типове значення `true`), `deviceId` (необов’язково).
  - Корисне навантаження відповіді: `format: "mp4"`, `base64`, `durationMs`, `hasAudio`.
  - Захист корисного навантаження: розмір необробленого MP4 обмежено до 18MB перед кодуванням у base64; завеликі кліпи завершуються помилкою `PAYLOAD_TOO_LARGE` (зменште `durationMs` і повторіть спробу).

## Застосунок macOS

### Користувацьке налаштування macOS

Супровідний застосунок macOS містить прапорець:

- **Settings → General → Allow Camera** (`openclaw.cameraEnabled`).
  - Типове значення: **вимкнено**.
  - Коли вимкнено: запити камери повертають `CAMERA_DISABLED: enable Camera in Settings`.

### Допоміжний засіб CLI (виклик вузла)

Використовуйте основний CLI `openclaw`, щоб викликати команди камери на вузлі macOS.

```bash
openclaw nodes camera list --node <id>                     # перелік ідентифікаторів камер
openclaw nodes camera snap --node <id>                     # виводить шлях до збереженого файлу
openclaw nodes camera snap --node <id> --max-width 1280
openclaw nodes camera snap --node <id> --delay-ms 2000
openclaw nodes camera snap --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --duration 10s       # виводить шлях до збереженого файлу
openclaw nodes camera clip --node <id> --duration-ms 3000   # виводить шлях до збереженого файлу (застарілий прапорець)
openclaw nodes camera clip --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --no-audio
```

- `openclaw nodes camera snap` має типове значення `maxWidth=1600`, якщо його не перевизначено.
- `camera.snap` очікує `delayMs` (типове значення 2000ms, обмежується до `[0, 10000]`) після прогрівання та стабілізації експозиції перед зніманням.
- Корисні навантаження фотографій повторно стискаються, щоб розмір base64 не перевищував 5MB.

## Хост вузла Linux

Вбудований Plugin вузла Linux додає знімання камерою до служби CLI `openclaw node`. Він працює на хості без графічного інтерфейсу та не потребує настільного застосунку Linux.

Доступ до камери типово вимкнено. Увімкніть його в записі плагіна, а потім перезапустіть службу вузла, щоб заново створити її оголошення Gateway:

```json5
{
  plugins: {
    entries: {
      "linux-node": {
        config: {
          camera: { enabled: true },
        },
      },
    },
  },
}
```

Вимоги:

- FFmpeg із введенням V4L2, `libx264` і підтримкою AAC
- пристрій `/dev/video*`, доступний для читання користувачем служби вузла; у поширених дистрибутивах додайте цього користувача до групи `video`
- для кліпів із типовим `includeAudio: true` — робочий сервер PulseAudio або шар сумісності PipeWire з PulseAudio, що має типове джерело

Linux повертає з `camera.list` доступні для читання шляхи до пристроїв V4L2, здатних виконувати знімання; FFmpeg перевіряє кожного кандидата `/dev/video*` і пропускає вузли метаданих або вузли лише для виведення. `position` пристрою має значення `unknown`, тому запити напрямку без `deviceId` створюють одну фотографію або кліп із позицією `unknown`, не заявляючи про передню чи задню камеру. Використовуйте `deviceId`, коли хост має кілька камер. `camera.snap` використовує прогрівання введення FFmpeg протягом `delayMs` і зберігає співвідношення сторін, обмежуючи ширину. `camera.clip` записує звук із мікрофона як аудіодоріжку MP4; OpenClaw навмисно не надає окремої команди мікрофона.

Плагін використовує `libx264` для відео MP4 і не змінює кодеки без повідомлення. Збірка FFmpeg без потрібного введення або кодувальників повертає `CAMERA_UNAVAILABLE`. Фотографії та кліпи, які перевищили б бюджет корисного навантаження base64 у 25MB, завершуються помилкою `PAYLOAD_TOO_LARGE`.

`camera.snap` і `camera.clip` залишаються небезпечними командами. Додавайте їх до `gateway.nodes.allowCommands` лише тоді, коли навмисно активуєте знімання; саме лише ввімкнення плагіна не обходить політику Gateway.

## Безпека та практичні обмеження

- Доступ до камери та мікрофона викликає звичайні запити дозволів ОС (і потребує рядків опису використання в `Info.plist`).
- Тривалість відеокліпів обмежено до 60s, щоб уникнути завеликих корисних навантажень вузла (накладні витрати base64 і обмеження повідомлень).

## Відео екрана macOS (на рівні ОС)

Для відеозапису _екрана_ (не камери) використовуйте супровідний застосунок macOS:

```bash
openclaw nodes screen record --node <id> --duration 10s --fps 15   # виводить шлях до збереженого файлу
```

Потрібен дозвіл macOS **Screen Recording** (TCC).

## Пов’язані матеріали

- [Підтримка зображень і медіа](/uk/nodes/images)
- [Розуміння медіа](/uk/nodes/media-understanding)
- [Команда визначення розташування](/uk/nodes/location-command)
