Назад към всички

grab

// Download and archive content from URLs (tweets, X articles, Reddit, YouTube). Saves media, text, transcripts, and AI summaries into organized folders.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namegrab
descriptionDownload and archive content from URLs (tweets, X articles, Reddit, YouTube). Saves media, text, transcripts, and AI summaries into organized folders.
homepagehttps://github.com/jamesalmeida/grab
whenUser 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
examplesgrab this https://x.com/...,download this tweet,save this video,grab https://youtube.com/...,grab this reddit post
tagsdownload,media,twitter,youtube,reddit,transcript,archive
metadata[object Object]

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.