/install grabgrab
GrabGrab - Video & Audio Downloader
Download videos and audio from 20+ platforms by URL. Powered by GrabGrab.
Supported Platforms (20+)
| Platform | Example URLs |
|---|---|
| YouTube | youtube.com/watch, youtu.be/, youtube.com/shorts/, music.youtube.com |
| X / Twitter | x.com/.../status/, twitter.com/.../status/ |
| TikTok | tiktok.com/@.../video/, vm.tiktok.com/ |
instagram.com/p/, instagram.com/reel/, instagram.com/stories/ |
|
facebook.com/.../videos/, fb.watch/ |
|
reddit.com/r/.../comments/ |
|
| Bilibili | bilibili.com/video/, b23.tv/ |
| Vimeo | vimeo.com/\x3Cid> |
| Dailymotion | dailymotion.com/video/ |
| SoundCloud | soundcloud.com/ |
| Twitch | twitch.tv/, clips.twitch.tv/ |
pinterest.com/pin/ |
|
| Snapchat | snapchat.com/ |
| Bluesky | bsky.app/ |
| VK | vk.com/video, vk.com/clip |
| OK.ru | ok.ru/video/ |
| Rutube | rutube.ru/video/ |
| Streamable | streamable.com/ |
| Loom | loom.com/share/ |
| Tumblr | tumblr.com/ |
| Newgrounds | newgrounds.com/ |
| Xiaohongshu | xiaohongshu.com/, xhslink.com/ |
Workflow
Step 1: Call the GrabGrab API
Use curl via the Bash tool to call the API:
curl -s -X POST "https://grabgrab.fun/api/download" \
-H "Content-Type: application/json" \
-d '{"url": "\x3CVIDEO_URL>", "videoQuality": "\x3CQUALITY>"}'
Video quality options (ask user if not specified, default to 1080):
max- Best available quality2160- 4K1440- 2K1080- Full HD (default)720- HD480- SD360- Low144- Minimum
Download mode options (default to auto):
auto- Video with audio (default)audio- Audio onlymute- Video without audio
Step 2: Parse the API Response
The API returns JSON. Handle each response type:
Direct download (type: "direct"):
{
"success": true,
"type": "direct",
"url": "https://...",
"filename": "video.mp4"
}
Action: Download the file using curl -L -o \x3Cfilename> "\x3Curl>".
Picker (type: "picker") — multiple items found (e.g., Instagram carousel):
{
"success": true,
"type": "picker",
"items": [
{"type": "video", "url": "https://..."},
{"type": "photo", "url": "https://..."}
]
}
Action: Show the user the list of items and ask which ones to download, or download all videos.
Error:
{
"success": false,
"error": "Error message here"
}
Action: Show the error message to the user.
Step 3: Download the File
For direct downloads:
curl -L -o "\x3Cfilename>" "\x3Cdownload_url>"
For tunnel/redirect URLs that need the proxy:
curl -L -o "\x3Cfilename>" "https://grabgrab.fun/api/proxy?url=\x3Cencoded_download_url>"
IMPORTANT: If the direct URL download fails or returns HTML instead of a video file, retry using the proxy endpoint:
curl -L -o "\x3Cfilename>" "https://grabgrab.fun/api/proxy?url=$(python3 -c 'import urllib.parse; print(urllib.parse.quote("\x3Cdownload_url>", safe=""))')"
Step 4: Confirm to User
After download completes:
- Report the filename and file size
- Report the download location (current working directory or user-specified path)
Important Notes
- The API has a rate limit of 30 requests per minute. If you get a 429 error, wait and retry.
- Always use
-Lflag with curl to follow redirects. - If the user asks for audio only, set
downloadModeto"audio". - If the user wants the best quality, set
videoQualityto"max". - Default download location is the current working directory unless the user specifies otherwise.
- The API automatically detects the platform from the URL — no need to specify the platform manually.
Examples
User: "Download this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Actions:
- Call API:
curl -s -X POST "https://grabgrab.fun/api/download" -H "Content-Type: application/json" -d '{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ", "videoQuality": "1080"}' - Parse response to get download URL and filename
- Download:
curl -L -o "filename.mp4" "\x3Curl>" - Report: "Downloaded filename.mp4 (15.2 MB) to current directory."
User: "Save the audio from this TikTok: https://www.tiktok.com/@user/video/123"
Actions:
- Call API with
downloadMode: "audio":curl -s -X POST "https://grabgrab.fun/api/download" -H "Content-Type: application/json" -d '{"url": "https://www.tiktok.com/@user/video/123", "downloadMode": "audio"}' - Parse and download the audio file
- Report the result
User: "/GrabGrab https://www.bilibili.com/video/BV1xx411c7mD"
Actions:
- Call API with default settings (1080p, auto mode)
- Download the video
- Report the result
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install grabgrab - After installation, invoke the skill by name or use
/grabgrab - Provide required inputs per the skill's parameter spec and get structured output
What is GrabGrab?
Use when the user wants to download a video or audio from a URL. Supports 20+ platforms including YouTube, X/Twitter, TikTok, Instagram, Facebook, Reddit, Bi... It is an AI Agent Skill for Claude Code / OpenClaw, with 276 downloads so far.
How do I install GrabGrab?
Run "/install grabgrab" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is GrabGrab free?
Yes, GrabGrab is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does GrabGrab support?
GrabGrab is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created GrabGrab?
It is built and maintained by xizhen (@xuxizhen); the current version is v1.0.0.