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...
Description
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.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/<id> |
| 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": "<VIDEO_URL>", "videoQuality": "<QUALITY>"}'
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 <filename> "<url>".
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 "<filename>" "<download_url>"
For tunnel/redirect URLs that need the proxy:
curl -L -o "<filename>" "https://grabgrab.fun/api/proxy?url=<encoded_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 "<filename>" "https://grabgrab.fun/api/proxy?url=$(python3 -c 'import urllib.parse; print(urllib.parse.quote("<download_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" "<url>" - 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
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!