Source Code
GIF Sender
Send GIFs naturally in WhatsApp conversations.
CRITICAL: WhatsApp GIF Workflow
WhatsApp doesn't support direct Tenor/Giphy URLs. You MUST:
- Download the GIF
- Convert to MP4
- Send with
gifPlayback: true
Complete Workflow
Step 1: Search for GIF
gifgrep "SEARCH QUERY" --max 5 --format url
Search in English for best results.
Always get 5 results and pick the best one based on the filename/description - don't just take the first result.
Step 2: Download the GIF
curl -sL "GIF_URL" -o /tmp/gif.gif
Step 3: Convert to MP4
ffmpeg -i /tmp/gif.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" /tmp/gif.mp4 -y
Step 4: Send via message tool
message action=send to=NUMBER message="โ" filePath=/tmp/gif.mp4 gifPlayback=true
Note: Use invisible character โ (left-to-right mark, U+200E) as message to send GIF without visible caption.
One-liner Example
# Search
gifgrep "thumbs up" --max 3 --format url
# Pick best URL, then:
curl -sL "https://media.tenor.com/xxx.gif" -o /tmp/g.gif && \
ffmpeg -i /tmp/g.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" /tmp/g.mp4 -y 2>/dev/null
# Then send with message tool, gifPlayback=true
When to Send GIFs
โ Good times:
- User asks for a GIF
- Celebrating good news
- Funny reactions
- Expressing emotions (excitement, facepalm, etc.)
โ Don't overuse:
- One GIF per context is enough
- Not every message needs a GIF
Popular Search Terms
| Emotion | Search Terms |
|---|---|
| Happy | celebration, party, dancing, excited |
| Approval | thumbs up, nice, good job, applause |
| Funny | laugh, lol, haha, funny |
| Shocked | mind blown, shocked, surprised, wow |
| Sad | crying, sad, disappointed |
| Frustrated | facepalm, ugh, annoyed |
| Love | heart, love, hug |
| Cool | sunglasses, cool, awesome |
Security & Safety Notes
- Source domains: gifgrep only searches trusted GIF providers (Tenor, Giphy)
- File handling: All downloads go to
/tmpand are overwritten each time (-yflag) - Empty caption: The
โcharacter (U+200E, Left-to-Right Mark) is used as an invisible caption so WhatsApp sends the GIF without visible text. This is a standard Unicode control character, not an injection technique - WhatsApp integration: Uses the platform's built-in
messagetool โ no separate WhatsApp credentials needed - ffmpeg safety: Processes only GIF files from trusted providers; no arbitrary file execution
Why This Works
- WhatsApp converts all GIFs to MP4 internally
- Direct Tenor/Giphy URLs often fail
- MP4 with
gifPlayback=truedisplays as looping GIF - Small file size = fast delivery