Productivity
grab
Download and archive content from URLs (tweets, X articles, Reddit, YouTube).
---
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.
productivity
By
Comments
Sign in to leave a comment