skills$openclaw/grab
jamesalmeida4.3k

by jamesalmeida

grab – OpenClaw Skill

grab is an OpenClaw Skills integration for data analytics workflows. Download and archive content from URLs (tweets, X articles, Reddit, YouTube). Saves media, text, transcripts, and AI summaries into organized folders.

4.3k stars8.4k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026data analytics

Skill Snapshot

namegrab
descriptionDownload and archive content from URLs (tweets, X articles, Reddit, YouTube). Saves media, text, transcripts, and AI summaries into organized folders. OpenClaw Skills integration.
ownerjamesalmeida
repositoryjamesalmeida/grab
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @jamesalmeida/grab
last updatedFeb 7, 2026

Maintainer

jamesalmeida

jamesalmeida

Maintains grab in the OpenClaw Skills directory.

View GitHub profile
File Explorer
9 files
.
scripts
lib
helpers.sh
7.3 KB
reddit.sh
8.3 KB
tweet.sh
7.9 KB
youtube.sh
3.6 KB
_meta.json
266 B
README.md
4.1 KB
SKILL.md
3.9 KB
SKILL.md

name: grab description: Download and archive content from URLs (tweets, X articles, Reddit, YouTube). Saves media, text, transcripts, and AI summaries into organized folders. homepage: https://github.com/jamesalmeida/grab when: "User shares a URL and wants to download/save/grab it, or asks to download a tweet video, YouTube video, Reddit post, or any media from a URL" examples:

  • "grab this https://x.com/..."
  • "download this tweet"
  • "save this video"
  • "grab https://youtube.com/..."
  • "grab this reddit post" tags:
  • download
  • media
  • twitter
  • youtube
  • reddit
  • transcript
  • archive metadata: { "openclaw": { "emoji": "🫳", "requires": { "bins": ["yt-dlp", "ffmpeg", "whisper"] }, "install": [{ "id": "yt-dlp", "kind": "brew", "formula": "yt-dlp", "bins": ["yt-dlp"], "label": "Install yt-dlp (brew)" }, { "id": "ffmpeg", "kind": "brew", "formula": "ffmpeg", "bins": ["ffmpeg"], "label": "Install ffmpeg (brew)" }, { "id": "openai-whisper", "kind": "brew", "formula": "openai-whisper", "bins": ["whisper"], "label": "Install Whisper (brew)" }] } }

grab 🫳

Download and archive content from URLs into organized folders.

Setup

Dependencies

brew install yt-dlp ffmpeg openai-whisper

Save Location

On first run, grab asks where to save files (default: ~/Dropbox/ClawdBox/). Config stored in ~/.config/grab/config. Reconfigure anytime with grab --config.

Transcription (Local Whisper)

Transcription runs locally via Whisper (turbo model) — no API key or network calls needed.

AI Summaries & Smart Titles (Optional)

Set OPENAI_API_KEY to enable:

  • AI-generated summaries of content
  • Smart descriptive folder names (from transcript/image analysis)

Without it, everything still works — you just won't get summaries or auto-renamed folders.

What It Does

Tweets (x.com / twitter.com)

  • tweet.txt — tweet text, author, date, engagement stats
  • video.mp4 — attached video (if any)
  • image_01.jpg, etc. — attached images (if any)
  • transcript.txt — auto-transcribed from video (if video)
  • summary.txt — AI summary of video (if video)
  • Folder named by content description

X Articles

  • article.txt — full article text with title, author, date
  • summary.txt — AI summary of article
  • Agent handles via OpenClaw browser snapshot
  • Script exits with code 2 and ARTICLE_DETECTED:<id>:<url> when it detects an article

Reddit

  • post.txt — title, author, subreddit, score, date, body text
  • comments.txt — top comments with authors and scores
  • image_01.jpg, etc. — attached images or gallery (if any)
  • video.mp4 — attached video (if any)
  • transcript.txt — auto-transcribed from video (if video)
  • summary.txt — AI summary of post + discussion
  • If Reddit JSON API is blocked (exit code 3), agent uses OpenClaw browser

YouTube

  • video.mp4 — the video
  • description.txt — video description
  • thumbnail.jpg — video thumbnail
  • transcript.txt — transcribed audio
  • summary.txt — AI summary

Output

Downloads are organized by type:

<save_dir>/
  XPosts/
    2026-02-03_embrace-change-you-can-shape-your-life/
      tweet.txt, video.mp4, transcript.txt, summary.txt
  XArticles/
    2026-01-20_the-arctic-smokescreen/
      article.txt, summary.txt
  Youtube/
    2026-02-03_how-to-build-an-ai-agent/
      video.mp4, description.txt, thumbnail.jpg, transcript.txt, summary.txt
  Reddit/
    2026-02-03_maybe-maybe-maybe/
      post.txt, comments.txt, video.mp4, summary.txt

Usage

grab <url>              # Download and archive a URL
grab --config           # Reconfigure save directory
grab --help             # Show help

Requirements

brew install yt-dlp ffmpeg openai-whisper

Transcription uses local Whisper — no API key needed. OPENAI_API_KEY env var optional — enables AI summaries and smart folder titles. Without it, media downloads and transcription still work.

README.md

🫳 grab

Download and archive content from URLs into organized folders with transcripts and AI summaries.

Drop a URL, get everything saved — text, media, transcripts, summaries — organized and synced to Dropbox (or wherever you want).

Supported Sources

SourceSaves
X/Twitter TweetsTweet text, video, images, transcript, AI summary
X ArticlesFull article text, AI summary
Reddit PostsPost text, top comments, video, images, AI summary
YouTube VideosVideo, description, thumbnail, transcript, AI summary

Install

brew install yt-dlp ffmpeg openai-whisper

Optionally, set your OpenAI API key for AI summaries and smart folder titles:

export OPENAI_API_KEY="sk-..."

Without it, media downloads and transcription (local Whisper) still work.

Clone and make the script available:

git clone https://github.com/jamesalmeida/grab.git
chmod +x grab/scripts/grab

Or if you're using OpenClaw, just drop the grab folder into your workspace skills/ directory.

Usage

grab <url>
grab --config    # Change save directory
grab --help      # Show help

First Run

On first run, grab asks where to save files:

🫳 grab — First time setup

Where should grabbed files be saved?
  Default: ~/Dropbox/ClawdBox

Save directory (press Enter for default):

Config is stored in ~/.config/grab/config.

Output Structure

Downloads are organized by type, each in its own dated folder:

~/Dropbox/ClawdBox/
  XPosts/
    2026-02-03_embrace-change-you-can-shape-your-life/
      tweet.txt
      video.mp4
      transcript.txt
      summary.txt
  XArticles/
    2026-01-20_the-arctic-smokescreen/
      article.txt
      summary.txt
  Youtube/
    2026-02-03_state-of-ai-in-2026/
      video.mp4
      description.txt
      thumbnail.jpg
      transcript.txt
      summary.txt
  Reddit/
    2026-02-03_maybe-maybe-maybe/
      post.txt
      comments.txt
      video.mp4
      summary.txt

Features

  • Auto-transcription — Videos are transcribed locally via Whisper (no API key needed)
  • AI summaries — Every piece of content gets an AI-generated summary with key insights
  • Smart folder naming — Video folders are renamed based on transcript content (not just the tweet text)
  • Image descriptions — Image-only tweets get folder names from AI image analysis
  • Configurable save location — First-run setup, change anytime with --config
  • Reddit comments — Saves top 20 comments with authors and scores
  • YouTube metadata — Description, thumbnail, view/like counts all preserved

How It Works

Tweets with video: Downloads video via yt-dlp → extracts audio → transcribes with Whisper → generates summary → renames folder to descriptive title from content.

Tweets with images: Downloads images → analyzes first image with vision model → renames folder to image description.

X Articles: Detected automatically (exit code 2). Requires OpenClaw agent with browser to extract article content (X blocks headless access).

Reddit posts: Fetches via Reddit JSON API → saves post + top comments → downloads any video/images → transcribes video → generates summary of post + discussion.

YouTube: Fetches metadata → downloads video (1080p max) + thumbnail → transcribes → generates summary.

Requirements

  • yt-dlp — media downloads
  • ffmpeg — audio extraction and video merging
  • curl — API requests
  • python3 — JSON parsing and API calls
  • whisper (openai-whisper) — local transcription (no API key needed)
  • OPENAI_API_KEY — optional, for AI summaries and smart folder titles (GPT-4o-mini). Without it, media downloads and transcription still work.

OpenClaw Skill

This is an OpenClaw / AgentSkills-compatible skill. The SKILL.md contains metadata for automatic discovery and gating.

When used with OpenClaw, the agent handles:

  • X Articles (browser-based extraction)
  • Reddit fallback (when JSON API is blocked)
  • Automatic OPENAI_API_KEY injection from config

License

MIT

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

```bash brew install yt-dlp ffmpeg openai-whisper ``` Transcription uses local Whisper — no API key needed. `OPENAI_API_KEY` env var optional — enables AI summaries and smart folder titles. Without it, media downloads and transcription still work.

FAQ

How do I install grab?

Run openclaw add @jamesalmeida/grab in your terminal. This installs grab into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/jamesalmeida/grab. Review commits and README documentation before installing.