> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Підтримка зображень і медіа

Канал WhatsApp працює через **Baileys Web**. У цьому документі зафіксовано поточні правила обробки медіа для надсилання, Gateway і відповідей агентів.

## Цілі

* Надсилати медіа з необов’язковими підписами через `openclaw message send --media`.
* Дозволити автовідповідям із вебвхідних містити медіа разом із текстом.
* Зберігати обмеження для кожного типу зрозумілими й передбачуваними.

## Поверхня CLI

* `openclaw message send --media <path-or-url> [--message <caption>]`
  * `--media` необов’язковий; підпис може бути порожнім для надсилань лише з медіа.
  * `--dry-run` друкує розв’язане корисне навантаження; `--json` виводить `{ channel, to, messageId, mediaUrl, caption }`.

## Поведінка каналу WhatsApp Web

* Вхід: локальний шлях до файлу **або** HTTP(S) URL.
* Потік: завантажити в Buffer, визначити тип медіа й побудувати правильне корисне навантаження:
  * **Зображення:** змінити розмір і повторно стиснути в JPEG (максимальна сторона 2048px) з орієнтиром на `channels.whatsapp.mediaMaxMb` (типово: 50 МБ).
  * **Аудіо/голос/відео:** передавати без змін до 16 МБ; аудіо надсилається як голосова нотатка (`ptt: true`).
  * **Документи:** усе інше, до 100 МБ, зі збереженням імені файлу, коли воно доступне.
* Відтворення у стилі GIF у WhatsApp: надішліть MP4 з `gifPlayback: true` (CLI: `--gif-playback`), щоб мобільні клієнти зациклювали його вбудовано.
* Визначення MIME надає перевагу magic bytes, потім заголовкам, потім розширенню файлу.
* Підпис береться з `--message` або `reply.text`; порожній підпис дозволений.
* Журналювання: не докладний режим показує `↩️`/`✅`; докладний містить розмір і вихідний шлях/URL.

## Конвеєр автовідповіді

* `getReplyFromConfig` повертає `{ text?, mediaUrl?, mediaUrls? }`.
* Коли медіа присутнє, вебвідправник розв’язує локальні шляхи або URL за допомогою того самого конвеєра, що й `openclaw message send`.
* Кілька медіаелементів, якщо надані, надсилаються послідовно.

## Вхідні медіа до команд

* Коли вхідні вебповідомлення містять медіа, OpenClaw завантажує його в тимчасовий файл і надає змінні шаблонізації:
  * `{{MediaUrl}}` псевдо-URL для вхідного медіа.
  * `{{MediaPath}}` локальний тимчасовий шлях, записаний перед запуском команди.
* Коли ввімкнено Docker-пісочницю для окремого сеансу, вхідні медіа копіюються в робочий простір пісочниці, а `MediaPath`/`MediaUrl` переписуються на відносний шлях на кшталт `media/inbound/<filename>`.
* Розуміння медіа (якщо налаштовано через `tools.media.*` або спільні `tools.media.models`) виконується перед шаблонізацією й може вставляти блоки `[Image]`, `[Audio]` і `[Video]` у `Body`.
  * Аудіо встановлює `{{Transcript}}` і використовує транскрипт для розбору команд, щоб slash-команди й надалі працювали.
  * Описи відео й зображень зберігають будь-який текст підпису для розбору команд.
  * Якщо активна основна модель зображень уже нативно підтримує бачення, OpenClaw пропускає підсумковий блок `[Image]` і натомість передає моделі оригінальне зображення.
* Типово обробляється лише перше відповідне вкладення зображення/аудіо/відео; задайте `tools.media.<cap>.attachments`, щоб обробляти кілька вкладень.

## Обмеження й помилки

**Обмеження вихідного надсилання (надсилання через WhatsApp Web)**

* Зображення: до `channels.whatsapp.mediaMaxMb` (типово: 50 МБ) після повторного стискання.
* Аудіо/голос/відео: обмеження 16 МБ; документи: обмеження 100 МБ.
* Завеликі або нечитабельні медіа → зрозуміла помилка в журналах, а відповідь пропускається.

**Обмеження розуміння медіа (транскрипція/опис)**

* Типово для зображення: 10 МБ (`tools.media.image.maxBytes`).
* Типово для аудіо: 20 МБ (`tools.media.audio.maxBytes`).
* Типово для відео: 50 МБ (`tools.media.video.maxBytes`).
* Для завеликих медіа розуміння пропускається, але відповіді все одно проходять з оригінальним тілом.

## Нотатки для тестів

* Покрийте потоки надсилання й відповіді для випадків із зображенням/аудіо/документом.
* Перевірте повторне стискання для зображень (межу розміру) і прапорець голосової нотатки для аудіо.
* Переконайтеся, що відповіді з кількома медіа розгортаються в послідовні надсилання.

## Пов’язане

* [Захоплення камерою](/uk/nodes/camera)
* [Розуміння медіа](/uk/nodes/media-understanding)
* [Аудіо й голосові нотатки](/uk/nodes/audio)
