लक्ष्य
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 में लोड करें, मीडिया प्रकार पहचानें, और सही पेलोड बनाएं:
- छवियां:
channels.whatsapp.mediaMaxMb(डिफ़ॉल्ट: 50 MB) को लक्ष्य करते हुए JPEG में रीसाइज़ और रीकंप्रेस करें (अधिकतम साइड 2048px)। - ऑडियो/वॉइस/वीडियो: 16 MB तक पास-थ्रू; ऑडियो वॉइस नोट (
ptt: true) के रूप में भेजा जाता है। - दस्तावेज़: बाकी सब कुछ, 100 MB तक, उपलब्ध होने पर फ़ाइल नाम सुरक्षित रखते हुए।
- छवियां:
- WhatsApp GIF-शैली प्लेबैक: MP4 को
gifPlayback: true(CLI:--gif-playback) के साथ भेजें ताकि मोबाइल क्लाइंट इनलाइन लूप करें। - MIME पहचान पहले मैजिक बाइट्स, फिर हेडर, फिर फ़ाइल एक्सटेंशन को प्राथमिकता देती है।
- कैप्शन
--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के माध्यम से कॉन्फ़िगर की गई हो) टेम्पलेटिंग से पहले चलती है औरBodyमें[Image],[Audio], और[Video]ब्लॉक डाल सकती है।- ऑडियो
{{Transcript}}सेट करता है और कमांड पार्सिंग के लिए ट्रांसक्रिप्ट का उपयोग करता है ताकि स्लैश कमांड अब भी काम करें। - वीडियो और छवि विवरण कमांड पार्सिंग के लिए किसी भी कैप्शन टेक्स्ट को सुरक्षित रखते हैं।
- यदि सक्रिय प्राथमिक छवि मॉडल पहले से ही मूल रूप से विज़न का समर्थन करता है, तो OpenClaw
[Image]सारांश ब्लॉक छोड़ देता है और इसके बजाय मूल छवि को मॉडल को पास करता है।
- ऑडियो
- डिफ़ॉल्ट रूप से केवल पहला मेल खाता छवि/ऑडियो/वीडियो अटैचमेंट प्रोसेस किया जाता है; कई अटैचमेंट प्रोसेस करने के लिए
tools.media.<cap>.attachmentsसेट करें।
सीमाएं और त्रुटियां
आउटबाउंड भेजने की कैप्स (WhatsApp web send)- छवियां: रीकंप्रेशन के बाद
channels.whatsapp.mediaMaxMb(डिफ़ॉल्ट: 50 MB) तक। - ऑडियो/वॉइस/वीडियो: 16 MB कैप; दस्तावेज़: 100 MB कैप।
- बहुत बड़ा या अपठनीय मीडिया → लॉग में स्पष्ट त्रुटि और उत्तर छोड़ दिया जाता है।
- छवि डिफ़ॉल्ट: 10 MB (
tools.media.image.maxBytes)। - ऑडियो डिफ़ॉल्ट: 20 MB (
tools.media.audio.maxBytes)। - वीडियो डिफ़ॉल्ट: 50 MB (
tools.media.video.maxBytes)। - बहुत बड़ा मीडिया समझ को छोड़ देता है, लेकिन उत्तर मूल बॉडी के साथ फिर भी आगे बढ़ते हैं।
परीक्षणों के लिए नोट्स
- छवि/ऑडियो/दस्तावेज़ मामलों के लिए भेजने + उत्तर प्रवाह कवर करें।
- छवियों के लिए रीकंप्रेशन (आकार सीमा) और ऑडियो के लिए वॉइस-नोट फ़्लैग सत्यापित करें।
- सुनिश्चित करें कि मल्टी-मीडिया उत्तर क्रमिक भेजावों के रूप में फैलते हैं।