Skip to main content

x-bookmarks-fetcher

Fetch X (Twitter) bookmarks via the official X API v2. Downloads recent bookmarks with text, images, and videos into a local folder. Use whenever user asks to grab/download/export their X bookmarks, save bookmarked tweets, or pull recent saved posts from X/Twitter. Uses OAuth 2.0 user-context auth (one-time browser consent, then refresh-token forever).

Ir a la instalación

Datos de origen

Repositorio
aviz85/claude-skills-library
Última actividad en el origen
20 de mayo de 2026 a las 02:49
Idioma detectado de SKILL.md
inglés
Estrellas
49
Forks
14

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
9 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
x-bookmarks-fetcher
description
Fetch X (Twitter) bookmarks via the official X API v2. Downloads recent bookmarks with text, images, and videos into a local folder. Use whenever user asks to grab/download/export their X bookmarks, save bookmarked tweets, or pull recent saved posts from X/Twitter. Uses OAuth 2.0 user-context auth (one-time browser consent, then refresh-token forever).
# X Bookmarks Fetcher Download X/Twitter bookmarks via the official X API v2 (no scraping, no Chrome session). Saves tweet text, metadata, images, and videos to a local folder. ## First-time setup If `scripts/.env` does not yet exist, follow **SETUP.md** in this skill folder. It walks through: 1. Creating an X developer app with OAuth 2.0 enabled 2. Setting the callback URL to `http://127.0.0.1:8765/callback` 3. Copying client ID/secret into `.env` 4. Running `npm run auth` (one-time browser consent → saves refresh token) Once `scripts/.env` and `scripts/.tokens.json` exist, fetching is pure API. ## Quick Start ```bash cd ~/.claude/skills/x-bookmarks-fetcher/scripts # One-time auth (opens browser for consent, saves tokens) node auth.mjs # Fetch bookmarks from the last 48 hours (default) node fetch.mjs # Custom hours window node fetch.mjs --hours 24 # Custom output folder node fetch.mjs --hours 48 --out /tmp/my-bookmarks # Specific time range (ISO timestamps) node fetch.mjs --since 2026-05-19T00:00:00Z ``` ## Options for `fetch.mjs` | Option | Default | Description | |--------|---------|-------------| | `--hours <N>` | `48` | Filter to tweets created within last N hours | | `--since <iso>` | derived from `--hours` | Lower bound (ISO 8601 timestamp). Overrides `--hours` | | `--out <dir>` | `/tmp/x-bookmarks-YYYYMMDD` | Output directory | | `--max-pages <N>` | `20` | Stop after N API pages (100 bookmarks each) | | `--no-media` | off | Skip downloading images/videos | ## What gets saved ``` <out>/ ├── bookmarks-raw.json # Full API response (incl. includes for users, media, referenced tweets) ├── index.json # Parsed/flattened items ├── index.md # Human-readable summary ├── <handle>_<id>.txt # One file per bookmark with text + URL + media list └── media/ ├── <media_key>.jpg # Photos ├── <media_key>.mp4 # Highest-bitrate MP4 for videos/GIFs └── <media_key>_poster.jpg # Video thumbnails ``` ## Filtering note The X API returns bookmarks in **bookmarking-order** (most recently saved first), but doesn't expose the bookmark timestamp. The `--hours` / `--since` filter is applied to **tweet created_at** (when the post was published). For most uses this approximates "what I saved recently" — but if you bookmarked an old tweet today, it will be excluded. ## API tier requirements - Endpoint: `GET /2/users/:id/bookmarks` - Auth: OAuth 2.0 User Context with `bookmark.read` scope - Available on Free tier (rate limited — currently ~10 requests per 15 min) ## Files in this skill - `SKILL.md` — this file - `README.md` — same content as SKILL.md, for non-Claude readers - `SETUP.md` — first-time setup walkthrough - `scripts/auth.mjs` — OAuth 2.0 PKCE flow (opens browser once) - `scripts/fetch.mjs` — bookmark fetcher + media downloader - `scripts/.env.example` — credential template - `scripts/.gitignore` — ignores `.env` and `.tokens.json`
Ver en GitHub