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: наразіjpgdelayMs: число (необов’язково; типове значення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: наразіmp4deviceId: рядок (необов’язково; зcamera.list)
- Корисне навантаження відповіді:
format: "mp4",base64,durationMs,hasAudio.
- Параметри:
Вимога активного режиму для iOS
Як іcanvas.*, вузол iOS дозволяє команди camera.* лише в активному режимі. Фонові виклики повертають NODE_BACKGROUND_UNAVAILABLE.
Допоміжний засіб CLI
Найпростіше отримати медіафайли за допомогою допоміжного засобу CLI, який записує декодовані медіадані в тимчасовий файл і виводить шлях до збереженого файлу.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 (виклик вузла)
Використовуйте основний CLIopenclaw, щоб викликати команди камери на вузлі macOS.
openclaw nodes camera snapмає типове значенняmaxWidth=1600, якщо його не перевизначено.camera.snapочікуєdelayMs(типове значення 2000ms, обмежується до[0, 10000]) після прогрівання та стабілізації експозиції перед зніманням.- Корисні навантаження фотографій повторно стискаються, щоб розмір base64 не перевищував 5MB.
Хост вузла Linux
Вбудований Plugin вузла Linux додає знімання камерою до служби CLIopenclaw node. Він працює на хості без графічного інтерфейсу та не потребує настільного застосунку Linux.
Доступ до камери типово вимкнено. Увімкніть його в записі плагіна, а потім перезапустіть службу вузла, щоб заново створити її оголошення Gateway:
- FFmpeg із введенням V4L2,
libx264і підтримкою AAC - пристрій
/dev/video*, доступний для читання користувачем служби вузла; у поширених дистрибутивах додайте цього користувача до групиvideo - для кліпів із типовим
includeAudio: true— робочий сервер PulseAudio або шар сумісності PipeWire з PulseAudio, що має типове джерело
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 і обмеження повідомлень).