x-research-kit
by @xuya227939
Extract and analyze X (Twitter) content using yt-dlp and gallery-dl. Supports tweet metadata, video extraction, thread retrieval, profile analysis, and space...
clawhub install x-research-kitπ About This Skill
name: x-research-kit description: > Extract and analyze X (Twitter) content using yt-dlp and gallery-dl. Supports tweet metadata, video extraction, thread retrieval, profile analysis, and spaces info. Use when user mentions "X research", "Twitter extract", "tweet analysis", "X metadata", "Twitter thread", "tweet transcript", "analyze tweet", or provides an x.com/twitter.com URL.
X (Twitter) Research Kit
Extract structured data from X/Twitter posts, profiles, and spaces for content research. Powered by yt-dlp and gallery-dl locally β no API key required.
Version: 1.0.0 Prerequisites: yt-dlp >= 2024.01.01, gallery-dl >= 1.26.0 (optional, for image posts)
Prerequisites
# macOS
brew install yt-dlp gallery-dlpip
pip install yt-dlp gallery-dlVerify
yt-dlp --version && gallery-dl --version
Operations
1. Tweet / Post Metadata
Extract text, media, engagement stats from a single tweet.
yt-dlp --dump-json --skip-download "https://x.com/user/status/TWEET_ID"
Key JSON fields:
| Field | JSON path |
|-------|-----------|
| Full text | .description |
| Author | .uploader |
| Author handle | .uploader_id |
| Upload date | .upload_date (YYYYMMDD β YYYY-MM-DD) |
| Views | .view_count |
| Likes | .like_count |
| Retweets | .repost_count |
| Replies | .comment_count |
| Media type | .formats[] (video/image) |
| Thumbnail | .thumbnail |
For image-only tweets (no video), use gallery-dl:
gallery-dl --dump-json "https://x.com/user/status/TWEET_ID"
2. User Profile / Timeline
Extract recent posts from a user's timeline.
yt-dlp --flat-playlist --dump-json --playlist-end 20 "https://x.com/USERNAME"
Output is one JSON object per line. Parse each for .description, .upload_date, .view_count, .like_count.
Output format: Table with columns: #, Date, Text (first 80 chars), Views, Likes.
3. Video / Spaces Extraction Info
For tweets containing video:
yt-dlp --dump-json --skip-download "https://x.com/user/status/TWEET_ID"
Parse .formats[] for available video qualities: .format_id, .height, .ext, .filesize.
For X Spaces (audio):
yt-dlp --dump-json --skip-download "https://x.com/i/spaces/SPACE_ID"
4. Search / Hashtag (via profile)
yt-dlp does not support X search directly. For hashtag research: 1. Extract posts from relevant user profiles 2. Filter by content keywords locally
URL Patterns
| Pattern | Type |
|---------|------|
| x.com/user/status/123 | Single tweet |
| twitter.com/user/status/123 | Single tweet (legacy) |
| x.com/USERNAME | User timeline |
| x.com/i/spaces/ABC | X Space |
Number Formatting
{n/1M:.1f}M{n/1K:.1f}KWorkflow Guide
When user provides an X/Twitter URL:
1. Identify URL type (tweet, profile, space) 2. Run the appropriate yt-dlp command 3. Parse JSON and present formatted Markdown 4. Offer follow-ups: "Want me to analyze the engagement?" / "Extract the full thread?"
When user asks to download media:
Error Handling
Notes
yt-dlp --cookies-from-browser chrome "URL"
About
X Research Kit is an open-source project by SnapVee.
βοΈ Configuration
# macOS
brew install yt-dlp gallery-dlpip
pip install yt-dlp gallery-dlVerify
yt-dlp --version && gallery-dl --version
π Tips & Best Practices
yt-dlp --cookies-from-browser chrome "URL"