🧪 Skills

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...

v1.0.0
❤️ 0
⬇️ 20
👁 1
Share

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 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/<id>
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": "<VIDEO_URL>", "videoQuality": "<QUALITY>"}'

Video quality options (ask user if not specified, default to 1080):

  • max - Best available quality
  • 2160 - 4K
  • 1440 - 2K
  • 1080 - Full HD (default)
  • 720 - HD
  • 480 - SD
  • 360 - Low
  • 144 - Minimum

Download mode options (default to auto):

  • auto - Video with audio (default)
  • audio - Audio only
  • mute - 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 -L flag with curl to follow redirects.
  • If the user asks for audio only, set downloadMode to "audio".
  • If the user wants the best quality, set videoQuality to "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:

  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" "<url>"
  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

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs