home / skills / openclaw / skills / grab

This skill downloads and archives content from URLs into organized folders with optional AI summaries and smart titles.

npx playbooks add skill openclaw/skills --skill grab

Review the files below or copy the command above to add this skill to your agents.

Files (7)
SKILL.md
3.9 KB
---
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
```bash
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

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

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

Overview

This skill downloads and archives content from URLs (tweets, X articles, Reddit posts, YouTube videos) into organized folders. It saves media files, text, local Whisper transcripts, and optional AI summaries and smart folder names. Configuration asks for a save directory on first run and can be changed later. It runs primarily locally and works without an API key for core features.

How this skill works

The skill inspects a given URL, detects the content type (X/tweet, X article, Reddit, YouTube), and downloads available assets: images, videos, thumbnails, and raw text. It runs local Whisper transcription for any audio/video to produce transcript.txt. If OPENAI_API_KEY is present, it generates AI summaries and can create descriptive folder names from transcripts or images. The tool falls back to a browser capture path when APIs are blocked or an article requires snapshotting.

When to use it

  • Archive social posts or videos for research or reference
  • Preserve multimedia and context for reporting or compliance
  • Build an offline library of transcripts and summaries
  • Backup important threads, articles, or community discussions
  • Collect source material for content creation or analysis

Best practices

  • Set a dedicated save directory (default ~/Dropbox/ClawdBox/) and ensure ample storage space
  • Install required tools: yt-dlp, ffmpeg, openai-whisper before use
  • Set OPENAI_API_KEY only if you want AI summaries and smart folder titles
  • Run grab --config to change save location or reconfigure behavior
  • Verify local Whisper model availability to avoid transcription failures

Example use cases

  • Save a viral tweet thread with images and video plus an AI summary for future citation
  • Archive a YouTube tutorial with transcript and thumbnail for offline study
  • Backup a Reddit post and top comments to preserve context before a thread is deleted
  • Capture an X article as text and a snapshot when you need an immutable record for reporting
  • Collect a set of videos and transcripts to feed into downstream analysis or training

FAQ

Do I need an API key for core features?

No. Media downloads and local Whisper transcription work without any API key. OPENAI_API_KEY is optional for summaries and smart titles.

Where are files stored and can I change it?

On first run you choose a save directory (default ~/Dropbox/ClawdBox/). Reconfigure anytime with grab --config.

How are different content types organized?

Downloads are placed in content-type folders (XPosts, XArticles, Youtube, Reddit) with descriptive dated subfolders containing text, media, transcripts, and summaries.