Grabgrab
by @xuxizhen
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...
clawhub install grabgrabπ About This Skill
name: GrabGrab description: 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, Bilibili, Vimeo, Dailymotion, SoundCloud, Twitch, Pinterest, Snapchat, Bluesky, VK, OK.ru, Rutube, Streamable, Loom, Tumblr, Newgrounds, Xiaohongshu and more. Trigger when user says "download video", "save video", "grab video", provides a video URL and wants to download it, or mentions downloading from supported platforms.
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 | instagram.com/p/, instagram.com/reel/, instagram.com/stories/ |
| Facebook | facebook.com/.../videos/, fb.watch/ |
| Reddit | reddit.com/r/.../comments/ |
| Bilibili | bilibili.com/video/, b23.tv/ |
| Vimeo | vimeo.com/ |
| Dailymotion | dailymotion.com/video/ |
| SoundCloud | soundcloud.com/ |
| Twitch | twitch.tv/, clips.twitch.tv/ |
| Pinterest | 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": "", "videoQuality": ""}'
Video quality options (ask user if not specified, default to 1080):
max - Best available quality2160 - 4K1440 - 2K1080 - Full HD (default)720 - HD480 - SD360 - Low144 - MinimumDownload mode options (default to auto):
auto - Video with audio (default)audio - Audio onlymute - Video without audioStep 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 "" .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 "" ""
For tunnel/redirect URLs that need the proxy:
curl -L -o "" "https://grabgrab.fun/api/proxy?url="
IMPORTANT: If the direct URL download fails or returns HTML instead of a video file, retry using the proxy endpoint:
curl -L -o "" "https://grabgrab.fun/api/proxy?url=$(python3 -c 'import urllib.parse; print(urllib.parse.quote("", safe=""))')"
Step 4: Confirm to User
After download completes:
Important Notes
-L flag with curl to follow redirects.downloadMode to "audio".videoQuality to "max".Examples
User: "Download this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Actions:
1. 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"}'
2. Parse response to get download URL and filename
3. Download: curl -L -o "filename.mp4" "
4. 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:
1. 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"}'
2. Parse and download the audio file
3. Report the result
User: "/GrabGrab https://www.bilibili.com/video/BV1xx411c7mD"
Actions: 1. Call API with default settings (1080p, auto mode) 2. Download the video 3. Report the result
π‘ Examples
User: "Download this YouTube video: https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Actions:
1. 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"}'
2. Parse response to get download URL and filename
3. Download: curl -L -o "filename.mp4" "
4. 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:
1. 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"}'
2. Parse and download the audio file
3. Report the result
User: "/GrabGrab https://www.bilibili.com/video/BV1xx411c7mD"
Actions: 1. Call API with default settings (1080p, auto mode) 2. Download the video 3. Report the result